Maison  >  Article  >  Opération et maintenance  >  Quelle est la différence entre la sauvegarde Docker et l'exportation Docker ?

Quelle est la différence entre la sauvegarde Docker et l'exportation Docker ?

王林
王林avant
2020-06-17 17:44:084210parcourir

Quelle est la différence entre la sauvegarde Docker et l'exportation Docker ?

Tout d'abord, expliquons respectivement Docker Save et Docker Export :

Docker Save

interface de ligne de commande de Docker La conception est très élégant, et l'aide pour de nombreuses commandes peut être consultée directement en ajoutant --help à la fin.

L'aide de docker save est la suivante :

>docker save --help
Usage:  docker save [OPTIONS] IMAGE [IMAGE...]
Save one or more images to a tar archive (streamed to STDOUT by default)
Options:
      --help            Print usage
  -o, --output string   Write to a file, instead of STDOUT

Comme le montre l'aide en ligne de commande, docker save est un outil utilisé pour empaqueter et enregistrer une ou plusieurs images.

Par exemple, si nous voulons empaqueter postgres et mongo dans la bibliothèque d'images, nous pouvons exécuter :

docker save -o images.tar postgres:9.6 mongo:3.4

Le images.tar empaqueté contient les deux images de postgres:9.6 et mongo:3.4 .

Bien que les paramètres de ligne de commande nécessitent que l'image soit spécifiée, le conteneur peut en fait être empaqueté, par exemple :

>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
3623943d369f        postgres:9.6        "docker-entrypoint..."   3 hours ago         Up 3 hours          5432/tcp            postgres
>docker save -o b.tar postgres
>docker save -o c.tar postgres:9.6
>ls -al
-rwxrwxrwx 1 root root 277886464 8月  26 14:40 b.tar
-rwxrwxrwx 1 root root 277886464 8月  26 14:41 c.tar

Comme vous pouvez le voir dans la commande ci-dessus, b.tar et c. tar sont exactement les mêmes. Cela montre que si docker save spécifie un conteneur, docker save enregistrera l'image derrière le conteneur.

Chargez l'image empaquetée à l'aide de docker load, par exemple :

docker load -i images.tar

La commande ci-dessus chargera postgres:9.6 et mongo:3.4 Si la bibliothèque d'images locale Ces deux images existent déjà. et sera écrasé.

Le scénario d'application de docker save est le cas si votre application est une combinaison de plusieurs images disposées à l'aide de docker-compose.yml, mais que le serveur client que vous souhaitez déployer ne peut pas se connecter au réseau externe. À ce stade, vous pouvez utiliser Docker Save pour empaqueter l'image utilisée, puis la copier sur le serveur client et utiliser Docker Load pour la charger.

docker export

Comme d'habitude, vérifiez l'aide de docker export :

>docker export --help
Usage:  docker export [OPTIONS] CONTAINER
Export a container's filesystem as a tar archive
Options:
      --help            Print usage
  -o, --output string   Write to a file, instead of STDOUT

Comme le montre l'aide, docker export est utilisé pour convertir les fichiers conteneurs Le système est packagé. Par exemple :

docker export -o postgres-export.tar postgres

Docker export doit spécifier le conteneur et ne peut pas spécifier d'image ou de conteneur comme Docker Save.

Chargez le conteneur empaqueté à l'aide de docker import, par exemple :

docker import postgres-export.tar postgres:latest

Comme le montre la commande ci-dessus, docker import deviendra une image après l'importation du conteneur, pas une restauration vers un conteneur.

Un autre point est que l'importation Docker peut spécifier IMAGE[:TAG], ce qui signifie que nous pouvons spécifier un nouveau nom pour l'image. Si une image portant le même nom existe déjà dans la bibliothèque d'images locale, le nom de l'image d'origine sera supprimé et attribué à la nouvelle image. L'image originale deviendra un fantôme et ne pourra être utilisée que via IMAGE ID.

Le scénario d'application de Docker Export est principalement utilisé pour créer une image de base. Par exemple, vous démarrez un conteneur à partir d'une image Ubuntu, puis installez un logiciel et effectuez certains réglages, puis utilisez Docker Export pour l'enregistrer. comme image de base. Ensuite, distribuez cette image à d'autres personnes pour qu'elles puissent l'utiliser, par exemple en tant qu'environnement de développement de base.

La différence entre Docker Save et Docker Export

  • Docker Save enregistre l'image (image) et Docker Export enregistre le conteneur (conteneur) ;

  • docker load est utilisé pour charger le package d'image, et docker import est utilisé pour charger le package de conteneur, mais les deux seront restaurés dans l'image

  • Docker Load ne peut pas renommer l'image chargée, mais Docker Import peut spécifier un nouveau nom pour l'image.

Tutoriel recommandé : docker

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer