很抱歉,但这是我第一次使用DOCKER SWARM。我会问3个问题,很抱歉,但我不想提出3个不同的问题。无论如何,如果您确定甚至对其中一个问题也知道答案,请随时回答。我会支持你的回答。预先谢谢你。
1)我运行命令:docker service create --replicas 5 -p 80:80 --name web nginx.
运行此命令后,我可以在端口80上访问网站,但是当
我输入ufw status,它显示了一些端口,但没有显示port 80
。所以docker service create
会自动打开该已发布的端口,但是ufw status
并没有显示它已打开。
为什么会这样,我怎么能看到80端口确实打开?
2)桥接网络和覆盖网络的区别?
我认为,当网络是 bridge 且在同一网络(这是网桥驱动程序)上运行不同的图像容器时,它们可以 彼此连接(但它们必须位于同一主机上)。通过覆盖网络,不同的容器可以相互连接 (即使它们位于不同的主机上)。 我可以吗?
3)我运行命令
docker service create --replicas 5 -p 3306:3306 --name mysql_service --network=my-overlay -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql
使用端口3306和network = my-overlay创建mysql映像。 (这是一群)。然后我运行另一个命令
docker service create --replicas 2 -p 80:80 --network=my-overlay -e PMA_PORT=3306 -e PMA_HOST=mysql_service phpmyadmin/phpmyadmin
使用端口80,网络与先前的命令相同。并查看 PMA_HOST = mysql_service 。这是上一个的命令 名称。基本上我想要的是当我进入 80 端口时,它显示了phpmyadmin登录页面。但不允许我登录并说无法连接 mysql连接被拒绝。我在同一个覆盖网络中制作了两个图像,然后将第二个图像PMA_HOST设置为mysql_service。但仍然 无法连接。 有什么想法吗?