如何阻止不同Docker网络上的容器之间的通信?
我有一个Docker设置,我与Docker compose一起运行。有两个网络,目前都使用“网桥”驱动程序运行。目前,如果IP已知,docker网络a(aka如何阻止不同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
前端
)上的容器可以直接与网络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服务器作为互联网的代理,但我认为细节与此无关