Я следовал этим инструкциям здесь для создания кластера Docker Swarm из 3 узлов.
Вначале я открыл несколько портов с помощью ufw
для связи между узлами докера:
# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
2376/tcp ALLOW IN Anywhere
2377/tcp ALLOW IN Anywhere
7946/tcp ALLOW IN Anywhere
7946/udp ALLOW IN Anywhere
4789/udp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
2376/tcp (v6) ALLOW IN Anywhere (v6)
2377/tcp (v6) ALLOW IN Anywhere (v6)
7946/tcp (v6) ALLOW IN Anywhere (v6)
7946/udp (v6) ALLOW IN Anywhere (v6)
4789/udp (v6) ALLOW IN Anywhere (v6)
Как видите, порт 80 не открыт.
Итак, в конце руководства я развернул в кластере официальный образ докера nginx:
docker service create -p 80:80 --name webserver nginx
Я смог ввести IP-адрес своего сервера, и мне была представлена страница nginx hello world.
Теперь мне интересно, почему я могу получить доступ к веб-серверу, хотя порт 80 не открыт?