关于docker守护进程在自定义CIDR块中产生容器

我有一个用例,我想在不同的CIDR块中产生docker容器。 在这一点上,我创build了我自己的自定义图像。 现在我创build了一个新的桥梁如下:

service docker stop ip link add br0 type bridge ip addr add MYCIDRBLOCK dev br0 ip link set br0 up docker -d -b br0 

这个守护程序到目前为止都非常好,它提供了以下输出:

 INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) INFO[0000] [graphdriver] using prior storage driver "devicemapper" WARN[0000] Running modprobe bridge nf_nat failed with message: , error: exit status 1 INFO[0000] Loading containers: start. ........................ INFO[0000] Loading containers: done. INFO[0000] Daemon has completed initialization INFO[0000] Docker daemon commit=0baf609 execdriver=native-0.2 graphdriver=devicemapper version=1.7.0 

现在我尝试启动我的docker容器与所有端口暴露: –

 docker run -d -i -t -expose 1-59999 arunav/myimage /bin/bash 

在客户端,我得到: –

  Error response from daemon: Cannot start container 1d29cf0d8057fd62bae9e45e5a91968b675a6c43e115f7912dd00abb05d90dd9: invalid argument 

在服务器端,我得到以下信息: –

 ERRO[0042] leaving endpoint failed: a container has already joined the endpoint ERRO[0042] Handler for POST /containers/{name:.*}/start returned error: Cannot start container 1d29cf0d8057fd62bae9e45e5a91968b675a6c43e115f7912dd00abb05d90dd9: invalid argument ERRO[0042] HTTP Error err=Cannot start container 1d29cf0d8057fd62bae9e45e5a91968b675a6c43e115f7912dd00abb05d90dd9: invalid argument statusCode=500 

所以起初我以为一些以前的容器正在占用一些端点。 所以我运行这个命令来摆脱容器转储:

  docker ps -a -q | xargs -n 1 -I {} docker rm {} 

我不知道那可能是什么问题。 有人可以帮忙吗?

为什么你需要添加一个额外的桥梁? 你有没有尝试在默认的CIDR中使用--bip arg?

–bip = CIDR – 使用像192.168.1.5/24这样的标准CIDR表示法为docker0网桥提供一个特定的IP地址和networking掩码。

(从这里 )