首页 > IT职业 > IT职场 > Docker Swarm部署(1)
Docker Machine 创建三台主机
docker-machine create --driver virtualbox defaultdocker-machine create --driver virtualbox worker1 docker-machine create --driver virtualbox worker2
--driver 指定那个由那种驱动来创建虚拟机,下面是一份驱动列表,可选择所需的驱动来创建虚拟机。
Machine drivers List
help 查看帮助信息
active 查看活动的Docker主机
config 输出连接的配置信息
create 创建一个Docker主机
env 显示连接到某个主机需要的环境变量
inspect 输出主机更新信息
ip 获取Docker主机地址
kill 停止某个Docker主机
ls 列出所有管理的Docker主机
regenerate-certs 为某个主机重新成功TLS认证信息
restart 重启Docker主机
rm 删除Docker主机
scp 在Docker主机之间复制文件
ssh SSH到主机上执行命令
start 启动一个主机
status 查看一个主机状态
stop 停止一个主机
upgrade 更新主机Docker版本为最新
url 获取主机的URL
初始化集群的时候,会自动把当前节点设置为管理节点
docker swarm init --advertise-addr 192.168.99.100(manager节点IP)
--advertise-addr:publish主节点IP
得到default的join --token,随后用来将worker1,worker2加入manger集群
docker@default:~$ docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-34aqnqamrm71s2dqtoyk6jnddkslbhf7jrwnvb7sh1xvc7dv3a-ebtqa2s1us3kaav7vui2wf4nb 192.168.99.100:2377docker@default:~$ docker info | grep -A5 Swarm Swarm: active NodeID: yx2548i6b8sr1a7pa9fm04ki5 Is Manager: true ClusterID: pn54eo31jedgf09wi44my835h Managers: 1 Nodes: 1 docker@default:~$
如果其他节点关闭,使用以下方法启动节点虚拟机
# 启动worker1,worker2$ docker-machine start worker1 $ docker-machine start worker2
在worker1 ,worker2上运行以下命令,加入default主机上创建的swarm集群
docker@default:~$ docker swarm join --token SWMTKN-1-14samnq4vi3brud74f3erylzx8ngx08bo4m8amk579i6y1yif7-b60g94a6r3d9qtl60mlva22yp 192.168.99.100:2377
docker@default:~$ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION yx2548i6b8sr1a7pa9fm04ki5 * default Ready Active Leader 18.05.0-ce kn5d0vim6zw2a4kvfvkq627ec worker1 Ready Active Reachable 18.05.0-ce2hd6p5acvo0xd3appptq9io9p worker2 Ready Active Reachable 18.05.0-ce# 删除结点docker@default:~$ docker node rm worker1(结点主机名)
部署一个nginx服务
# 先创建一个名为network_swarm的网络docker network create --driver overlay network_swarm docker network ls# 创建一个名为service_test的服务,并制定网络名network_swarm,使用nginx镜像docker@default:~$ docker service create --replicas 2 -p 8888:80 --name nginx nginx:latest sw8j3fy3tzow7pjujj2wqnu3g overall progress: 2 out of 2 tasks 1/2: running [==================================================>] 2/2: running [==================================================>] verify: Service converged # 查看服务状况docker@default:~$ docker service ls ID NAME MODE REPLICAS IMAGE PORTS sw8j3fy3tzow nginx docker@default:~$ docker service ps nginx ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS x4wp2ii0umu9 nginx.1 nginx:latest worker1 Running Running 25 seconds ago 3u2zzr1a4kjc nginx.2 nginx:latest default Running Running 25 seconds ago
---replicas 2 表示创建服务的实例个数(默认是一个),即在2其中两个docker主机上分别创建一个nginx服务。
从图中可以看出nginx服务启动在了default和worker1主机上
由上可以看出,有一台集群中worker1的主机上没有运行nginx服务,通过以下命令在worker1主机上运行一个nginx服务,并通过docker service ps nginx查看
docker@default:~$ docker service scale nginx=3nginx scaled to 3overall progress: 3 out of 3 tasks 1/3: running [==================================================>] 2/3: running [==================================================>] 3/3: running [==================================================>] verify: Service converged docker@default:~$ docker service ps nginx ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS x4wp2ii0umu9 nginx.1 nginx:latest worker1 Running Running 5 minutes ago 3u2zzr1a4kjc nginx.2 nginx:latest default Running Running 5 minutes ago i252oxks2kib nginx.3 nginx:latest worker2 Running Running 7 seconds ago
从上面可以看到三台主机上nginx服务均已启动,使用任意的主机IP进行访问


测试成功!!
作者:知足常乐晨
链接:https://www.jianshu.com/p/e1df8a80f6c2
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2311/viewspace-2805815/ ,如需转载,请注明出处,否则将追究法律责任。