如何隐藏单个主机名后面的Docker容器

我对Docker相当陌生。 我开始接触VM的思维模式,但是我意识到它使用了一个完全不同于VM的模式,甚至是传统的LXC容器。

理解networking如何工作是最大的挑战。 我试图使用Docker在需要一些相同端口的计算机上运行多个服务,以避免端口冲突。

我想使用主机的FQDN来访问它们,而不必担心将容器FQDN添加到DNS。 我将相关的容器端口转发到未使用的主机端口。

问题是,当我尝试从我的浏览器访问服务时,它被redirect到容器的FQDN,它无法parsing。 结果是“服务器未find”错误。

有没有办法隐藏主机的FQDN背后的所有容器,而不必解决容器的FQDN?

您可以使每个docker容器使用不同的外部端口,然后有一个像nginx或apache的服务器docker,这些docker反向代理请求。 我不得不build立这样的东西,将所有内容都放在一个主机名中,然后将所有stream量传递到相应的容器和端口。

Docker容器每次创build时都有新地址的困难。 您可以在启动时dynamic地找出他们的地址,并让代理容器以这些地址最后开始。 你可以通过“docker inspect”来获取这些地址,awk就是你想要的数据,或者你可以使用docker-py这样的库来获取相关的数据。