1. 安装 Docker
Docker Compose 依赖 Docker 引擎,因此需先安装 Docker。
Linux 系统(Ubuntu/CentOS 等)
# 卸载旧版本(如有)
sudo apt-get remove docker docker-engine docker.io containerd runc # Ubuntu/Debian
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine # CentOS/RedHat
# 安装最新版本 Docker
curl -fsSL https://get.docker.com | sudo sh
# 启动 Docker 服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 验证安装
docker --version # 输出示例:Docker version 24.0.7, build afdd53b
# 1. 更新仓库并列出可用版本
sudo apt update
apt-cache madison docker-ce
# 2. 安装指定版本(例如 20.10.23)
sudo apt-get install docker-ce=5:20.10.23~3-0~ubuntu-jammy docker-ce-cli=5:20.10.23~3-0~ubuntu-jammy containerd.io
# 3. 验证版本
docker --version
在基于 Debian 的系统(如用户操作环境)中,通过官方脚本安装后:
- 程序执行文件会安装到系统二进制目录(如
/usr/bin/
下,包含docker
等命令)。 - 数据存储目录默认位于
/var/lib/docker
,用于存放镜像、容器数据等核心内容。
这是 Docker 在 Linux 系统(尤其是 Debian/Ubuntu 系)的标准安装路径。
Windows/macOS
- 下载并安装 Docker Desktop,安装完成后启动 Docker 服务。
2. 安装 Docker Compose
Linux 系统
# 下载最新稳定版(以 v2.23.3 为例)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version # 输出示例:Docker Compose version v2.23.3
Windows/macOS
- Docker Desktop 已默认包含 Docker Compose,无需额外安装。
3. 检查版本兼容性
- Docker Compose 版本:建议使用 v2.0+(支持
docker-compose.yml
v3 语法)。 - Docker 版本:建议使用 Docker 20.10+。
通过以下命令检查版本:
docker --version docker-compose --version
4. 准备 docker-compose.yml
文件
- 文件结构:在项目根目录创建
docker-compose.yml
,定义服务、网络、卷等资源。 示例模板:
version: '3.8' # 指定 Compose 文件版本 services: web: image: nginx:latest ports: - "80:80" db: image: postgres:15 environment: POSTGRES_PASSWORD: example
5. 权限配置(Linux 系统)
避免每次使用
docker
命令时加sudo
,将当前用户加入docker
组:sudo usermod -aG docker $USER # $USER 替换为你的用户名 newgrp docker # 刷新用户组
6. 目录与文件权限
如果涉及挂载本地目录(如日志、数据持久化),确保宿主机目录存在且权限正确:
mkdir -p ./data/postgres chmod 755 ./data/postgres # 根据需求调整权限
7. 网络与防火墙
开放端口:确保 Docker 使用的端口未被占用或防火墙阻止(如 80、3306、8848 等)。
sudo ufw allow 80/tcp # Ubuntu/Debian sudo firewall-cmd --add-port=80/tcp --permanent && firewall-cmd --reload # CentOS
8. 验证 Docker 环境
# 运行测试容器
docker run hello-world
# 预期输出:Hello from Docker! 表示环境正常
9. 学习基础命令
掌握 Docker Compose 常用命令:
docker-compose up -d # 启动服务(后台模式)
docker-compose down # 停止并删除容器、网络
docker-compose logs # 查看日志
docker-compose ps # 查看运行状态
docker-compose build # 重新构建镜像
10. 常见问题预判
Q1: docker-compose
命令报权限错误
- 解决:确保用户已加入
docker
组,或使用sudo docker-compose
。
Q2: YAML 文件语法错误
- 解决:使用在线工具(如 YAML Lint)验证文件格式。
Q3: 端口冲突
- 解决:通过
docker ps
查看占用端口的容器,停止冲突服务或修改端口映射。
总结
完成上述准备工作后,即可通过 docker-compose.yml
一键部署多容器应用,大幅提升开发和运维效率。