Не удается получить доступ к IP-адресу контейнера из докера хоста для стека Windows - PullRequest
0 голосов
/ 26 сентября 2018

Я использую следующий файл docker compose для создания моего стека роя Docker, в котором контейнеры Windows развернуты в Windows 10:

version: '3.2'

services:
  service1:
    image: myrepository/dotnet-framework:3.5-windowsservercore
    environment:
      - my_path="C:/app/build/app.exe"
      - my_arg= 1
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.id == asdfasdgasgasg
    volumes:
      - service1:C:/app
  service1:
    image: myrepository/dotnet-framework:3.5-windowsservercore
    ports:
      - target: 7878
        published: 7878
        mode: host
    environment:
      - my_path="C:/app/app.exe"
      - my_arg= 2
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.id == asdfasdgasgasg
    volumes:
      - service1:C:/app

volumes:
  service2:
    external:
      name: service1
  service1:
    external:
      name: service1

Как видите, service2 прослушивает порт 7878.Я знаю, как показано в этом сообщении, что я не могу добраться до этого порта, используя localhost:7878.Таким образом, я запускаю команду docker inspect containerID, чтобы выяснить IP-адрес контейнера.

enter image description here

Если я пингую контейнер service2 из service1 отвечает.Но если я попытаюсь получить доступ к порту 10.0.3.18:7878 с хоста, ответа не будет.Как я могу добраться до порта 7878 от хотов?С другой стороны, у меня есть контейнеры Linux, которые должны достичь контейнера Windows 'service2'.

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Windows обновлена ​​и все работает как положено.

0 голосов
/ 27 сентября 2018

Каждый из Docker-контейнеров в службе может связываться друг с другом по умолчанию, поскольку они запускаются в собственной частной сети.Вот почему вы можете пропинговать между сервисными контейнерами.

Порт 7878, который вы открыли, также будет доступен для хоста Windows 10 OS через ip-адрес хост-машины, а не ip-адрес контейнера.IP-адрес контейнера является частным даже для хоста.

Ping может не работать, так как вы не открыли порт ping в службе, и на изображении может не быть службы ping, чтобы ответить на ваш pingзапрос.Я могу ошибаться в этом последнем пункте.Ping не является хорошим методом проверки того, работает контейнер или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...