[英]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地址。
如果我平容器service2
從service1
,它響應。 但是,如果我嘗試從主機訪問端口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.