我正在我的公司提供一个私有(private) docker 容器,并希望我的同事能够访问我们的内部网络,问题是我的客户操作系统是 OSX,因此我只能使用 192.168 访问我的应用程序。 99.100:3000 来自 docker 机器的默认 ip。
如何将 docker-machine 3000 端口转发到我的主机 80 端口?
最佳答案
此时Docker Machine是你机器中运行在VirtualBox下的虚拟机,所以要暴露你的应用程序端口你需要将你的虚拟机端口映射到你的主机端口。
要实现这一点,有两种选择,但在确保您的 Docker 机器停止运行之前:
docker-machine stop default # see PS below if docker machine isn't default
选项 1 - 使用 VirtualBox 界面
- 打开 VirtualBox 管理器
- 选择您的 Docker Machine VirtualBox 镜像(例如:默认)
- 打开设置 -> 网络 -> 高级 -> 端口转发
- 添加您的应用名称、所需的主机端口(例如:80)和您的访客端口(例如:3000)
选项 2 - 使用 VirtualBox 命令行
只需使用您自己的参数运行以下命令:
VBoxManage modifyvm "dev" --natpf1 "myapp,tcp,,80,,3000"
最终考虑
现在你可以开始运行你的 Docker 机器了:
docker-machine start default
eval $(docker-machine env default)
然后启动您的应用程序 Docker 容器并测试它是否运行 http://localhost/ .
P.S.:您的 Docker 机器名称可能不是默认,在这种情况下请相应地更改名称。
关于docker - 如何将 docker-machine 端口转发到 OSX 上的主机端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36286305/