前言:虽然docker-compose.yml单个配置文件中可以添入你想要的所有容器,只是一个配置文件管理十几个容器实在不便,而分成多份虽然方便单个容器的反复删除调试,但手动批量运行时难免繁琐,因此使用脚本来一键启动多级目录下的多个yml配置。
原理:使用find命令搜索子目录下的所有“*.yml”文件,拼接成完整的“docker-compose -f test.yml up -d”语句。
举例目录:
1 2 3 |
/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脚本写入:
1 2 |
var=` find ./ -maxdepth 2 -name "*.yml" -printf "docker-compose -f %p up -d; " ` echo $var | sh |
执行脚本:bash all.yml.sh
生成结果:
1 |
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; |
命令解释:
1 2 3 |
-maxdepth 2 # 往下搜索的子目录层级,1是脚本同级目录,2是包含同级和往下一级的目录。 -printf # find命令的格式化参数,变量%p是搜索的每条结果,格式化成“docker-compose -f /root/docker/tunel/frps.yml up -d”语句 echo $var | sh # 执行命令 |