【问题标题】:Cannot connect to guest docker container from host on port 1300 with netcat无法使用 netcat 从端口 1300 上的主机连接到访客 docker 容器
【发布时间】:2020-05-17 14:32:50
【问题描述】:

我试着关注这个问题:How to connect to netcat running in docker container?

我有

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(引擎 19.03.5),因为 Windows 8.1。

【问题讨论】:

    标签: windows docker networking windows-8.1 netcat


    【解决方案1】:

    Docker Toolbox 在运行于 virtualbox 的 linux 虚拟机中运行 docker。 VM 有自己的虚拟 NIC,但 IP 地址不同。它应该显示在控制面板(或使用 ipconfig)的 Windows 适配器列表中,默认情况下 IP 位于 192.168.99.x 子网中。所以主机上的正确命令是nc 192.168.99.x 1300,其中 x 是您运行设置的实际值。

    【讨论】:

    • 我尝试了nc 192.168.99.1 1300nc 192.168.1.1 1300,但没有成功。 ...99.1VirtualBox Host-Only Network #5,它与 VirtualBox 中的 #2 网络适配器相同。
    • 你能ping通虚拟适配器吗?如果没有,请仔细检查主机上的子网掩码,确保可以从物理适配器访问 192.168.99 子网
    • 是的Reply from 192.168.99.1: bytes=32 time<1ms TTL=128
    猜你喜欢
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    相关资源
    最近更新 更多