解决了与外部网络的docker连接问题

时间:2015-04-09 08:42:37

标签: ubuntu networking docker

  

这是一个 DNS服务器问题 - 默认服务器8.8.8.8(在Ubuntu中预配置在Docker中)可以ping通但不能通过nslookup到达。

我无法从本地安装的容器连接到互联网。

我的系统

ifconfig看起来不错

$ docker run -ti twelly/ifconfigme ifconfig
eth0      Link encap:Ethernet  HWaddr f2:bd:a6:53:6f:5f  
          inet addr:172.17.0.35  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::f0bd:a6ff:fe53:6f5f/64 Scope:Link
          UP BROADCAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:2 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:90 (90.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

我可以ping 8.8.8.8

$ docker run -ti twelly/ifconfigme ping -c 3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=56 time=33.6 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=56 time=33.6 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=56 time=33.5 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 33.525/33.597/33.650/0.218 ms

ping在超时后退出

$ time docker run -ti twelly/ifconfigme ping -c 3 google.com
ping: unknown host google.com

real    0m40.267s
user    0m0.014s
sys 0m0.012s

我与debian:latest的结果相同,但我无法测试ifconfig,因为它没有安装在那里。

新VM

相同的设置适用于新的Ubuntu Utopic 14.10虚拟机。

Vagrantfile

Vagrant.configure(2) do |config|
  config.vm.box = "https://cloud-images.ubuntu.com/vagrant/utopic/current/utopic-server-cloudimg-amd64-vagrant-disk1.box"

  config.vm.provision "shell", inline: "apt-get update && apt-get upgrade -y"
  config.vm.provision "shell", inline: "apt-get install -y docker.io && adduser vagrant docker"
end

命令

$ vagrant up && vagrant ssh -c "docker run -ti twelly/ifconfigme ping -c 3 google.com"

问题

我可能做错了什么?如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您必须指定您不希望容器管理连接。在运行命令中使用$data=file_get_contents("backup.sql"); $key= file_get_contents('public_key.pem'); openssl_public_encrypt($data,$output,$key); echo $output;