5, docker-compose; docker-swarm; docker stack 介绍
作者:互联网
一、什么是dockerfile? DockerFile 分为四部分组成:基础镜像信、维护者信息、镜像操作指令和容器启动时执行指令。 build DockerFile文件生成项目镜像。 二、什么是docker-compose? (容器只能运行在单机而非分布式) Docker run 或者 Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许 用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项 目),docker run web mysql redis 使用 Docker compose 可以管理多个容器,在 docker compose 配置文件中,所有容器通 过使用 service 来定义,然后使用 docker-compose 脚本来启动、停止和重启 docker 应用。 三、什么是docker-swarm? Manager:接收客户端服务定义,将任务发送到 worker 节点;维护集群期望状态和集群管 理功能及 Leader 选举。默认情况下 manager 节点也会运行任务,也可以配置只做管理任务。 Worker:接收并执行从管理节点分配的任务,并报告任务当前状态,以便管理节点维护每 个服务期望状态。 Docker swarm 两个重点 重点一: 任务(Task):任务是 Swarm 中最小的调度单位,目前来说就是单一的容器。 重点二: 服务(Services):服务是指一组任务的集合,服务定义了任务的属性,服务有两种 模式: replicated services (复制)按照一定规则在各个工作节点上运行指定个数的任务。 global services 每个工作节点上运行一个任务 Swarm 集群由管理节点和工作节点组成。我们来创建一个包含一个管理节点和一个工作节点的最小 Swarm 集群。 docker-swarm集群搭建: 192.168.0.11 (manager) 192.168.0.12 (worker) 192.168.0.13 (manager) 192.168.0.14 (worker) 192.168.0.11上管理节点初始化 swarm : [root@manager1 ~]# docker swarm init Swarm initialized: current node (b0ohpxfmfrjz7su1zealie45l) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-1zkkaw3w2zfg6i8cj5kfojn858hyig5k6m1trqhwlc2q9ft8mn-5y0qmdcsbxw4ep6zbnv2fhjdl 192.168.0.11:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. [root@manager1 ~]# systemctl stop firewalld [root@manager1 ~]# 192.168.0.12、192.168.0.14上工作节点加入 swarm : docker swarm join --token SWMTKN-1-1zkkaw3w2zfg6i8cj5kfojn858hyig5k6m1trqhwlc2q9ft8mn-5y0qmdcsbxw4ep6zbnv2fhjdl 192.168.0.11:2377 192.168.0.11上查看 swarm manager 的连接令牌 [root@manager1 ~]#docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-1zkkaw3w2zfg6i8cj5kfojn858hyig5k6m1trqhwlc2q9ft8mn-cymca3h9llxtjw61geunexq0e 192.168.0.11:2377 [root@manager1 ~]# 192.168.0.13上管理节点加入 swarm : docker swarm join --token SWMTKN-1-1zkkaw3w2zfg6i8cj5kfojn858hyig5k6m1trqhwlc2q9ft8mn-cymca3h9llxtjw61geunexq0e 192.168.0.11:2377 至此docker-swarm 集群搭建完成! [root@manager1 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION b0ohpxfmfrjz7su1zealie45l * manager1 Ready Active Leader 20.10.17 w84rljbp8l4sr3xqnd1lc8e6j manager2 Ready Active Reachable 20.10.17 mi687zicwmyq7492zj8mqadkb work1 Ready Active 20.10.17 itd71adlroai072ek6qd1q6uw work2 Ready Active 20.10.17 [root@manager1 ~]# 查看 swarm worker 的连接令牌 docker swarm join-token worker 查看 swarm manager 的连接令牌 docker swarm join-token manager 使旧令牌无效并生成新令牌 docker swarm join-token --rotate 四、docker-swarm 服务部署及管理 # 创建服务 [root@manager1 ~]# docker service create --replicas 3 --name php richarvey/nginx-php-fpm klqzg203vo8x07rnmajtul1up overall progress: 3 out of 3 tasks 1/3: running [==================================================>] 2/3: running [==================================================>] 3/3: running [==================================================>] verify: Service converged [root@manager1 ~]# [root@manager1 ~]# [root@manager1 ~]# docker service ls ID NAME MODE REPLICAS IMAGE PORTS klqzg203vo8x php replicated 3/3 richarvey/nginx-php-fpm:latest [root@manager1 ~]# [root@manager1 ~]# [root@manager1 ~]# docker service ps k ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS xfshji5d37b2 php.1 richarvey/nginx-php-fpm:latest work2 Running Running 35 seconds ago 5s8qg5ek05nb php.2 richarvey/nginx-php-fpm:latest work1 Running Running 31 seconds ago aqjk5bd9tyzg php.3 richarvey/nginx-php-fpm:latest manager1 Running Running 35 seconds ago [root@manager1 ~]# 五、什么是docker-stack? 我们使用 docker service create 一次只能部署一个服务,我们可以使用docker-compose.yaml 我们可以一次启动多个服务或启动多个相关联的服务。 docker stack deploy -c docker-compose.yml wordpress
标签:compose,manager1,192.168,swarm,manager,docker,root 来源: https://www.cnblogs.com/k8s-pod/p/16388883.html