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

Docker 和 Docker Compose 的关系

 

1. Docker 和 Docker Compose 的关系

Docker 和 Docker Compose 是 容器化 相关的工具,Docker Compose 是 Docker 的一个补充工具,用于管理 多容器应用。它们的关系如下:

  • Docker 是一个容器管理工具,负责 构建、运行、分发 容器。
  • Docker Compose 是一个 编排工具,用于 定义和管理多个 Docker 容器,通常用于 微服务架构多个服务的协调部署

可以简单理解:

  • Docker → 运行 单个容器(比如 docker run 命令)。
  • Docker Compose → 运行 多个容器(比如 docker-compose up 命令)。

2. Docker Compose 介绍

Docker Compose 通过 docker-compose.yml 文件 定义多个容器的配置,并可以一键启动或管理多个容器。

使用场景
  • 微服务架构:如 Web 服务 + 数据库 + Redis,Compose 可以一键启动所有容器。
  • 开发环境:团队成员可以通过 docker-compose up 快速启动完整的开发环境。
  • 自动化部署:用于本地测试、CI/CD 管道(如 GitHub Actions、Jenkins)。

3. Docker vs. Docker Compose 对比

功能DockerDocker Compose
核心作用运行单个容器管理多个容器
运行方式docker rundocker-compose up
适用场景单服务(如 nginx多服务(如 nginx + MySQL + Redis
配置方式命令行参数docker-compose.yml 文件
适合场景测试单个容器运行微服务架构

4. 使用 Docker Compose 示例

假设你要运行一个 Web 服务(Nginx)+ 数据库(MySQL) 的环境,可以使用 docker-compose.yml 轻松管理多个容器。

4.1 编写 docker-compose.yml
version: '3'  # 版本号
services:
  web:
    image: nginx:latest  # 使用 Nginx 作为 Web 服务器
    ports:
      - "8080:80"  # 访问端口映射
    depends_on:
      - db  # 依赖数据库服务
  db:
    image: mysql:5.7  # 使用 MySQL 5.7
    environment:
      MYSQL_ROOT_PASSWORD: example  # 设置 MySQL root 密码
    ports:
      - "3306:3306"
4.2 启动服务

docker-compose.yml 所在目录运行:

docker-compose up -d  # 以后台模式启动

💡 这样 Nginx 和 MySQL 就会同时启动,并且 Nginx 可以直接访问 MySQL,而不需要手动创建和管理容器。


5. Docker Compose 的核心命令

命令作用
docker-compose up -d启动所有服务(-d 表示后台运行)
docker-compose down停止并删除所有服务
docker-compose ps查看正在运行的服务
docker-compose logs查看所有容器日志
docker-compose restart重启所有容器
docker-compose exec <service>进入指定服务容器,如 docker-compose exec web bash

6. 总结

对比项DockerDocker Compose
管理单个容器✅ 适合❌ 不适合
管理多个容器❌ 不适合✅ 适合
适用于微服务架构❌ 较难管理✅ 适合
配置方式命令行参数docker-compose.yml 文件
适用场景运行单个应用运行多个服务(如 Web + 数据库)

🚀 如果你只需要运行一个单独的 Nginx 或 MySQL,直接用 docker run 就够了。
🚀 如果你要运行多个容器(如 Web + DB + Redis),就用 docker-compose up,更方便!


http://www.kler.cn/a/591992.html

相关文章:

  • 可视化图解算法:链表中倒数(最后)k个结点
  • 使用py-ffmpeg批量合成视频的脚本
  • CentOS7 安装 jdk8(Java安装)
  • Next.js 的渲染体系架构
  • Spring Boot 核心知识点深度详解:自动化配置 (Auto-configuration) - 解锁 Spring Boot 的 “魔法”
  • 【从零开始学习计算机科学】软件工程(三)需求工程
  • 《算法笔记》9.2小节——数据结构专题(2)->二叉树的遍历 问题 B: 二叉树
  • 批量清空 Excel 文档主题、标记、作者、保存时间、总编辑时间元数据
  • 23年蓝桥杯 ———— 阶乘求和
  • rk3588 linux的rootfs.img挂载后通过chroot切换根目录安装应用提示空间不足
  • 一、Redis简介篇
  • 一文梳理清楚Vsync/Choreographer/SurfaceFlinger/Surface/SurfaceHolder/硬件刷新频率关系
  • Springboot是怎么保证WebSocket的链接对象是唯一的
  • 孜然SEO静态页面生成系统V1.0
  • 卷积神经网络 - 卷积层
  • 《基于Spring Boot+Vue的智慧养老系统的设计与实现》开题报告
  • 【鸿蒙】封装日志工具类 ohos.hilog打印日志
  • pthon转换SR785频谱仪的代码
  • 基于mediapipe深度学习的运动人体姿态提取系统python源码
  • 项目开发 1-确定选题,制作原型