打造你自己的在线记事本:Memos 从零搭建指南(小白友好)
记录灵感不再靠微信“文件传输助手”!让我们用 Docker 搭个开源、轻量、的 Memos 卡片式笔记簿!适合记灵感、写读后感、记流水账……也可分享给你的好朋友使用
搭建视频:
哔哩哔哩:https://www.bilibili.com/video/BV11MVszcE7Q
YouTube:https://youtu.be/pR_vbNJfEhs
Memos 是什么?
这是一个开源的碎片化知识卡片管理系统,支持私有部署,可以本地存储数据,UI简洁!🐳 一条 Docker 命令搞定部署!
能干嘛?
①耍酷:让你的朋友下载memos一起用
②替代:微信传输助手
③💡 记脑洞 / 灵感火花
④📒 打造自己的卡片笔记系统
官方 Demo:https://demo.usememos.com/
GitHub:https://github.com/usememos/memos
准备工作(参考这篇🌐搭建网站——前置条件-JIN的博客)
步骤 | 个人建议 |
---|---|
①拥有1台服务器 | 购买一台服务器vps 优惠码 jinrc |
②拥有一个域名 | 购买自己喜欢的域名 优惠码 jinrc 后1美元1年 |
③下载Moabxterm | 点击下载mobaxterm |
④开始连接 | 通过moabxterm的SSH连接服务器 |
第一课:更新你的 VPS 系统(正式开始之前,先来一次保养)
你的 VPS 就像一辆刚开来的二手车——跑是能跑,但谁知道有没有什么陈年旧货或补丁没打?
所以第一步我们要给系统 检查一下更新,顺手再装几个常用的工具。只要做一次,不会很复杂。
1.1 执行命令(任选其一)
方法一:推荐组合(更新系统 + 安装常用工具)
apt update
apt install wget curl sudo vim git -y
方法二:直接升级整个系统(暴力全更)
sudo apt update && sudo apt upgrade -y
1.2 拆词解释(小白速通、老鸟可跳)
1.2.1 第一句拆解
1.2.1.1 什么是 apt
?
apt
是 Linux 系统用来安装、管理软件的命令行工具- 全名是 Advanced Packaging Tool(高级打包工具)
你可以把它当成:
Linux 里的“命令行 App Store”
我们用它来:
操作 | 意思 |
---|---|
apt update |
更新一下“商店里的目录” |
apt install |
安装软件 |
apt upgrade |
把你已经装的软件统统更新一遍 |
1.2.1.2 那 apt update
干了啥?
apt update
就像打开 App Store 然后手动下拉刷新一样。它:
- 不会装东西
- 不会更新系统
- 只是去**“拉一份最新版目录”**
所以:
apt update
的意思就是:“我看看现在仓库里都有哪些新版本软件,先做个准备。”
1.2.2 第二句拆解
方法二的 apt install wget curl sudo vim git -y
是在干嘛?
wget curl sudo vim git
是5个常用工具,后续教程里会经常用到
install字面意思:安装
1.2.2.1 wget
:下载小能手
- 全称:Web Get
- 用来从网页上“抓取文件”
- 你可以理解成命令行里的浏览器 → 但它只管下,不预览
例子:
wget https://xxx.com/abc.sh
就等于用浏览器点了一下“下载”按钮。
1.2.2.2 curl
:网络万能胶
- 全称:Client URL
- 比
wget
更强大,可下载、上传、发接口请求…… - 是很多脚本里的必备工具(你看到一堆
curl | bash
,就是它)
curl
更适合开发者调接口,wget
更适合普通下载。
1.2.2.3 sudo
:授权大法
- 全称:Superuser Do
- 让你“以管理员身份”执行操作
比如:
sudo apt install docker
意思是:“我知道这事需要管理员权限,来,让我以超级用户身份执行。”
没有 sudo
,很多命令都权限不够。
1.2.2.4 vim
:终端里的记事本
- 是一个文本编辑器
- 可以用来写配置文件、写脚本、改文档
虽然操作有点反人类,但学一点点就够了:
→ 输入 vim xxx.txt
就能编辑文件。
1.2.2.5 git
:版本管理工具
- 用来管理代码版本,也能 clone 代码仓库
- 我们等下部署 Memos,可能就会用它下载 GitHub 上的项目文件
git
之于程序员,就像 Excel 之于会计。
1.2.2.6 -y
是啥?
- 意思是 “yes to all”
- 安装过程中遇到“你确定要继续吗?(Y/n)” → 自动回答:是!继续!别问了!
1.2.3 第三句拆解
sudo apt update && sudo apt upgrade -y
你可以理解成:
sudo apt update
:去看看仓库有什么新版本&&
:并且的意思,其他各种语言基本都是这个符号。效果:如果上一步没出错,继续执行下一步apt upgrade -y
:就把我系统里所有老旧的软件都更新一下
1.2.4 俩种方式对比
你的目标 | 推荐命令 |
---|---|
装几个常用工具就好 | apt update && apt install wget curl sudo vim git -y |
顺手把系统也一起升级 | sudo apt update && sudo apt upgrade -y |
你是 root,不用 sudo | 可以去掉 sudo ,写法更简单 |
🎯 建议第一次玩 VPS 的同学选 方法一:能装工具,也不太容易出错。
第二节课(1/3):安装 Docker & Docker Compose
这一节我们来解决最关键的一件事:装上 Docker!
2.1、执行命令(非大陆 VPS)
如果你用的是非大陆 VPS(比如 Racknerd纽约,腾讯云香港 等),下面这几条命令直接复制运行就行:
# Docker 一键安装
curl -fsSL https://get.docker.com | bash
# Docker Compose 安装
sudo curl -L "https://github.com/docker/compose/releases/download/v2.36.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 设置 Docker 开机自启
sudo systemctl enable docker
2.2、拆词解释(小白速通、老鸟可跳)
我们还是来“逐词拆解”,看看这些命令到底做了啥!
2.2.0 Docker 是什么?
一句话解释:
Docker 就是一种“打包好了一切的万能软件盒子”。
你可以把 Docker 想象成是一个“快餐打包盒”,把软件程序、它需要的环境(比如系统依赖、库、配置等)全都打包在一起,放进一个小盒子里。这种小盒子我们叫做 容器(Container)。
这个容器你拿到哪台机器上运行都行 —— 不怕“依赖装不上”,也不怕“系统版本不对”。
2.2.1.1 举个例子:
比如你想在 Ubuntu 服务器上运行一个网站,它需要:
- Python 3.11
- 某个版本的 Flask 框架
- 某些 Linux 系统依赖包
- 一个配置好的 nginx 网页服务器
用传统方式,你要手动安装、调试这些东西,很容易出错、版本不兼容,搞起来非常麻烦。
但如果别人把整个网站 + 所有环境都“打包”成了一个 Docker 容器,你只要一条命令就能跑起来:
docker run example/website
就像点了一份外卖,热好了就能吃,完全不用自己炒菜!
2.2.1.2 Docker 在 Linux(比如 Ubuntu)里到底干了什么?
在 Ubuntu 中,Docker 起到了两个主要作用:
- “虚拟厨房”功能:
它让每个软件都在“自己的隔离空间”运行,互不干扰,像是一个个微型系统。
—— 这样你可以在一台机器上同时运行 10 个服务,它们之间互不打架。 - “一键部署神器”:
Docker 容器是标准化的,一份镜像在任何一台装了 Docker 的机器上都能跑。
—— 极大地方便了部署和备份。
2.2.1.3 为什么大家都在用 Docker?
好处 | 解释 |
---|---|
✅ 轻量 | 跑得快,不像传统虚拟机那么重。 |
✅ 隔离性强 | 一个服务崩了,不会影响别的。 |
✅ 快速部署 | 一条命令搞定整个网站或项目。 |
✅ 开发友好 | 团队都用一样的容器,不用再“你这能跑,我这报错”。 |
总之,Docker 就是帮你“打包”和“跑程序”的神器,适合把一个服务一键部署在服务器上,尤其是 Linux 服务器如 Ubuntu。
2.2.1 第一句拆解
curl -fsSL https://get.docker.com | bash
2.2.1.1 curl 是什么?
curl
是一个用来从互联网下载内容的命令行工具。
你可以把它当成“命令行版的浏览器”:
- 输入网址,它就能下载页面
- 支持 HTTPS、FTP 等协议
- 常用于下载脚本、API 请求等
在这条命令里:
curl -fsSL https://get.docker.com | bash
它就是从 https://get.docker.com
下载一个 自动安装 Docker 的脚本,并交给 bash
执行。
2.2.1.2 -fsSL
是啥意思?
这是四个常见的 curl 参数缩写:
参数 | 意义 |
---|---|
-f |
出错时不输出错误页面(fail silently) |
-s |
安静模式,不显示进度条(silent) |
-S |
和 -s 配合,在出错时才显示错误信息 |
-L |
遇到重定向(302/301)时自动跟随(location) |
所以,这段命令的意思就是:
“从 get.docker.com
安静地下载脚本,如果遇到重定向也能顺利跳转,然后交给 bash 执行。”
2.2.1.3 bash
又是干嘛的?
这是 Linux 默认的命令解释器,常见的 shell。
你可以简单理解为“命令行的大脑”,它负责:
- 接收你的命令
- 按顺序执行脚本里的命令
- 报错 / 提示 / 输出结果
所以整个命令翻译成中文就是:
“请从 Docker 官网下载官方安装脚本,然后交给系统自动执行,给我装好 Docker。”
2.2.2 第二句拆解:
sudo curl -L "https://github.com/docker/compose/releases/download/
v2.36.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
这一大串其实就是:
- 下载 对应你系统版本 的 docker-compose 二进制文件
- 放到
/usr/local/bin/
路径下(这是默认可以执行的路径)
✅ $(uname -s)
是获取你当前系统的类型(比如 Linux)
✅ $(uname -m)
是获取你当前的 CPU 架构(比如 x86_64)
它们组合起来后,自动匹配适合你服务器的版本,不用手动挑!
2.2.2.1 sudo 是啥意思?
sudo
是 “Super User DO” 的缩写。
📢 就是“以管理员身份执行命令”的意思。
有点像 Windows 的“以管理员身份运行”。
为什么要用 sudo
?
因为 /usr/local/bin/
是系统级路径,普通用户没权限往里写文件,所以得提权。
2.2.2.2 chmod +x 又是干嘛的?
chmod
是 “change mode”,改权限的意思。
+x
是加上可执行权限。
也就是说:我们把下载下来的 docker-compose
文件设为“可以运行的程序”。
没有这一句的话,文件是死的,不能运行!
我建议你先把这些命令复制粘贴跑一遍,然后回来再细品上面的解释 😎
接下来我们将继续讲解国内 VPS 的安装方法,以及 Docker 日志和 IPv6 的可选优化。
🚀 见:第二节课(2/3),我这就发!
好嘞,我们继续——来到了:
第二节课(2/3):Docker 大陆安装 & 日志优化
如果你用的是国内 VPS(比如阿里云、腾讯云广州、华为云、轻量服务器大陆节点等),直接用国外的安装脚本可能会很慢,甚至挂掉。
所以我们推荐使用国内镜像源安装!
2.1、执行命令(大陆 VPS )
# Docker 安装(使用 DaoCloud 镜像源)
curl -sSL https://get.daocloud.io/docker | sh
# Docker Compose 安装(来自 DaoCloud)
curl -L https://get.daocloud.io/docker/compose/releases/download/
v2.23.3/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
# 添加可执行权限
chmod +x /usr/local/bin/docker-compose
# 设置 Docker 开机启动
systemctl enable docker
2.2 拆词解释(小白速通、老鸟可跳)
来,我们还是像之前一样“拆词讲解”,看看到底都做了什么:
2.2.1 第一句拆解
curl -sSL https://get.daocloud.io/docker | sh
这条和之前的非大陆版类似,只是换成了 DaoCloud 提供的大陆镜像,下载速度更快,成功率更高。
关键词 | 含义 |
---|---|
curl |
命令行下载工具 |
-sSL |
静默下载 + 跟踪重定向 |
sh |
是 shell 的另一种写法,和 bash 类似,也能执行脚本 |
你可以理解为:
请从 DaoCloud 拉取 Docker 安装脚本,然后在本机运行。”
2.2.2 第二句拆解
Docker Compose 安装(大陆源)
curl -L https://get.daocloud.io/docker/compose/releases/download/
v2.23.3/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
和非大陆那一条一模一样,就是把 GitHub 地址换成了内陆的 DaoCloud 镜像,速度大幅提升。
注意:v2.23.3
是截至写稿时比较新的版本(你也可以自己上 GitHub 查看最新版本)。
执行完这条命令后,记得给它加运行权限:
chmod +x /usr/local/bin/docker-compose
如果你是新手,并不确定自己是不是“大陆 VPS”,可以直接复制这组命令来执行
只有在这组命令无法访问时,才考虑用国外那组。
第二节课(2.5/3):补充:配置 Docker 日志 & IPv6(进阶优化,可跳过)
为什么要改日志配置?
Docker 默认会不停记录日志,久而久之可能导致磁盘被日志填爆……
所以我们加一段配置,让日志保持在一个“安全的限度”内。
2.1 执行命令:
cat > /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF
再执行:
sudo systemctl restart docker
2.2 拆句解释
配置项 | 作用 |
---|---|
"log-driver": "json-file" |
日志驱动,记录为 JSON 格式 |
"max-size": "20m" |
每个日志文件最多 20MB |
"max-file": "3" |
最多保留 3 个轮转日志文件 |
"ipv6": true |
启用 IPv6 |
"fixed-cidr-v6" |
指定一个 IPv6 地址段 |
"experimental": true |
开启 Docker 实验特性(比如后续某些 beta 功能) |
"ip6tables": true |
支持 IPv6 的防火墙规则 |
这样配置完之后:
- 你的日志就不会无脑暴涨
- 你的容器也支持 IPv6(以后玩点新花样也方便)
第二节课(3/3):验证 Docker 安装成功 & 基础命令扫盲
Docker 装好了,那怎么确定它真的“装成功了”?
别急,我们一步步来。
2.1、执行命令(1)
检查 Docker 安装是否成功
docker version
2.2、拆词解释(1)(小白速通、老鸟可跳)
我们先来看看这个命令在说啥:
单词 | 释义 |
---|---|
docker |
是我们刚安装的软件名,全称是Docker Engine,容器引擎 |
version |
英文就是“版本”的意思(是不是很熟) |
所以:docker version
这句的意思是:
💬 “嘿 docker,告诉我你自己是什么版本的。”
如果你看到类似下面这样的输出:
Client: Docker Engine - Community
Version: 24.0.7
...
Server: Docker Engine - Community
Version: 24.0.7
...
🎉 恭喜你,Docker 装好了!
2.3、执行命令(2)
检查 Docker Compose 是否安装成功
docker-compose version
或者(如果你使用的是新版 v2):
docker compose version
注意看,docker-compose
(带中划线)和 docker compose
(空格)都有人用,新版推荐用空格版,以后也会逐步统一
2.4、拆词解释(2)(小白速通、老鸟可跳)
单词 | 释义 |
---|---|
compose |
动词“组成、编排”的意思 |
docker compose |
就是“把多个 Docker 容器编排起来运行”的工具 |
也就是说,Docker 是单个容器的管理工具,Docker Compose 是“多个容器的指挥家”。
你可以把它理解为:
Docker 是乐手,Compose 是指挥。
输出长这样:
Docker Compose version v2.23.3
🆗,大功告成!
总结
步骤 | 内容 |
---|---|
1️⃣ | 用 docker version 查看 Docker 是否装好 |
2️⃣ | 用 docker compose version 检查 Compose 是否 OK |
3️⃣ | 用 docker run hello-world 测试能不能拉镜像跑容器 |
4️⃣ | 至此,准备工作完毕 ✅,接下来可以部署我们的小记事本 Memos 啦! |
下一节课:正式启动我们的在线笔记 Memos!
我们将会:
📂 拉镜像
🛠 配置文件夹
🚀 一条命令启动 Memos!
第三节课:启动 Memos —— 打造自己的在线笔记本
我们已经完成了 Docker 的安装和基本验证,现在到了实际部署 Memos 的时候了!按照下面的步骤来搭建你的私人笔记系统吧!
3.1、执行命令(1)
首先,我们需要为 Memos 创建一个专门的文件夹来存储数据。
sudo -i # 切换到 root 用户(重要!)
mkdir -p /root/data/memos # 创建存储 Memos 数据的目录
cd /root/data/memos # 进入这个目录
3.2、拆词解释(1)(小白速通、老鸟可跳)
单词 | 释义 |
---|---|
mkdir |
是 “make directory” 的缩写,用来创建新目录。 |
-p |
如果目录的上级目录不存在,就会自动创建。 |
cd |
“change directory”,用来切换到指定目录。 |
所以这几行命令的意思是:
- 切换到 root 用户,确保你有足够权限操作。
- 创建一个存放 Memos 数据的文件夹。
- 进入刚创建的文件夹,为接下来的操作做准备。
3.3、执行命令(2)
或者选择执行命令(3)
命令(2)和(3):一键 Docker 命令 vs Docker Compose 配置
我们有两种安装方式,"一键 Docke"和 "Docker Compose 配置",你可以任选其一。
我们先从 一键安装命令 开始。
一键 Docker 命令:
docker run -d --name memos -p 5230:5230 -v /root/data/memos:/var/opt/memos neosmemo/memos:latest
3.4、拆词解释(2)(小白速通、老鸟可跳)
单词 | 释义 |
---|---|
docker |
运行 Docker 的命令行工具 |
run |
运行容器 |
-d |
表示“以后台模式运行容器”,也就是不阻塞当前终端 |
--name memos |
给这个容器起一个名字,方便管理 |
-p 5230:5230 |
映射宿主机的 5230 端口到容器的 5230 端口 |
-v /root/data/memos:/var/opt/memos |
将宿主机的 /root/data/memos 目录挂载到容器的 /var/opt/memos ,这样 Memos 数据就会保存在宿主机上 |
neosmemo/memos:latest |
这是 Docker Hub 上的镜像名,:latest 是表示使用最新版本 |
总结来说,这条命令会启动一个 Memos 容器,容器会监听 5230 端口,数据存储在 /root/data/memos
文件夹中。
3.4、执行命令(3)
命令(2)执行过就不用了,(2)和(3)任选一个就行
Docker Compose 配置:
如果你更喜欢使用 Docker Compose,我们可以创建一个 docker-compose.yml
配置文件来简化操作。
- 首先,我们来创建并编辑配置文件:
nano docker-compose.yml
- 然后,在文件里输入以下内容:
version: "3"
services:
memos:
image: neosmemo/memos:latest
container_name: memos
ports:
- "5230:5230"
volumes:
- ./data:/var/opt/memos
restart: always
- 同时按 Ctrl+X :保存并退出编辑
有提示点击Y,继续点回车就行
3.5、拆词解释(3)(小白速通、老鸟可跳)
单词 | 释义 |
---|---|
version |
这是配置文件的版本号,"3" 表示使用最新的版本 |
services |
定义你要运行的服务 |
memos |
这是服务的名字,你可以任意命名 |
image |
指定要使用的镜像 |
container_name |
设置容器的名字 |
ports |
映射端口,左边是宿主机端口,右边是容器内的端口 |
volumes |
指定数据挂载目录,将宿主机的目录挂载到容器的目录 |
restart: always |
设置容器为自动重启,避免容器意外停止 |
3.6、执行命令(4)
启动 Memos 容器
现在,无论你是选择 一键 Docker 命令(2) 还是 Docker Compose 配置(3),我们都可以启动容器了。
如果你选择了 一键Docker 命令(2),直接运行:
docker run -d --name memos -p 5230:5230 -v /root/data/memos:/var/opt/memos neosmemo/memos:latest
如果你选择了 Docker Compose 配置文件(3),运行:
docker-compose up -d
3.7、拆词解释(4)(小白速通、老鸟可跳)
单词 | 释义 |
---|---|
docker-compose up |
用来启动 Docker Compose 配置的服务 |
-d |
以后台模式运行,不阻塞终端 |
3.8、执行步骤(5)
成功启动后,你可以通过访问 http://你的服务器IP:5230
来确认 Memos 是否正常启动。
比如,如果你的服务器 IP 是 123.456.789.0
,那么你就可以通过浏览器访问:
http://123.456.789.0:5230
3.9、拆词解释(5)(小白速通、老鸟可跳)
单词 | 释义 |
---|---|
http:// |
网址的协议,指明了浏览器使用的通讯协议 |
你的服务器IP |
就是你 VPS 的 IP 地址 |
:5230 |
这是我们映射的端口号,按照步骤来的话是 5230 |
3.10、本节总结
步骤 | 内容 |
---|---|
1️⃣ | 创建存储目录并进入 |
2️⃣ | 选择 Docker 安装方式(一键命令或 Docker Compose) |
3️⃣ | 启动 Memos 容器 |
4️⃣ | 访问服务器 IP + 端口,验证启动成功 |
到这里,我们已经成功启动了 Memos!你现在可以访问 http://你的服务器IP:5230
,享受属于自己的在线笔记本啦!
下一节课我们会教你如何设置 域名绑定 和 反向代理,让你的 Memos 看起来更加专业!
第四节课:绑定域名 & 设置反向代理
你是不是觉得每次访问 Memos 都要输入 IP 地址和端口号,感觉有点不太方便呢?没关系!今天我们就来教你如何 绑定域名 和 配置反向代理,让你的网站看起来更加专业。
✅4.1、配置域名
假设你已经购买了一个域名,比如:xiaoming.com
,我们要将这个域名指向你 VPS 的 IP 地址。操作步骤如下:
- 登录你的 域名注册商后台,找到 DNS 配置 页面。
- 创建一个新的 A 记录,将它指向你的 VPS IP 地址。
例如:
类型 | 主机名 | 值 | TTL |
---|---|---|---|
A | @ | 123.456.789.0 | 默认 TTL |
这里,123.456.789.0
是你 VPS 的 IP 地址,@
代表根域名(也就是 xiaoming.com
)。
🧐解释时间!
单词 | 释义 |
---|---|
A 记录 |
是 DNS(域名解析系统)中一种记录类型,它将域名解析为一个 IP 地址 |
TTL |
"Time To Live",表示 DNS 记录的缓存时间,默认即可 |
@ |
在域名解析中,@ 表示根域名,即没有子域名部分 |
这样配置完成后,等 DNS 记录生效,你就可以通过 xiaoming.com
来访问你搭建的 Memos 了!
✅ 4.2、配置反向代理 —— Nginx Proxy Manager(推荐)
如果你不想每次都输入 http://ip:5230
,你可以通过 反向代理 将域名直接指向 Memos。这里,我们推荐使用 Nginx Proxy Manager(图形化界面),它使用起来更加简单。
步骤 1:安装 Nginx Proxy Manager
- 登录你的 VPS,执行以下命令来安装 Docker Compose 和 Nginx Proxy Manager:
docker pull jc21/nginx-proxy-manager:latest
- 创建一个新的
docker-compose.yml
配置文件:
nano docker-compose.yml
- 在配置文件中输入以下内容:
version: "3"
services:
app:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
environment:
- DB_SQLITE_FILE=/data/database.sqlite
volumes:
- ./data:/data
ports:
- "80:80"
- "443:443"
restart: always
- 保存并退出,接着启动容器:
docker-compose up -d
步骤 2:访问 Nginx Proxy Manager
启动成功后,你可以通过 http://你的服务器IP:81
来访问 Nginx Proxy Manager 的管理界面。
默认的登录信息是:
- 用户名:
admin@example.com
- 密码:
changeme
首次登录后,记得修改默认的密码,确保安全。
✅ 4.3、在 Nginx Proxy Manager 中添加代理记录
- 登录 Nginx Proxy Manager 后,在左侧菜单中选择 Proxy Hosts,点击右上角的 Add Proxy Host。
- 在弹出的窗口中,填写以下内容:
- Domain Names:填写你购买的域名,比如
xiaoming.com
。 - Scheme:选择
http
(因为 Memos 运行在 HTTP 协议下)。 - Forward Hostname / IP:填写你 VPS 的 IP 地址,或者容器内的 IP 地址,通常就是
127.0.0.1
。 - Forward Port:填写你映射的端口号
5230
。 - Block Common Exploits:勾选,增强安全性。
- 点击 Save,保存配置。
此时,你的域名 xiaoming.com
就成功指向了 Memos!
✅ 4.4、配置 HTTPS(推荐)
为了让你的网站更安全,我们还可以为 Memos 配置 HTTPS(SSL/TLS 加密)。Nginx Proxy Manager 支持 Let's Encrypt,它可以自动为你申请并安装免费的 SSL 证书。
- 在 Proxy Hosts 中,编辑你刚才添加的代理记录。
- 在 SSL 标签页中,勾选 Block HTTP 和 Force SSL。
- 勾选 SSL Certificate,然后点击 Request a new SSL Certificate。
- 填写你的邮箱,勾选 Agree to the terms of service,点击 Save。
这样,Nginx Proxy Manager 会自动为你申请并安装 SSL 证书
并且你的网站访问就变成了 https://xiaoming.com
,让你的网站更加安全。
本节总结
步骤 | 内容 |
---|---|
1️⃣ | 配置域名,将域名指向你的 VPS IP 地址 |
2️⃣ | 使用 Nginx Proxy Manager 进行反向代理配置 |
3️⃣ | 配置 HTTPS,确保你的网站安全 |
到这里,我们已经完成了域名绑定和反向代理的配置!你现在可以通过 https://xiaoming.com
来访问你自己的 Memos 笔记本啦!
下一节课我们将讲解如何进行 Memos 的更新 和 清理旧镜像,敬请期待!
好的,接下来我们进入 第五节课,这节课我们将讲解 如何更新 Memos 以及 清理旧的 Docker 镜像。这也是日常维护的一部分,确保你的系统运行顺畅并且占用的空间不会越来越大。
第五节课:更新 Memos & 清理 Docker 镜像
✅ 5.1、更新 Memos
随着时间的推移,Memos 会发布新的版本,修复漏洞、增加功能或提升性能。所以,定期更新 Memos 是非常重要的。
更新 Memos 的步骤:
- 停止当前运行的 Memos 容器:
docker-compose down
解释时间!这条命令告诉 Docker 停止并删除当前的 Memos 容器。down
就是指“让它倒下”——停止并清理。
- 拉取最新的镜像:
docker-compose pull
这条命令会从 Docker Hub 上下载最新的 Memos 镜像。这样,你就获得了最新版本的 Memos。
- 重新启动容器:
docker-compose up -d
解释时间!up -d
是让 Docker 启动新的容器,-d
参数表示让容器在后台运行。这样,你就可以在后台安静地运行 Memos,而不影响你操作其他的任务。
完整命令流程
- 停止并删除容器:
docker-compose down
- 拉取最新镜像:
docker-compose pull
- 启动 Memos:
docker-compose up -d
✅ 5.2、清理 Docker 镜像
随着你不断更新容器,Docker 会下载一些镜像到本地。虽然这些镜像在新容器启动时是必需的,但随着时间的推移,这些旧的、不再使用的镜像会占用大量磁盘空间。
幸运的是,Docker 提供了一些命令来帮助你清理这些镜像,释放磁盘空间。
步骤:
- 删除所有未使用的镜像:
docker image prune
这条命令会删除本地不再使用的 Docker 镜像,帮助你释放磁盘空间。注意,这里会删除所有 未被容器使用的镜像,所以要确保这些镜像不再需要。
- 删除所有未使用的容器、网络和挂载卷(更彻底的清理):
docker system prune -a
解释时间!system prune -a
会删除 所有未使用的容器、未使用的镜像、网络、挂载卷 等。如果你希望彻底清理,不再用的容器和镜像都能被删除,释放更多空间。
注意:这条命令会删除所有不再使用的镜像和容器,确保没有正在运行的重要服务或容器被误删除。
✅ 5.3、定期清理建议
定期清理 Docker 镜像是个好习惯,特别是在你不断更新和添加新项目时。为了确保你的系统始终保持高效运行,建议:
- 每次更新 Memos 后,都执行一次
docker image prune
。 - 每隔一段时间,执行一次
docker system prune -a
,彻底清理不再使用的资源。
🧳 本节总结
步骤 | 内容 |
---|---|
1️⃣ | 停止并删除当前容器:docker-compose down |
2️⃣ | 拉取最新的 Memos 镜像:docker-compose pull |
3️⃣ | 启动新的容器:docker-compose up -d |
4️⃣ | 清理未使用的 Docker 镜像:docker image prune |
5️⃣ | 更彻底清理:docker system prune -a |
至此,我们已经完成了 Memos 的 更新 和 清理 Docker 镜像 的所有步骤!你现在可以放心使用最新版本的 Memos,同时保持系统清洁,节省磁盘空间。
在下节课中,我们将介绍 如何卸载 Memos,以及如何 清理 Memos 的数据,如果你有任何问题,随时告诉我!
好的,我们接着进入 第六节课,这一节我们将学习 如何卸载 Memos 和 清理 Memos 的数据。这是当你想要彻底移除 Memos 或者进行系统重置时的必备步骤。
第六节课:卸载 Memos & 清理数据
在这一节课里,我们将分为两部分,首先是如何卸载 Memos,再就是如何彻底清理 Memos 的数据。这样如果你遇到任何问题,或者想重新安装,都能清除干净地进行操作。
✅ 6.1、卸载 Memos
如果你决定不再使用 Memos,或者想重新安装并清理旧数据,卸载 Memos 是第一步。
步骤:
- 停止 Memos 容器:
docker-compose down
这条命令和我们之前说过的作用一样,down
会停止并删除正在运行的 Memos 容器。如果你有多个服务在运行,Docker 会自动停止所有相关的容器。
- 删除 Memos 镜像:
docker rmi neosmemo/memos:latest
解释时间!rmi
是 "remove image" 的缩写,意思是删除镜像。执行这条命令后,Docker 会删除 neosmemo/memos
这个镜像,确保 Memos 的 Docker 镜像从你的系统中移除。
- 清理未使用的资源:
docker system prune -a
这条命令会删除所有不再使用的容器、镜像、网络等资源,帮助你释放更多空间。记住,它删除的是 不再使用的资源,所以不会影响正在运行的容器和镜像。
✅ 6.2、清理 Memos 的数据
卸载 Memos 后,可能仍然会留下一些数据文件,例如数据库文件和配置文件等。如果你希望 彻底清理 Memos 的数据,需要执行以下步骤。
步骤:
- 删除 Memos 数据目录:
rm -rf /root/data/memos
这条命令会删除我们之前为 Memos 创建的 /root/data/memos
数据目录。rm
是 "remove" 的缩写,-rf
表示递归并强制删除目录中的所有内容。执行此命令后,Memos 存储的所有数据都会被删除。
- (可选)清理 Docker 的挂载卷:
如果你在 Docker 中使用了挂载卷来存储 Memos 数据(比如 /root/data/memos
),在删除数据目录后,还可以清理 Docker 内部的挂载卷。
docker volume prune
volume prune
会删除所有未被容器使用的挂载卷。如果你在部署时使用了挂载卷存储数据,可以使用此命令清理挂载卷,释放更多的磁盘空间。
✅ 6.3、确认清理是否成功
为了确保所有的数据和资源都被清理干净,执行以下命令,检查系统中是否还存在 Memos 的容器、镜像或数据:
- 检查容器状态:
docker ps -a
这条命令会列出所有容器,包含停止的容器。如果没有看到 memos
相关的容器,说明已经成功删除。
- 检查镜像是否存在:
docker images
这条命令会列出系统中所有的 Docker 镜像。如果 neosmemo/memos
镜像不在列表中,说明已经被成功删除。
- 检查数据目录是否为空:
ls /root/data/memos
如果你之前已经删除了 /root/data/memos
目录,它应该显示为空或者提示目录不存在。这样,Memos 的所有数据都已经成功清理。
本节总结
步骤 | 内容 |
---|---|
1️⃣ | 停止并删除容器:docker-compose down |
2️⃣ | 删除 Memos 镜像:docker rmi neosmemo/memos:latest |
3️⃣ | 清理未使用的 Docker 资源:docker system prune -a |
4️⃣ | 删除 Memos 数据目录:rm -rf /root/data/memos |
5️⃣ | 清理 Docker 挂载卷:docker volume prune |
这样,你就可以轻松卸载 Memos,并彻底清理它的相关数据。如果你决定重新安装或重新部署,系统将是干净的,完全没有任何残留。你可以按照之前的安装步骤重新开始。
到这里,Memos 从零搭建的完整过程就讲解完了!🎉
如果你有任何疑问,欢迎评论区留言
评论区