我想使用docker-compose
在本地计算机上设置开发环境。我正在尝试为我的网站分配一些预定义的域名。它必须是一个三级域,例如 app1.myapps.test,而不仅仅是 app1。
我希望 Docker 使用两个属性 hostname 和 domainname 自动分配这些主机名,而不是为容器分配静态 IP 并将这些 IP 添加到 hosts
手动归档。
我的 Docker 撰写文件是:
version: '3'
services:
app1:
build: .
container_name: app-1
domainname: myapps.test
hostname: app1
尝试打开http://app1.myapps.test/并看到错误告诉我 DNS 地址无法解析。
如果我删除属性 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
它应该仍然有效。当你说
I'm able to access my site by hostname http://app1/.
那是因为它是服务的名称。不是因为您指定了主机名:app1
。所以你真正需要的是网络别名。由于您使用的是默认网络。您可以使用如下所示的内容
version: '3'
services:
app1:
build: .
container_name: app-1
hostname: app1
networks:
default:
aliases:
- app1.myapps.test
关于windows - Docker for Windows - 容器域名无法解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45759410/