如何配置docker以避免特定地址或子网?
在我们的开发环境中,我们使用docker compose文件管理20多个容器,但有时其中一个容器从我们的网络获取一个IP,我们失去了连接。当这种情况发生时,我们手动关闭容器和网络 当我们添加更多容器时,是否有办法配置docker以避免特定的IP地址或子网 我们的docker版本是:如何配置docker以避免特定地址或子网?,docker,docker-compose,docker-networking,docker-network,Docker,Docker Compose,Docker Networking,Docker Network,在我们的开发环境中,我们使用docker compose文件管理20多个容器,但有时其中一个容器从我们的网络获取一个IP,我们失去了连接。当这种情况发生时,我们手动关闭容器和网络 当我们添加更多容器时,是否有办法配置docker以避免特定的IP地址或子网 我们的docker版本是: Client: Docker Engine - Community Version: 19.03.12 API version: 1.40 Go version:
Client: Docker Engine - Community
Version: 19.03.12
API version: 1.40
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:45:36 2020
OS/Arch: linux/amd64
Experimental: false
docker-compose version 1.25.4, build 8d51620a
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
我们的docker compose版本是:
Client: Docker Engine - Community
Version: 19.03.12
API version: 1.40
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:45:36 2020
OS/Arch: linux/amd64
Experimental: false
docker-compose version 1.25.4, build 8d51620a
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
主机操作系统是:
Linux-linuu-env\u-int\u 2 4.15.0-112-generic\113 Ubuntu-SMP-Thu-Jul 9 23:41:39 UTC 2020 x86\u 64 x86\u 64 GNU/Linux
(Ubuntu 18.04.4 LTS)您可以通过在/etc/docker/daemon.json
(Linux)文件中设置参数来配置默认网桥网络,如下所示:
{
"bip": "192.168.1.5/24",
"fixed-cidr": "192.168.1.5/25",
"fixed-cidr-v6": "2001:db8::/64",
"mtu": 1500,
"default-gateway": "10.20.1.1",
"default-gateway-v6": "2001:db8:abcd::89",
"dns": ["10.20.1.2","10.20.1.3"]
}
Ref:如果您有一个更大的基础设施,而此时可能会发生子网冲突,那么我建议您创建自己的docker网络,该网络将承载这些容器 您可以很容易地为docker网络指定IP范围,这样您就可以确保它不会与任何其他网络重叠
docker network create --subnet 10.10.0.0/16 mynet
并使用--network mynet
docker container run -d -p 8080:80 --network mynet --name web nginx
使用docker container inspect检查集装箱
"IPAddress": "10.10.0.2",
在docker compose中,您可以像这样针对先前创建的网络(mynet
)
version: "3.4"
services:
web:
image: nginx
ports:
- "8888:80"
networks:
- mynet
networks:
mynet:
external:
name: mynet