20251222 群晖系统上安装Vanblog与Mongo

写于 2025-12-22

20251222 群晖系统上安装Vanblog与Mongo

步骤 1:从阿里云转移到群晖

  • 从阿里云系统中转移出mongo数据库的全部数据,保存至群晖的/volume2/docker/vanblog/data目录中

  • 阿里云/usr/local/vanblog/data,tar打包转移

  • 从阿里云系统中,转移出mongo和vanblog的docker镜像

``` # 阿里云中直接导出 docker save mereith/van-blog:latest > van-blog.tar docker save mongo:4.4.16 > mongo.tar

# 文件超出500M的,拆分 split -b 500M van-blog.tar van-blog

# 然后导出到群晖系统中,合并 cat van-blog* > van-blog.tar

# 在群晖系统中导入镜像 docker load < /path/to/target/directory/van-blog.tar docker load < /path/to/target/directory/mongo.tar

# 验证镜像是否导入成功 docker images ```

步骤 2:编写 docker-compose.yml

在群晖 /volume2/docker/vanblog/ 目录下新建 docker-compose.yml 文件(可通过群晖「文本编辑器」或 SSH 新建),内容如下:

version: '3'
services:
  # MongoDB 服务(和阿里云版本保持一致 4.4.16)
  mongo:
    image: mongo:4.4.16
    container_name: vanblog_mongo
    restart: always
    volumes:
      # 挂载解压后的 mongo 数据目录到容器 /data/db(核心!)
      - ./data/mongo:/data/db
      # - ./data/mongo/configdb:/data/configdb
    ports:
      - "27017:27017"
    # environment:
      # 若阿里云的 mongo 有密码,补充这里(无密码则注释)
      # MONGO_INITDB_ROOT_USERNAME: 你的用户名
      # MONGO_INITDB_ROOT_PASSWORD: ***
    networks:
      - vanblog-network

  # vanblog 服务
  vanblog:
    image: mereith/van-blog:latest
    container_name: vanblog
    restart: always
    volumes:
      # 挂载静态文件目录(图片/主题等)
      - ./data/static:/app/static
    ports:
      # 映射端口
      - "8081:80"
      - "8043:443"
    environment:
      # 关键:连接群晖的 mongo 容器(容器名 vanblog_mongo)
      MONGO_URL: mongodb://mongo:27017/vanblog
      # 其他环境变量和阿里云保持一致(若有自定义,补充)
    depends_on:
      - mongo
    networks:
      - vanblog-network

networks:
  vanblog-network:
    driver: bridge

步骤 3:启动容器

群晖 SSH 终端执行:

# 进入 docker-compose.yml 所在目录
cd /volume2/docker/vanblog

# 启动容器(后台运行)
docker-compose up -d

步骤 4:验证迁移结果

  1. 查看容器状态:docker-compose ps,确保 vanblog 和 vanblog_mongo 都是 Up 状态;

  2. 访问 vanblog:浏览器打开 http://群晖IP:8081 或 https://群晖IP:8043,验证文章、图片、配置是否和阿里云一致;

  3. 若启动失败,查看日志:

```bash # 查看 mongo 日志 docker logs vanblog_mongo

# 查看 vanblog 日志 docker logs vanblog ```

  • 最终8081正常访问,8043访问无效,应该是https服务有误