将主机指向具有静态域名的Docker容器

我已经在Docker容器中设置了一个Web服务,它只响应对http://pouac.localhost发出的HTTP请求。

所以,当前,当我想测试这个Docker容器时,我必须手动将该容器的IP地址添加到/etc/hosts/etc/hosts文件中。 这个IP地址从一个运行到另一个运行,所以我需要每次都得到它:

 docker inspect mycontainer 

…然后将其添加到/etc/hosts

它有效,但这是一个真正的痛苦。 我很确定有一个更好的方法来做到这一点。

如果我理解正确, Docker包含一个DNS服务器 。 所以我想我可以尝试将主机指向Docker DNS,这将是一个开始……但是我不知道在哪个地址运行Docker DNS。

有关信息,主机运行的是Ubuntu 16.04,而Docker容器则使用docker-compose启动。

首先,在/ etc / hosts的末尾添加以下行:

 127.0.0.1 pouac.localhost 

其次,暴露你的容器的TCP端口80。 为了做到这一点,请在docker-compose.yml文件中添加如下所示的内容:

 ports: - "80:80" 

然后,TCP端口80将暴露给您的主机的每个IP地址,因此将暴露给127.0.0.1上的TCP端口80,因此连接到http://pouac.localhost将连接到您的容器。

这听起来像码头集装箱对端口80上的请求作出响应。所以,您想要将您的机器上的某个端口映射到码头集装箱上的端口80,使用docker-compose.yml中相应服务的ports部分,就像谈论过在这个问题上