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

aliases for external containers linked through network

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

1) docker-compose.yml 对于 alpha:

version: '2'

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

    networks:
        beta:
            external:
                name: beta_default

2) docker-compose.yml 对于 beta:

version: '2'

services:
    web:
        build: .
        env_file: .env
        expose:
          - "5000"

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

我希望这种情况发生在 docker-compose.ymlalpha 或以任何方式将其保持在 alpha 的视野范围内,这样我就不需要更改实际的系统范围beta_web_1

的名称

这可能吗?

我错过了 networks 下有一个 aliases 选项。这样,如果我们将 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 容器。