在 Ubuntu 上使用 Docker Compose 的完整指南
一 安装与准备
- 安装 Docker(如尚未安装):
- 更新索引并安装依赖:sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
- 添加 Docker 官方 GPG 密钥与仓库,然后安装:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -;sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”;sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
- 启动并设置开机自启:sudo systemctl enable --now docker
- 验证:sudo docker run --rm hello-world
- 安装 Docker Compose(二选一):
- 方式 A(推荐,二进制安装,便于获取新版本):在发布页选择版本号(示例为 v2.6.0,可按需替换),执行:sudo curl -L “https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose
- 方式 B(APT 安装,版本可能较旧):sudo apt update && sudo apt install -y docker-compose
- 验证安装:docker-compose --version(若提示命令未找到,检查 /usr/local/bin 是否在 PATH 中,或创建软链:sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose)
- 免 sudo 使用 Docker(可选):sudo usermod -aG docker $USER,随后重新登录以生效。
二 快速上手 Nginx 示例
- 准备目录与页面:
- mkdir -p ~/compose-demo/app && cd ~/compose-demo
- echo ‘<!doctype html>
Docker Compose Demo
’ > app/index.html
- 创建 docker-compose.yml:
- version: ‘3.7’
services:
web:
image: nginx:alpine
ports:
- “8000:80”
volumes:
- ./app:/usr/share/nginx/html
- 启动服务:docker-compose up -d(首次会自动拉取镜像)
- 验证与访问:
- 查看状态:docker-compose ps(应看到 0.0.0.0:8000->80/tcp 的映射)
- 访问页面:本机浏览器打开 http://localhost:8000;服务器用 http://服务器IP:8000
- 常用管理命令:
- 查看日志:docker-compose logs -f
- 进入容器:docker-compose exec web sh
- 停止/启动/重启:docker-compose stop|start|restart
- 完全清理(删除容器与网络):docker-compose down。
三 常用命令速查
- 启动/后台启动:docker-compose up / docker-compose up -d
- 查看状态与日志:docker-compose ps;docker-compose logs -f
- 进入容器:docker-compose exec <服务名> sh/bash
- 停止/启动/重启/重建:docker-compose stop|start|restart|up --build
- 清理:docker-compose down(加 -v 同时删除匿名卷)
- 其他:docker-compose rm(删除已停止容器);docker-compose config(校验并展示配置)。
四 实用建议与排错
- 权限问题:执行 docker 或 docker-compose 报“权限被拒绝”,请将当前用户加入 docker 组并重新登录,避免使用 sudo 运行容器命令。
- 版本选择:生产环境建议使用较新的 Compose(如 v2.x)。若 APT 源版本偏旧,优先采用二进制安装方式并指定所需版本号。
- 配置文件:确保使用 version 与所用 Docker 引擎兼容;常见为 3.x。YAML 缩进需使用空格,避免 Tab。
- 端口与防火墙:如访问不到 8000 端口,请确认云服务器安全组/本机防火墙已放行该端口(例如 UFW 或 firewalld 放行 8000/tcp)。