在docker compose中使用主机网络和其他网络

phz*_*nta 13 networking vagrant docker docker-compose devops

我正在尝试为我的项目设置开发环境.

我有一个容器(ms1)应该放在他自己的网络中(在我的情况下是"服务"),以及一个容器(apigateway)应该访问该网络,同时将一个http端口暴露给主机的网络.

理想情况下,我的docker撰写文件看起来像这样:

version: '2'
services:
    ms1:
        expose:
            - "13010"
        networks:
            services:
                aliases:
                    - ms1
   apigateway:
        networks:
            services:
                aliases:
                    - api
        network_mode: "host"
networks:
    services:
Run Code Online (Sandbox Code Playgroud)

docker-compose不允许同时使用network_mode和网络.

我还有其他选择吗?

目前我正在使用这个:

   apigateway:
        networks:
            services:
                aliases:
                    - api
        ports:
            - "127.0.0.1:10000:13010"
Run Code Online (Sandbox Code Playgroud)

然后apigateway容器侦听0.0.0.0:13010.它工作但它很慢,如果主机的互联网连接断开,它会冻结.

另外,我计划将来在docker上使用vagrant,它是否允许以干净的方式解决?

Plu*_*lup -1

我会尝试这个:

1/找到主机网络 docker network ls

2/使用这个dockercompose文件

     services:
          ms1:
              ports:
                  - "13010"
              networks:
                  - service
          apigateway:
              networks:
                  - front
                  - service

      networks:
          front:
          service:
              external:
                  name: "<ID of the network>"
Run Code Online (Sandbox Code Playgroud)