『中级篇』在docker-swarm集群里通过serivce部署wordpress(46)

332 阅读2分钟

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:『中级篇』在docker-swarm集群里通过serivce部署wordpress(46)

上一节说到了docker-swarm的service,创建和操作。scale 进行横向扩展。之前通过docker-compose也部署过,本次就在docker-swarm下部署wordpress。

开始部署

之前讲过Overlay网络,不在同一台机器也可以完成正常的通信。这里就通过overlay网络的方式。

  • 创建overlay的网络
 docker network create -d overlay demo

  • 创建mysql
#等待了1个小时才安装好。真求慢
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:5.7

这里说明下,一开始我没加mysql的版本直接下载的laster版本其实是8.0结果老报无法连接,据说是加密问题,这个坑我填了,直接换成了5.7 完美运行



  • 创建wordpress
#这个比较快,安装wordpress
docker service create --name wordpress -p 80:80 --env WORDPRESS_DB_PASSWORD=root --env WORDPRESS_DB_HOST=mysql --network demo wordpress

可以看出来 mysql在worker2机器上运行,wordpress在manager这个机器上运行

  • 运行wordpress

发现一个问题:明明wordpress在manager这个机器上运行 也就是172.28.128.3这个机器,结果是
172.28.128.5
172.28.128.4
172.28.128.3
这3个地址都可以访问,这是为什么呢? 这个问题下次我来解答吧


  • 直接我们在manager里面创建了network demo

现在看看worker1 和worker2 里面有没有这个demo

image.png
image.png

PS :不知道大家还有没有影响讲docker的多机网络的时候,多机的overlay网络的时候,使用的第三方的kv的外置的第三方的存储etcd。我们在用了swarm就不需要这个第三方了,整个这块是swarm自己来维护的,swarm的底层机制会同步网络的创建。最后对于所有的clus节点都可以可以访问service的wordpress的问题,下次在说吧。