1,现在manager创建一个网络:
docker network create -d overlay demo
创建完成后,在node上没有显示。
[root@docker-host ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
1fd606d8c7ff bridge bridge local
zy22adwah6yi demo overlay swarm
62202f409594 docker_gwbridge bridge local
09143343cb33 example-voting-app_back-tier bridge local
f9ed185a159b example-voting-app_front-tier bridge local
9bcacc5a16b9 flask-redis_default bridge local
da49cac1eddb host host local
pjbn7946dtoi ingress overlay swarm
51f4cda404e0 none null local
a40c40ff8d5a wordpress_default bridge local
2,创建一个mysql的service
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 mysql
查看是否创建成功
docker service ps mysqll
docker ps
3,创建一个wordpres service
docker service create --name wordpress -p 80:80 --env WORDPRESS_DB_PASSWORD=root --env WORDPRESS_DB_HOST=mysql --network demo wordpress
查看:
docker service ps wordpress
意义:
通过创建的两个应用:wordpress和mysql,他们分布在不同的节点上,但是是可以相互通信的,
例如:wordpress安装在node1的节点上,mysql安装在node2的节点上,我们通过输入节点2的地址可以安装wordpress,安装完成后,输入node1的节点也是可以正常访问网站的。他们是通过servername相互发现的。
通过查看wordpress和mysql正在运行
mysql运行在node2节点,wordpress是运行在node1节点
这时候查看node2节点时候:
查看node3节点,demo网络已经同步了