Невозможно выполнить проверку связи службы внутри контейнера 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 открыт публично. Я хочу, чтобы он был доступен только локально, а затем настроил его через обратный прокси-сервер. Спасибо.

0 ответов

Другие вопросы по тегам