【Docker】(四) Docker-compose 容器编排

本文介绍Docker-Compose的基本概念及优势,详细讲解了安装步骤和常用命令,并通过实例演示了如何利用docker-compose.yml文件进行微服务的编排,包括服务定义、依赖管理等。

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

一、基本概念

1.1 概念

(1) Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。

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

    器为一个项目(project)。
 
(3) 可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构

    建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。

(4)一文件:docker-compose.yml

     两要素: 服务(service)一个个应用容器实例,比如订单微服务、库存微服务、mysql容器、nginx容器或者redis容器

             工程(project)由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml文件中定义。                      
                                            
(5)Compose使用的三个步骤:

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

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

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

1.2 优点 

之前的缺点:

(1)先后顺序要求固定,先mysql+redis才能微服务访问成功

(2)多个run命令......

(3)容器间的启停或宕机,有可能导致IP地址对应的容器实例变化,映射出错,
     要么生产IP写死(可以但是不推荐),要么通过服务调用

 docker-compose可以解决以上问题

二、安装 Docker-Compose

2.1 官网地址

官网: https://docs.docker.com/compose/compose-file/compose-file-v3/

官网下载: https://docs.docker.com/compose/install/

2.2 安装步骤

(1) 下载
    curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose        

(2)赋权
    chmod +x /usr/local/bin/docker-compose

(3)查看版本号
    docker-compose --version

2.3 卸载步骤

官网卸载:

 如果您使用curl以下方式安装,则卸载 Docker Compose 可以使用如下命令:

 rm /usr/local/bin/docker-compose

三、常用命令

Compose常用命令

(1) docker-compose -h                               # 查看帮助

(2) docker-compose up                               # 启动所有docker-compose服务

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

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

(5) docker-compose exec yml里面的服务id  /bin/bash   # 进入容器实例内部      
   
(6) docker-compose ps                               # 展示当前docker-compose编排过的运行的所有容器

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

(8) docker-compose logs  yml里面的服务id             # 查看容器输出日志

(9) docker-compose config                           # 检查配置

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

(11) docker-compose restart                          # 重启服务

(12) docker-compose start                            # 启动服务

(13) docker-compose stop                             # 停止服务

四、Compose 编排微服务

4.1 编写docker-compose.yml文件

   先启动 mysql、redis、在启动微服务

version: "3"
services:
  microService:
    image: dzg_docker:1.6
    container_name: dzg_docker:1.6
    ports:
      - "6001:6001"
    volumes:
      - /home/dongzhigang/microService/data:/data
    networks: 
      - dzg_net 
    depends_on: 
      - redis
      - mysql
  redis:
    image: redis:6.0.8
    ports:
      - "6389:6379"
    volumes:
      - /home/dongzhigang/redis608/redis.conf:/etc/redis/redis.conf
      -/home/dongzhigang/redis608/data:/data
    networks: 
      - dzg_net
  mysql:
    image: mysql:5.7.38
    environment:
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'db01'
      MYSQL_USER: 'dzg'
      MYSQL_PASSWORD: 'dzg123'
    ports:
       - "3307:3306"
    volumes:
       - /home/dongzhigang/mysql5.7.38/mysql/db:/var/lib/mysql
       - /home/dongzhigang/mysql5.7.38/conf/my.cnf:/etc/my.cnf
       - /home/dongzhigang/mysql5.7.38/init:/docker-entrypoint-initdb.d
    networks:
      - dzg_net
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
networks: 
   dzg_net: 

4.2 修改微服务yml文件

修改微服务yml文件,通过域名访问,不要通过ip访问

 把微服务打包,上传到 linux某个目录,并编写好dockerfile,执行构建命令,构建出微服务的镜像

docker build -t dzg_docker:1.6 .

4.3 启动docker-compose

docker-compose up   或
 
docker-compose up -d

4.4 停止 docker-compose

docker-compose  stop  停止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mateo-520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值