阻止流量到 docker 服务任务之一(容器)
Blocking traffic to one of the docker service tasks (containers)
有 3 个不同的虚拟机,其中 RabbitMQ 服务以 全局模式 部署。
我的目标是阻止流量到 RabbitMQ 服务容器之一。
尝试使用 iptables
通过添加 iptables 链
iptables -A DOCKER-INGRESS -d 10.255.0.33 -p tcp --dport amqp -m state --state ESTABLISHED,RELATED -j DROP
在 2 docker 个节点上,其中 RabbitMQ 服务任务容器 运行。
10.255.0.33 是来自 docker service inspect
输出的 swarm overlay 网络容器的 ip。
尽管如此,流量仍然通过并且网络分区没有被再现。
如何正确阻止服务容器的流量?
假设您要阻止流量 from/to 由 container_id
识别的容器
步骤 2-3 应该 运行 在容器内。
1)进入容器:
docker exec -it --privileged --env http_proxy=proxy_ip container_id bash
--env http_proxy=proxy_ip
如果您可以直接连接到网络而不需要某些(公司)代理
,则不需要 --env http_proxy=proxy_ip
2) 此步骤假设基础映像 OS 是基于 Debian 的。如果它是基于 RED-HAT 的,请使用 yum 软件包安装程序等效命令。如果是其他 OS 系列,请使用适当的软件包安装程序命令。
安装iptables
apt-get update && apt-get install -y iptables
3) 屏蔽流量to/from 虚拟ip为10.0.0.183的容器
iptables -A OUTPUT -d 10.0.0.183 -j DROP
iptables -A INPUT -d 10.0.0.183 -j DROP
有 3 个不同的虚拟机,其中 RabbitMQ 服务以 全局模式 部署。
我的目标是阻止流量到 RabbitMQ 服务容器之一。
尝试使用 iptables
通过添加 iptables 链
iptables -A DOCKER-INGRESS -d 10.255.0.33 -p tcp --dport amqp -m state --state ESTABLISHED,RELATED -j DROP
在 2 docker 个节点上,其中 RabbitMQ 服务任务容器 运行。
10.255.0.33 是来自 docker service inspect
输出的 swarm overlay 网络容器的 ip。
尽管如此,流量仍然通过并且网络分区没有被再现。
如何正确阻止服务容器的流量?
假设您要阻止流量 from/to 由 container_id
识别的容器步骤 2-3 应该 运行 在容器内。
1)进入容器:
docker exec -it --privileged --env http_proxy=proxy_ip container_id bash
--env http_proxy=proxy_ip
如果您可以直接连接到网络而不需要某些(公司)代理
--env http_proxy=proxy_ip
2) 此步骤假设基础映像 OS 是基于 Debian 的。如果它是基于 RED-HAT 的,请使用 yum 软件包安装程序等效命令。如果是其他 OS 系列,请使用适当的软件包安装程序命令。
安装iptables
apt-get update && apt-get install -y iptables
3) 屏蔽流量to/from 虚拟ip为10.0.0.183的容器
iptables -A OUTPUT -d 10.0.0.183 -j DROP
iptables -A INPUT -d 10.0.0.183 -j DROP