如何从本地网络上的另一台计算机访问docker容器

时间:2016-08-23 21:51:08

标签: networking docker

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

尽管发布了same question in Docker's Forum,答案却没有显示出来。另外,我一直在这里寻找,但解决方案发现它是关于在虚拟机中设置桥接选项,正如我之前所说,我使用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中工作的gog。

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

提前致谢。

3 个答案:

答案 0 :(得分:6)

解决方案:

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

我的本​​地计算机有一个名为本地连接的网络,其中包含ip 192.168.0.172(我试图从其他PC上访问此IP)。

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:-1)

使用此命令计算您的泊坞主机:

echo $DOCKER_HOST

它可能类似于tcp://192.168.99.100/2376,因此您的gogs容器的网址为http://192.168.99.100:5656