如何将主机名分配给Docker容器?

时间:2016-08-05 23:56:49

标签: docker dockerfile docker-machine

我在Windows上运行Docker(不是本机版本,即通过docker-machine在VM上运行的版本。)

目前我有这样的访问网站:

192.168.99.100:8080 for website 1

192.168.99.100:8081 for website 2

192.168.99.100:8082 for website 3

这显然是一种真正的痛苦。

我希望能够像以前那样使用Apache虚拟主机来修改hosts文件,然后输入类似:website1.dev

如何为Docker容器执行此操作?

我的第一个解决方案是将以下内容添加到我的Windows机器上的hosts文件中,如下所示:

192.168.99.100 docker.dev

但是docker.dev只会转发到192.168.99.100:80(即网站1),因为您无法在主机文件上放置端口。

1 个答案:

答案 0 :(得分:2)

192.168.99.100是泊坞机的IP:要为该IP分配名称,您需要自己修改Windows hosts file

假设已经修复了泊坞机VM的IP:请参阅my script at this answer

要实际重定向到VM中的正确Apache服务器,您需要另一个容器:

  • 默认收听端口80
  • 分析url和proxy-pass(重定向)到正确的实际url:port。

    http://website1.dev => redirect to port 8080
    http://website2.dev => redirect to port 8081
    http://website3.dev => redirect to port 8082
    

website1.devwebsite2.devwebsite3.dev全部添加到Windows主机文件中,使用相同的网址192.168.99.100

例如,选中traefik

这与容器的主机名不同,如其他容器所示。

docker-compose extra-host确实相当于docker run --add-host

但要docker-compose can use hostname: directly将主机名修改为容器 这应该足以引用每个容器的名称。

相关问题