Я играю с Docker Swarm, пытаясь понять проблему IPv6 для Docker Swarm и оверлейной сети, когда я обнаружил странное поведение.
netstat должен показывать все соединения, но в сети наложения Dockerопубликованный порт, затем соединение с конечной точкой не отображается.
Работа для воспроизведения:
- Установка двух серверов с Docker
- Установка Docker и инициализация Docker Swarm
- Создание оверлейной сети
Развертывание nginx в оверлейной сети и публикация порта 80
Докерская сеть create - Перекрывающая служба оверлея nginx create --name my-nginx -цель публикации = 80, публикация = 80 --network nginx --replicas = 2 nginx
Затем подключиться с любого клиента к веб-серверу, созданному с помощью netcat:
nc 10.0.2.34 80
Проверьте вывод netstat с обеих сторон:
Клиент:
[root@docker1 centos]# netstat -ano | grep 80
tcp 0 0 10.0.0.208:39924 10.0.2.34:80 ESTABLISHED off (0.00/0/0)
на сервере:
[root@docker2 centos]# netstat -ano | grep 80
tcp6 0 0 :::80 :::* LISTEN off (0.00/0/0)
Вы не увидите соединение, которое было установленоКлиент.Но соединение работает, я могу получить главную страницу от nginx.
Может кто-нибудь объяснить это?