实例详解 Docker Compose 的使用方法
AI 概述
一、Docker Compose 简介二、安装 Docker Compose三、基础配置文件示例(docker-compose.yml)四、关键配置解析五、常用命令六、完整项目示例(Node.js + MySQL + Nginx)七、高级功能八、最佳实践九、调试技巧
一、Docker Compose 简介
Docker Compose 是用于定义和运行多容器 Docker 应用程序的工具...
目录
文章目录隐藏

一、Docker Compose 简介
Docker Compose 是用于定义和运行多容器 Docker 应用程序的工具,通过 YAML 文件配置应用程序服务,一键启动所有关联容器。
二、安装 Docker Compose
Linux:
sudo curl -L "https://mirrors.tuna.tsinghua.edu.cn/docker/compose/releases/download/v2.32.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
Windows/macOS:
通过 Docker Desktop 安装(已内置 Compose)
验证安装:
docker-compose --version
三、基础配置文件示例(docker-compose.yml)
version: '3.8' # Compose 文件格式版本
services:
web:
build: . # 使用当前目录的 Dockerfile 构建
ports:
- "8000:80" # 主机端口:容器端口
depends_on:
- db
environment:
- DB_HOST=db
networks:
- mynetwork
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: myapp
networks:
- mynetwork
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h localhost"]
interval: 30s
timeout: 10s
retries: 3
volumes:
db_data:
networks:
mynetwork:
driver: bridge
四、关键配置解析
- version:指定 Compose 文件格式版本(常用 3.x)
- services:定义服务(容器)
build:指定构建上下文路径(含 Dockerfile)image:直接使用官方镜像ports:端口映射depends_on:服务依赖关系environment:环境变量设置
- volumes:数据卷定义(持久化存储)
- networks:自定义网络配置
- healthcheck:容器健康检查
五、常用命令
启动服务:
docker-compose up -d # 后台启动 docker-compose up --build # 重新构建后启动
停止服务:
docker-compose down # 停止并删除容器、网络等 docker-compose stop # 仅停止容器
查看日志:
docker-compose logs -f # 实时查看日志 docker-compose logs web # 查看指定服务日志
进入容器:
docker-compose exec web bash # 进入 web 容器
构建镜像:
docker-compose build # 构建所有服务镜像 docker-compose build web # 仅构建 web 服务镜像
六、完整项目示例(Node.js + MySQL + Nginx)
项目结构:
myapp/ ├── docker-compose.yml ├── nginx/ │ ├── nginx.conf │ └── Dockerfile ├── app/ │ ├── package.json │ ├── server.js │ └── Dockerfile └── .env
docker-compose.yml:
version: '3.8'
services:
nginx:
build: ./nginx
ports:
- "80:80"
depends_on:
- app
networks:
- frontend
- backend
app:
build: ./app
environment:
- NODE_ENV=production
- DB_HOST=db
networks:
- backend
depends_on:
db:
condition: service_healthy
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
MYSQL_DATABASE: myapp
secrets:
- db_root_password
networks:
- backend
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h localhost"]
interval: 30s
timeout: 10s
retries: 3
volumes:
db_data:
networks:
frontend:
backend:
secrets:
db_root_password:
file: .env
app/Dockerfile:
FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install --production COPY . . CMD ["npm", "start"]
nginx/Dockerfile:
FROM nginx:alpine COPY nginx.conf /etc/nginx/conf.d/default.conf
nginx/nginx.conf:
server {
listen 80;
location / {
proxy_pass http://app:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
.env:
DB_ROOT_PASSWORD=supersecret
七、高级功能
扩展配置:
# 扩展服务实例
app:
deploy:
replicas: 3
resources:
limits:
cpus: '0.5'
memory: 512M
多环境配置:
# docker-compose.override.yml(开发环境)
version: '3.8'
services:
app:
build: ./app
volumes:
- ./app:/app # 挂载代码目录实现热更新
environment:
- NODE_ENV=development
使用模板文件:
# docker-compose.yml
services:
app:
image: myapp:${TAG}
八、最佳实践
- 使用
.env文件管理敏感信息 - 为不同环境创建独立的 Compose 文件(如 docker-compose.prod.yml)
- 使用健康检查确保服务启动顺序
- 对持久化数据使用命名卷
- 定期清理未使用的镜像和卷:
docker system prune -a
九、调试技巧
查看容器状态:
docker-compose ps
检查网络配置:
docker network inspect mynetwork
验证配置文件:
docker-compose config
以上就是关于 Docker Compose 使用实例的全部内容,更多相关 Docker Compose 使用内容请搜索码云笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持码云笔记!
以上关于实例详解 Docker Compose 的使用方法的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 实例详解 Docker Compose 的使用方法
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 实例详解 Docker Compose 的使用方法

微信
支付宝