簡體   English   中英

無法從主機docker訪問Windows堆棧的容器IP

[英]Can't access container IP from host docker for windows stack

我正在使用以下docker compose文件來構建具有在Windows 10中部署的Windows容器的docker swarm堆棧:

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找出docker inspect containerID的IP地址。

在此處輸入圖片說明

如果我平容器service2service1 ,它響應。 但是,如果我嘗試從主機訪問端口10.0.3.18:7878 ,則沒有任何響應。 我怎么能從熱點到達7878端口? 另一方面,我有必須到達“ service2” windows容器的Linux容器。

默認情況下,服務中的每個Docker容器可以在它們自己的專用網絡上啟動時彼此通信。 這就是為什么您可以在服務容器之間ping。

您打開的端口7878也可以通過主機的ip地址而不是容器ip地址訪問主機窗口10 os。 容器的IP地址甚至對於主機os都是私有的。

由於您尚未打開服務中的ping端口,並且圖像中可能沒有ping服務來響應您的ping請求,因此ping可能無法工作。 關於這最后一點我可能是錯的。 Ping不是驗證容器是否正常工作的好方法。

Windows已更新,一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM