【问题标题】:Docker for Windows - container domain name cannot be resolvedDocker for Windows - 无法解析容器域名
【发布时间】:2017-08-18 14:44:53
【问题描述】:

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

【问题讨论】:

    标签: windows docker dns


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      相关资源
      最近更新 更多