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

bmi*_*esp 5 docker

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

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

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

有谁知道使用 docker run 命令或其他方式可以做到这一点吗?

L0j*_*j1k 5

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

但是,您可以在您的 上设置一个 DNS 服务器container_one,并在该 DNS 服务器上设置您的通配符主机(或子域记录)以指向您的container_two(并将所有其他请求转发到您的所有其他主机名的实际 DNS),然后指定--dns=127.0.0.1在您的docker run命令中container_one。这似乎有点 hacky,但是当它遇到它在 中无法识别的主机名时container_one会使用127.0.0.1(localhost) /etc/hosts,并且 DNS oncontainer_one将指向container_two子域(以及所有其他请求转发到您的外部 DNS 基础设施)。

您可以在文档中找到更多相关信息。祝你好运!