Maison > Article > Opération et maintenance > 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!