阻止其中一个docker swarm服务任务容器的流量

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

在全局模式下部署了RabbitMQ服务的3个不同的vms。我的目标是阻止其中一个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输出的swarm overlay网络的容器的ip。虽然,流量仍然通过,网络分区不被再现。如何正确阻止服务容器的流量?

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

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

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

1)输入容器:

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

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

2)此步骤假定底层映像OS是基于Debian的。如果它是基于RED-HAT的,请使用yum package installer等效命令。如果是其他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.