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

标签 docker containers docker-machine

我正在我的公司提供一个私有(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/

相关文章:

postgresql - 我在 docker-compose 中有一个带有 Postgresql 的 Java Spring 启动,org.postgresql.util.PSQLException : Connection to localhost:5432

amazon-web-services - 如何使 ECR 存储库公开?

docker - 使用 docker 容器共享主机上可用的 PCIe 虚拟功能

Docker:无效字符 'U' 寻找值的开头

scala - 在暂存或发布docker时sbt无法生成bin目录+其他问题

windows - 当我们在 Windows 中使用 docker 镜像和容器时,它存储在哪里?

visual-studio - 保存并运行从Visual Studio Docker支持创建的容器

css - 如何完美对齐所有 div?

windows - Docker 卡在 "Waiting for SSH to be available..."

postgresql - Kubernetes pod 如何连接到与主机在同一本地网络(集群外)中运行的数据库?