我有一个用例,我想在不同的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 {}
我不知道那可能是什么问题。有人可以帮忙吗?
答案 0 :(得分:0)
为什么需要添加额外的桥?您是否尝试在--bip
arg?
- bip = CIDR - 使用标准CIDR表示法(如192.168.1.5/24)为docker0网桥提供特定的IP地址和网络掩码。
(来自here)