镜像管理工具docker-compose-img :
prerequisite
- docker-compose安装,并通过PATH可以找到
- docker提前安装
功能
- save: 保存docker-compose.yaml镜像至tar包
- load: 加载save命令保存的tar包
- list: 列出docker-compose.yaml文件的全部镜像
Code
#!/bin/bash
function usage(){
echo "
docker-compose-img is a utils tools for image management. specifically for docker-compose.yaml
docker-compose [list|load|save|push]
subcommand description:
list: list the images
load: load images from images dir
save: save images to images dir
"
}
function list(){
if [ -n $1 ] && [ "$1"x = "simple"x ]
then
docker-compose images | grep -v Container | gawk '{print $2}'
else
docker-compose images
fi
}
function load(){
cur_dir=$(pwd)
for file in $(ls images)
do
if [ "${file##*.}"x = "tar"x ]
then
docker load -i images/$file
fi
done
cd $cur_dir
}
function save(){
mkdir -p images
for image in $(docker-compose images | grep -v Container | gawk '{print $2}')
do
local image_tarfile=$(echo $image | tr . - | tr / _ |tr : _).tar
echo [INFO] saving $image to file $image_tarfile
if [ -f images/$image_tarfile ]
then
echo [INFO] cleaning the old image file: $image_tarfile
fi
docker image save $image > images/$image_tarfile
done
}
SUBCOMMAND=$1
case $SUBCOMMAND in
list)
shift
list $@
;;
load)
load
;;
save)
save
;;
*)
echo [ERROR] at least one subcommand should be specified.
usage
exit 1
;;
esac