【问题标题】:How to access docker container from another machine on local network如何从本地网络上的另一台机器访问 docker 容器
【发布时间】:2016-08-23 21:51:08
【问题描述】:

我正在使用 Docker for Windows(我没有使用使用 VM 的 Docker Toolbox),但我无法从本地网络上的另一台机器上看到我的容器。在我的主机中,一切都很完美并且运行良好,但是,我希望其他人使用我的容器。

尽管发布了 same question in Docker's Forum ,但答案并没有显示出来。另外,我一直在寻找here,但解决方案发现它是关于在虚拟机中设置桥接选项,正如我之前所说,我将Docker用于不使用虚拟机的windows。

Docker 版本命令

Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:15:28 2016
 OS/Arch:      windows/amd64

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:15:28 2016
 OS/Arch:      linux/amd64

docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                           NAMES
789d7bf48025        gogs/gogs           "docker/start.sh /bin"   5 days ago          Up 42 minutes       0.0.0.0:10022->22/tcp, 0.0.0.0:5656->3000/tcp   gogs
7fa7978996b8        mysql:5.7.14        "docker-entrypoint.sh"   5 days ago          Up 56 minutes       0.0.0.0:8989->3306/tcp                          mysql

我要使用的容器是在 5656 端口工作的 gogs。

当我使用 localhost:5656 y 127.0.0.1:5656 正常工作,但是当我从其他机器使用我的本地网络 IP (192.168.0.127) 时,容器无法访问。

提前致谢。

【问题讨论】:

  • Docker for Windows 仍然使用虚拟机(Hyper-V 虚拟机)。也许这会有所帮助thomasmaurer.ch/2015/11/…
  • @techraf 是的,防火墙无法使用。 3306 来自 mysql 的容器,但我将其映射到 8989。3309 的可见性是什么意思,也许你想说我是否可以从其他网络访问 3000 端口。如果是这样,我也无法访问 3000。

标签: networking docker


【解决方案1】:

解决方案:

当我为 Windows 安装 Docker 时,它会创建一个名为 vEthernet (DockerNAT) 的网络(通常使用 ip 10.0.75.1)

我的本​​地机器有一个名为本地连接的网络,IP 为 192.168.0.172(我试图使用此 IP 从其他 PC 访问)。

到目前为止,我的本地机器有两个网络连接,所以我去了 控制面板 > 网络和共享中心 > 更改适配器设置我选择了这两个网络,然后右键单击选定的添加到网桥。这将创建一个名为 Ethernet 的第三个网络。

此时,我不知道Ethernet网络的Ip是什么,所以我执行了ipconfig命令,显示ip 192.168.0.17(本地连接的设置 strong> 和 vEthernet (DockerNAT) 消失,ips 10.0.75.1 和 192.168.0.172 停止工作)。

有了这个新的 ip (192.168.0.17),我尝试了从网络中的其他机器上,最后我可以访问容器 (192.168.0.17:5656)。

【讨论】:

    【解决方案2】:

    在 Hyper-V 设置中,将“Docker NAT”网络置于“外部”模式对我有用。 (我可以使用主机 IP 访问本地网络上的容器)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      相关资源
      最近更新 更多