【发布时间】:2021-07-15 23:12:06
【问题描述】:
这是我运行 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!
现在我进入 shell -
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
谁能解释一下
为什么我无法连接到机器?
如何连接机器?
我正在运行一个仅安装 ubuntu 14.04 并公开 2 个端口的裸容器。没有什么花哨。
谢谢。
【问题讨论】:
-
你有 2 个容器,docker-test-server 和 docker-pub-server?你能发一个
docker port吗? -
你的主机是什么?什么操作系统?你用的是什么版本的docker?
-
@VonC 主机操作系统 - 谷歌云上的 ubuntu 14.04。 Docker 版本 1.10.1,构建 9e83765
-
@user2915097 - 不,我没有两个容器。只有docker-test-server。
docker port docker-test-server 4444/tcp -> 0.0.0.0:4444 5000/tcp -> 0.0.0.0:5000 -
你应该不需要进入容器,当你映射一个端口时,你应该从你的主机访问它,使用浏览器localhost:5000或类似