链接docker容器并使用通配符子域

时间:2015-05-17 20:58:45

标签: docker

我有两个docker容器(container_one和container_two),一个链接到另一个container_one>> link>> container_two。

当我使用地址http://container_two/index.php从container_one中运行curl命令时,curl命令按预期成功执行。

但是,我想介绍一个通配符子域,以便我可以将任意数量的子域连接到container_two(例如:site1.container_two,site2.container_two,* .container_two等)。显然,从container_one:http://site1.container_two/index.php调用curl命令不能单独使用链接。

有没有人知道如何通过docker run命令或其他方式实现这一目标?

1 个答案:

答案 0 :(得分:4)

基本上,您不能仅使用--link标志执行此操作,因为--link会在/etc/hosts文件中添加一个条目以促进此容器间通信,并/etc/hosts个文件不支持通配符。

但是,您可以在container_one上设置DNS服务器,并在该DNS服务器上设置通配符主机(或子域记录)以指向您的container_two(并转发所有其他请求)到所有其他主机名的实际DNS),然后在--dns=127.0.0.1的{​​{1}}命令中指定docker run。这看起来有点hacky,但是当container_one遇到container_one中无法识别的主机名和{{1}上的DNS时,127.0.0.1将使用/etc/hosts(localhost)。对于子域(以及转发到外部DNS基础结构的所有其他请求),将指向container_one

您可以在the documentation中找到有关此内容的更多信息。祝你好运!