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

时间:2017-07-10 14:16:22

标签: docker docker-compose docker-networking

让我们说我们有两个网络服务:alpha&测试

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"

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

我希望在docker-compose.ymlalpha或{@ 1}}或以任何方式将其保持在alpha的视图范围内,这样我就不需要更改实际的系统范围名称了beta_web_1

这可能吗?

1 个答案:

答案 0 :(得分:3)

我错过了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

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

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