Невозможно выполнить проверку связи службы внутри контейнера Docker с хост-машины.
Я запускаю контейнер черезdocker-compose
в Ubuntu 20.04, и я не могу пропинговать или свернуть веб-сервер, который работает внутри, с хост-машины, на которой работает Docker.
Я дал контейнеру статический IP-адрес, и если я открою оболочку в контейнере, я увижу, что служба работает нормально, и сверну ее, как и ожидалось.
Мой docker-compose.yml выглядит так:
version: "2.1"
services:
container:
image: imagename
container_name: container
networks:
net:
ipv4_address: 172.20.0.5
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
ports:
- 9000:9000
restart: unless-stopped
networks:
net:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
gateway: 172.20.0.1
Но если яcurl -v 172.20.0.5:9000
с той же машины я получаю
* Trying 172.20.0.5:9000...
* TCP_NODELAY set
* connect to 172.20.0.5 port 9000 failed: No route to host
* Failed to connect to 172.20.0.5 port 9000: No route to host
* Closing connection 0
curl: (7) Failed to connect to 172.20.0.5 port 9000: No route to host
Я думаю, это как-то связано с iptables или правилами брандмауэра? Я вообще не менял их по сравнению с настройками Docker по умолчанию. Сhost
в сетевом режиме он работает, но порт 9000 открыт публично. Я хочу, чтобы он был доступен только локально, а затем настроил его через обратный прокси-сервер. Спасибо.