Docker Compose 安装与常用命令

Docker Compose 安装与常用命令

docker-compose 用于通过 YAML 文件定义和运行多容器应用。下面介绍安装方式与常用命令。

1 安装

方式一:通过 pip

pip install docker-compose

方式二:下载官方二进制(Linux x86_64)

下载页面:https://github.com/docker/compose/releases

# 自动获取系统与架构 curl -L "https://github.com/docker/compose/releases/download/1.24.0-rc1/docker-compose-`uname -s`-`uname -m`" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose # 或使用 wget(跳过证书校验) wget https://github.com/docker/compose/releases/download/1.24.0-rc1/docker-compose-Linux-x86_64 --no-check-certificate mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose

版本号请从 releases 页面替换为最新版。

2 将当前用户加入 docker 组

避免每次命令都加 sudo:

sudo service docker start # 或 sudo systemctl start docker sudo systemctl enable docker sudo groupadd docker sudo usermod -aG docker $USER # 重新登录(或执行 newgrp docker)使生效

3 常用命令

命令 作用
docker-compose up -d 后台启动所有服务
docker-compose stop 停止所有服务(保留容器)
docker-compose rm -f 移除应用容器
docker-compose stop app_service 停止指定服务
docker-compose rm -v 移除容器及 volumes
docker-compose down --volumes 停止容器并连同 volumes 一起删除
# 1 后台启动 docker-compose -f docker-compose.yaml up -d # 2 停止所有容器 docker-compose stop # 3 移除应用容器 docker-compose stop && docker-compose rm -f # 4 停止指定服务 docker-compose stop app_service # 5 连同数据卷一起删除 docker-compose rm -v # 全量重建(删除容器与数据卷后重新拉起) docker-compose stop && docker-compose rm -fv && docker-compose up -d # 6 停止容器并删除(含 volumes) docker-compose down --volumes

4 常见问题

4.1 Couldn’t connect to Docker daemon at http+docker://localhost

现象:docker-compose up -d 报 Couldn't connect to the Docker daemon,但 docker 实际在运行。

解决:手动指定 Docker socket 地址:

docker-compose -H /var/run/docker.sock -f docker-compose.yaml up -d

如果提示 Bind address needs a port,则说明当前 compose 版本无法直接识别 socket 路径,可改用 DOCKER_HOST 环境变量:

export DOCKER_HOST=unix:///var/run/docker.sock docker-compose -f docker-compose.yaml up -d

问题2 二进制文件无法执行

现象:Cannot open self /usr/local/bin/docker-compose or archive ...pkg

原因:下载的二进制文件缺损。

解决:重新下载,并校验 sha1/md5 是否与官方发布一致。

问题 3 ERROR: network xxx_default has active endpoints

现象:删除 compose 创建的网络时报该网络仍有 active 容器。

解决:先把存在该网络中的容器断开:

docker network disconnect -f wordpress_default wordpress_db_1
阅读 — · 全站 —
🎸 我的歌单 0 首