关于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掩码。
(从这里 )