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!

推薦閱讀: