Tag: networking应用程序

当我closuresiptables时,为什么docker容器仍然可以与外部进行通信

我是新来的docker工人,并有一些关于docker集装箱networking的基本问题的帮助,我读了有关docker的networkingconfiguration的文章: https : //docs.docker.com/articles/networking/ 有一部分介绍如何使用iptables使docker容器与外部进行通信,实际上我可以理解这个部分: 1从集装箱到外部,在跟SNAT相同的出售链上有一个伪装规则 Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all — 172.17.0.0/16 !172.17.0.0/16 2从外部访问容器内的服务,在prerouting链中有一个DNAT规则,然后主机将它转发给docker0,容器最终收到数据包 Chain DOCKER (2 references) target prot opt source destination DNAT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:49153 to:172.17.0.2:80 但实际上,当我停止iptables服务,docker的networking仍然正常工作,我使用“iptables -L”和“iptables -t nat -L”来检查和内核没有规则,这里是我的设置我们假设10.170.28.0/24是外部networking,172.17.0.0/16是Docker容器的内部networking): 首先,iptables服务被closures,fiter和nat表是空的如下: iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt […]

在容器内部的Docker Network部分工作

我有我自己的PHP应用程序运行“ FROM php:5.6-apache ”容器。 这样可行。 但有一部分没有。 我的应用程序无法使用networking。 如果我运行手册 docker run -t -i myapp ping 8.8.8.8 it 这很好。 但是,如果我的应用程序喜欢它 $ping = exec("ping -c 1 -s 64 -t 64 8.8.8.8"); 那么它不会。 一月

使用Virtual Box无法与Docker(Centos 7)+ DNS服务器(Container Ubuntu 14.04)通信

我有一个与虚拟框的Docker(Centos 7)+ DNS服务器(容器Ubuntu 14.04)的问题。 首先,我需要解释我是如何构build结构的: 我正在使用虚拟机testingDocker,在这种情况下使用虚拟机。 我在模式桥中创build了一个带有一个网卡的Centos 7虚拟机。 在Centos 7里面有Docker v.1.6.0 ,接口docker0 172.17.42.1(Bridge) ,是Docker的默认接口。 这是我用root做的configuration。 在Docker里面我用Ubuntu 14.04创build了一个容器: # sudo docker run -i -t ubuntu /bin/bash NAT的docker0给我IP 172.17.0.2(eth0 – >桥) ,我与bind9的 DNS服务器,这是我的configuration: /etc/bind/named.conf.local zone "domain.com" { type master; file "/etc/bind/db.domain.com"; }; zone "42.17.172.in-addr.arpa" { type master; file "/etc/bind/db.172.17.42"; }; /etc/bind/db.domain.com ; ; BIND data file for […]

docker服务器的最佳做法,多层或单层?

我想build立一个dockernetworking服务器,为多个网站提供Nginx,PHP和MySQL服务。 为每个组件运行一个Docker容器会更好吗,比如一个用于MySQL,一个用于Nginx,一个用于PHP,另一个用于我的站点数据。 或运行多个容器,每个包含所有服务(MySQL,PHP,Nginx和站点数据)在一起,每个Web应用程序一个? 还是只有一个与所有的服务,另一个与网站数据? 我主要关心的是数据备份和高效使用硬件。

如何访问在docker中的Docker容器中运行的应用程序?

我在我的项目中有一个奇怪的场景。 我正在Docker容器中运行“Supervisor”应用程序。 使用这个主pipe我运行两个“networking应用程序”在docker集装箱,都使用一个微服务; 再次安装在另一个docker集装箱中。 现在,我可以从“主pipe的容器”访问我的应用程序。 但显然这是不能从我的机器访问。 我怎样才能从我的机器上访问我的应用程序“Web App1”或“Web App2”? 我有关于dockernetworking的知识较less。 请帮忙。

Docker在Amazon云上

我有一个Amazon Cloud EC2实例运行Dockerized flask应用程序。 我可以通过ssh连接到实例,但是当部署并尝试通过我的浏览器连接到公共DNS时,我无法访问已部署的flask应用程序。 网页总是会超时。 我如何查看正在运行的应用程序? 提前谢谢你!

从Docker容器运行Docker构build时,主机名parsing失败

我们从docker容器运行一个Jenkins CI服务器,用docker-compose开始。 Jenkins服务器正在运行一些作业,这些作业是从git中拉出项目并构builddocker容器的执行docker build .的标准方式docker build . 在他们。 为了能够在Docker容器中使用docker,我们使用docker-compose将其挂载到/var/run/docker.sock上。 我们正在尝试构build的一些Dockerfile正在从我们的文件服务器(例如第三方安装映像)下载文件。 这样一个Dockerfile命令看起来像RUN curl -o xx.zip http://fileserver/xx-1.2.3.zip 。 fileserver主机名通过/etc/hosts文件parsing,并parsing为运行Jenkins CI服务器的主机公共IP。 用于Jenkins容器的extra_hosts -composeconfiguration还包括将fileserver指向主机的公共IP的extra_hosts参数。 问题是在Jenkins运行它自己的容器中构buildDocker容器失败,并显示一个普通的Unknown host: fileserver消息。 如果我通过docker exec -it <id>进入Jenkins容器,我可以执行相同的curl命令并parsing主机,但是如果我尝试运行docker build . 那里试图运行相同的curl命令,它无法parsing主机。 我们的主机是一个RHEL,我没有在我的桌面Arch Linux上重现这个问题,所以我怀疑这是一个特定于redhat的问题(再次)。

Docker容器比wlan0更喜欢主机eth0的互联网

如何启动Docker容器,以便在两者都可用时使用主机的eth0而不是wlan? 我希望容器在办公室直接使用我的有线连接来访问networking资源,而不受主机的networking设置的影响,这些设置允许我通过WiFi访问互联网。 主机是Ubuntu 14.04,容器是Ubuntu 14.04。

多个Bluemix Docker容器的相同IP地址

就像标题所说,是否有可能使用相同的公有IP地址运行多个Bluemix容器,但暴露了不同的端口? (不应该购买额外的或浪费的IPv4空间。) 我想运行6不同的参数化(与环境variables)容器。 不同的是暴露的端口号(和内部应用逻辑)。 我唯一需要的是能够使用Dockerconfiguration或其他解决scheme访问该端口,例如这6个映像和“路由器”之间的NAT。 谢谢。

当启用firewalld / iptables时,docker容器在同一主机上与容器通信的问题

这是我的configuration: 主机虚拟机是CentOS 7.1 Docker版本是1.8.1 容器1 – >显示端口8071并运行Web服务 容器2 – >显示端口8081并运行前端Web应用程序 firewalld已启用并正在运行 以下的工作 – (假设主机centos VM的IP地址是10.7.42.182) 当从客户机上的浏览器访问时, http://10.7.42.182:8071/确实连接到容器1中的Web服务 当从客户端机器上的浏览器访问时, http://10.7.42.182:8081/确实连接到容器2中的web应用程序 当我从容器2内部ping 10.7.42.182 容器1的IP地址是172.17.0.1。 当我从内部容器2 ping到172.17.0.1 当我从容器2中访问http://172.17.0.1:8071/时 以下不起作用 – 当我从容器2中访问http://10.7.42.182:8071/时 # http://10.7.42.182:8071可以从我的客户端访问,但不能从另一个容器在同一主机上运行! 当我closuresfirewalld然后开始工作。 firewalld是如何在这里造成问题的? 即允许从外部连接而不是在容器内连接? 希望对可能发生的事情有任何提示。