当前位置: 首页 > news >正文

Docker Compose 之详解(Detailed Explanation of Docker Compose)

 Docker Compose 之详解

当容器数量逐渐增多,你是否感到手忙脚乱?面对复杂的部署场景,是时候祭出神器Docker Compose了!它能帮你优雅地管理多容器应用,一键启动、停止所有服务,不再为复杂的手动操作焦头烂额。


什么是 Docker Compose?

Docker Compose 是 Docker 官方提供的多容器管理工具,允许你通过一个简单的 YAML 配置文件定义和管理多容器服务。
它的核心功能包括:

  1. 定义多容器:通过一个docker-compose.yml 文件描述多个服务的构建方式、网络配置和依赖关系。

  2. 一键管理:启动、停止、重启和查看服务日志都可以通过一条命令完成。

  3. 跨环境部署:支持开发、测试和生产环境的灵活配置。


为什么要用 Docker Compose?

  1. 多容器协作的利器
    当你的项目依赖多个容器(如 Web 服务 + 数据库 + 缓存),Compose 可以一键启动并连接它们。

  2. 高效的开发体验
    不再需要记住复杂的docker run 参数;通过 Compose,所有配置都在一个文件里。

  3. 简化部署
    无论是本地开发环境还是远程服务器,一份docker-compose.yml 文件搞定部署。

  4. 减少重复劳动
    每次需要启动服务时,不再需要重复输入一大堆命令。


安装 Docker Compose

以下是在 CentOS 下安装 Docker Compose 的步骤:

  1. 下载二进制文件

 sudo curl -L "https://github.com/docker/compose/releases/download/2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 赋予执行权限

 sudo chmod +x /usr/local/bin/docker-compose
  1. 验证安装

 docker-compose --version

输出类似:Docker Compose version 2.22.0,表示安装成功。


用 Docker Compose 梭哈一个完整项目

项目场景:Java Web 应用 + MySQL + Redis

当你的项目需要同时运行 Java 应用、MySQL 数据库和 Redis 缓存时,一个简单的docker-compose.yml 文件就可以解决问题。

目录结构:

my-project/
├── app/
│   ├── Dockerfile
│   └── target/demo.jar
├── db/
│   └── init.sql
├── redis/
│   └── redis.conf
└── docker-compose.yml

docker-compose.yml 文件:

version: '3.8'

services:
app:
    build:
      context:./app
    ports:
      -"8080:8080"
    environment:
      -SPRING_DATASOURCE_URL=jdbc:mysql://db:3306/demo
      -SPRING_DATASOURCE_USERNAME=root
      -SPRING_DATASOURCE_PASSWORD=root
      -SPRING_REDIS_HOST=redis

db:
    image:mysql:5.7
    ports:
      -"3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD:root
      MYSQL_DATABASE:demo
    volumes:
      -./db/init.sql:/docker-entrypoint-initdb.d/init.sql

redis:
    image:redis:7.0
    ports:
      -"6379:6379"
    volumes:
      -./redis/redis.conf:/usr/local/etc/redis/redis.conf
    command:["redis-server","/usr/local/etc/redis/redis.conf"]
启动项目

在项目目录下运行以下命令:

docker-compose up --build

一条命令即可启动 Java Web 应用、MySQL 和 Redis 三个服务。


一键管理多容器

Docker Compose 提供了一系列便捷命令:

  1. 启动所有服务

 docker-compose up
  1. 停止所有服务

 docker-compose down
  1. 重启指定服务

 docker-compose restart app
  1. 查看服务日志

 docker-compose logs -f

使用 Docker Compose 的注意事项

  1. 容器间通信
    Docker Compose 会自动为所有服务创建一个默认网络,服务之间可以通过名称互相访问。

  2. 数据持久化
    确保数据库等重要数据使用挂载卷(volumes),避免容器重启后数据丢失。

  3. 资源分配
    在生产环境中,可以通过deploy 配置限制 CPU 和内存使用量。

  4. 环境变量管理
    使用.env 文件集中管理敏感信息,例如数据库密码。


总结

当项目需要多个容器协同工作时,Docker Compose 是最值得信赖的“梭哈”工具。它让开发者从繁琐的手动操作中解放出来,将多容器管理变得简单高效。不妨试试为你的项目编写一个docker-compose.yml 文件,体验一下“一键部署”的快感!

相关文章:

  • spring中将yaml文件转换为Properties
  • Nginx 多协议代理功能(Nginx Multi Protocol Proxy Function)
  • PyQt基础——简单的窗口化界面搭建以及槽函数跳转
  • 在 LaTeX 中强制表格位于页面顶部
  • CCF-CSP第34次认证第四题——货物调度【DP+剪枝】
  • 红黑树介绍
  • Matplotlib高阶技术全景解析
  • 《阿里云Data+AI:开启数据智能新时代》电子书上线啦!
  • 操作系统学不会?————一文速通(FCFS,SJF/SPF,SRTN,HRRN算法)保姆级解析
  • 4.数据存储**
  • Attention又升级!Moonshot | 提出MoE注意力架构:MoBA,提升LLM长文本推理效率
  • Python爬虫实战:基于 Scrapy 框架的腾讯视频数据采集研究
  • 蓝桥-数字接龙
  • 事业单位ABCDE类
  • qwen2.5-vl使用vllm部署gradio页面调用
  • 网络安全防护总体架构 网络安全防护工作机制
  • TC IT 技术图标
  • 深入理解与应用 JavaScript 中的回调函数
  • 前端UI编程基础知识:Flex弹性布局
  • ICMP、UDP以及IP、ARP报文包的仲裁处理
  • 大连专业app开发设计/网站优化排名提升
  • 2015做那个网站能致富/百度服务
  • 一家专做二手手机的网站叫什么手机/线上销售方案
  • 什么公司做网站的多/广告电话
  • 济南正规网站建设公司/seo发贴软件
  • 公司网站建设费用怎么入账/泉州关键词优化排名