Docker 容器化部署实践

安装 Docker 套件

群晖 DSM 7.2 提供 Container Manager(原 Docker 套件):

  1. 打开 套件中心 > 搜索 “Container Manager”
  2. 安装 Container Manager 套件
  3. 安装完成后在主菜单中找到 Container Manager 图标

提示:DSM 7.2 将 Docker 套件更名为 Container Manager,功能更强,支持 Docker Compose 项目管理。

常用容器部署

Nginx(Web 服务器)

# docker-compose.yml
services:
  nginx:
    image: nginx:alpine
    container_name: site-nginx
    ports:
      - "8080:80"
      - "8443:443"
    volumes:
      - /volume1/web/_site:/usr/share/nginx/html:ro
      - /volume1/docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    restart: unless-stopped

Syncthing(文件同步)

services:
  syncthing:
    image: syncthing/syncthing
    container_name: syncthing
    ports:
      - "8384:8384"   # Web UI
      - "22000:22000" # Sync protocol
    volumes:
      - /volume1/docker/syncthing:/var/syncthing
      - /volume1/data:/data
    restart: unless-stopped

Docker Compose 实践

群晖 Container Manager 支持 Docker Compose 项目:

  1. 在 Container Manager > 项目 > 创建
  2. 填写项目名称和 compose 文件路径
  3. 将 compose 文件放在 /volume1/docker/compose/
  4. Container Manager 会自动拉取镜像并启动

推荐的目录结构

/volume1/docker/
├── compose/
│   ├── site/
│   │   └── docker-compose.yml
│   └── syncthing/
│   │   └── docker-compose.yml
├── nginx/
│   └── nginx.conf
└── syncthing/
│   └── config/

资源限制与监控

为容器设置资源限制防止单个容器占用过多资源:

services:
  nginx:
    # ...
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 256M
        reservations:
          cpus: '0.1'
          memory: 64M

查看容器资源使用情况:

  • Container Manager > 容器 > 点击具体容器 > 赈源监控
  • 也可使用 docker stats 命令查看实时数据
评论

评论功能基于 Giscus(GitHub Discussions)——在 repo 启用 Discussions 后,到 giscus.app 获取仓库 ID 填入 src/_data/site.json 即可启用。