如何将docker-machine端口转发到OSX上的主机端口?

Jul*_*eco 18 containers docker docker-machine

我正在我的公司提供一个私人docker容器,并希望我的同事能够访问我们的内部网络,问题是我的客户操作系统是OSX,所以我只能使用192.168.99.100:3000访问我的应用程序来自docker机器的默认ip.

如何将docker-machine 3000端口转发到我的主机80端口?

Fel*_*ets 25

此时,Docker Machine是在您的计算机上的VirtualBox下运行的虚拟机,因此要公开您的应用程序端口,您需要将虚拟机端口映射到主机端口.

要实现此目的,有两个选项,但在确保您的Docker Machine停止运行之前:

docker-machine stop default     # see PS below if docker machine isn't default
Run Code Online (Sandbox Code Playgroud)

选项1 - 使用VirtualBox界面

  • 打开VirtualBox Manager
  • 选择您的Docker Machine VirtualBox图像(例如:默认)
  • 打开设置 - >网络 - >高级 - >端口转发
  • 添加您的应用名称,所需的主机端口(例如:80)和您的访客端口(例如:3000)

选项2 - 使用VirtualBox命令行

只需使用您自己的参数运行以下命令:

VBoxManage modifyvm "dev" --natpf1 "myapp,tcp,,80,,3000"
Run Code Online (Sandbox Code Playgroud)

最后的考虑

现在您可以启动Docker Machine了:

docker-machine start default
eval $(docker-machine env default)
Run Code Online (Sandbox Code Playgroud)

然后启动应用程序Docker容器并测试它运行http:// localhost /.

PS:您的Docker Machine名称可能不是默认名称,在这种情况下相应地更改名称.

  • 没有必要先运行`docker-machine stop`.自答案公布以来,这可能已经发生了变化,但至少在过去的几个月里都是如此. (3认同)
  • 想通了 - “dev”应该是“default”以匹配虚拟机的名称,而“myapp”是您想要分配给这个新端口转发规则的任何名称。一般来说,一个好的名称是将其命名为您的应用程序的名称。 (2认同)