Docker 本地和共享网络

Docker local and shared network

我需要设置一个类似于下图中描述的环境:

如图所示,我需要在两个不同的虚拟机中部署两个需要通过私有 IP 地址相互通信的不同应用程序。但是,出于安全原因,非常重要的一点是 "Third parties App" 不能联系 "MongoDB" 并且 "REST API" 不能联系 "MYSQL DB"。

为此,我尝试了 Docker Swarm 和 docker 堆栈;不幸的是,通过这种方法,我完全失去了对服务部署位置的控制(例如,REST API 可以部署在右侧的虚拟机中)。

有人可以帮我找到设置此配置的方法吗? 谢谢。

创建一个 external network 并在每个堆栈中使用它

docker network create --driver=overlay --attachable your-share-network

撰写示例:

version: "3"
services:
  nginx:
    image: nginx
    networks:
    - your-share-network

networks:
  your-share-network:
    external: true

参考检查Docker network configuration reference