【问题标题】:User-defined network on docker 19.03 with CentOS 8 with not workingdocker 19.03 上的用户定义网络与 CentOS 8 不工作
【发布时间】:2020-10-08 23:57:48
【问题描述】:

环境设置:

OS: CentOS Linux release 8.2.2004 (Core)
Docker Version: 
 Client: Docker Engine - Community
    Version:           19.03.11
    API version:       1.40
    Go version:        go1.13.10
    Git commit:        42e35e61f3
    Built:             Mon Jun  1 09:13:48 2020
    OS/Arch:           linux/amd64
    Experimental:      false

  Server: Docker Engine - Community
    Engine:
      Version:          19.03.11
      API version:      1.40 (minimum version 1.12)
      Go version:       go1.13.10
      Git commit:       42e35e61f3
      Built:            Mon Jun  1 09:12:26 2020
      OS/Arch:          linux/amd64
      Experimental:     false
      containerd:
         Version:          1.2.6
         GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
      runc:
         Version:          1.0.0-rc8
         GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
      docker-init:
         Version:          0.18.0
         GitCommit:        fec3683

Linux 机器连接到防火墙后的公司网络。以下是详细信息:

  1. /etc/hosts

      127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
      ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
  2. /etc/resolv.conf

      # Generated by NetworkManager
        search subdomain.domain.com
        nameserver 13.108.0.11
        nameserver 13.108.11.16
    
  3. 创建用户自定义桥接网络:

     $ docker network create mynetwork
     $ docker network ls
     NETWORK ID          NAME                DRIVER              SCOPE
     05400c341d1d        bridge              bridge              local
     fb4e364ad31b        host                host                local
     835f9d99e610        none                null                local
     7d8fc26d3632        mynetwork           bridge              local
    
  4. 在 mynetwork 上创建了两个容器:

    $ docker container run --name search1 --network mynetwork --network-alias search --detach elasticsearch:2
    

    $ docker container run --name search2 --network mynetwork --network-alias search --detach elasticsearch:2
    
  5. DNS 循环检查:

    $ docker container run --rm -it --network mynetowrk alpine nslookup search

    输出

     Server:         127.0.0.11
     Address:        127.0.0.11:53
     ** server can't find search.subdomain.domain.com: NXDOMAIN
     ** server can't find search.subdomain.domain.com: NXDOMAIN
    
  6. 容器 /etc/resolv.conf

     $ docker container run --rm -it --network mynetwork alpine cat /etc/resolv.conf
    

    输出

     search subdomain.domain.com
     nameserver 127.0.0.11
     options ndots:0
    
  7. Docker 用户定义的网络详细信息:

    $ docker network inspect -v mynetwork

输出

     [
         {
             "Name": "mynetwork",
             "Id": "7d8fc26d36323cf9ba47dbb272bf4ad15113d6b26a26fbf6c82cc1d866b480c0",
             "Created": "2020-06-18T09:54:12.37673638+05:30",
             "Scope": "local",
             "Driver": "bridge",
             "EnableIPv6": false,
             "IPAM": {
                 "Driver": "default",
                 "Options": {},
                 "Config": [
                     {
                         "Subnet": "172.19.0.0/16",
                         "Gateway": "172.19.0.1"
                     }
                 ]
             },
             "Internal": false,
             "Attachable": true,
             "Ingress": false,
             "ConfigFrom": {
                 "Network": ""
             },
             "ConfigOnly": false,
             "Containers": {
             "ec1cacb437926b5c6bb5693ab9c0afa6f8bc2764d5e15a5e15d9d5709346c1e5": {
                     "Name": "search1",
                     "EndpointID": "2c7420176adbce496e4c033416d98c290cf74dcc1e68568d7160b45cefd8d1db",
                     "MacAddress": "02:42:ac:13:00:02",
                     "IPv4Address": "172.19.0.2/16",
                     "IPv6Address": ""
                 },
            "f7cf532aa71df9cefaf5575ff27d4a2f4525f7674a479989d5b96f281282b6db": {
                     "Name": "search2",
                     "EndpointID": "d641f94dfc1d898d7d8ec667b4389d4ff6a0d53be3454a89f77b24b0bd04a663",
                     "MacAddress": "02:42:ac:13:00:03",
                     "IPv4Address": "172.19.0.3/16",
                     "IPv6Address": ""
                 }
             },
             "Options": {},
             "Labels": {}
        }
]

问题:

  • 为什么 docker 在用户定义的 docker 网络中使用主机搜索域?
  • 为什么网络别名不可解析?
  • 是不是和CentOS 8.2版本有关?
  • 如何解决?或如何使其工作?

谢谢

【问题讨论】:

  • 如果您使用 Debian 而不是 Alpine 作为 nslookup 容器,它是否有效。命令中还有几个拼写错误,并且两者中的容器名称相同,网络拼写错误,缺少空格。这只是在问题中,您运行的命令中是否有拼写错误?请同时提供docker network inspect -v mynetwork 输出。
  • 在 Debian 上:服务器:127.0.0.11 地址:127.0.0.11#53 非权威答案:*** 找不到搜索:无答案
  • 我在问题中附上了docker network inspect -v mynetwork的输出。
  • 我检查了我的机器。重新格式化两次相同的错误。 Ping 命令给出:ping: bad address 'search'
  • 我认为您面临@Amarjeet Sharma 的 DNS 问题是由于以下原因 - phoenixnap.com/kb/how-to-install-docker-on-centos-8。你的问题解决了吗?即使在禁用 firewalld 后,我在 CentOS 8 上也面临类似的 DNS 解析问题

标签: docker centos8


【解决方案1】:

sudo firewall-cmd --permanent --zone=public --add-masquerade

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-31
    • 2020-12-17
    • 2020-03-10
    • 2017-02-27
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    相关资源
    最近更新 更多