Docker Compose 简单使用手册

📖介绍

Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。
它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

优点非常明显,通过易读的 YAML 格式文件。实现复杂容器部署,快速修改配置

🔩安装

群晖NAS系统内置就有 docker-compose ,为其工程师点赞

二进制包方式

sudo curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

# 国内用户可以使用以下方式加快下载
sudo curl -L https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

Docker run 方式

适合 unRAID 这类精简 Linux 系统,使用 alias 命令别名方式实现免安装使用

echo alias docker-compose="'"'docker run --rm --name docker-compose \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v "$PWD:$PWD" \
    -w="$PWD" \
    docker/compose'"'" >>  ~/.bashrc

source ~/.bashrc

推荐一同部署 ctop 这个可视化的容器管理程序

echo alias ctop="'"'docker run --rm --name ctop -ti \
    -v /var/run/docker.sock:/var/run/docker.sock \
    quay.io/vektorlab/ctop'"'" >>  ~/.bashrc

📝Compose 模板文件

默认的模板文件名称为 docker-compose.yml,格式为 YAML 格式。

---
version: "2.1"
services:
  xxx:
    image: uuuu/xxx
    container_name: xxx
    environment:
#      - ALL_PROXY=socks5://192.168.168.4:7890
      - PUID=1000
      - PGID=100
      - TZ=Asia/Shanghai
#    tty: true
#    privileged: true
    volumes:
      - ./config:/config
    network_mode: bridge #host
#    dns:
#      - 8.8.8.8
#    ports:
#      - 8096:8096
#    devices:
#      - /dev/dri:/dev/dri #分配显卡给容器
#    tmpfs:
#      - /tmp #共享/tmp目录
#    command: sh -c "cd /config && chmod a+x npc && ./npc"
  mem_limit: 512m #限制容器可用内存
  cpus: 0.5 #限制容器可用 CPU占比
  restart: unless-stopped

📌常用命令

yaml 文件同目录内输入命令

  • 启动容器:docker-compose up -d
  • 停止容器:docker-compose down
  • 查看进程:docker-compose top
  • 重启容器:docker-compose restart
  • 查看日志:docker-compose logs
  • 查看端口:docker-compose port
  • 拉取镜像:docker-compose pull
  • 进入容器内的终端:docker-compose exec {container-name} sh

📍参考