阻止流量到 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