docker swarm 集群创建

一、 环境准备

1. 准备3台虚拟机,IP和主机名设置如下

192.168.71.137

manager1

192.168.71.141

worker1

192.168.71.140

worker2

2. 系统和软件版本

系统版本

[[email protected] ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

内核版本

[[email protected] ~]# uname -r

3.10.0-327.36.1.el7.x86_64

docker 版本

[[email protected] ~]# docker -v

Docker version 1.12.2, build bb80604

3. 防火墙开通相关端口

放行一下端口:

TCP  2377 集群管理通信所需

TCP and UDP 7946 节点间通信所需

TCP and UDP 4789 overlay 网络所需

命令如下:

firewall-cmd --add-port=2377/tcp

firewall-cmd --add-port=2377/tcp --permanent

firewall-cmd --add-port=7946/tcp --add-port 7946/udp

firewall-cmd --add-port=7946/tcp --add-port 7946/udp --permanent

firewall-cmd --add-port=4789/tcp --add-port 4789/udp

firewall-cmd --add-port=4789/tcp --add-port 4789/udp --permanent

二、 swarm集群创建

1. 创建swarm集群

初始化命令如下,我这里用192.168.71.137为manager

docker swarm init --advertise-addr <MANAGER-IP>

[[email protected] ~]# docker swarm init --advertise-addr 192.168.71.137

Swarm initialized: current node (8d1kzvnv99q2gy82ulrklezom) is now a manager.

To add a worker to this swarm, run the following command:

docker swarm join \

--token SWMTKN-1-12k7eupx7wbuhdhyb1qo2vu8q49x8k4uq0d0t62ksb8irlylex-6fz55egsirm1l5076pin7ksc6 \

192.168.71.137:2377

To add a manager to this swarm, run ‘docker swarm join-token manager‘ and follow the instructions.

根据以上提示,可知节点加入集群需执行以上返回的那条命令。

查看docker info,显示docker工作在swarm模式

[[email protected] ~]# docker info

...

Swarm: active

...

查看管理节点已启动起来一个节点

[[email protected] ~]# docker node ls

ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS

8d1kzvnv99q2gy82ulrklezom *  manager1  Ready   Active        Leader

在work1 、worker2上执行加入集群的命令

[[email protected] ~]# docker swarm join \

>     --token SWMTKN-1-12k7eupx7wbuhdhyb1qo2vu8q49x8k4uq0d0t62ksb8irlylex-6fz55egsirm1l5076pin7ksc6 \

>     192.168.71.137:2377

This node joined a swarm as a worker.

[[email protected] ~]# docker swarm join \

>     --token SWMTKN-1-12k7eupx7wbuhdhyb1qo2vu8q49x8k4uq0d0t62ksb8irlylex-6fz55egsirm1l5076pin7ksc6 \

>     192.168.71.137:2377

This node joined a swarm as a worker.

如果上面的命令不记得了,可以在manager1节点上用以下命令查看

[[email protected] ~]#  docker swarm join-token worker

To add a worker to this swarm, run the following command:

docker swarm join \

--token SWMTKN-1-12k7eupx7wbuhdhyb1qo2vu8q49x8k4uq0d0t62ksb8irlylex-6fz55egsirm1l5076pin7ksc6 \

192.168.71.137:2377

在manager1节点上再次查看node列表信息

[[email protected] ~]# docker node ls

ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS

8d1kzvnv99q2gy82ulrklezom *  manager1  Ready   Active        Leader

8iwemhb8ux2fedbdn12c9igii    worker2   Ready   Active

bdmj4stzpnwmkovonnxj6u4q9    worker1   Ready   Active

说明集群已创建完成。

时间: 2024-12-28 00:44:13

docker swarm 集群创建的相关文章

docker swarm集群及其UI部署

一.规划 ①swarm01作为manager节点,swarm02和swarm03作为worker节点. # cat /etc/hosts 127.0.0.1   localhost 192.168.139.175  swarm01  192.168.139.176  swarm02  192.168.139.177  swarm03 ②配置SSH免密登陆 # ssh-keygen -t rsa -P '' # ssh-copy-id -i .ssh/id_rsa.pub [email prote

云计算之路-阿里云上-容器难容:自建docker swarm集群遭遇无法解决的问题

我们从今年6月开始在生产环境进行 docker 容器化部署,将已经迁移至 ASP.NET Core 的站点部署到 docker swarm 集群上.开始我们选用的阿里云容器服务,但是在使用过程中我们遭遇了恐怖的路由服务(acsrouting)路由错乱问题 —— 请求被随机路由到集群中的任一容器,虽然后来阿里云修复了这个问题,但我们对容器服务失去了信心,走上了用阿里云服务器自建 docker swarm 集群的道路. 用上自建 docker swarm 集群之后,本以为可以在云上容器中过上安稳的日

非节点主机通过内网远程管理docker swarm集群

这是今天使用 docker swarm 遇到的一个问题,终于在睡觉前解决了,在这篇随笔中记录一下. 在 docker swarm 集群的 manager 节点上用 docker cli 命令可以正常管理集群.但是在另外一台不是集群节点的主机上,虽然设置了DOCKER_HOST环境变量 export DOCKER_HOST="tcp://manger节点内网IP:2377" 但连接不上 # docker ps Cannot connect to the Docker daemon at

Docker Swarm集群部署应用

在Docker Swarm集群部署应用 我们过去使用docker run的命令创建容器, 把前面替换成docker service create就行了. 建议搭建一个registry,为所的docker主机提供镜像下载,否则你需要在每个docker主机本地存在容器镜像. 所以搭建一个私有仓库,由私有仓库提供所需要的镜像, 本实验环境中用node1同时作为registry. 拉取本地私有仓库registry,查看registry镜像 基础环境 全部为CentOS7系统,Docker 版本为1.12

通过docker-machine和etcd部署docker swarm集群

本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使用一个集群,你运行的容器可能会在容器中的任何一个节点上运行: 首先盗一张 docker swarm的架构图: 图片来源 https://yeasy.gitbooks.io/docker_practice/content/swarm/intro.html 在使用 Swarm 管理docker 集群时,

从零开始搭建Docker Swarm集群

从零开始搭建Docker Swarm集群 检查节点Docker配置 1. 打开Docker配置文件(示例是centos 7)vim /etc/sysconfig/docker 2. 添加-H tcp://0.0.0.0:2375到OPTIONSOPTIONS='-g /cutome-path/docker -H tcp://0.0.0.0:2375' 3. CentOS6.6 需要另外添加-H unix:///var/run/docker.sockOPTIONS='-g /mnt/docker 

Docker Swarm集群初探

前言 相信Docker技术大家都有所了解,单个Docker能发挥的作用毕竟有限,也不便于管理,所以Docker得组集群来使用才能发挥强大的技术优势.既然要组集群那就涉及诸如Docker的资源调度.管理等等一系列问题.目前涉及Docker集群的三个主要的技术无外乎Swarm.Kubernetes.Mesos三种.从本文开始作者将会一一实践这几种主要的Docker集群技术,话不多说,现在开始. 注意:作者的kubernetes相关实践在此 环境准备 Mac OS X 10.13.2 Docker 1

云计算之路-阿里云上-容器难容:容器服务故障以及自建 docker swarm 集群故障

3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月22日,我们进行移除与重启节点的操作时引发了故障,详见 云计算之路-阿里云上-容器服务:移除节点引发博问站点短暂故障 . 3月24日,我们参考阿里云容器服务帮助文档-指定多节点调度通过给节点添加用户标签的方式成功移除了部分节点.我们是这么操作的,当时所有节点没有添加用户标签,给待移除节点之外的所有节

Docker Swarm集群中部署Traefik负载均衡器

一.创建单节点的Docker Swarm集群 docker swarm init 二.在Swarm集群中创建一个网络 docker network create --driver=overlay traefik --attachable 三.在Swarm集群中部署traefik负载均衡器服务 docker service create \ --name traefik \ --constraint=node.role==manager \ --publish 80:80 --publish 80