通过网络链接的外部容器的别名

ste*_*ios 3 docker docker-compose docker-networking

假设我们有两个 Web 服务:alpha 和 beta

1)docker-compose.yml对于阿尔法

version: '2'

services:
    web:
        build: .
        env_file: local.env
        networks:
          - default
          - beta

    networks:
        beta:
            external:
                name: beta_default
Run Code Online (Sandbox Code Playgroud)

2)docker-compose.yml对于测试版

version: '2'

services:
    web:
        build: .
        env_file: .env
        expose:
          - "5000"
Run Code Online (Sandbox Code Playgroud)

这样我就可以beta_web_1alpha_web_1容器交互(例如 ping)容器。我想要的是为beta_web_1容器创建一个别名,以便我可以用一个有效的 URL 来命名它,例如:beta.local.

我想这里面发生docker-compose.ymlalpha或在保持它里面的观点阿尔法的范围的任何方式,这样我就不需要更改实际的系统范围名beta_web_1

这可能吗?

ste*_*ios 5

我已经错过了,有一个aliases下的选项networks。这样,如果我们将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
Run Code Online (Sandbox Code Playgroud)

2) 测试版/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
Run Code Online (Sandbox Code Playgroud)

现在我们可以beta.local从 alpha ping容器,alpha.local从 beta ping容器。