环境:Red Hat Enterprise Linux Server release 7.2 (Maipo)
Firewalld,sexlinux都关闭
Docker2 172.25.254.122 master
Docker3 172.25.254.123 slave
Docker4 172.25.254.124 slave
[root@docker2 ~]# systemctl start docker
[root@docker2 ~]# docker swarm init ###创建swarm集群
Swarm initialized: current node (0r804hnbrntmjc66okjszle1n) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-4e24fm9dsiou9hl7a4o2k1h5892qvkqapnhhyz6lg8ngs7u71d-aqyp13mb7j470b1valzma9xic \
172.25.254.122:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
看着提示操作:
[root@docker3 ~]# systemctl start docker
[root@docker3 ~]# docker swarm join \
> --token SWMTKN-1-4e24fm9dsiou9hl7a4o2k1h5892qvkqapnhhyz6lg8ngs7u71d-aqyp13mb7j470b1valzma9xic \
> 172.25.254.122:2377
This node joined a swarm as a worker.
[root@docker4 ~]# systemctl start docker
[root@docker4 ~]# docker swarm join \
> --token SWMTKN-1-4e24fm9dsiou9hl7a4o2k1h5892qvkqapnhhyz6lg8ngs7u71d-aqyp13mb7j470b1valzma9xic \
> 172.25.254.122:2377
This node joined a swarm as a worker.
[root@docker2 ~]# docker node list ###查看docker集群的列表
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
0r804hnbrntmjc66okjszle1n * docker2 Ready Active Leader
5zomklrtlcd7h4gxiwcbzpoyb docker4 Ready Active
b9tto36nv1ynpsjquiu6lkw8b docker3 Ready Active
Docker swarm负载均衡高可用实验:
分别导入nginx.tar,flask.tar
[root@docker2 ~]# mkdir python
[root@docker2 ~]# cd python/
[root@docker2 python]# vim test.py
[root@docker2 python]# docker run -it --name vm1 python:flask bash
root@27670c7b3dc7:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
运行一个容器,将刚写好的python程序复制到容器中
[root@docker2 python]# docker cp test.py vm1:/
测试:
[root@docker2 ~]# docker commit vm1 python:test
sha256:a309556dd88aaa4e2e04f8832b91c80fc81a4137b4a5ec3d7884b109369f1544
[root@docker2 ~]# docker run -d -p 80:5000 python:test python /test.py
876910aceabfbc2c5d9526077d0cc8311c62cad14def93567a3208b5450d1449
[root@docker2 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
876910aceabf python:test "python /test.py" 10 seconds ago Up 6 seconds 0.0.0.0:80->5000/tcp stoic_shockley
将测试好的python:test镜像导出为test.tar
[root@docker2 ~]# docker save python:test > test.tar
[root@docker3 ~]# docker load -i flask.tar
bd750002938c: Loading layer 45.19 MB/45.19 MB
fb49515ec5d8: Loading layer 126.5 MB/126.5 MB
35a0078b4d2e: Loading layer 322.6 MB/322.6 MB
894b77b23522: Loading layer 1.454 MB/1.454 MB
5f70bf18a086: Loading layer 1.024 kB/1.024 kB
df4be4b310b4: Loading layer 64.99 MB/64.99 MB
d4d765d0d446: Loading layer 6.29 MB/6.29 MB
248917a5efb6: Loading layer 7.218 MB/7.218 MB
Loaded image: python:flask
[root@docker3 ~]# which python
/usr/bin/python
[root@docker3 ~]# docker load -i test.tar
767dc5843b3c: Loading layer 3.584 kB/3.584 kB
Loaded image: python:test
[root@docker4 ~]# docker load -i flask.tar
bd750002938c: Loading layer 45.19 MB/45.19 MB
fb49515ec5d8: Loading layer 126.5 MB/126.5 MB
35a0078b4d2e: Loading layer 322.6 MB/322.6 MB
894b77b23522: Loading layer 1.454 MB/1.454 MB
5f70bf18a086: Loading layer 1.024 kB/1.024 kB
df4be4b310b4: Loading layer 64.99 MB/64.99 MB
d4d765d0d446: Loading layer 6.29 MB/6.29 MB
248917a5efb6: Loading layer 7.218 MB/7.218 MB
Loaded image: python:flask
[root@docker4 ~]# docker load -i test.tar
767dc5843b3c: Loading layer 3.584 kB/3.584 kB
Loaded image: python:test
[root@docker2 ~]# docker service create --name flask --replicas 3 --publish 80:5000 python:test python /test.py
bqzdxgm92tnpkidkbq4yxgkn4
[root@docker2 ~]# docker service ps flask ####查看集群服务
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR
coxmu95asssavegmqebtkiqpc flask.1 python:test docker3 Running Preparing 3 seconds ago
6pruxw9vjzfegvh042n8gzz8r flask.2 python:test docker4 Running Preparing 2 seconds ago
em93bd67sln3cyu2zu92u4wxq flask.3 python:test docker2 Running Preparing 3 seconds ago
本文介绍了如何使用 Docker Swarm 创建并管理一个分布式的容器集群。包括搭建 Swarm 集群、节点角色分配、服务部署及负载均衡等内容。
1759

被折叠的 条评论
为什么被折叠?



