[关闭]
@931876502 2016-05-27T17:20:36.000000Z 字数 5034 阅读 3050

docker ping不通域名 也ping不通ip 解决办法

docker


docker ping不通域名 也ping不通ip 解决办法

  1. docker容器跑起来,进入容器ping任何域名或者IP地址都ping不通,而宿主主机可以ping

解决办法1 :

网络桥接原文地址:http://gdlwolf.blog.51cto.com/343866/1740977
DNS设置原文地址:https://yeasy.gitbooks.io/docker_practice/content/advanced_network/dns.html

centos 6 Docker桥接到主机所在的内网

  1. git clone https://github.com/jpetazzo/pipework
  2. cd pipework/
  3. cp pipework /usr/bin/
  4. chmod +x /usr/bin/pipework
  1. yumlocalinstall iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm -y

此处输入图片的描述

  1. ifconfig -a
  1. [root@localhosthome]# service docker stop
  2. Stoppingdocker: [ OK ]

5、创建自定义桥接网卡br0

  1. yum install bridge-utils -y
  2. cd /etc/sysconfig/network-scripts/
  3. cp ifcfg-eth0 ifcfg-eth0_bak
  4. cp ifcfg-eth0 ifcfg-br0
  1. DEVICE=eth0
  2. TYPE=Ethernet
  3. ONBOOT=yes
  4. BRIDGE=br0 #注意添加此项
  5. #不要奇怪,这里没有BOOTPROTO项是完全正常的,请继续操作。
  1. DEVICE=br0
  2. ONBOOT=yes
  3. BOOTPROTO=static
  4. IPADDR=10.0.1.21 #原先eth0的IP
  5. NETMASK=255.255.0.0 #原先eth0的子网掩码
  6. GATEWAY=10.0.0.254 #宿主主机网关
  7. DNS1=223.5.5.5
  1. [root@localhost~]# brctl show

此处输入图片的描述

  1. echo"ifup br0" >> /etc/rc.d/rc.local
  1. $ more /etc/default/docker
  2. DOCKER_OPTS="-b=br0"

我这里使用的是centos6.6_64_mini
操作如下:

  1. vim/etc/sysconfig/docker

将other_args=后面添加'-b=br0',最后为:

other_args='-b=br0'

原内容:
此处输入图片的描述

修改后的内容:

此处输入图片的描述

  1. ifconfigdocker0 down
删除docker默认网桥
  1. brctldelbr docker0
查看物理机上有哪些网桥
  1. brctl show

此处输入图片的描述

  1. pipework br0 -i eth0 test110.0.1.50/16@10.0.0.254

此处输入图片的描述

  1. -h HOSTNAME or --hostname=HOSTNAME

设定容器的主机名,它会被写到容器内的/etc/hostname和/etc/hosts。但它在容器外部看不到,既不会在docker ps中显示,也不会在其他的容器的/etc/hosts 看到。

  1. --link=CONTAINER_NAME:ALIAS

选项会在创建容器的时候,添加一个其他容器的主机名到 /etc/hosts 文件中,让新容器的进程可以使用主机名 ALIAS 就可以连接它。

  1. --dns=IP_ADDRESS

添加 DNS 服务器到容器的 /etc/resolv.conf 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名。

  1. --dns-search=DOMAIN

设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索host,还会搜索 host.example.com。
注意: 如果没有上述最后 2 个选项,Docker 会默认用主机上的 /etc/resolv.conf 来配置容器。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注