如何从本地networking上的另一台机器访问Docker容器

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

尽pipe在Docker的论坛上发表了同样的问题 ,但答案并没有显示出来。 另外,我一直在寻找这里,但解决scheme发现它是关于在虚拟机中设置网桥选项,正如我之前所说,我正在使用Docker for 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。

当我使用本地主机:5656和127.0.0.1:5656正常工作,但是当我使用我的本地networkingIP(192.168.0.127)从其他机器容器无法访问。

提前致谢。

解:

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

我的本地机器有一个networking称为本地连接与IP 192.168.0.172(这个IP我试图从其他PC访问)。

到目前为止,我的本地机器有两个networking连接,所以我去了控制面板 > networking和共享中心 > 更改适配器设置我select了这两个networking,我右键单击select添加桥接 。 这创build了第三个称为以太网的networking

在这一点上,我不知道以太网的Ip是什么,所以我执行ipconfig命令,显示ip 192.168.0.17( 本地连接vEthernet(DockerNAT)的设置消失,ips 10.0.75.1和192.168。 0.172停止工作)。

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

使用这个命令来计算你的docker主机:

 echo $DOCKER_HOST 

它可能会是tcp://192.168.99.100/2376 ,所以你的gogs容器的URL将是http://192.168.99.100:5656

在Hyper-V设置中,将“Docker NAT”networking设置为“外部”模式。 (我可以通过我的主机的IP访问我的本地networking上的容器)