Docker Swarm学习笔记二

搭建基础环境

官方文档中演示时用到了五台主机/虚拟机;

《Docker Swarm学习笔记二》

这里因为资源有限,只用三台;

《Docker Swarm学习笔记二》

配置节点

接下来的所有操作都是以root用户进行的。

升级软件包(操作对象:manager0,node0,node1);

apt-get update && apt-get -y upgrade && apt-get -y install curl

安装Docker引擎(操作对象:manager0,node0,node1);

curl -sSL https://get.docker.com/ | sh

配置并启动Docker引擎,令其监听Swarm节点的2375端口(操作对象:node0,node1

docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

配置发现后端(操作对象:manager0

前面已经列出了本次学习用到的三台主机的主机名以及其IP地址,下面的操作用到的IP也是这三个主机IP。

拉取镜像

docker pull progrium/consul

启动发现后端

docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap

创建Swarm集群

创建主管理员(操作对象:manager0

docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise 192.168.2.56:4000 consul://192.168.2.56:8500

因为这里的manager0既是主管理员又是发现服务后台,所以--advertiseconsul的ip都是192.168.2.56

配置节点(操作对象:node0,node1

# 操作对象:node0(IP:192.168.2.77)
docker run -d swarm join --advertise 192.168.2.77:2375 consul://192.168.2.56:8500
# 操作对象:node1(IP:192.168.2.129)
docker run -d swarm join --advertise 192.168.2.129:2375 consul://192.168.2.56:8500

获取主管理员和各节点的信息(操作对象:manager0):

docker -H :4000 info

使用集群

在集群中运行容器(操作对象:manager0):

docker -H :4000 run hello-world

通过多次重复上面的操作出现了下面的结果,主管理员在两个节点上创建的容器的数量趋于相等(这里运行的容器是跑的一个core api demo,如果运行的是上面的指令,状态应该是Exited)。

《Docker Swarm学习笔记二》

主管理员操作节点的容器:

# 查看集群节点的容器列表
docker -H :4000 ps

# 删除容器
docker -H :4000 rm -f ContainerID

# 启/停容器
docker -H :4000 start/stop/restart ContainerID

与直接操作的区别就是docker后面加了-H :4000

    原文作者:Ably
    原文地址: https://segmentfault.com/a/1190000005966670
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞