如何阻止不同Docker网络上的容器之间的通信?

如何阻止不同Docker网络上的容器之间的通信?,docker,docker-compose,Docker,Docker Compose,我有一个Docker设置,我与Docker compose一起运行。有两个网络,目前都使用“网桥”驱动程序运行。目前,如果IP已知,docker网络a(aka前端)上的容器可以直接与网络B(aka后端)上的容器通信,反之亦然 A和B之间的所有此类通信都可以被阻止吗 通过在compose yml文件中进行适当的配置,是否可以实现这一点?如果没有,docker命令或其他解决方法可以实现这一点 下面是我使用的docker-compose.yml文件的一个伪示例。我将网络B设置为internal:tru

我有一个Docker设置,我与Docker compose一起运行。有两个网络,目前都使用“网桥”驱动程序运行。目前,如果IP已知,docker网络a(aka
前端
)上的容器可以直接与网络B(aka
后端
)上的容器通信,反之亦然

A和B之间的所有此类通信都可以被阻止吗

通过在compose yml文件中进行适当的配置,是否可以实现这一点?如果没有,docker命令或其他解决方法可以实现这一点

下面是我使用的docker-compose.yml文件的一个伪示例。我将网络B设置为
internal:true
,这似乎确实阻止了从B上的容器到主机网络/internet的出站连接。但是如果我知道/猜测A上的容器的IP,我仍然可以从B上的容器ping它们

version: '3.5'

services:
  proxy:
    image: nginx:alpine
    container_name: proxy1
    ports:
      - "80:8080/tcp"
      - "443:8443/tcp"
    networks:
     - frontend
     - backend

  webapp:
    image: lopush/webapp:latest
    container_name: webapp1
    networks:
     - backend

networks:
  frontend:
    driver: bridge
    internal: false
    name: webapp_frontend
    ipam:
      driver: default
      config:
        - subnet: 172.18.0.1/16

  backend:
    driver: bridge
    internal: true
    name: webapp_backend
    ipam:
      driver: default
      config:
        - subnet: 172.19.0.1/16
真正的设置还有几个容器连接到
后端
,它们使用nginx服务器作为互联网的代理,但我认为细节与此无关