docker-compose 版本 3 的默认网络网关值

Leo*_*dkr 6 gateway docker docker-compose docker-network

我正在Nginx使用docker-compose版本创建一个容器3.7

我正在尝试指定ipam属性。但是当我阅读以下官方参考资料时:https : //docs.docker.com/compose/compose-file/#network-configuration-reference

有一个注释,我知道gateway只能在 version 下指定2

注意:其他 IPAM 配置(例如网关)目前仅适用于版本 2。

所以我尝试不指定gatewayunderipam属性。我的容器仍然可以创建和运行。

然后我去检查docker-network设置。经过我检查和观察,没有指定gateway。但我Nginx's access.log仍然显示来自172.19.100.1我认为它是gateway.

"IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.19.100.0/24"
                }
            ]
        }
Run Code Online (Sandbox Code Playgroud)

我想知道并澄清的是,在 version 下3.7,是否有任何方法可以指定gateway内部docker-compose文件,或者如果无法指定,默认值是什么?

另外,是否应该建议docker-compose在 version 下编写2而不是在3?

小智 0

这对我有用:

  • 创建一个网络并为其命名(例如awesomenet)。
  • 将 docker-compose.yml 中的网络配置为“外部”(这样 compose 就不会尝试创建和使用新网络)。
  • 配置您的服务以使用您之前创建的外部网络。

在您的 shell 上(选择适合您需要的 IP 范围):

docker network create --gateway "172.172.0.1" --subnet "172.172.0.0/16" awesomenet
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml(或开发环境中的 docker-compose.override.yml):

version: "2.4"
services:
  webserver:
    ports:
      - "443:443"
    ...
    networks:
      - awesomenet
  another_service:
    ...
    networks:
      - awesomenet
networks:
   awesomenet:
     external: true
Run Code Online (Sandbox Code Playgroud)