1

我有一个简单的 yaml 文件,它启动两个容器:JBoss 和 Postgres。当我运行时:

docker-compose -f compose-application.yaml up -d

新网络已创建 - 这是我所期望的。但是,当我停止容器时:

docker-compose -f compose-application.yaml down

并再次启动它们,然后网络获得新的子网(增加 1)。当重新启动几次时,分配的子网与已经存在的子网冲突(路由问题等)。

我知道我可以指定应该在 yaml 中使用的子网。但是,我尝试在不同的机器(Windows 7 的 Docker)上运行它,并且该网络每次都获得相同的子网。

我正在使用 docker 版本:

docker version
Client:
Version:           18.06.1-ce
API version:       1.38
Go version:        go1.10.3
Git commit:        e68fc7a
Built:             Tue Aug 21 17:23:03 2018
OS/Arch:           linux/amd64
Experimental:      false

Server:
Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:25:29 2018
  OS/Arch:          linux/amd64
  Experimental:     false

和码头工人组成:

docker-compose version
docker-compose version 1.23.1, build b02f1306
docker-py version: 3.5.0
CPython version: 3.6.7
OpenSSL version: OpenSSL 1.1.0f  25 May 2017
4

1 回答 1

0

我不知道为什么它在 Windows 7 中的工作方式不同,但我可以想象那是因为 Docker 机器本身。

我认为最好的解决方案是在 docker-compose yml 文件上定义一个网络。像这样的东西:

  networks:
    network_name:
      name: NETWORK_NAME
      driver: bridge
      ipam:
        config:
          - subnet: SUBNET
于 2019-01-09T13:54:43.810 回答