Cet article "Manuel Docker Compact" se compose de 4 éléments. D'autres articles sont ici.
Numéro de poste | Sous-titre et destination d'accès |
---|---|
1 | Commandes élémentaires / basiques |
2 | Montage et persistance des données(* Cet article) |
3 | docker-compose |
4 | Créer une image personnalisée |
Ceci est une continuation de l'article précédent. Cette fois, le montage, volume, qui ne peut être évité lors de l'utilisation du conteneur Je vais résumer la persistance des données.
important ** Cette fois est importante. Je me suis regretté sans connaître la monture et la persistance. : sanglot: Essayez de créer un environnement de conteneur confortable en le montant et en le perpétuant fermement. **: sourire:
** Les données du conteneur seront perdues si vous détruisez le conteneur. ** ** Ce n'est pas grave si vous le jetez pour une opération de test, mais vous voulez éviter d'effacer les données à utiliser dans Database. Les données qui ne doivent pas être perdues à l'intérieur du conteneur doivent être configurées pour sortir du conteneur et le conteneur regarde vers l'extérieur.
Je pense que l'image de est bonne.
Utilisez le support pour retirer ce conteneur.
Il existe deux types de montures. Pas lequel est le meilleur Je pense qu'il est nécessaire de les utiliser correctement en fonction du contenu à traiter.
Type de monture | Destination de montage | Utilisation recommandée |
---|---|---|
le volume | Zone réservée sur Docker Engine | Données que vous ne souhaitez pas voir à partir du conteneur Docker Données de base de données, etc. |
lier | Répertoire de l'hôte Docker | Lorsque vous souhaitez afficher le fichier hôte Docker dans le conteneur Fichier de configuration transmettant des données Données pour lesquelles les modifications sont immédiatement répercutées |
Les volumes peuvent être créés, répertoriés et supprimés avec la commande docker volume. Si vous utilisez inspect, vous pouvez trouver la destination d'enregistrement par point de montage du volume.
Sous-commande | Contenu | Exemple d'utilisation |
---|---|---|
create | Création de volume | docker volume create --name 'Nom du volume' |
inspect | Vérifiez les détails du volume | docker volume inspect 'Nom du volume' |
ls | Liste des volumes | docker volume ls |
prune | Supprimer tous les volumes non montés | docker volume prune |
rm | Supprimer le volume | docker volume rm 'Nom du volume' |
Paramètres de montage (utilisation en combinaison avec docker run, etc.)
Défini avec l'indicateur -v
ou --mount
.
Jusqu'à présent, -v est souvent utilisé, et il existe de nombreuses descriptions dans les livres et documents de référence,
Comme raison
Ce qui suit est un extrait du site officiel,
Dans le cas de -v
, si vous faites une faute de frappe, un nouveau volume sera créé.
J'obtiens une erreur indiquant que les données précédentes ne sont pas visibles.
Si cette erreur se produit et que vous poursuivez le développement, vous aurez du mal à y faire face lorsque vous le remarquerez plus tard.
D'un autre côté, --mount renverra une erreur si elle n'existe pas, vous pouvez donc être rassuré.
Source: docs docker Si vous liez le montage d'un fichier ou d'un répertoire en utilisant> -v ou --volume et que le fichier ou le répertoire n'existe pas déjà sur l'hôte Docker, -v générera ce point de terminaison de montage. Dans ce cas, il est toujours généré sous forme de répertoire.
Si vous montez en liaison un fichier ou un répertoire à l'aide de> --mount et que le fichier ou le répertoire n'existe pas sur l'hôte Docker, Docker ne générera pas automatiquement le fichier ou le répertoire. Une erreur est imprimée à la place.
Réglage avec -v
-v / home / ubuntu / ***: / usr / local / ***
montage de liaison
-v mysqlvolume: / var / lib / mysql
montage du volume
La différence ci-dessus est difficile à comprendre avec ou sans le premier /
--mount
--mount type = bind, src = / home / ubuntu / ***. Dst = / usr / local / ***
Bind mount
--mount type = volume, src = mysqlvolume, dst = / var / lib / mysql
Montage du volume
Pour --mount
, utilisez type
pour le montage bind
ou volume
,
Spécifiez où monter les données avec src = sorce (source de montage) et dst = destination (destination de montage)
Il semble que l'opération ici réduira les erreurs.
La sauvegarde est facile avec un support de liaison, (Comme il existe sur l'hôte, il peut être géré en copiant les données telles quelles.) S'il s'agit d'un montage de volume, la sauvegarde nécessite du travail.
Tout d'abord, l'exemple de commande de sauvegarde est décrit ci-dessous.
docker run --rm --mount type=volume,src=*****,dst=/src --mount type=bind,src="$PWD",dst=/dest busybox tar czf /dest/backup.tar.gz -C /src .
Regardons le contenu dans l'ordre.
docker run --rm
--mount type = volume, src = *****, dst = / src
--mount type = bind, src =" $ PWD ", dst = / dest
Ceci termine la sauvegarde du volume.
Ce qui précède est une méthode de sauvegarde Cette méthode nécessite que vous connaissiez le ** nom du volume de destination de sauvegarde **. Lors de la gestion de nombreux conteneurs, il est difficile de savoir quel conteneur utilise quel volume.
Dans ce cas
volumes-from
.--volumes-from correspond au démarrage du conteneur Il hérite de différentes informations de montage de conteneur et se monte avec les mêmes paramètres. Étant donné que la cible de sauvegarde peut être spécifiée par le nom du répertoire du conteneur au lieu du nom du volume Vous n'avez pas besoin de savoir sur quel volume le répertoire du conteneur est monté. C'est très pratique pour la sauvegarde des données.
Exemple de code
docker run --rm --volumes-from {{Nom du conteneur}} -v "$PWD":/dest busybox tar czf /dest/backup.tar.gz -C {{Adresse cible}} .
De plus, lors de l'utilisation d'un volume, il semble préférable de configurer un ** conteneur de volume de données **. Le conteneur de volume de données ne fonctionne pas principalement comme une activité de conteneur, Il ne monte que les répertoires requis. Bien que ce conteneur de volume de données ne fonctionne pas principalement
Il a l'avantage d'être utilisé.
La restauration est l'opposé de la sauvegarde de volume.
Commencez par créer un volume.
docker volume create *****
Entrez ensuite la commande dans le sens inverse de la sauvegarde des données.
docker run --rm --mount type=volume,src=*****,dst=/dest --mount type=bind,src="$PWD",dst=/src busybox tar xzf /src/backup.tar.gz -C /dest