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

Linux 关于docker守护进程在自定义CIDR块中生成容器,linux,docker,lxc,Linux,Docker,Lxc,我有一个用例,希望在不同的CIDR块中生成docker容器。此时,我已经创建了自己的自定义图像。现在,我创建了一个新桥,如下所示:- 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/ru

我有一个用例,希望在不同的CIDR块中生成docker容器。此时,我已经创建了自己的自定义图像。现在,我创建了一个新桥,如下所示:-

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 {}

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

你为什么需要增加一个额外的桥接器?您是否尝试在
--bip
arg中使用带有显式CIDR的默认桥接器

--bip=CIDR-使用标准CIDR表示法(如192.168.1.5/24)为docker0网桥提供特定的IP地址和网络掩码

(来自)