假设我们有两个 Web 服务:alpha 和 beta
1) alpha 的 docker-compose.yml
:
version: '2'
services:
web:
build: .
env_file: local.env
networks:
- default
- beta
networks:
beta:
external:
name: beta_default
2) 用于测试版的docker-compose.yml
:
version: '2'
services:
web:
build: .
env_file: .env
expose:
- "5000"
这样我就可以与 alpha_web_1
容器交互(例如 ping)beta_web_1
容器。我想要的是为 beta_web_1
容器创建一个别名,以便我可以在有效的 URL 后命名它,例如:beta.local
。
我希望这发生在 alpha
的 docker-compose.yml
内部,或者以任何方式将其保持在 alpha 的 View 范围内,这样我就不会需要更改 beta_web_1
的实际系统范围名称
这可能吗?
最佳答案
我错过了网络
下有一个别名
选项。这样,如果我们将 docker-compose.yml 文件更改为:
1) alpha/docker-compose.yml:
version: '2'
services:
web:
build: .
env_file: local.env
networks:
default:
aliases:
- alpha.local
beta:
networks:
beta:
external:
name: beta_default
2) beta/docker-compose.yml
version: '2'
services:
web:
build: .
env_file: .env
expose:
- "5000"
networks:
default:
aliases:
- beta.local
alpha:
networks:
alpha:
external:
name: alpha_default
现在我们可以从 alpha ping beta.local
容器,从 beta ping alpha.local
容器。
关于docker - 通过网络链接的外部容器的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45014442/