Tag: networking应用程序

获取docker引擎运行的主机的IP地址

从正在运行的Docker容器中,有没有办法获得容器运行的主机的IP地址?

在没有–net = host参数的docker容器内部networking不可达

问题 :docker集装箱中没有互联网连接。 症状 :ping 8.8.8.8不起作用。 主机系统的Wireshark回馈: 19 10.866212113 172.17.0.2 -> 8.8.8.8 ICMP 98 Echo (ping) request id=0x0009, seq=0/0, ttl=64 20 11.867231972 172.17.0.2 -> 8.8.8.8 ICMP 98 Echo (ping) request id=0x0009, seq=1/256, ttl=64 21 12.868331353 172.17.0.2 -> 8.8.8.8 ICMP 98 Echo (ping) request id=0x0009, seq=2/512, ttl=64 22 13.869400083 172.17.0.2 -> 8.8.8.8 ICMP 98 Echo (ping) request […]

找出哪个networking接口属于docker集装箱

Docker在ifconfig创build这些虚拟以太网接口veth[UNIQUE ID] 。 我怎样才能找出哪个接口属于一个特定的docker集装箱? 我想听tcpstream量。

如何将多个Docker连接到单个主机中的不同网桥?

是否有可能将多个Docker(在我的情况下,同一个Docker的多个实例)连接到单个主机中的不同桥? 第三方解决scheme如pipe道build议首先寻找“原生”的方式。 类似的东西: 当我开始2实例时,第一次使用默认docker0桥,而第二次被指示使用br1(不同的IP范围): sudo docker run -t -i me/tester:latest /bin/bash sudo docker –bridge=br1 run -t -i me/tester:latest /bin/bash 导致与Doker0具有相同的IP范围: root@2a259a88d9c8:/# ip a … 73: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 86:d7:cc:c8:b7:e8 brd ff:ff:ff:ff:ff:ff inet 172.17.0.32/16 scope global eth0 – root@0b849a5398af:/# ip a … 79: eth0: <BROADCAST,UP,LOWER_UP> mtu […]

充分访问eth1到docker容器

我可以运行将有权访问eth1 docker集装箱。 DSL提供商连接到eth1 。 我在eth0上有默认的networking。 我希望docker容器在eth1和pppoe上的应用程序拨号pppoe使用互联网完全访问互联网,无需端口映射。

docker多主机networking群集广告选项

我很好奇 –engine-OPT = “集群做广告= eth1的:2376” 正好呢? 它是否在eth1接口上发送一些广播消息? 那有多安全? 或者它只是宣传它的IP通过选项定义的K / V存储? (例如,领事)

从Docker容器连接到远程MySQL数据库

我在AWS中有两台服务器,都在一个安全组中,允许安全组成员之间的所有端口上的所有stream量。 在一台服务器上,我有一个MySQL服务器(没有docker,让我们把这个服务器称为“MySQL服务器”),在另一台服务器上我有docker(我们称之为“Docker服务器”)。 我想从Docker服务器的容器中访问MySQL,而不必通过Internet路由stream量(我想使用MySQL服务器的内部IP地址)。 这可能吗? 我有什么select? 到目前为止,我已经尝试过 我configuration了MySQL服务器来侦听所有的接口,只是为了testing。 这允许我从Docker服务器(使用mysql客户端连接到MySQL服务器的私有IP地址)成功连接到MySQL服务器。 但是,当我启动一个容器时,一个新的networking命名空间被创build,所以我不能再访问MySQL服务器的私有IP地址。 我已经尝试使用这里描述的大使容器,但我遇到了同样的问题,MySQL服务器的私有IP地址是不是从大使容器内。 例 下面是一个例子来说明这个问题以及我正在做的事情。 从Docker服务器(不在任何容器中): $ ping -c 1 10.0.0.155 PING 10.0.0.155 (10.0.0.155) 56(84) bytes of data. 64 bytes from 10.0.0.155: icmp_seq=1 ttl=64 time=0.777 ms — 10.0.0.155 ping statistics — 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.777/0.777/0.777/0.000 ms 但是从容器中尝试: $ […]

Linux命名空间:networking命名空间是否可以存在而不与进程关联?

ip netns创build对/var/run/ns (命名的)networking命名空间的引用,这可以很容易地被跟踪。 同样,可以通过/proc/[pid]/ns/net来确定。 但是,一些自定义程序可能会创build一个networking并将相应的inode保存在其他非常规位置。 这可能难以确定是否有净ns我们可以列出。 其次,当进程退出时, unshare <cmd>会破坏networking,这很好。 但是,即使在命令/进程退出之后, ip netns exec <netns> <cmd>仍将保留ns。 所以我相信,任何自定义程序都可以做到这一点。 因此,问题是:一个自定义程序是否有可能创build一个未命名的networkingns,并且它与任何进程都没有关联 ? 此外,是否有可能从用户空间列出这样的(隐藏的)ns,因为我们不知道到inode的path? (当然内核有一个ns的链表)一段代码会有帮助。

Docker接收组播stream量

我们有一个docker化的服务器应用程序,通过监听端口6969上的多播数据包来自动发现networking上的物理设备。因此,我们需要我们的docker容器能够通过主机从主机之外的设备接收这些数据包,并进入容器。 我已经看到一些 类似的 问题,并做了大量的 阅读,但我仍然无法让服务器响应这些组播数据包。 我坐在Wireshark上观看networkingstream量,但我不是专家。 我知道Docker创build了一个MASQUERADE地址,使stream量看起来像来自Docker网关,所以当我看到veth我发现172.17.0.1和172.17.0.2之间的交谈很多,尽pipe我的服务器无法获取有关设备的任何信息在networking上。 (如果我在docker外面跑步,我当然没有问题。) 我不能使用–net=host ,和其他人一样,我们使用了–linkfunction。 我已经尝试了以下变化… docker run –name app -p 6969:6969 -d me/app:latest docker run –name app -p 0.0.0.0:6969:6969 -d me/app:latest (这一个我可以宣誓工作过一次,但现在不? docker run –name app -p 0.0.0.0:6969:6969/udp -d me/app:latest docker run –name app -p 255.255.255.255:6969:6969 -d me/app:latest 任何帮助或见解,你可以提供将不胜感激。

在stream浪者/虚拟箱上访问其他机器仅在托pipe容器内的networking上

我有一个实验室环境,我已经设置使用stream浪汉。 它由3台机器,两台安装了docker 1.4.1的应用服务器和一台安装了postgres 9.3的数据库服务器组成。 所有机器都运行Centos 6.6。 环境使用仅主机的专用networking进行设置。 这是stream浪者档案 Vagrant.configure('2') do |config| config.vm.box = "centos-6.0-updated" { 'db' => '10.17.33.10', 'app1' => '10.17.33.11', 'app2' => '10.17.33.12', }.each do |short_name, ip| config.vm.define short_name do |host| host.vm.network 'private_network', ip: ip host.vm.hostname = "#{short_name}.my.dev" end end end 我发现当我在app1或app2上的容器内时,我无法访问数据库服务器。 我相信问题是vagrant / virtualbox的主机专用networking使用127.0.0.x范围内的地址。 在主机上,stream浪者configuration回送接口来处理向networking上的每台机器发送请求。 但是在容器中,因为这个接口没有configuration,所以容器把所有的127.0.0.x请求作为localhost的请求处理,并把它们发回给自己。 有没有其他的configuration可以在stream浪方面设置,或者docker方面可以缓解这个问题? 总之,我想有一个stream浪的环境,我的应用程序服务器上的容器可以与数据库服务器交谈。 请注意,db直接安装在db主机上,不在docker容器内运行。 此外,这意味着模仿不会使用stream浪者的生产环境,所以我希望任何docker更改也能在更普通的networking场景中工作。