use*_*685 6 docker docker-compose
我想在一些 docker-compose 项目之间共享相同的 VPN 容器。在同一内部docker-compose.yml,network_mode: service:vpn_container成功路由所有流量通过vpn_container,但我无法跨docker-compose.ymls 使用该方法。
更具体地说:我的设置如下:
首先,为了使 VPN 容器可访问,我创建了名为“vpn_network”的虚拟网桥。
$ docker network create --driver bridge vpn_network
docker-compose.yml然后这样写:
// docker-compose.yml with VPN container
version: '3'
services:
vpn:
// container config
vpn_user1:
// container config
network_mode: 'service:vpn'
networks:
default:
external:
name: vpn_network
Run Code Online (Sandbox Code Playgroud)
// docker-compose.yml without VPN container
version: '3'
services:
vpn_user2:
// container config
network_mode: 'service:vpn'
networks:
default:
external:
name: vpn_network
Run Code Online (Sandbox Code Playgroud)
前者工作得很好,而后者则说:
ERROR: Service 'vpn_user2' uses the network stack of service 'vpn' which is undefined.
即使vpn连接到 的容器vpn_network正在运行。
我知道这是真的,我没有'vpn'在后一个中定义服务,但是我应该怎么写呢?
--
我还想知道描述行为的文档在哪里network_mode: 'service:XXX',除了https://docs.docker.com/compose/compose-file/compose-file-v3/#network_mode(这对我来说还不够)
小智 1
此后文档可能已更新,但使用以下内容应该可以跨 docker-compose.yml 文件工作。
network_mode: "container:[container name/id]"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
666 次 |
| 最近记录: |