一键搞定版

 docker run -d \        后台运行 
  --name memos \      容器的名称
  --restart unless-stopped \      开机 / 崩溃自动重启
  -p 5230:5230 \       主机5230端口 :映射到容器中5230端口
  -v ~/.memos/:/var/opt/memos \         数据持久化 主机~/.memos目录 : 映射到容器/var/opt/memos
  neosmemo/memos:stable         镜像名称

Docker Compose 版

# 创建目录
mkdir -p ~/docker/memos && cd ~/docker/memos

# 新建 docker-compose.yml
vim docker-compose.yml

docker-compose.yml 文件中的内容:

version: "3.8"  # 新版本这个字段已废弃,可以不加了

services:
  memos:    # memos服务
    image: neosmemo/memos:stable  # 镜像
    container_name: memos  # 容器名称
    restart: unless-stopped    # 挂掉了自动重启
    ports:    # 端口映射
      - "5230:5230"    # 本机端口:容器端口
    volumes:   # 数据卷
      - ./data:/var/opt/memos   # 数据持久化到当前目录 ./data       本机目录:容器目录
    environment:    # 环境变量
      - TZ=Asia/Shanghai   # 时区
# 后台启动(首次自动拉镜像)
docker compose up -d

# 查看运行状态
docker compose ps

# 查看日志(排错)
docker compose logs -f

访问

本地:http://localhost:5230
服务器:http://服务器IP:5230

首次访问会要求创建管理员账号(第一个用户就是管理员)

docker compose 常用管理命令

# 停止
docker compose stop

# 启动
docker compose start

# 重启
docker compose restart

# 停止并删除容器(数据卷 ./data 不会删)
docker compose down

# 更新镜像(重新拉最新 stable)
docker compose pull && docker compose up -d

数据备份与迁移

常见问题

关于restart: unless-stopped配置项

Image

docker compose up -d 和 docker compose start 区别?

docker compose start:只启动已存在的容器(不重建、不更新、不读新配置)

docker compose up -d:创建 / 重建 / 更新容器 + 启动(会读最新配置)

Image

Image

日常重启(不改配置)docker compose restart

改了配置文件(比如端口、目录)docker compose up -d

更新 Memos 最新版 docker compose pull; docker compose up -d

start = 只启动旧容器
up -d = 按最新配置重新创建并启动

注意:
docker compose up -d 不会自动下载新版镜像!
它只会用【本地已经有的镜像】来启动容器。

docker compose up -d 做的事情:

docker compose pull 做什么?
专门去 Docker 仓库下载最新版镜像到本地。

所以更新镜像,需要:

docker compose pull      # 下载最新镜像到本地
docker compose up -d     # 用新镜像重建容器     docker compose pull && docker compose up -d

docker compose up -d,docker compose start 是怎么知道处理的是哪个 docker-compose.yml 文件的?

它们默认只找【当前目录】下的 docker-compose.yml 文件。

没找到 → 直接报错:no configuration file provided

# 指定路径/文件
docker compose -f /path/to/docker-compose.yml up -d

以后你装很多服务(比如 Nextcloud、Bitwarden),每个都放单独文件夹:

cd ~/docker/memos && docker compose up -d → 管 Memos
cd ~/docker/nextcloud && docker compose up -d → 管 Nextcloud
❤️ 转载文章请注明出处,谢谢!❤️