Tag: networking应用程序

以特定的顺序向Docker容器添加一个新的NIC

我正在尝试拥有两个networking接口的CentOS容器。 在经过Docker文档和“googleing”之后,我发现了这个GitHub问题评论 ,指出了如何实现这一点。 之后,我创build了一个新的networking(默认types: bridge ) docker network create my-network 检查新的networking,我可以看到Docker分配给子网172.18.0.0/16和网关172.18.0.1/16 。 然后,在创build容器时,我专门附加了新的networking: docker create -ti –privileged –net=my-network –mac-address 08:00:AA:AA:AA:FF <imageName> 在容器内部,我可以检查ifconfig是否确实存在该IP和MAC地址的接口: eth0 Link encap:Ethernet HWaddr 08:00:AA:AA:AA:FF inet addr:172.18.0.2 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr: fe80::a00:aaff:feaa:aaff/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3 errors:0 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 […]

Docker容器无法连接到另一个Docker容器打开的端口

我有两个容器运行:c1和c2。 C1正在监听端口2181,C2正在连接到端口2181 问题是C2无法连接到所述端口上的C1,我不知道为什么。 当我运行连接到C1不在容器中的代码时,它工作正常。 所以我知道C1正在运行,端口正确显示。 只是当我把应用程序放在自己的容器中时,端口不再可见。 我已经尝试了C2内的LSF,并没有列出,这是为什么它失败了。 任何线索我需要看下一个将不胜感激。 我正在使用docker-compose,因此默认情况下容器应该在同一个networking组中: 这是我的撰写文件: version: '2' services: c1: build: . volumes: – .:/code depends_on: – c2 c2: image: jplock/zookeeper ports: – "2181:2181" – "2888:2888" – "3888:3888" 在C1中,启动器使用URI localhost:2181

将不同的公有IP分配给不同的Docker容器

我需要运行两个容器,每个容器包含一个绑定在特定(公共)IP(11.11.11.20和11.11.11.21)上的脚本。docker主机本身位于10.10.10.222。 我写了这个docker-compose.yml version: '2' services: nginx-0: image: nginx:1.10 networks: app_net: ipv4_address: 11.11.11.20 nginx-1: image: nginx:1.10 networks: app_net: ipv4_address: 11.11.11.21 networks: app_net: driver: bridge ipam: driver: default config: – subnet: 11.11.11.20/30 我混淆的ip a : 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff inet 10.10.10.222/27 brd 10.10.10.223 scope […]

将不同的IP分配给不同的Docker容器

我需要运行两个容器,每个容器包含一个绑定在特定(公共)IP(11.11.11.22和11.11.11.23)上的脚本, docker主机本身在10.10.10.222。 我有子网11.11.11.20/27,我的网关是11.11.11.21 如果有问题,我的服务器在SoftLayer。 泊坞窗,compose.yml version: '2' services: nginx-0: image: nginx:1.10 ports: – 11.11.11.22:80:80 networks: app_net: ipv4_address: 11.11.11.22 nginx-1: image: nginx:1.10 ports: – 11.11.11.23:80:80 networks: app_net: ipv4_address: 11.11.11.23 networks: app_net: driver: bridge ipam: driver: default config: – subnet: 11.11.11.20/27 gateway: 11.11.11.21 ip a 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen […]

Docker和来自主机的IP地址不一致

我试图设置一些容器来pipe理我的VPS上的个人电子邮件。 我为后缀服务器设置了TLSencryption。 在设置SPF来检测伪造电子邮件时,我发现报告的IP是不一样的,这取决于是否使用了encryption : 从某些发件人收到电子邮件时: Received: from zproxy.mydomain.com (zproxy110.mydomain.com [137.**.**.**]) by localhost (Postfix) with ESMTP id 5250459F 从我的GMail帐户接收电子邮件时(启用TLS): Received: from mail-lf0-x241.google.com (dockerhost [172.18.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by localhost (Postfix) with ESMTPS id 2EDEF59F 从其他networking接收电子邮件时: Received: from cabale.usenet-fr.net (dockerhost [172.18.0.1]) by localhost (Postfix) with ESMTP id 834F8520 它看起来像报告的IP是一个随机的基础上的Docker主机的IP,使用IP […]

docker0桥如何在主机内部工作?

我想了解桥接docker0接口如何工作。 当docker守护进程启动时,它会创build一个桥接设备docker0; 当容器启动时,它创build一个接口vthn并绑定到docker0 比方说,我们从容器内向外部主机发出一个ping命令 [root@f505f022eb5b app]# ping 130.49.40.130 PING 130.49.40.130 (130.49.40.130) 56(84) bytes of data. 64 bytes from 130.49.40.130: icmp_seq=1 ttl=52 time=11.9 ms 所以我的主机eth0正在接收这个ping回来,但是这个包怎么被转发到容器? 有几个问题要问 eth0和docker0没有桥接,docker0怎么得到eth0的报文? 即使docker0收到数据包,它是如何工作的内部发送数据包到vth0? 它是否在内部维护一些地图,以便它可以将数据包转换为不同的MAC地址? iptables是如何与这里相关的? 干杯。

Docker EC2&端口绑定

我有一个Ubuntu EC2实例。 安装当前版本的Docker。 在EC2主机上运行一个Jenkins容器 。 我使用的Docker运行命令是: docker run \ -d \ -p 9000:8080 \ -p 5000:5000 \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/jenkins 该命令成功完成,我的容器已经启动。 如果我SSH进入EC2实例curl的容器,如: curl http://localhost:9000 我得到一个回应。 如果我通过EC2实例公共IP地址尝试相同的话: curl http://55.55.55.55:9000 我没有得到回应。 EC2实例安全组有9000打开的任何地方,我可以通过以下方式确认它正在接受9000上的连接: telnet 55.55.55.55 9000 哪个能够连接。 所以我的猜测是,似乎这个实例正在接受9000连接,但是这些并没有传递给Docker。 在Dockerfile中,我可以看到Jenkins默认端口8080和5000 EXPOSE命令。 当我绑定9000时,这可能是一个问题吗? 任何想法或debugging非常感谢,目前我难住! 还应该指出,将容器绑定到8080不是一个不幸的select。 UPDATE 本地curl响应: <html> <head> <meta http-equiv='refresh' content='1;url=/login?from=%2F'/> <script>window.location.replace('/login?from=%2F');</script> </head> <body style='background-color:white; color:white;'> Authentication required […]

Docker容器从不同的子网开始

我必须启动3个容器,nginx,wordpress和wordpress2。 问题是nginx容器从172.17.0.2开始,wordpress在172.18.0.3和wordpress2在172.19.0.4。 WordPress的容器开始与他们的docker-compose.ymlconfiguration为我显示: 对于wordpress: version: '2' services: db: image: mysql:5.7 volumes: – "./.data/db:/var/lib/mysql" restart: always environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: – db image: wordpress:latest links: – db ports: – "8000:80" networks: – ipv4_address: 172.17.0.5 restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_PASSWORD: wordpress 对于wordpress2: version: '2' services: db: image: mysql:5.7 volumes: […]

Docker可以在运行容器时自动将IP地址添加到主机

我在hetzner.de上有一个服务器,有大约16个公共IPv4地址。 现在我正在运行这样的容器: sudo docker run -d –name test6 -it -p 5.1.2.3:80:80 sunebeck/apache-php 这将最初产生这个错误: Error starting userland proxy: listen tcp 5.1.2.3:80: bind: cannot assign requested address. 通过手动添加主机上的IP地址来修复这个问题: ip addr add 5.1.2.3 dev eth0 之后,它按照预期工作,服务在5.1.2.3中作为端口80公开。 不过手动pipe理这个有点麻烦。 Docker能否根据需要自动添加/删除主机的IP地址?

共享本地networkingDocker

我使用Hyper-V在我的Win10机器上安装了Docker 1.12.0-rc4。 我有两个容器运行一个tomcat应用程序和一个Metasploit实例都启动了–net =“host”选项。 从Metasploit容器中,我可以成功地看到端口8080上运行的tomcat应用程序 该命令下载Tomcat的初始页面 wget 127.0.0.1:8080 但是,当我试图从我的PC浏览127.0.0.1:8080 Chrome显示127.0.0.1 refused to connect 。 我怎么能让容器看到对方使用(–net =主机),并通过networking浏览他们? PS:我已经改变了我的docker守护进程,以开始与标志–ip = 127.0.0.1在这里讨论,没有任何改变 谢谢