由于网桥被限制为 1023 个 MAC 地址,普通 Docker 被限制为 1023 个容器。
但是如果你有几座桥怎么办?那么您可以拥有超过 1023 个容器吗?
您可以通过路由或网桥连接这些网桥吗?
如果是:请显示执行此操作的配置 - 最好是使容器可用于外部以太网的配置。
答案1
有可能的。有了这个我已经成功运行了 6000 个容器
servers_min=$1
servers_max=$2
# We will start 10x this
servers_min=$(( servers_min / 10 ))
servers_max=$(( servers_max / 10 ))
testssh() {
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/tmp/known root@"$1" echo "'$1'" '`uptime`'
}
export -f testssh
docker network create --driver bridge net0
docker network create --driver bridge net1
docker network create --driver bridge net2
docker network create --driver bridge net3
docker network create --driver bridge net4
docker network create --driver bridge net5
docker network create --driver bridge net6
docker network create --driver bridge net7
docker network create --driver bridge net8
docker network create --driver bridge net9
# Start the virtual servers
startone() {
id=$1
net=$2
docker run -d --rm --name ubuntu-$id-$net --network $net my-ubuntu
docker inspect ubuntu-$id-$net
}
export -f startone
seq $servers_min $servers_max | parallel startone :::: - ::: net{0..9} |
# After this it is possible to do:
# ssh 10.0.0.99
# from another physical server
perl -nE '/"IPAddress": "(\S+)"/ and not $seen{$1}++ and say $1' |
tee /tmp/ipaddr |
parallel testssh
docker ps
服务器可以在同一网桥和互联网内相互访问,但无法从以太网访问。