參考:https://www.jianshu.com/p/f82351669d75
一、批量構建鏡像
buildDockerImages.sh
#!/usr/bin/env bash
echo "==================== start build docker images =========================="
cd /www/docker/images/
old_IFS=$IFS
IFS=','
cmds=(
'docker build -t xxx-base-env .',
'docker build -t redis:3.2 -f redis.dockerfile .',
'docker build -t mysql:5.6 -f mysql.dockerfile .',
'docker build -t elasticsearch:5.6.5 -f es.dockerfile .',
'docker build -t openresty -f openresty.dockerfile .'
)
for cmd in ${cmds[*]};do
eval "$cmd"
done
IFS=$old_IFS
echo "==================== end build docker images =========================="
二、批量刪除無用的鏡像,保留有用的鏡像
clearDockerImages.sh
#!/usr/bin/env bash
echo "==================== start clean docker images =========================="
docker images | awk '
NR>1{
if($1 == "xxx-base-env" ||
$1 == "mysql:5.6" ||
$1 == "mysql:5.7" ||
$1 == "redis:3.2" ||
$1 == "elasticsearch:5.6.5" ||
$1 == "openresty" ||
$1 == "monitoringartist/zabbix-xxl:3.2.6")
{
print "skiped ..."
}else{
system("docker rmi " $3)
}
}
';
echo "==================== end clean docker images =========================="
三、批量刪除docker容器的log
#!/usr/bin/env bash
echo "==================== start clean docker containers logs =========================="
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "==================== end clean docker containers logs =========================="
參考:https://blog.csdn.net/qq_37048894/article/details/81808851
四、一鍵關閉docker鏡像服務後重啓服務
dockerrestart.sh
#!/bin/bash
echo "正在停止所有docker裏面的容器ing..."
docker stop $(docker ps -a -q)
echo "停止成功,正在刪除容器ing..."
docker rm $(docker ps -a -q)
dockerlist=`docker images`
echo "$dockerlist"
docker rmi $(docker images -q)
echo "清除所有鏡像完畢"
echo "正在進行新的文件打包部署..."
cd docker/Adventure
mvn package docker:build
echo "打包構建成功"
docker run -p 80:80 -t adventure/docker
echo `docker ps`
echo "end ..."