Tag: iptables

Docker容器不能ping通外部世界 – iptables

探索docker17.06。 我已经在Centos 7上安装了docker,并创build了一个容器。 用默认网桥启动容器。 我可以ping通两个主机适配器,但不是外部世界,例如www.google.com 所有的build议是基于旧版本的Docker,它是iptables的设置。 我想了解如何ping到外面的世界,需要什么? TIA!

docker开放外部端口 – 不打开好的

我正在运行一个rabbitmqdocker实例,它使用5671端口。 docker run -p 65000:5671 rabbitmq 如果我在运行实例的时候执行iptables -L -v ,则会得到以下DOCKER链: target prot opt in out source destination ACCEPT tcp — !docker0 docker0 anywhere xxx tcp dpt:5671 在我看来,docker正在做什么是错的,即。 它应该修改iptables允许连接在65000而不是5671。 我在这里弄错了什么? 注意:我希望能够在同一台机器上激发不同的rabbitmq实例,所以: 我需要“外部”端口(这里是65000 )是“可变的” 我想能够在docker run决定使用哪个端口(以及哪个端口打开)

iptables将远程端口转发到本地端口进行本地访问

我在Docker容器中的应用程序中有一个应用程序。 我有另一个Docker容器中的数据库。 数据库容器有一个暴露的端口49155.应用程序要求数据库暴露在3306端口,我不能改变,由于IonCube混淆。 所以,我可以将我的应用程序指向数据库容器,但应用程序无法find数据库(错误的端口)。 我最初的解决scheme是我们IPTables转发本地请求端口3306到远程容器端口49155使用: iptables -t nat -A PREROUTING -p tcp –src 127.0.0.1 –dport 3306 -j REDIRECT –destination 192.168.200.212 –to-ports 49155 还是行不通。 有什么想法吗?

仅限特定IP地址的Docker暴露端口

如何从一个IP列表中限制Docker公开的容器端口? 只有这个IP列表才能够访问这个端口。 我试过了: iptables -I DOCKER -p tcp –dport PORT_X -j REJECT –reject-with icmp-port-unreachable iptables -I DOCKER -p tcp –dport PORT_X –source EXTERNAL_IP_1 –destination HOST_IP_1 -j ACCEPT iptables -I DOCKER -p tcp –dport PORT_X –source EXTERNAL_IP_2 –destination HOST_IP_1 -j ACCEPT iptables -I DOCKER -p tcp –dport PORT_X –source EXTERNAL_IP_3 –destination HOST_IP_1 -j ACCEPT

Docker什么时候写入iptables?

当Docker守护进程使用icc = true和iptables = true默认值时,链接 – 链接容器时不会写入iptables。 只有当我设置icc = false iptables = true时,链接容器与 – 链接时写入iptables。 这是一个错误还是我错过了什么?

Docker Redsocks代理服务器在HTTP代理之后,没有互联网DNS

networking环境 没有互联网DNS可用 公司squid代理允许端口3128上的HTTP和HTTPSstream量 Docker环境 Docker在OS X上的VirtualBox中的Ubuntu 15.04 guest上运行。 容器docker-forgetproxy ( https://github.com/k-labs/docker-forgetproxy )在主机的networking基础架构之上运行redsocks ,运行: $ docker run -it –rm –net=host –privileged \ -e http_proxy=$http_proxy \ -e https_proxy=$https_proxy \ klabs/docker-forgetproxy 这通过发出以下命令修改主机的iptables规则,其中$1被设置为A : iptables -t nat -$1 PREROUTING -i docker0 -d 127.0.0.0/8 -j RETURN iptables -t nat -$1 PREROUTING -i docker0 -d 169.254.0.0/16 -j RETURN iptables -t nat […]

为什么Docker(“master”)容器看不见工人?

我在运行2.6内核的Oracle Enterprise Linux (OEL)6上运行Docker 1.7和docker-compose 1.5.2。 我已经用了一些小的方法调整了CitusDB的docker docker-compose.yml文件,除了主要的是我只有一个“工人”条目,并且使用了docker-compose scale来增加工作人员的数量。 这在我正在开发的Docker 1.10 / Docker-compose 2configuration上工作正常,但是这些configuration在OS X / docker-machine下使用VirtualBox虚拟机。 现在要在普通的本地Linux机器上进行部署,现在我又回到了原来的位置,“主”容器无法连接到工作人员。 端口5432(标准的PostgreSQL)是公开的,每个工作者容器有不同的IP地址,它们被放到主/etc/hosts上的/etc/hosts ,但是主服务器不能连接到工作者。 我看到有关防火墙的一些消息。 Linux中使用的是iptables 。 当我使用docker-compose启动时,它会创build一个iptables DOCKER条目。 我试过禁用iptables,并没有改变结果。 我尝试使用docker-compose net: directive创build替代networking,没有任何区别。

阻塞除Docker之外的端口

我通过Docker在我的服务器上安装了一个jenkins,并将其分配给了一个特定的域(jenkins.mydomain.com),这非常好。 但是,如果我使用服务的端口浏览我的域名,我也可以访问jenkins(和docker工具中的其他服务),例如:mydomain.com:8181 我已经尝试了一些东西来阻止从外部的端口,使它只能通过域访问,但没有运气。 首先,我尝试阻止eth0接口的端口: iptables -A INPUT -i eth0 -p tcp –destination-port 8181 -j DROP 但它没有工作,因为当我试图从域名到达jenkins,我得到了错误503。 还试图阻止端口除了docker的IP每个传入的请求。 它也没有工作。 那么我怎样才能让外部端口无法访问,但Docker可以访问? iptables -L -n – 行号 Chain INPUT (policy ACCEPT) num target prot opt source destination Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 DOCKER-ISOLATION all — 0.0.0.0/0 0.0.0.0/0 2 DOCKER all — 0.0.0.0/0 […]

Docker容器应用内端口转发

我其实试图为Docker发出端口转发请求到远程服务器上的mysql数据库。 我的目标是在容器中创build一个应用程序生产的副本,该容器可以访问基于远程服务器的现有MySQL服务器。 我创build了一个embedded了所有需求的Dockerfile,如下所示: FROM python:2.7-alpine mkdir /working_env RUN apk add –update mysql\ mysql-client\ python-dev\ build-base \ && rm -rf /var/cache/apk/* # Requirements here RUN pip install -r requirements.txt WORKSPACE working_env COPY init.sh . # BIND TO 8053 RUN init.sh start 并使用映射到本地项目的卷运行此容器 docker run –name –rm project -v $(pwd):/working_env -d -p 8053:8053 project_docker 在我的代码中进行的调用如下: conn = […]

代理Docker容器,用于传出连接

我的应用程序需要访问webservice需要白名单IP。 由于我有很多应用程序服务器,我最终得到了这样的解决scheme iptables -t nat -A OUTPUT -p tcp –dport 80 -d a.webservices.dimension.abc.com -j DNAT –to 52.1.2.3:9999 这意味着到a.webservices.dimension.abc.com的传出连接将被路由到52.1.2.3:9999(代理服务器) 有用。 现在我将我的应用程序服务器(ec2 vm)移动到Docker容器。 但是这样做,iptables规则不起作用。 这是最后的规则 Chain PREROUTING (policy ACCEPT) target prot opt source destination DOCKER all — anywhere anywhere ADDRTYPE match dst-type LOCALChain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot […]