网络 – 允许使用docker-compose在两个docker网桥之间进行通信

weixin_38058086 2019-09-12 12:09:11
我正在使用docker compose创建相当复杂的docker容器基础结构.这些容器在4个不同的网络中运行(类似于我模仿的生产环境).Docker Compose为我创建了这四个网络,并且一切都运行得很长,因为容器不会尝试与不同网络中的其他容器通信.当他们这样做时,连接被丢弃.我能够找出它被删除的原因,这是因为Docker将iptables规则添加到DOCKER-ISOLATION链中.例: -A DOCKER-ISOLATION -i br-be010eaddd0e -o br-f788f16ed0dd -j DROP -A DOCKER-ISOLATION -i br-f788f16ed0dd -o br-be010eaddd0e -j DROP 我写了一个小脚本,删除了我想删除的规则(并允许在选定的桥之间进行通信),一切都像魅力一样,但不知何故,它们在某些时候由Docker重新创建,即使没有重新创建这些网络,所以它需要我再次运行该脚本,这非常烦人.有没有办法专门告诉Docker允许两个桥之间的通信?或者也许在使用Docker-Compose启动容器后运行特定的shell脚本有一些技巧?
...全文
622 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38062043 2019-09-12
  • 打赏
  • 举报
回复
如果有人感兴趣,我已设法用iptables处理这个问题.解决方案是明确允许桥接子网之间的通信(假设它们具有固定的IP地址).执行此操作的方法是发出以下命令(假设桥接子网为172.24.131.0/24和172.24.132.0/24): iptables -I FORWARD -s 172.24.131.0/24 -d 172.24.132.0/24 -j ACCEPT iptables -I FORWARD -d 172.24.131.0/24 -s 172.24.132.0/24 -j ACCEPT 这样我们就在DOCKER-ISOLATION之前在FORWARD链中添加新规则,它强制iptables忽略整个DOCKER-ISOLATION链,以便在这些子网之间进行任何通信.

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧