Docker容器编排

文章目录

    • 基本概念
    • Docker Compose
    • Swarm分布式
      • Node
      • Task
      • service
      • 集群搭建
      • 弹性伸缩

基本概念

针对容器生命周期的管理,对容器生命周期进行更方便更快捷的方式进行管理。

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

Docker Compose

  • 服务 services:需要运行的容器配置,可以理解为原先用docker run命令后面跟的一系列命令都可以写在里面。
  • 网络 network:docker-compose公共自定义网络管理,配置好后可以直接用这个网络配置,这个配置可以多容器使用。
  • 数据卷 volumes:统一数据卷管理,可以给多个sercice使用

下面是docker-compose.yaml文件

version: "3.3"
services: 
  nginx-demo: 
    image: "nginx"
    container_name: "nginx_compose"
    restart: "always"
    networks: 
      - wolfcode_net
    volumes:
      - /root/docker:/usr/share/nginx/html
    environment:
      APP_ENV: dev
    dns:
      - 114.114.115.115
    ports:
      - "80:80"

networks:
  wolfcode_net:
    driver: bridge
    ipam:
      driver: default
      config: 
        - subnet: 188.18.0.0/16

在启动时,可以只启动一个服务

docker-compose create nginx-demo

因为这个nginx是依赖网络的,所以它的状态是退出的,要用以下命令运行所有服务

docker-compose up -d

想要批量创建这个容器时,需要用到scale,该命令可以扩容/缩容对应的容器

// 将容器扩容为3个
docker-compose scale nginx-demo=3
//将容器缩容为2个
docker-compose scale nginx-demo=2

Swarm分布式

docker swarm可以在多个服务器上创建集群服务,通过daemon引擎实现

  • 初始化节点
  • 加入节点
  • 退出节点

Node

运行在docker的主机可以主动初始化一个swarm集群或加入一个已经存在的集群,这样该主机就成为一个swarm集群的节点(Node)
节点分为管理(manager)节点和工作(worker)节点。
管理节点用于swarm集群的管理,一个集群可以有多个管理节点,但只有一个管理节点能成为leader,leader通过raft协议实现。通常第一个启动的节点是leader,后面启动的是follower

Task

任务(Task)是swarm中最小的调度单位,目前来说是一个单一的容器。

service

服务是一组任务的集合,服务定义了任务的属性‘

集群搭建

用如下命令创建一个集群

docker swarm init --advertise-addr 192.168.113.120

然后会提示想要加入该集群可以运行的命令

查看集群情况(只有管理节点能看)

docker node ls

弹性伸缩

在集群中创建服务

docker service create --replicas 3 -p 80:80 --name nginx_swarm nginx

查看服务信息

docker service inspect --pretty nginx_swarm

收缩容器

docker service update --replicas 2 nginx_swarm

在工作节点上退出集群

docker swarm leave

你可能感兴趣的:(Docker,docker,容器,运维)