docker swarm集群安装
2017-06-24 10:15
330 查看
1.环境准备
默认的镜像仓库是docker hub
2.安装docker
yum install docker
启动docker,验证是否安装成功,
systemctl restart docke
docker version
3.安装 docker swarm
4.加入节点
5.查看manager和node的token值
6.docker servie的使用
7.docker swarm network
新建service(不带-p参数)使用name=bridge网桥;
新建service(带-p参数)使name=ingress网桥。
容器间互通需使用overlay模式,所以新建一个overlay的网桥。
外部访问容器
7.node去激活(drain)
8.node角色的升级和降级(promote/demote)
end
ip | hostname |
---|---|
192.168.1.108 | master |
192.168.1.109 | slave1 |
2.安装docker
yum install docker
启动docker,验证是否安装成功,
systemctl restart docke
docker version
3.安装 docker swarm
[root@master ~]# docker swarm init --advertise-addr 192.168.1.108 Cannot connect to the Docker daemon. Is the docker daemon running on this host? [root@master ~]# systemctl start docker.service [root@master ~]# docker swarm init --advertise-addr 192.168.1.108 Swarm initialized: current node (4nsxcqtrorpaxj516i4157xui) is now a manager. To add a worker to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-4gr2j6tq4rj2s8qwty8keiffytp4dp9odqzg15j3ywwuzop3jd-64bap6fe721fzbtjqjnwwprom \ 192.168.1.108:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. [root@master ~]# docker info ... Swarm: active NodeID: 4nsxcqtrorpaxj516i4157xui Is Manager: true ClusterID: f0ybgw82rzwrssb8tu3o8svju Managers: 1 Nodes: 1 Orchestration: Task History Retention Limit: 5 Raft: Snapshot Interval: 10000 Heartbeat Tick: 1 Election Tick: 3 Dispatcher: Heartbeat Period: 5 seconds CA Configuration: Expiry Duration: 3 months Node Address: 192.168.1.108 ... [root@master ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4nsxcqtrorpaxj516i4157xui * master Ready Active Leader
4.加入节点
[root@slave1 ~]# docker swarm join \ > --token SWMTKN-1-4gr2j6tq4rj2s8qwty8keiffytp4dp9odqzg15j3ywwuzop3jd-64bap6fe721fzbtjqjnwwprom \ > 192.168.1.108:2377 This node joined a swarm as a worker. [root@master ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4nsxcqtrorpaxj516i4157xui * master Ready Active Leader e5wtqee69oe08i1zk28z4y2oa slave1 Ready Active [root@master ~]# docker info ... Swarm: active NodeID: 4nsxcqtrorpaxj516i4157xui Is Manager: true ClusterID: f0ybgw82rzwrssb8tu3o8svju Managers: 1 Nodes: 2 Orchestration: Task History Retention Limit: 5 Raft: Snapshot Interval: 10000 Heartbeat Tick: 1 Election Tick: 3 ...
5.查看manager和node的token值
[root@master ~]# docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-4gr2j6tq4rj2s8qwty8keiffytp4dp9odqzg15j3ywwuzop3jd-0gj34e7fvqz22vgli4f1pg9q9 \ 192.168.1.108:2377 [root@master ~]# docker swarm join-token worker To add a worker to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-4gr2j6tq4rj2s8qwty8keiffytp4dp9odqzg15j3ywwuzop3jd-64bap6fe721fzbtjqjnwwprom \ 192.168.1.108:2377
6.docker servie的使用
[root@master ~]# docker service create --replicas 1 --name nginxqinzhao nginx 3yirlwsspt6oi3i8chz9hj1sk [root@master ~]# docker service ls ID NAME REPLICAS IMAGE COMMAND 3yirlwsspt6o nginxqinzhao 1/1 nginx [root@master ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 618d0364f9b1 nginx:latest "nginx -g 'daemon off" 4 minutes ago Up 4 minutes 80/tcp nginxqinzhao.1.a3y4fjb7gdeqzyzsn3d104sm7 [root@master ~]# docker service scale nginxqinzhao=2 nginxqinzhao scaled to 2 这个可能要过一段时间 [root@master ~]# docker service ls ID NAME REPLICAS IMAGE COMMAND 3yirlwsspt6o nginxqinzhao 2/2 nginx [root@master ~]# docker service ps nginxqinzhao ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR a3y4fjb7gdeqzyzsn3d104sm7 nginxqinzhao.1 nginx master Running Running 10 minutes ago 0nqhsurr9i2s7oy1eqqftezer \_ nginxqinzhao.1 nginx master Shutdown Complete 10 minutes ago 46qh0ktmhicflwnefi0kl2ps9 nginxqinzhao.2 nginx slave1 Running Running 2 minutes ago root@slave1 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 628a6d72ad67 nginx:latest "nginx -g 'daemon off" 2 minutes ago Up 2 minutes 80/tcp nginxqinzhao.2.46qh0ktmhicflwnefi0kl2ps9 [root@master ~]# docker service scale nginxqinzhao=0 nginxqinzhao scaled to 0 [root@master ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@master ~]# docker service ls ID NAME REPLICAS IMAGE COMMAND 3yirlwsspt6o nginxqinzhao 0/0 nginx [root@master ~]# root@slave1 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@master ~]# docker service rm nginxqinzhao nginxqinzhao [root@master ~]# docker service ls ID NAME REPLICAS IMAGE COMMAND root@master ~]# docker service ps tomcatqinzhao ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR 5jubgv89xkj40uuusidae04yb tomcatqinzhao.1 tomcat:6 master Running Running 3 minutes ago 4b6hvh52m3kban314o427rg4r tomcatqinzhao.2 tomcat:6 slave1 Running Running 12 seconds ago [root@slave1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/tomcat 6 0694d09013e2 2 weeks ago 355.1 MB docker.io/nginx latest 958a7ae9e569 3 weeks ago 109.4 MB [root@master ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/tomcat 6 0694d09013e2 2 weeks ago 355.1 MB docker.io/nginx latest 958a7ae9e569 3 weeks ago 109.4 MB [root@master ~]# docker service ps tomcatqinzhao ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR 0j4vrxnjhoic3ycpomelil0d3 tomcatqinzhao.1 tomcat:8 master Running Running 9 seconds ago 5jubgv89xkj40uuusidae04yb \_ tomcatqinzhao.1 tomcat:6 master Shutdown Shutdown 34 seconds ago 8vzitc0p1zdcgqla1l5tawe1z tomcatqinzhao.2 tomcat:8 slave1 Running Running 37 seconds ago 4b6hvh52m3kban314o427rg4r \_ tomcatqinzhao.2 tomcat:6 slave1 Shutdown Shutdown about a minute ago
7.docker swarm network
[root@master ~]# docker network ls NETWORK ID NAME DRIVER SCOPE cf52809866e0 bridge bridge local 6ced1b95e1c0 docker_gwbridge bridge local b2c5a7968ea6 host host local 8azaxj4t7055 ingress overlay swarm e326d6c220ec none null local
新建service(不带-p参数)使用name=bridge网桥;
新建service(带-p参数)使name=ingress网桥。
容器间互通需使用overlay模式,所以新建一个overlay的网桥。
[root@master ~]# docker network create -d overlay --subnet 10.254.0.0/16 --gateway 10.254.0.1 test00 7b1dv1o8htyb5nccs7mvni9k4 [root@master ~]# docker service create --replicas 2 --name tomcat01 --network test00 tomcat:8 9fu81tdci7xmktdfe9r1zctl6 [root@master ~]# docker service create --replicas 2 --name tomcat02 --network test00 tomcat:8 3ad0qji2ibcvjdpn49p5n099h [root@master ~]# docker service ls ID NAME REPLICAS IMAGE COMMAND 3ad0qji2ibcv tomcat02 2/2 tomcat:8 9fu81tdci7xm tomcat01 2/2 tomcat:8 [root@master ~]# docker exec -it d8fc90b685e3 /bin/bash root@d8fc90b685e3:/usr/local/tomcat# ll bash: ll: command not found root@d8fc90b685e3:/usr/local/tomcat# l bash: l: command not found root@d8fc90b685e3:/usr/local/tomcat# ls LICENSE NOTICE RELEASE-NOTES RUNNING.txt bin conf include lib logs native-jni-lib temp webapps work root@d8fc90b685e3:/usr/local/tomcat# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 31: eth0@if32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default link/ether 02:42:0a:fe:00:06 brd ff:ff:ff:ff:ff:ff inet 10.254.0.6/16 scope global eth0 valid_lft forever preferred_lft forever inet 10.254.0.5/32 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::42:aff:fefe:6/64 scope link valid_lft forever preferred_lft forever 33: eth1@if34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:12:00:04 brd ff:ff:ff:ff:ff:ff inet 172.18.0.4/16 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::42:acff:fe12:4/64 scope link valid_lft forever preferred_lft forever root@d8fc90b685e3:/usr/local/tomcat# cat /etc/host cat: /etc/host: No such file or directory root@d8fc90b685e3:/usr/local/tomcat# cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 10.254.0.6 d8fc90b685e3 172.18.0.4 d8fc90b685e3 root@d8fc90b685e3:/usr/local/tomcat# cat /etc/ Display all 104 possibilities? (y or n) root@d8fc90b685e3:/usr/local/tomcat# cat /etc/resolv.conf search DHCP HOST nameserver 127.0.0.11 options ndots:0 root@d8fc90b685e3:/usr/local/tomcat# ping tomcat01 PING tomcat01 (10.254.0.2): 56 data bytes 64 bytes from 10.254.0.2: icmp_seq=0 ttl=64 time=0.156 ms 64 bytes from 10.254.0.2: icmp_seq=1 ttl=64 time=0.102 ms 64 bytes from 10.254.0.2: icmp_seq=2 ttl=64 time=0.101 ms 64 bytes from 10.254.0.2: icmp_seq=3 ttl=64 time=0.102 ms ^C--- tomcat01 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.101/0.115/0.156/0.024 ms root@d8fc90b685e3:/usr/local/tomcat# ping tomcat02 PING tomcat02 (10.254.0.5): 56 data bytes 64 bytes from 10.254.0.5: icmp_seq=0 ttl=64 time=0.046 ms 64 bytes from 10.254.0.5: icmp_seq=1 ttl=64 time=0.087 ms 64 bytes from 10.254.0.5: icmp_seq=2 ttl=64 time=0.079 ms 64 bytes from 10.254.0.5: icmp_seq=3 ttl=64 time=0.077 ms ^C--- tomcat02 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.046/0.072/0.087/0.000 ms
外部访问容器
[root@master ~]# docker service create --replicas 1 --name qinzhao -p 9909:8080 tomcat:8 08htoygq5jz1djtpl9v87oiwg [root@master ~]# docker service ps qinzhao ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR 4hjmqswgil07ld38z6krwmjwq qinzhao.1 tomcat:8 slave1 Running Running 47 seconds ago
7.node去激活(drain)
[root@master ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4nsxcqtrorpaxj516i4157xui * master Ready Active Leader e5wtqee69oe08i1zk28z4y2oa slave1 Ready Active [root@master ~]# docker service ls ID NAME REPLICAS IMAGE COMMAND 08htoygq5jz1 qinzhao 1/1 tomcat:8 3ad0qji2ibcv tomcat02 2/2 tomcat:8 9fu81tdci7xm tomcat01 2/2 tomcat:8 [root@master ~]# docker service ps qinzhao ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR 4hjmqswgil07ld38z6krwmjwq qinzhao.1 tomcat:8 slave1 Running Running 18 minutes ago [root@master ~]# docker service ps tomcat02 ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR 4ejujcdpa2jeaf0l1f3pz23zm tomcat02.1 tomcat:8 master Running Running 36 minutes ago 275lcqdccaq46ar0tz63cleef tomcat02.2 tomcat:8 slave1 Running Running 36 minutes ago [root@master ~]# docker node update --availability drain slave1 slave1 [root@master ~]# docker service ps tomcat02 ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR 4ejujcdpa2jeaf0l1f3pz23zm tomcat02.1 tomcat:8 master Running Running 37 minutes ago 0p04omx9d3fia6xqgqmhf385d tomcat02.2 tomcat:8 master Running Running 1 seconds ago 275lcqdccaq46ar0tz63cleef \_ tomcat02.2 tomcat:8 slave1 Shutdown Shutdown 3 seconds ago [root@master ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4nsxcqtrorpaxj516i4157xui * master Ready Active Leader e5wtqee69oe08i1zk28z4y2oa slave1 Ready Drain [root@master ~]# docker node update --availability active slave1 slave1 [root@master ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4nsxcqtrorpaxj516i4157xui * master Ready Active Leader e5wtqee69oe08i1zk28z4y2oa slave1 Ready Active
8.node角色的升级和降级(promote/demote)
[root@master ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4nsxcqtrorpaxj516i4157xui * master Ready Active Leader e5wtqee69oe08i1zk28z4y2oa slave1 Ready Active [root@master ~]# docker node promote slave1 Node slave1 promoted to a manager in the swarm. [root@master ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4nsxcqtrorpaxj516i4157xui * master Ready Active Leader e5wtqee69oe08i1zk28z4y2oa slave1 Ready Active Reachable [root@master ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4nsxcqtrorpaxj516i4157xui * master Ready Active Leader e5wtqee69oe08i1zk28z4y2oa slave1 Ready Active Reachable [root@master ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4nsxcqtrorpaxj516i4157xui * master Ready Active Leader e5wtqee69oe08i1zk28z4y2oa slave1 Ready Active Reachable [root@master ~]# docker node demote slave1 Manager slave1 demoted in the swarm. [root@master ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4nsxcqtrorpaxj516i4157xui * master Ready Active Leader e5wtqee69oe08i1zk28z4y2oa slave1 Ready Active
end
相关文章推荐
- Docker Swarm 集群图形化显示工具 Visualizer的安装及注意事项
- docker swarm 集群及可视化界面的安装及配置
- Kubernetes 和 Swarm 两种docker集群,基于ansible的自动化安装部署(已测)
- docker swarm 集群及可视化界面的安装及配置 推荐
- centos7下安装docker(21docker swarm集群创建)
- docker swarm 集群及可视化界面的安装及配置
- Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例
- docker + swarm 集群
- Windows 下安装使用docker swarm machine docker toolbox
- docker swarm集群搭建
- swarm+zookeeper配置docker集群
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
- Swarm创建docker集群:服务发现-etcd
- docker swarm集群TLS配置
- Docker Swarm集群
- Docker Swarm搭建生产环境的集群
- 通过docker-machine和etcd部署docker swarm集群
- 基于kubernetes构建Docker集群-安装篇
- 创建docker swarm集群的两种方式
- 使用docker安装部署Spark集群来训练CNN(含Python实例)