1

我正在尝试创建一个 Docker 容器,我可以从本地网络上的任何设备连接到该容器。具体来说,这个容器:https://hub.docker.com/r/codercom/code-server。我尝试过使用 Docker Desktop 和 Docker Toolbox,但我只能让它在我的主机设备上运行。如何配置我的网络或其他设置以允许本地网络上的其他设备连接到容器?

我尝试过关注类似的 stackoverflow 问题、docker 论坛和 youtube 视频。我尝试过设置桥接网络连接,但对我没有任何帮助。

这些是我访问过的一些网站,并试图将解决方案复制到我的类似问题。

 https://forums.docker.com/t/bridge-with-docker-for-windows/30936
 https://stackoverflow.com/questions/39111247/how-to-access-docker-container-from-another-machine-on-local-network
 https://blog.oddbit.com/post/2014-08-11-four-ways-to-connect-a-docker/

Edit1:我运行的命令是:docker run -it -p 127.0.0.3:8443:8443 -v "${PWD}:/home/coder/project" codercom/code-server --allow-http --no-auth这部分有效,但是当我尝试从同一网络上的另一台计算机访问 127.0.0.3:8443 时,它不起作用。我已经尝试从我上面发布的链接中找到解决方案,但我得到的结果相同,我输入的地址无法加载。

我想做的是从我的台式计算机托管代码服务器,并允许像笔记本电脑这样的设备连接到代码服务器。我目前在 Windows 10 pro 机器上。谁能引导我走向正确的方向?

4

1 回答 1

1

解决方案

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

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

到目前为止,我的本地机器有两个网络连接,因此我转到控制面板 > 网络和共享中心 > 更改适配器设置我选择了两个网络,然后右键单击选择的Add to bridge。这就创建了一个名为以太网的第三网络。

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

使用这个新 IP(192.168.0.17),我尝试从网络中的另一台机器上尝试访问容器(192.168.0.17:9090)。

重要的是,如果您启用了防火墙,那么您需要在 PowerShell 中执行以下脚本

if (!(Get-NetFirewallRule | where {$_.Name -eq “gitlab 9090”})) { New-NetFirewallRule -Name “gitlab 9090” -DisplayName “gitlab 9090” -Protocol tcp -LocalPort 9090 -Action Allow -Enabled True}

将 gitlab 和端口 9090 替换为您的映像名称和端口。

于 2019-09-16T11:07:49.207 回答