【问题标题】:Simulate network request timeout between docker containers模拟 docker 容器之间的网络请求超时
【发布时间】:2020-02-29 20:51:14
【问题描述】:
我的桌面上运行了 2 个 docker 容器(Java 应用程序和 RabbitMQ)。我想模拟 Java 应用程序无法连接 RabbitMQ 的情况(但我不想停止 RabbitMQ)。
我发现可能可以使用这样的命令
sudo iptables -A INPUT -p tcp --destination-port 5672 -j DROP
但是对于 MacOS,我需要一个类比。或者另一种方式来断开 2 个 docker 容器之间的连接。
【问题讨论】:
标签:
macos
docker
connection
timeout
【解决方案1】:
Docker 不在 MacOS 上运行,而是在 MacOS 上运行的 Linux VM 中运行。因此,您可以在该 VM 上执行命令。我使用的常见网络调试映像是 nicolaka/netshoot(您可以在 github repo 中查看有关包含的实用程序和示例用法的更多信息)。
对于嵌入式 Linux VM 上的 iptables,您可以运行以下命令:
docker run --rm --net host --privileged nicolaka/netshoot iptables ...