Docker:使用Auto-Incrementing创build同一图像的多个容器

我不确定这是否是一个很好的做法,但是我想指定一些Docker镜像来启动。 理想情况下,它会自动递增端口和tmp数据位置。

这是我目前的命令:

sudo docker run -it -d --restart=always -p=0.0.0.0:9220:9222 -m 1G -v /tmp/chromedata/:/data alpeware/chrome-headless-trunk

理想情况下,我希望能够产卵,说5这些 – 自动增量如下:

 Name Data Port Chrome1 /tmp/chrome1data/ 9220:9222 Chrome2 /tmp/chrome2data/ 9221:9222 Chrome3 /tmp/chrome3data/ 9222:9222 Chrome4 /tmp/chrome4data/ 9223:9222 Chrome5 /tmp/chrome5data/ 9224:9222 

我愿意接受任何其他的想法,基本上,最终目的是快速创build和轻松pipe理相同图像的容器。

警告:Docker noob

一种方法是创build一个小bash脚本来增加端口号,例如

 for x in $(seq 0 4); do # increment the port number port=$((9220 + $x)) sudo docker run -it -d --restart=always \ -p=0.0.0.0:$port:9222 \ -m 1G \ -v /tmp/chromedata/:/data \ --name container-$x \ alpeware/chrome-headless-trunk done 

您还可以为容器指定名称(–name parameter_,以便于识别。

根据您是否想在未来扩展这种自动化的复杂性,我强烈推荐检查Docker SDK for Python ,这将允许您编写任意复杂的容器部署逻辑,而不必与Bash语法作斗争。