将主机指向具有静态域名的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
部分,就像谈论过在这个问题上