1. 安装Docker(前提条件)
Docker Compose依赖Docker环境,需先确保系统已安装Docker。若未安装,可通过以下命令完成安装:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io # 推荐安装社区版(CE)
sudo systemctl start docker # 启动Docker服务
sudo systemctl enable docker # 设置开机自启
安装完成后,可通过docker --version验证Docker是否安装成功。
2. 安装Docker Compose
Docker Compose需单独安装,推荐使用官方GitHub发布的最新稳定版本(截至2025年11月,最新版本为v2.21.0):
# 下载Docker Compose二进制文件(替换为最新版本号)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装(输出版本号即为成功)
docker-compose --version
若需创建符号链接(方便全局调用),可执行:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
3. 创建docker-compose.yml文件
在项目目录下创建docker-compose.yml文件(如myproject目录),用于定义服务、网络、卷等配置。以下是一个基础示例(包含Nginx web服务和MySQL数据库服务):
version: '3' # 指定Compose文件格式版本(推荐3及以上)
services: # 定义服务列表
web: # 服务名称(自定义)
image: nginx:latest # 使用的镜像(可从Docker Hub拉取)
ports: # 端口映射(主机端口:容器端口)
- "8080:80" # 主机8080端口映射到容器80端口
db: # 另一个服务
image: mysql:5.7 # 使用MySQL 5.7镜像
environment: # 环境变量(配置数据库)
MYSQL_ROOT_PASSWORD: example # root用户密码
MYSQL_DATABASE: mydb # 创建的数据库名
MYSQL_USER: user # 创建的普通用户
MYSQL_PASSWORD: password # 普通用户密码
可根据实际需求调整服务配置(如添加volumes挂载卷、depends_on定义服务依赖等)。
4. 启动服务
在docker-compose.yml文件所在目录下,运行以下命令启动所有服务:
docker-compose up -d # -d表示在后台运行服务
启动后,Docker会自动拉取镜像(若本地无对应镜像)、创建容器,并根据配置启动服务。可通过docker-compose ps查看服务运行状态(显示“Up”即为运行中)。
5. 常用管理服务命令
docker-compose logs(查看所有服务日志)或docker-compose logs -f web(实时查看web服务日志);docker-compose exec web /bin/bash(进入web服务的容器终端,执行bash命令);docker-compose down(停止并删除所有容器、网络,保留数据卷和镜像);docker-compose restart(重启所有服务);docker-compose build(根据Dockerfile重建服务镜像,适用于修改镜像配置后)。6. 高级配置(可选)
docker-compose.yml中添加networks字段,可实现服务间通信(如bridge桥接网络、host主机网络);volumes字段将主机目录或命名卷挂载到容器中,实现数据持久化(如./data:/usr/share/nginx/html将主机data目录挂载到容器Nginx默认页面目录);depends_on字段定义服务启动顺序(如web服务依赖db服务,则web会在db启动后再启动)。注意事项
docker-compose命令报错“permission denied”),可将当前用户添加到docker组:sudo usermod -aG docker $USER,然后重新登录生效;