我有一个简单的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组成:
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
答案 0 :(得分:0)
我不知道为什么它在Windows 7中的工作方式不同,但是我可以想象是因为Docker机器本身。
我认为最好的解决方案是在docker-compose yml文件上真正定义一个网络。像这样:
networks:
network_name:
name: NETWORK_NAME
driver: bridge
ipam:
config:
- subnet: SUBNET