1

这是我运行 docker 容器的方式 -

docker run --name docker-test-server -p 5000:5000 -p 4444:4444

容器操作系统 - Ubuntu 14.04 LTS

现在,由于我已将容器的 4444 映射到机器的容器,因此我尝试连接 -

root@localhost:/var/repo# nc -vz 127.0.0.1 4444
Connection to 127.0.0.1 4444 port [tcp/*] succeeded!

现在我进入外壳 -

docker exec -it docker-test-server /bin/bash

成功进入,我尝试获取机器的IP地址。

root@ec919687cda8:/# ifconfig

eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:09
          inet addr:172.17.0.9  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2227 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2199 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:166686 (166.6 KB)  TX bytes:121473 (121.4 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

现在我从容器中出来,并尝试通过提供在 ifconfig 中找到的容器的 IP 地址从运行容器的机器连接到容器 -

nc -vz 172.17.0.9 4444
nc: connect to 172.17.0.9 port 4444 (tcp) failed: Connection refused

有人可以解释一下吗

  1. 为什么我无法连接到机器?

  2. 我该怎么做才能连接到机器?

我正在运行一个仅安装 ubuntu 14.04 并公开 2 个端口的裸容器。没有什么花哨。

谢谢。

4

1 回答 1

0

您需要禁用防火墙或使用sudo ufw disablesudo ufw将端口添加到您的 ubuntu 防火墙

我也面临同样的问题,但不是连接被拒绝,而是超时。

于 2021-07-15T15:12:06.427 回答