Docker guarda la imagen localmente y carga el archivo de imagen local

Tabla de contenido

1. Situaciones aplicables

2. Guarde la imagen en su máquina local. 

1. Ver archivos de imagen existentes

2. Guarde la imagen como un archivo local.

Guardar comando uno

Guardar comando dos

Pruebe a guardar la imagen según la ID de la imagen

3. Cargar imagen local

Cargando comando uno

Cargando comando dos

Cargar imagen local guardada por ID de imagen

4. Guardar y cargar secuencias de comandos de imágenes por lotes

Guardar imágenes por lotes en un script local

Script tar de carga de imagen por lotes


1. Situaciones aplicables

Generalmente, cuando descargamos imágenes de Docker, configuraremos fuentes de imágenes nacionales para acelerar la descarga, pero a veces existen los siguientes requisitos:

  • El dispositivo no se puede conectar a Internet y la imagen no se puede descargar directamente. Debe descargar la imagen de otros dispositivos y copiarla al dispositivo que no está actualmente conectado a Internet.
  • La imagen del dispositivo está en un almacén privado y no se puede descargar. Debe copiarse en el dispositivo actual.

Cuando se encuentre con las situaciones anteriores, puede consultar las siguientes operaciones ( se adjuntan scripts para guardar e importar imágenes por lotes )

2. Guarde la imagen en su máquina local. 

1. Ver archivos de imagen existentes

docker images

 Como se muestra en la figura siguiente, todas las imágenes en el dispositivo actual

2. Guarde la imagen como un archivo local.

   punto importante:

  1. La imagen guardada debe ser un archivo tipo tar.
  2. Si se usa la ID de la imagen en el comando de guardar, REPOSTITORY y TAG no son ninguno al importar el archivo tar, y la etiqueta de la imagen debe restablecerse usando la ID de la imagen; si se usa el nombre de la imagen, este problema no ocurrirá.
  • Guardar comando uno

#指令一
docker save -o /data/docker/nginx_latest.tar nginx

#Instrucción uno

ventana acoplable guardar -o

     /data/docker/nginx_latest.tar Nombre del archivo guardado, debe ser tipo tar, se puede agregar la ruta para guardar

     nginx La imagen que se guardará (ya sea nombre o ID, puede agregar TAG después del nombre para especificar la versión)

  • Guardar comando dos

#指令二
docker save nginx > nginx_latest01.tar

#Instrucción 2

guardar en la ventana acoplable

        Imagen nginx que se guardará (ya sea nombre o ID)

        >

        nginx_latest01.tar La imagen que se guardará (ya sea nombre o ID, puede agregar TAG después del nombre para especificar la versión)

 Ejecute el comando uno y el comando dos respectivamente

Después del éxito, guárdelo en archivos locales llamados nginx_latest.tar y nginx_latest01.tar.

  • Pruebe a guardar la imagen según la ID de la imagen

Para probar " si se usa la ID de la imagen en el comando de guardar, REPOSTITORY y TAG no son ninguno al importar el archivo tar, y la etiqueta de la imagen debe restablecerse usando la ID de la imagen", la imagen local guardada por ID DE IMAGEN Se probará por separado al cargar la imagen.

docker save -o nginx_latest_byID.tar 89da1fb6dcb9

3. Cargar imagen local

Tenemos un archivo de imagen local. Cuando sea necesario, podemos copiar la imagen local guardada en el dispositivo requerido y usar la carga de la ventana acoplable para importar la imagen guardada localmente en la ventana acoplable nuevamente.

  • Cargando comando uno

#指令一
docker load < nginx_latest.tar

 La siguiente demostración es para restaurar la misma imagen después de eliminarla.

  • Cargando comando dos

#指令二
docker load --input nginx_latest.tar

La operación básica del comando 2 es la misma que la del comando 1.

  • Cargar imagen local guardada por ID de imagen

El archivo de imagen local guardado por IMAGE ID es nginx_latest_byID.tar. Después de cargar, REPOSTITORY y TAG son ninguno. La siguiente es la prueba de carga.

4. Guardar y cargar secuencias de comandos de imágenes por lotes

Descarga del script de imagen para guardar y cargar por lotes icono-default.png?t=N6B9https://download.csdn.net/download/DreamEhome/88146817

  • Guardar imágenes por lotes en un script local

Crea un nuevo save_images.sh y escribe el siguiente contenido:

#!/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_save"
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

El script recién agregado no tiene permisos de ejecución. La prueba actual establece directamente los permisos en 777.

#修改文件权限为简单粗暴的所有者、所属组和其他人都有读写执行权限
chmod 777 save_images.sh

 Demostración del efecto de ejecución:

  • Script tar de carga de imagen por lotes

Cree un nuevo load_images.sh y otras operaciones son las mismas que save_image.sh.

#!/bin/bash
  
# 在此处填写镜像文件的保存目录
IMAGE_DIR="/data/docker/image_save"
  
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

Demostración del efecto de ejecución:

 

Supongo que te gusta

Origin blog.csdn.net/DreamEhome/article/details/132054143
Recomendado
Clasificación