尚硅谷Docker-笔记12:Compose容器编排

本文介绍了DockerCompose的作用,它通过YAML配置文件简化了多容器应用的管理和部署,包括编写Dockerfile、定义docker-compose.yml以及常用的Compose命令。文章还展示了如何使用Compose进行微服务部署和容器间依赖管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Compose能干嘛

Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。

docker建议我们每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来但是这样我们又面临了一个问题?

如果我需要同时部署好多个服务,难道要每个服务单独写Dockerfile然后在构建镜像、构建容器,这样累都累死了,所以docker官方给我们提供了docker-compose多服务部署的工具。

例如要实现一个Web微服务项目,除了Web服务容器本身,往往还需要再加上后端的数据库mysql服务容器,redis服务器,注册中心eureka,甚至还包括负载均衡容器等等。。。。。。

Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。

Compose下载安装步骤

  • 官网:https://docs.docker.com/compose/compose-file/compose-file-v3/
  • 官网下载:https://docs.docker.com/compose/install/
[root@node001 ~]# curl -SL https://github.com/docker/compose/releases/download/v2.19.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
100 57.6M  100 57.6M    0     0  7734k      0  0:00:07  0:00:07 --:--:-- 11.1M
[root@node001 ~]# chmod +x /usr/local/bin/docker-compose
[root@node001 ~]# docker-compose --version
Docker Compose version v2.19.1
[root@node001 ~]# 

Compose核心概念

Compose使用的三个步骤

        1、编写Dockerfile定义各个微服务应用并构建出对应的镜像文件

        2、使用 docker-compose.yml 定义一个完整的业务单元,安排好整体应用中的各个容器服务。

        3、最后,执行docker-compose up 命令来启动并运行整个应用程序,完成一键部署上线。

Compose常用命令

docker-compose -h                 # 查看帮助

docker-compose up                # 启动所有 docker-compose 服务

docker-compose up -d            # 启动所有 docker-compose 服务并后台运行

docker-compose down            # 停止并删除容器、网络、卷、镜像

docker-compose exec yml里面的服务id        #  进入容器实例内部 docker-compose exec yml里面的服务id /bin/bash

docker-compose ps                # 展示当前docker-compose编排过的运行的所有容器

docker-compose top               # 展示当前docker-compose 编排过的容器进程

docker-compose logs yml里卖弄的服务id        # 查看容器输出日志

docker-compose config                 # 检查配置

docker-compose config -q             # 检查配置,有问题才有输出

docker-compose restart                 # 重启服务

docker-compose start                    # 启动服务

docker-compose stop                    # 停止服务

微服务改造升级并生成新镜像

不用compose编排服务上

不用compose编排服务下

使用compose编排服务上集

version: "3"
 
services:
  microService:
    image: zzyy_docker:1.6
    container_name: ms01
    ports:
      - "6001:6001"
    volumes:
      - /app/microService:/data
    networks: 
      - atguigu_net 
    depends_on: 
      - redis
      - mysql
 
  redis:
    image: redis:6.0.8
    ports:
      - "6379:6379"
    volumes:
      - /app/redis/redis.conf:/etc/redis/redis.conf
      - /app/redis/data:/data
    networks: 
      - atguigu_net
    command: redis-server /etc/redis/redis.conf
 
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'db2021'
      MYSQL_USER: 'zzyy'
      MYSQL_PASSWORD: 'zzyy123'
    ports:
       - "3306:3306"
    volumes:
       - /app/mysql/db:/var/lib/mysql
       - /app/mysql/conf/my.cnf:/etc/my.cnf
       - /app/mysql/init:/docker-entrypoint-initdb.d
    networks:
      - atguigu_net
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
 
networks:
   atguigu_net: 

使用compose编排服务中集

使用compose编排服务下

### Docker Compose 使用教程与注意事项 #### 什么是 Docker ComposeDocker Compose 是一种用于定义和运行多容器 Docker 应用程序的工具。通过单个 `docker-compose.yml` 文件,可以配置应用程序的服务、网络和卷。使用一条命令即可启动整个应用程序堆栈。 --- #### 安装 Docker Compose 要使用 Docker Compose,需先完成其安装过程。以下是常见的安装方法之一: 1. 下载二进制文件并将其放置到系统的 PATH 中。 2. 验证安装成功可以通过执行以下命令来确认版本号: ```bash docker-compose --version ``` 此部分可参考相关内容[^2]。 --- #### 基本概念 - **服务 (Service)**:表示一个单独的应用组件,例如 Web 或数据库服务器。 - **项目 (Project)**:由一组关联的服务组成,默认情况下基于当前目录名称命名。 - **编排文件 (`docker-compose.yml`)**:描述服务及其依赖关系的核心配置文件--- #### 创建 `docker-compose.yml` 文件 下面是一个简单的例子,展示如何创建一个多容器应用: ```yaml version: '3.8' # 版本声明 services: web: image: nginx:latest ports: - "8080:80" depends_on: - app app: build: ./app environment: NODE_ENV: development volumes: data: ``` 上述 YAML 文件中包含了两个服务——Web 和 App,并设置了端口映射以及环境变量等内容[^1]。 --- #### 启动/停止服务 - 启动所有服务: ```bash docker-compose up -d ``` - 停止正在运行的服务: ```bash docker-compose down ``` 如果需要进入某个特定容器内部操作,则可以利用如下指令实现交互会话开启: ```bash docker-compose exec <service_name> /bin/bash ``` 这里 `<service_name>` 替换为你实际想要访问的那个服务的名字。 --- #### 注意事项 1. **版本兼容性**:确保所选 compose file 的 version 字段匹配本地支持的最大规格。 2. **资源限制**:合理设置 CPU/Memory 参数避免过度消耗主机硬件性能。 3. **数据持久化**:对于重要资料应考虑挂载宿主机路径或者借助外部存储插件管理。 4. **安全加固**:敏感信息建议采用 secrets 方式传递而非明文写入配置文档当中。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值