一、实验概述
实验环境:node3为swarm-manager,node1和node2为swarm-work
通过swarm工具部署wordpress
二、实验步骤
1、在node3上创建overlay网络,并会同步到其他节点,保证不同主机上的容器通信,这个机制由swarm完成,不需要再去安装etcd等类似的分布式存储
$ docker network create -d overlay demo
fow77yknnwvrvxid3et8lzrcl
[node3] (local) root@192.168.0.36 ~
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
ffef5876e807 bridge bridge local
fow77yknnwvr demo overlay swarm
2bf50319eeab docker_gwbridge bridge local
6a3a67dc1f08 host host local
27k8lku3ojep ingress overlay swarm
61972e69d1e0 none null local
2、在node3上执行创建mysql的命令
$ 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
r0t4o63cv7m59w6l4k25ax401
overall progress: 1 out of 1 tasks
1/1: running
verify: Service converged
3、查看mysql
$ docker service ls
ID NAME MODE REPLICAS IMAGEPORTS
r0t4o63cv7m5 mysql replicated 1/1 mysql:latest
$ docker service ps mysql
ID NAME IMAGE NODE DESIRED STATECURRENT STATE ERROR PORTS
zgio830cawxo mysql.1 mysql:latest node3 RunningRunning about a minute ago
4、在node3上执行创建wordpress的命令
$ docker service create --name=wordpress -p 80:80 --env WORDPRESS_DB_PASSWORD=root --env WORDPRESS_DB_HOST=mysql --network=demo wordpress
6vn1m4rmk5dtsmxwieq679388
overall progress: 1 out of 1 tasks
1/1: running
verify: Service converged
5、查看wordpress
$ docker service ps wdorpress
ID NAME IMAGE NODE DESIRED STATECURRENT STATE ERROR PORTS
aoaxlv4ncwy3 wordpress.1 wordpress:latest node1 RunningRunning 2 seconds ago
6、虽然wordpress运行在node1上,但是需访问三个node节点ip:80端口,均可进行安装