将流量阻止到一个docker服务任务(容器)

问题描述 投票:3回答:1

有3个不同的vm,其中RabbitMQ服务以global mode部署。我的目标是阻止对RabbitMQ服务容器之一的访问。使用iptables尝试Reproduce RabbitMQ network partition scenario

通过添加iptables链

iptables -A DOCKER-INGRESS -d 10.255.0.33 -p tcp --dport amqp -m state --state ESTABLISHED,RELATED -j DROP

在运行RabbitMQ服务任务容器的2个Docker节点上。10.255.0.33是从docker service inspect输出获取的群体覆盖网络中容器的ip。虽然,流量仍然通过,并且不会复制网络分区。如何正确阻止到服务容器的流量?

docker rabbitmq docker-swarm
1个回答
0
投票

假设您想阻止来自/到container_id标识的容器的流量

第2-3步应在容器内运行。

1)输入容器:

docker exec -it --privileged --env http_proxy=proxy_ip container_id bash

如果您可以直接连接到网络而不是在某些(公司)代理之后,则不需要[--env http_proxy=proxy_ip

2]此步骤假定基础映像OS基于Debian。如果基于RED-HAT,请使用yum软件包安装程序的等效命令。如果是其他OS系列,请使用适当的软件包安装程序命令。

安装iptables

apt-get update && apt-get install -y iptables

3)阻止往返于虚拟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
© www.soinside.com 2019 - 2024. All rights reserved.