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

时间:2015-07-15 00:48:52

标签: 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/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 {}

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

1 个答案:

答案 0 :(得分:0)

为什么需要添加额外的桥?您是否尝试在--bip arg?

中使用带有显式CIDR的默认桥接器
  

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

(来自here