我在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),因为您无法在主机文件上放置端口。
答案 0 :(得分:2)
192.168.99.100是泊坞机的IP:要为该IP分配名称,您需要自己修改Windows hosts file。
假设已经修复了泊坞机VM的IP:请参阅my script at this answer。
要实际重定向到VM中的正确Apache服务器,您需要另一个容器:
分析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.dev
,website2.dev
和website3.dev
全部添加到Windows主机文件中,使用相同的网址192.168.99.100
例如,选中traefik
这与容器的主机名不同,如其他容器所示。
docker-compose extra-host
确实相当于docker run --add-host
但要docker-compose can use hostname:
directly将主机名修改为容器
这应该足以引用每个容器的名称。