网站首页 > 博客文章 正文
Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具,通过 YAML 文件(docker-compose.yml)配置服务,简化容器编排。以下是其核心功能和常用命令:
常用功能介绍
- 服务定义
通过 YAML 文件定义多个容器的配置(镜像、端口、卷、环境变量等)。 - 一键启动
单命令启动所有服务,自动处理容器间依赖关系。 - 服务依赖管理
通过 depends_on 控制服务启动顺序。 - 环境变量支持
支持从 .env 文件或命令行注入环境变量。 - 网络与卷管理
自动创建容器间共享网络,支持持久化存储卷。 - 水平扩展
使用 scale 命令扩展服务实例数量(需结合 Swarm)。
常用命令
1. 启动服务
docker-compose up # 前台启动服务(Ctrl+C 停止)
docker-compose up -d # 后台启动服务
docker-compose up service1 # 仅启动指定服务
2. 停止服务
docker-compose down # 停止并删除容器、网络
docker-compose down -v # 同时删除数据卷(谨慎操作!)
3. 构建镜像
docker-compose build # 构建所有服务的镜像
docker-compose build service1 # 构建指定服务的镜像
4. 查看服务状态
docker-compose ps # 显示运行中的容器
docker-compose ps -a # 显示所有容器(包括已停止的)
5. 查看日志
docker-compose logs # 查看所有服务的日志
docker-compose logs -f service1 # 实时跟踪指定服务的日志
6. 进入容器
docker-compose exec service1 sh # 进入容器的 Shell
7. 管理服务状态
docker-compose start # 启动已存在的容器
docker-compose stop # 停止容器(不删除)
docker-compose restart # 重启容器
8. 扩展服务实例(需 Swarm 支持)
docker-compose up --scale service1=3 # 启动 3 个 service1 实例
9. 检查配置
docker-compose config # 验证并显示最终配置文件
10. 拉取镜像
docker-compose pull # 拉取所有服务的镜像
常用参数
-f:指定自定义 Compose 文件
docker-compose -f custom-compose.yml up
-p:指定项目名称(默认使用目录名)
docker-compose -p myproject up
示例 Compose 文件
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- db
db:
image: postgres:13
environment:
POSTGRES_PASSWORD: example
总结
Docker Compose 简化了多容器应用的开发、测试和部署,尤其适合本地开发环境。通过掌握常用命令和 YAML 配置,可快速搭建复杂服务栈。生产环境建议结合 Kubernetes 或 Swarm 等更强大的编排工具。
猜你喜欢
- 2025-05-22 Docker搭建MySQL与Redis集群教程
- 2025-05-22 Docker新手福音!这个开源控制面板让你更快上手Docker
- 2025-05-22 数字管家登场:利用Docker快速部署你的HomeBox家庭库存系统
- 2025-05-22 docker-compose备份数据库,在crontab定时任务中不生效解决方法
- 2025-05-22 容器云生产实践第一步:ELK Stack
- 2025-05-22 docker-compose快速部署elasticsearch-8.x集群+kibana
- 2025-05-22 dify 1.40
- 2025-05-22 Windows 上 Docker 镜像与容器更新全攻略
- 2025-05-22 docker从入门到实战系列6-docker-compose容器编排
- 2025-05-22 Docker与Docker Compose部署微服务对比
你 发表评论:
欢迎- 377℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 373℃用AI Agent治理微服务的复杂性问题|QCon
- 364℃初次使用IntelliJ IDEA新建Maven项目
- 357℃Maven技术方案最全手册(mavena)
- 353℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 353℃IT全明星|IntelliJ IDEA学习笔记(四、idea中怎么创建maven项目)
- 352℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 351℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)