前言

之前已经写过一篇博客,【在玩客云上用Docker部署memos】。

但几个月过去,memos进行了大量的更新,托管的docker镜像也从ghcr.io转移到了docker hub,而且经过这段时间的安利,有好几个朋友有兴趣玩memos,想自己部署一个。

所以重新记录一下部署memos的过程,这次不针对玩客云,所有硬件通用。

当然,如果你有基础的英文阅读能力,也有基础的linux操作经验,可以直接看【memos官网的操作手册


准备

  • 一个装了linux的vps,或者是电脑、电视盒子甚至其它电子垃圾
  • linux发行版最好选debian,因为我喜欢用debian,😄
  • 因为要拖docker镜像,国内的网络环境你懂的,注意配置好docker镜像加速

部署

第一步:安装docker环境

ssh连上debian安装docker。个人建议使用docker-compose方式部署,因为这种方式会有一个配置文件,方便编辑和管理。

sudo apt install docker.io docker-compose

第二步:配置docker镜像加速器(没需求可以跳过)

国内特殊的网络环境,如果不配置docker镜像加速,在拉取镜像的时候那叫一个折磨人。目前的docker国内镜像源,我测过很多,不管是网易云、百度云、上海交大,在拉取memos镜像时都没有效果,最后还是得用阿里云的镜像加速服务。

阿里云的docker镜像加速没有公共的地址,而是针对不同的用户有唯一的地址,所以需要登录自己的阿里云查看。

获取到自己的阿里云镜像加速其地址以后,进入/etc/docker/目录看下是不是有daemon.json文件,没有的话新建一个

sudo touch /etc/docker/daemon.json

然后用nano或者vim编辑daemon.json

sudo nano daemon.json

往文档中添加如下内容

{
    "registry-mirrors": ["https://<你的加速器地址>.mirror.aliyuncs.com"]
}

最后重启docker即可

sudo systemctl restart docker.service

重启以后,可以执行以下命令确认变更是否生效

sudo docker info

显示结果如图

第三步:编辑memos配置文件

通过docker-compose方式部署memos,需要提前准备一个docker-compose.yml的配置文件,里面设定安装目录、重启方式、端口号、运行用户等几个细节。

首先在debian系统中找一个自己喜欢的目录,新建文件

touch docker-compose.yml

然后用nano或者vim编辑

nano docker-compose.yml 

最后往文件中粘贴以下内容

version: "3.0"
services:
  memos:
    image: neosmemo/memos:stable
    container_name: memos
    user: 1000:1000
    restart: always
    volumes:
      - ~/.memos/:/var/opt/memos
    ports:
      - 5230:5230

配置文件的简单释疑:

  • image: neosmemo/memos:stable,指定镜像地址和版本,如果你对memos的版本没有特别指定,用stable即可,拉取最新的稳定版本。如果你的硬件特殊,比如老旧的arm32/v7,那这里得指定0.15.0,因为之后的版本官方已经不再支持arm32/v7的cpu架构。
  • container_name: memos,容器名称,默认是memos,可以根据自己喜好随便改。
  • user: 1000:1000,这个配置是指定运行memos服务的用户,如果你喜欢直接用root用户一把梭,或者不明白linux的用户权限、组权限,这个配置可以删掉。
  • restart: always,设定容器的重启策略,比如系统重启以后,容器是否自动重启。
  • volumes:,指定数据文件的存放位置,默认是~/.memos/,也就是运行用户的用户目录下,可以根据自己喜好调整。冒号后面的/var/opt/memos不要动,这是docker容器内的数据目录。
  • ports:,设定服务的端口号,默认5230。如果要自定义端口,改前一个5230即可,后一个是docker容器内的端口号。

以上各个设定根据自己需求调整了以后,就可以进入最后一步部署了。

第四步:部署

在配置文件docker-compose.yml的目录下,执行命令

sudo docker-compose up -d

等命令跑完以后,memos就完成部署了。

打开电脑浏览器,地址栏输入http://host_ip:5230就可以访问自己的memos服务了。

🎉