Docker for Windows – 容器域名无法parsing

我想用docker-compose在本地机器上设置开发环境。 我正在尝试为我的网站分配一些预定义的域名。 它必须是像app1.myapps.test这样的三级域名,而不仅仅是app1

我希望Docker使用两个属性主机名域名自动分配这些主机名,而不是将静态IP分配给容器,并手动将这些IP添加到hosts文件。

我的Docker撰写文件是:

 version: '3' services: app1: build: . container_name: app-1 domainname: myapps.test hostname: app1 

试图打开http://app1.myapps.test/ ,看到错误告诉我,DNS地址无法parsing。 如果我删除属性domainname: myapps.test那么它工作正常,我可以通过主机名http:// app1 /访问我的网站。

更改设置(无域名)

 hostname: app1.myapps.test 

或者

 domainname: myapps.test hostname: app1.myapps.test 

也没有帮助。

有没有一种方法可以让Docker DNS设置多级域名,以及domainname选项是如何工作的? 我错过了什么吗?

是的,你错过了一些东西,但是因为你的作品中有重复的名字

 version: '3' services: app1: build: . container_name: app-1 domainname: myapps.test hostname: app1 

如果您将其更改为以下

 version: '3' services: app1: build: . container_name: app-1 

它应该仍然有效。 当你说

我可以通过主机名http:// app1 /访问我的网站。

这是因为它是服务的名称。 不是因为你指定了hostname: app1 。 所以你真正需要的是networking别名。 而且因为你正在使用默认networking。 你可以使用下面的东西

 version: '3' services: app1: build: . container_name: app-1 hostname: app1 networks: default: aliases: - app1.myapps.test