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
阅读 —
·
全站 —