一、 实现功能
在swarm集群基础上,搭建wordpress应用。
二、准备
1. 创建一个overlay网络
[vagrant@swarm-manager ~]$ docker network create -d overlay demo
vri653ymi5acr4yiyz0kuzvvm
2. 查看manager节点的网络
[vagrant@swarm-manager ~]$ docker network ls
NETWORK ID NAME DRIVER SCOPE
2057f178ab36 bridge bridge local
vri653ymi5ac demo overlay swarm
a40b13720c71 docker_gwbridge bridge local
30ec5d57cd50 host host local
turi640gewgv ingress overlay swarm
d67835b73aff none null local
3. 在其他两台worker1和worker2上,暂时查看不到新添加的demo网络
三、创建wordpress应用
1.创建mysql
[vagrant@swarm-manager ~]$ docker service create --name mysql --env MYSQL_ROOT_PASSWORD=root --env MYSQL_DATABASE=wordpress --network demo --mount type=volume,source=mysql-data,destination=/var/lib/mysql hub.c.163.com/library/mysql:5.7
lb0xc43f8fggcjorrtw154n1z
overall progress: 1 out of 1 tasks
1/1: running
verify: Service converged
2.查看
(1)查看service服务
[vagrant@swarm-manager ~]$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
lb0xc43f8fgg mysql replicated 1/1 hub.c.163.com/library/mysql:5.7
[vagrant@swarm-manager ~]$ docker service ps mysql
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
ul33ioy5kuv7 mysql.1 hub.c.163.com/library/mysql:5.7 swarm-worker2 Running Running 2 minutes ago
(2)查看docker进程
-》进入docker-worker2
-》查看进程
[vagrant@swarm-worker2 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
97d0c72f09c4 hub.c.163.com/library/mysql:5.7 "docker-entrypoint.s…" 2 hours ago Up 2 hours 3306/tcp mysql.1.ul33ioy5kuv78p9fnj7qj6m3v
4.创建第二个service:wordpress服务
docker service create --name wordpress -p 80:80 --env WORDPRESS_DB_PASSWORD=root --env WORDPRESS_DB_HOST=mysql --network demo hub.c.163.com/library/wordpress:latest
5. 查看wordpress的service
[vagrant@swarm-manager ~]$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
lb0xc43f8fgg mysql replicated 1/1 hub.c.163.com/library/mysql:5.7
7lzg8gq5o2dh wordpress replicated 1/1 hub.c.163.com/library/wordpress:latest *:80->80/tcp
[vagrant@swarm-manager ~]$ docker service ps wordpress
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
vzclx8t32a5c wordpress.1 hub.c.163.com/library/wordpress:latest swarm-manager Running Running 25 minutes ago
四、查看部署完成后wordpress应用
1.进入wordpress应用部署的节点:manager查看网址
[vagrant@swarm-manager ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:26:10:60 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
valid_lft 85984sec preferred_lft 85984sec
inet6 fe80::5054:ff:fe26:1060/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:d0:0a:34 brd ff:ff:ff:ff:ff:ff
inet 192.168.205.20/24 brd 192.168.205.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fed0:a34/64 scope link
valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:60:58:96:49 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:60ff:fe58:9649/64 scope link
valid_lft forever preferred_lft forever
5: docker_gwbridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:01:b4:0c:67 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global docker_gwbridge
valid_lft forever preferred_lft forever
inet6 fe80::42:1ff:feb4:c67/64 scope link
valid_lft forever preferred_lft forever
2. 查看http://192.168.205.20:80/
3.配置
4.登录
-》内容
五、备注
1. 浏览器中输入swarm-worker1地址或者swarm-worker2地址都可以登录
http://192.168.205.21:80/或者http://192.168.205.22:80/
2.在worker2上启动mysql之前,是没有demo这个overlay网络的。当mysql被分配到worker2之后,worker2后面有这个overlay网络。
[vagrant@swarm-worker2 ~]$ docker network ls
NETWORK ID NAME DRIVER SCOPE
cac057246157 bridge bridge local
vri653ymi5ac demo overlay swarm
ed3a25c905a2 docker_gwbridge bridge local
59872353621b host host local
turi640gewgv ingress overlay swarm
5c47cb2fbca0 none null local