一键启动多个docker-compose配置容器

798 阅读1分钟

前言:虽然docker-compose.yml单个配置文件中可以添入你想要的所有容器,只是一个配置文件管理十几个容器实在不便,而分成多份虽然方便单个容器的反复删除调试,但手动批量运行时难免繁琐,因此使用脚本来一键启动多级目录下的多个yml配置。
原理:使用find命令搜索子目录下的所有“*.yml”文件,拼接成完整的“docker-compose -f test.yml up -d”语句。
举例目录

/root/docker/docker-compose.yml
/root/docker/tunel/frps.yml
/root/docker/compose/portainer-ce.yml

测试搜索:在/root/docker/目录下执行 find ./ -maxdepth 2 -name "*.yml" -printf "%p \n"
检查搜索到的文件列表是否符合自己所需。

一键启动脚本 在/root/docker/目录下新建all.yml.sh脚本写入:

var=` find ./ -maxdepth 2 -name "*.yml"   -printf "docker-compose -f %p up -d; " `
echo $var | sh

执行脚本:bash all.yml.sh
生成结果

docker-compose -f ./compose/portainer-ce.yml up -d; docker-compose -f ./tunel/frps.yml up -d; docker-compose -f ./docker-compose.yml up -d; 

命令解释

-maxdepth 2 #往下搜索的子目录层级,1是脚本同级目录,2是包含同级和往下一级的目录。
-printf #find命令的格式化参数,变量%p是搜索的每条结果,格式化成“docker-compose -f /root/docker/tunel/frps.yml up -d”语句
echo $var | sh #执行命令