专业编程基础技术教程

网站首页 > 基础教程 正文

分享一个自动打包容器的Shell脚本

ccvgpt 2024-07-20 11:43:22 基础教程 10 ℃

支持功能:

  • 保存容器为新的镜像
  • 保存新的镜像到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]"

执行效果


分享一个自动打包容器的Shell脚本

root@YY:~# bash auto.sh 
开始打包...
请输入容器idb8ae7ac42522
请输入新的镜像名称[不允许大写]arm64v8/debian_syslog:v1.1
请输入镜像保存文件名[不允许特殊符号]docker_images_syslog.tar
sha256:5a6c4df0d3e6c5b28adbf4f8f8fbe290f4e5334b3b8785e9c505dacaf05aa582
保存容器[b8ae7ac42522]成功
保存镜像[docker_images_syslog.tar]成功

注意事项

  • 必须使用root执行
  • 脚本不对ID、文件、镜像名等做检测,所以不要输错就可以啦

Tags:

最近发表
标签列表