支持功能:
- 保存容器为新的镜像
- 保存新的镜像到tar文件
脚本内容
#!/bin/bash
if [[ $UID == 0 ]];then
echo '开始打包...'
else
echo '仅支持root用户'
exit 1
fi
check_input(){
if [[ -z "$1" ]];then
echo -e "[$2]未输入"
exit 1
fi
}
check_status(){
if [[ $? == 0 ]];then
echo -e "${1}成功"
else
echo -e "${1}失败"
exit 1
fi
}
read -p "请输入容器id" con_id
check_input $con_id "容器ID"
read -p "请输入新的镜像名称[不允许大写]" img_name
check_input $img_name "镜像名称"
read -p "请输入镜像保存文件名[不允许特殊符号]" tar
check_input $tar "文件名"
docker commit $con_id $img_name
check_status "保存容器[$con_id]"
docker save -o $tar $img_name
check_status "保存镜像[$tar]"
执行效果
root@YY:~# bash auto.sh
开始打包...
请输入容器idb8ae7ac42522
请输入新的镜像名称[不允许大写]arm64v8/debian_syslog:v1.1
请输入镜像保存文件名[不允许特殊符号]docker_images_syslog.tar
sha256:5a6c4df0d3e6c5b28adbf4f8f8fbe290f4e5334b3b8785e9c505dacaf05aa582
保存容器[b8ae7ac42522]成功
保存镜像[docker_images_syslog.tar]成功
注意事项
- 必须使用root执行
- 脚本不对ID、文件、镜像名等做检测,所以不要输错就可以啦