Docker for Windows - 无法解析容器域名

时间:2017-08-18 14:44:53

标签: windows docker dns

我想在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如何工作?我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

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

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。所以你真正需要的是网络别名。因为您使用的是默认网络。您可以使用以下内容

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