访问 Docker 容器

访问 Docker 容器

例如,我有一台主机HM(Mac OS)。HM我在里面安装了包含一个虚拟机(boot2docker)的 Virtual Box VM1192.168.99.1在我的主机接口上)。

VM1我有 docker 的 bridge0 接口,地址是 172.17.0.1/16,我在上面运行了两个 nginx容器172.17.0.2:80172.17.0.3:80

因此,如果我在里面使用VM1这些地址的 curl,我将得到预期的答案。假设对于172.17.0.2它将是Hello, 1 nginx!,对于172.17.0.3-Hello, 2 nginx!

那么问题是 - 是否可以从我的 Mac OS 主机上的不同地址访问这些 nginx 容器? 也许我可以运行某种 VPN?

目前,我只能公开容器内部的端口VM1并通过地址从主机访问它们192.168.99.1

答案1

目前我发现了一个简单的解决方案。

我已经为虚拟接口创建了一个别名VM1。并在 iptables 中设置从外部 ips 到容器 ips 的路由

答案2

您还可以使用 -p(--publish)docker 标志来公开不同的端口。

示例:-p 81:80在 172.17.0.2 容器中和-p 82:80在 172.17.0.3 容器中。

您还可以设置另一个 nginx 来监听配置的虚拟域的 80 端口,并将请求代理/转发到其他机器。

相关内容