Docker容器无法解析DNS以访问另一台AWS Ec2计算机

时间:2017-03-02 05:37:46

标签: docker

我无法通过从主机App1上运行的容器解析DNS来ping另一台计算机/主机App2。虽然/etc/resolv.conf与host的相同。我正在使用AWS Route 53私有托管DNS,以通过解析DNS而不是IP来实现相互通信。

Some basic info for this :

ubuntu@app1:~$ docker info
Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 10
Server Version: 1.13.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 31
 Dirperm1 Supported: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1
runc version: 9df8b306d01f59d3a8029be411de015b7304dd8f
init version: 949e6fa
Security Options:
 apparmor
Kernel Version: 3.13.0-106-generic
Operating System: Ubuntu 14.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.797 GiB
Name: app1
ID: 6GYC:GI6M:JNTM:MMSL:7LRD:BEUZ:RTRD:Q4AG:NEQU:XC5C:ALOK:N3LM
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

############################################
ubuntu@app1:~$ docker version
Client:
 Version:      1.13.1
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:42:29 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.13.1
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:42:29 2017
 OS/Arch:      linux/amd64
 Experimental: false

###########################################

    ubuntu@app1:~$ docker exec -it conatiner1 sh
    /data # ping app2
    ping: bad address 'app2'
    /data # ping app2.mydomain
    PING app2.mydomain (10.xx.xx.xx): 56 data bytes
    ##############################################

         resolv.conf on conatiner 

        /data # cat /etc/resolv.conf
    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

    nameserver 10.xx.xx.xx
    search mydomain

resolv.conf on host

ubuntu@app1:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

nameserver 10.XX.XX.xx [ same as  of container ]
search mydomain

从docker主机我可以ping app2而没有提供像app2.mydomain这样的完整域名,但同样不能从容器中运行

1 个答案:

答案 0 :(得分:6)

当您致电docker run时,请添加--net=host选项以使用主机的网络堆栈。它会起作用。

相关问题