Docker Compose

容器编排

基本概念

容器编排就是针对容器生命周期的管理,对容器的生命周期进行更快速方便的方式进行管理

为什么需要

  1. 依赖管理:一个容器必须在另一个容器运行完成后,才能运行时,就需要进行依赖管理
  2. 副本数控制:容器有时候也需要集群,快速的对容器集群进行弹性伸缩
  3. 配置共享:通过配置文件统一描述需要运行的服务相关信息,自动化的解析配置内容,并构建对应的服务

能干什么

  1. 让我们可以更简单的使用容器

docker compose(单机)

img
有的时候我们会需要涉及到在一台机器部署多个容器,那么此时再手动的每次输入相关的一堆配置命令再来启动容器,还是产生了很多无意义的重复性劳动。针对单机的多容器部署的情况,Docker为我们提供了一个单机版本的服务编排工具docker-compose。
Docker-Compose可以高效便捷的管理单机上运行的所有容器,它通过yaml配置文件的方式完成之前执行docker run命令所设置的所有参数,你可以先针对单机上的所有容器进行相关配置,配置完成后即可使用docker-compose对单机多容器进行高效的管理。

docker compose安装

版本简述

docker-compose的api版本与大版本一致,compose版本与docker版本之间存在一定关联

compose版本 docker版本
3.4 17.09.0+
3.3 17.06.0+
3.2 17.04.0+
3.1 1.13.1+
3.0 1.13.0+
2.3 17.06.0+
2.2 1.13.0+

安装配置

  1. 下载docker-compose
sudo curl -L "http://mirrors.aliyun.com/docker-toolbox/linux/compose/1.21.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 将可执行权限应用于二进制文件
sudo chmod +x /usr/local/bin/docker-compose 
  1. 创建软连接(可理解为创建一个快捷方式)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 
  1. 测试是否安装成功
docker-compose --version

img
注意:对于alpine,需要以下依赖包:py-pip,python-dev,openssl-dev,gcc,lib-dev和make。

配置文件

  1. 服务services
    需要运行的容器配置,可以理解为原先用docker run 命令后面跟的一系列配置信息,都配在这个下面
  2. 网络networks
    docker-compose 公共自定义网络管理,配置好以后,可以直接在services中引用该网络配置,这个配置可以多个service使用
  3. 数据卷 volumes
    docker-compose下的统一数据卷管理,可以给多个service用

docker-compose配置文件案例

  1. 创建一个docker-compose文件,这里是放在/opt/docker/nginx目录下
version: "2.1"
services:
  #其中一个service配置
  nginx-demo:
    image: "nginx"
    container_name: "nginx_compose"
    restart: "always"
    networks:
       - xdn_net
    volumes:
       - /www/xdncode.cn:/usr/share/nginx/html
    environment:
      APP_ENV: dev
    dns: 114.114.115.115
    ports:
      - 80:80


networks:
  xdn_net:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 188.18.0.0/16
          gateway: 188.18.0.1
  1. 运行
docker-compose config  

img

常用命令

  1. 创建服务 create
docker-compose  create <服务名称> (可选) #如果不加服务名称,则会自动创建yaml里面的所有服务

例:
img
2. 运行服务 up

docker-compose up -d <服务名称> (可选) #如果不加服务名称,则会自动运行所有服务

img
3. 重新读取配置文件

docker-compose up -d

img
4. 弹性伸缩 scale

docker-compose scale 服务名称=num

例:
img
5. 查看日志 logs

docker-compose logs -f <服务名称>
posted @ 2023-05-19 11:25  小肚腩吖  阅读(16)  评论(0编辑  收藏  举报