docker保存鏡像到本地並加載本地鏡像文件詳解
docker保存鏡像到本地,並加載本地鏡像文件
1、查看已有的鏡像文件:
docker images
顯示效果如下所示:
2、將鏡像打包成本地文件
指令:docker save 鏡像id > 文件名.tar
docker save 172825a55619>./watch_ocr.tar# watch_ocr.tar為打包的文件
顯示效果如下所示:
3、在另一臺主機加載本地文件到鏡像
本地已有鏡像:
加載本地文件到鏡像:
指令:docker load < 文件名.tar
docker load < watch_ocr.tar # watch_ocr.tar 為文件名稱
4、鏡像重命名
執行完上述語句後,查看本地鏡像,會看到新加載的鏡像名字和標簽都是none,利用該鏡像的id對名字和標簽重新命名即可:
指令:docker tag 鏡像id 鏡像名:標簽
docker tag 172825a55619 watch_ocr:1.2
執行完畢後,查看本地鏡像:
5、創建容器
指令:
docker run -it --name watch_ocr_contain 172825a55619 /bin/bash
watch_ocr_contain :容器名稱
172825a55619 :鏡像id
補充:docker批量導出導入本地鏡像
日常工作中經常需要導出docker中的鏡像,如果鏡像數量過多時會相當麻煩,下列導出導入腳本很好的解決瞭該問題。
導出腳本
#!/bin/bash # 獲取到 "image:tag" 格式的鏡像名 IMG_NAME=`docker images | grep -v TAG | awk '{print $1":"$2}'` # echo $IMG_NAME | awk '{gsub(/ /,"\n",$0)} {print $0}' # 如果原本鏡像名中存在 "/" 是需要去掉的 # 定義鏡像存放目錄 DIR="/data/docker/image_tar" if [ ! -d "$DIR" ]; then echo -e "\033[34m${DIR}\033[0m 不存在" mkdir -p "$DIR" echo -e "\033[34m${DIR}\033[0m 已創建" else echo -e "\033[34m${DIR}\033[0m 已存在" fi echo "" for IMAGE in $IMG_NAME do echo -e "正在保存 \033[33m${IMAGE}\033[0m" SAVE_NAME=`echo $IMAGE | awk -F: '{print $1"_"$2}' | sed 's/\//_/g'` docker save $IMAGE -o ${DIR}/${SAVE_NAME}.tar echo -e "已保存到 \033[34m${DIR}/\033[31m${SAVE_NAME}.tar\033[0m" echo "" done
導入腳本
#!/bin/bash # 在此處填寫鏡像文件的保存目錄 IMAGE_DIR="/data/docker/image_tar" for IMAGE in `ls $IMAGE_DIR` do echo -e "正在導入鏡像 \033[33m$IMAGE\033[0m" docker load -i ${IMAGE_DIR}/${IMAGE} echo -e "已成功導入鏡像 \033[33m$IMAGE\033[0m" echo "" done
總結
到此這篇關於docker保存鏡像到本地並加載本地鏡像文件的文章就介紹到這瞭,更多相關docker保存鏡像到本地內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- docker該如何刪除已停止的容器
- docker images本地遷移的實現
- Docker鏡像與容器的導入導出以及常用命令總結
- docker+gitlab+jenkins從零搭建自動化部署
- docker 清理緩存腳本解析