[英]Docker on Windows: how to connect to container from host using container IP?
[英]Cannot connect to guest docker container from host on port 1300 with netcat
我試圖遵循這個問題: 如何連接到在 docker 容器中運行的 netcat?
我有
C:\Users\Chloe\workspace\spinsci>docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0df9daa8d8cc b7bd807e363a "/bin/sh -c /bin/ash" 9 seconds ago Up 6 seconds 0.0.0.0:1300->1300/tcp optimistic_newton
C:\Users\Chloe\workspace\spinsci>docker exec -it 0df9daa8d8cc /bin/ash
/ # nc -l -p 1300
在我的主機上,我嘗試連接但它失敗了:
$ nc -vv localhost 1300
nc: connect to localhost port 1300 (tcp) failed: Connection refused
nc: connect to localhost port 1300 (tcp) failed: Connection refused
$ nc 127.0.0.1 1300
$ nc 0.0.0.0 1300
$ telnet localhost 1300
Trying ::1...
Connection failed: Connection refused
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
我的Dockerfile
僅僅是
FROM alpine:latest
EXPOSE 1300
CMD /bin/ash
運行docker inspect 0df9daa8d8cc
產量
...
"HostConfig": {
"PortBindings": {
"1300/tcp": [
{
"HostIp": "",
"HostPort": "1300"
}
]
},
...
"NetworkSettings": {
"Ports": {
"1300/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "1300"
}
]
},
...
"Networks": {
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
使用 Docker Toolbox (Engine 19.03.5) 因為 Windows 8.1。
Docker Toolbox 在運行在 virtualbox 中的 linux 虛擬機中運行 docker。 VM 有自己的虛擬 NIC,具有不同的 IP 地址。 它應該顯示在控制面板(或使用 ipconfig)的 Windows 適配器列表中,默認情況下 IP 位於 192.168.99.x 子網中。 因此,主機上的正確命令是nc 192.168.99.x 1300
,其中 x 是運行設置中的實際值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.