虚拟机 + 内网穿透
准备工作
- 虚拟机:Ubuntu 22.04 LTS 系统
- SakuraFrp 工具
Docker 安装
默认是一台没有装过 Docker 的机器。如果存在旧版本的 Docker 并且想要卸载,请执行以下命令(非必要):
1 | sudo apt remove docker docker-engine docker.io containerd runc |
设置存储库
更新 apt 包索引,并安装包以允许 apt 通过 HTTPS 使用存储库:
1 | sudo apt update |
添加 Docker 的官方 GPG 密钥:
1 | sudo mkdir -p /etc/apt/keyrings |
使用以下命令设置存储库:
1 | echo \ |
安装 Docker 引擎
更新 apt 包索引。安装最新版本的 Docker Engine、containerd 和 Docker Compose:
1 | sudo apt update |
验证 Docker 运行情况
当 Active: active (running)
为 running
时,说明 Docker 运行正常:
1 | systemctl status docker.service |
当进行到这一步的时候,说明 Docker 服务已经成功安装。
Memos 服务部署
Memos 的仓库:https://github.com/usememos/memos
创建存储卷
切换到 root 用户,在根目录下创建一个目录用来存储 Memos 数据(也可以创建到用户目录里):
1 | xiaoma@xiaoma-vm:~$ sudo -i |
然后需要将创建的目录挂载到 Docker 的容器里。先查看 memos 的路径,下面启动 Memos 时需要指定此路径:
1 | root@xiaoma-vm:~/memos# pwd |
运行容器
启动 Memos 容器:
1 | root@xiaoma-vm:~/memos# docker run -d --name memos -p 5230:5230 -v /root/memos/:/var/opt/memos neosmemo/memos:latest |
这条命令的参数意思是:将容器内的 5230 端口映射到宿主机(指虚拟机)的 5230 端口上,同时将容器内 /var/opt/memos
路径下的内容挂载到宿主机(指虚拟机)的 /root/memos
路径下,路径映射的好处是防止容器被误删导致数据丢失。
查看容器运行状态:
1 | root@xiaoma-vm:~/memos# docker ps -a |
看到容器状态为 Up(红框)时,说明已成功部署好 Memos 服务。在浏览器中访问 127.0.0.1:5230
或 localhost:5230
就可以打开 Memos 的初始界面了。
体验 Memos
输入用户名和密码,创建管理员账号。进入后可以体验完整服务。可在设置中改为中文。
注:Memos 的数据存储在本地
/root/memos
路径下名为memos_prod.db
的文件(包括用户名密码等),每次升级前请做好备份。
内网穿透
由于目前我们只能通过内网(127.0.0.1:5230
、localhost:5230
或虚拟机 IP:192.168.43.190:5230
)访问该服务,如果我们没有公网 IP 又该如何实现可以 Memos 的公网访问呢?这就引出了一个技术——内网穿透。什么是内网穿透?简单的说,内网穿透就是使用一台具有公网 IP 地址的电脑(服务器)作为“中间人”来与没有公网 IP 的设备建立连接,实现数据连通。此处选择别人提供的内网穿透服务。
本方案使用 Windows 平台。
注册 SakuraFrp 账号
注册入口:https://openid.13a.com/register
用户中心
点击 Sakura Frp 跳转链接。
实名认证
根据提示进行操作。支付宝扫码支付 1 元钱,然后人脸识别验证。免费用户可创建两条隧道,创建隧道需要下载客户端。
Sakura Frp 启动器
- 下载位置如图所示:
- 安装成功后运行,需要访问密钥登录。在官网首页点击【查看访问密钥】复制。
- 点击客户端
+
创建隧道。
本地 IP 填写虚拟机的 IP 192.168.43.190。
端口填 5230。
隧道名称随便写三个字母就可以。
备注(可空)。
隧道类型为 TCP。远程端口默认 0。
选择穿透节点时,先延迟测试,选择一条延迟低的。
- 国内节点需要开启 HTTPS(如下图)。国外节点不需要但访问慢。
- 打开隧道开关,查看日志,找到公网 IP。
- 在浏览器中输入公网地址或 IP(红框内容),可以成功访问到内网的页面。
服务器
准备工作
- 一台轻量服务器。
- XShell 工具(其他能够远程 SSH 的工具也可以)。
购置服务器
登录阿里云,选择购买轻量应用服务器。地址:轻量应用服务器_web服务器_个人建站_弹性计算-阿里云 (aliyun.com)
- 实例类型:服务器示例
- 地区和可用区:亚太 → 新加坡(香港 24 元/月的已售罄)
- 镜像:系统镜像 → Ubuntu 20.04
- 套餐配置:24 元/月
- 数据盘:0GB
- 购买时长/数量:按需
配置服务器
进入所购买的服务器界面:
- 左菜单栏中选择
远程连接
。采用第 2 种方法,设置密钥,使用 XShell 连接。(XShell 用法见:Xshell 连接 VM 虚拟机)。 - 左菜单栏中选择
防火墙
,添加规则,打开 5230 端口。
在 XShell 中对服务器进行配置,与上述在虚拟机 Ubuntu 22.04 LTS 系统中的操作一致。最后在浏览器中输入 IP:5230
就可以访问 Memos 了。
1 | # 查看服务器 IP |
备份与迁移
正如前面所说:
注:Memos 的数据存储在本地
/root/memos
路径下名为memos_prod.db
的文件(包括用户名密码等),每次升级前请做好备份。
1 | sudo -i //切到管理员命令(如果已经是 # 则不需要切) |
参考
- 本文标题:使用 Docker 搭建 Memos
- 创建时间:2023-03-01 11:16:51
- 本文链接:2023/03/01/031-使用-Docker-搭建-Memos/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!