Docker集群

本文介绍了如何使用 Docker Swarm 创建并管理一个分布式的容器集群。包括搭建 Swarm 集群、节点角色分配、服务部署及负载均衡等内容。

环境: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  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值