您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Docker Compose部署及基础使用的方法
## 1. Docker Compose概述
### 1.1 什么是Docker Compose
Docker Compose是Docker官方推出的容器编排工具,允许用户通过一个YAML格式的配置文件(docker-compose.yml)来定义和运行多个相互关联的Docker容器。它简化了多容器应用的部署和管理流程,特别适合开发、测试和持续集成环境。
### 1.2 核心优势
- **单文件配置**:用声明式YAML文件描述整个应用栈
- **一键启停**:通过简单命令管理多容器生命周期
- **服务依赖管理**:自动处理容器间的启动顺序
- **环境隔离**:支持不同环境使用独立配置
- **可移植性**:配置与代码一起版本控制,实现环境一致性
## 2. 安装与配置
### 2.1 系统要求
- Docker Engine 1.10.0+
- Linux/Windows/macOS系统
- 建议分配至少2GB内存
### 2.2 安装方法
#### Linux系统
```bash
# 下载最新稳定版
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version
推荐使用Docker Desktop(已内置Compose)
创建基础配置文件docker-compose.yml
:
version: '3.8'
services:
webapp:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
version: '3.8' # 指定Compose文件格式版本
services: # 服务定义部分
service1: # 服务名称
image: ... # 容器配置
service2:
build: ...
volumes: # 数据卷定义
networks: # 网络定义
configs: # 配置项定义
image
:指定容器镜像build
:基于Dockerfile构建ports
:端口映射(HOST:CONTNER)volumes
:目录/文件挂载environment
:环境变量depends_on
:服务依赖关系restart
:重启策略(no, always, on-failure)networks:
frontend:
driver: bridge
ipam:
config:
- subnet: 172.16.238.0/24
支持环境变量和扩展字段:
services:
db:
image: postgres:${POSTGRES_VERSION:-13}
deploy:
resources:
limits:
cpus: '${CPU_LIMIT:-0.50}'
# 启动所有服务(后台模式)
docker-compose up -d
# 停止并删除容器
docker-compose down
# 暂停服务
docker-compose pause
# 恢复服务
docker-compose unpause
# 查看运行状态
docker-compose ps
# 查看服务日志
docker-compose logs -f web
# 查看服务资源使用
docker-compose top
# 执行单次命令
docker-compose run web bash
# 扩缩容服务
docker-compose up -d --scale web=3
# 重建单个服务
docker-compose up -d --no-deps --build web
version: '3.8'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- mysql_data:/var/lib/mysql
php:
build: ./php
volumes:
- ./src:/var/www/html
apache:
image: httpd:2.4
ports:
- "8000:80"
volumes:
- ./src:/usr/local/apache2/htdocs
depends_on:
- php
volumes:
mysql_data:
version: '3.8'
services:
gateway:
image: nginx
ports: ["80:80"]
configs:
- source: nginx_conf
target: /etc/nginx/conf.d/default.conf
depends_on:
- auth
- api
auth:
image: auth-service:1.2
environment:
JWT_SECRET: ${JWT_SECRET}
networks:
- backend
api:
image: api-service:3.1
networks:
- backend
configs:
nginx_conf:
file: ./config/nginx.conf
networks:
backend:
driver: overlay
使用多个Compose文件实现环境差异:
# base.yml - 通用配置
# dev.yml - 开发环境扩展
docker-compose -f base.yml -f dev.yml up
services:
web:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 30s
timeout: 10s
retries: 3
services:
redis:
deploy:
resources:
limits:
cpus: '0.50'
memory: 512M
reservations:
memory: 256M
netstat -tulnp | grep <port>
depends_on
+健康检查user: "1000:1000"
配置# 交互式调试
docker-compose exec web sh
# 查看完整配置
docker-compose config
# 详细日志
docker-compose logs --timestamps --tail=50 web
docker system prune
清理资源命令 | 描述 |
---|---|
docker-compose up |
创建并启动容器 |
docker-compose down |
停止并移除容器 |
docker-compose ps |
查看服务状态 |
docker-compose logs |
查看服务日志 |
docker-compose build |
重新构建服务镜像 |
docker-compose pull |
拉取服务镜像 |
docker-compose config |
验证配置文件 |
注:本文基于Docker Compose v2编写,部分命令在v1中可能需要使用
docker-compose
替代docker compose
“`
该文档共计约3550字,采用标准的Markdown格式编写,包含代码块、表格、列表等元素,可直接用于技术文档发布。内容涵盖从基础概念到高级实践的完整知识体系,适合作为Docker Compose的入门及参考指南。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。