Quelles sont les méthodes de montage pour Docker ?
Méthode : 1. Utilisez la commande run, la syntaxe est "docker run --name test1 -it -v" ; 2. Utilisez l'instruction VOLUME de dockerfile pour créer un point de montage, la syntaxe est "VOLUME ["/data1 ","/data2 "]"; 3. Utilisez les volumes partagés du conteneur.
L'environnement d'exploitation de ce tutoriel : système linux7.3, version docker-1.13.1, ordinateur Dell G3.
Quelles sont les méthodes de montage de docker
Avant d'introduire l'instruction VOLUME, examinons les exigences du scénario suivantes :
1 Le conteneur est créé sur la base de l'image et le système de fichiers du conteneur final inclut le fichier de lecture. seule la couche de l'image + peut Dans la couche d'écriture, la persistance des données des opérations de processus dans le conteneur est stockée dans la couche inscriptible du conteneur. Une fois le conteneur supprimé, les données disparaissent à moins que nous ne les sauvegardions manuellement (ou créions une nouvelle image basée sur le conteneur). Les données conservées par le processus conteneur peuvent-elles être enregistrées sur l'hôte ? De cette façon, même si le conteneur est supprimé, les données sont toujours là.
2. Lorsque nous développons une application Web, l'environnement de développement est local sur l'hôte, mais l'environnement de test en cours d'exécution est placé sur le conteneur Docker.
Dans ce cas, après avoir modifié les fichiers (tels que html, js, etc.) sur l'hôte, je dois les synchroniser avec le conteneur. C'est évidemment plus gênant.
3. Plusieurs conteneurs exécutent un ensemble de services associés. Et s'ils souhaitent partager certaines données ?
Bien sûr, nous pouvons penser à diverses solutions à ces problèmes. Docker lui-même fournit un mécanisme qui peut associer un répertoire sur l'hôte à un répertoire dans le conteneur (appelé point de montage ou volume). Le contenu sous le point de montage sur le conteneur est l'hôte. Le contenu du répertoire est similaire à celui-ci. le mécanisme de montage sous les systèmes Linux. Dans ce cas, lorsque nous modifions le contenu du répertoire sur l'hôte, nous n'avons pas besoin de synchroniser le conteneur, et cela prendra effet immédiatement pour le conteneur. Les points de montage peuvent être partagés par plusieurs conteneurs.
Présentons le mécanisme de mise en œuvre spécifique.
Transmettez d'abord la commande docker run
1. Exécutez la commande : docker run --name test -it -v /home/xqh/myimage:/data ubuntu /bin/bash
L'indicateur -v est défini dans le conteneur Un point de montage /data (qui est un répertoire dans le conteneur) et associe le contenu du répertoire /home/xqh/myimage sur l'hôte à /data.
De cette façon, les opérations sur le répertoire /data dans le conteneur et les opérations sur /home/xqh/myimage sur l'hôte sont complètement synchronisées en temps réel, car ces deux répertoires pointent en réalité vers le répertoire hôte.
2. Exécutez la commande : docker run --name test1 -it -v /data ubuntu /bin/bash
L'indicateur -v ci-dessus définit uniquement le point de montage du conteneur et ne spécifie pas le répertoire hôte associé. À ce stade, Docker liera automatiquement un répertoire sur l'hôte. Vous pouvez le visualiser via la commande docker inspect.
xqh@ubuntu:~/myimage$ docker inspect test1 [ { "Id": "1fd6c2c4bc545163d8c5c5b02d60052ea41900a781a82c20a8f02059cb82c30c", ............................. "Mounts": [ { "Name": "0ab0aaf0d6ef391cb68b72bd8c43216a8f8ae9205f0ae941ef16ebe32dc9fc01", "Source": "/var/lib/docker/volumes/0ab0aaf0d6ef391cb68b72bd8c43216a8f8ae9205f0ae941ef16ebe32dc9fc01/_data", "Destination": "/data", "Driver": "local", "Mode": "", "RW": true } ],
Chaque information sous Mounts ci-dessus enregistre les informations d'un point de montage sur le conteneur. La valeur "Destination" est le point de montage du conteneur et la valeur "Source" est le répertoire hôte correspondant. On voit que le répertoire hôte correspondant à cette méthode est automatiquement créé. Son but n'est pas de le modifier sur l'hôte, mais de le partager avec plusieurs conteneurs.
2 Créez un point de montage via dockerfile
Le point de montage créé via l'indicateur -v de la commande docker run décrite ci-dessus ne peut être valide que pour le conteneur créé. Un point de montage peut être créé dans l'image via la directive VOLUME du fichier docker, de sorte que tout conteneur créé via l'image ait un point de montage. Une autre différence est que le point de montage créé via la commande VOLUME ne peut pas spécifier le répertoire correspondant sur l'hôte et est automatiquement généré.
#test FROM ubuntu MAINTAINER hello1 VOLUME ["/data1","/data2"]
Le fichier dock ci-dessus spécifie deux points de montage /data1 et /data2 via l'instruction VOLUME.
Nous utilisons docker inspect pour afficher le conteneur généré par l'image créée par ce fichier docker, et nous pouvons voir les informations suivantes
"Mounts": [ { "Name": "d411f6b8f17f4418629d4e5a1ab69679dee369b39e13bb68bed77aa4a0d12d21", "Source": "/var/lib/docker/volumes/d411f6b8f17f4418629d4e5a1ab69679dee369b39e13bb68bed77aa4a0d12d21/_data", "Destination": "/data1", "Driver": "local", "Mode": "", "RW": true }, { "Name": "6d3badcf47c4ac5955deda6f6ae56f4aaf1037a871275f46220c14ebd762fc36", "Source": "/var/lib/docker/volumes/6d3badcf47c4ac5955deda6f6ae56f4aaf1037a871275f46220c14ebd762fc36/_data", "Destination": "/data2", "Driver": "local", "Mode": "", "RW": true } ],
Oui Voir les informations sur les deux points de montage.
Volume partagé à trois conteneurs (point de montage)
Ensuite, nous créons un autre conteneur qui peut partager les volumes /data1 et /data2 avec test1 (conteneur déjà créé). Cela se fait en utilisant l'indicateur --volumes-from dans le docker. run. , tel que :
peut provenir de différentes sources, telles que :
docker run --name test2 -it --volumes-from test1 ubuntu /bin/bash
, ou il peut s'agir de la même image, telle que :
docker run --name test3 -it --volumes-from test1 myimage /bin/bash
Les trois conteneurs ci-dessus test1, test2, test3 ont tous deux répertoires /data1. et /data2, et le répertoire Le contenu est partagé Si un conteneur modifie le contenu, d'autres conteneurs peuvent l'obtenir.
Quatre bonnes pratiques : conteneur de données
Si plusieurs conteneurs doivent partager des données (comme des bases de données persistantes, des fichiers de configuration ou des fichiers de données, etc.), vous pouvez envisager de créer un conteneur de données spécifique avec 1 ou plusieurs volumes.
D'autres conteneurs partagent les volumes de ce conteneur de données via –volumes-from.
Le volume du conteneur correspondant essentiellement au répertoire sur l'hôte, ce conteneur de données n'a pas besoin d'être démarré.
Par exemple : docker run --name dbdata myimage echo « data containers »
Explication : Il y a un volume, le partage de données entre les conteneurs est plus pratique, mais il y a aussi de nombreux problèmes qui doivent être résolus, comme le contrôle des autorisations , sauvegarde de données, suppression de volume, etc. Ces contenus seront introduits dans les articles suivants.
Apprentissage recommandé : "Tutoriel vidéo 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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pour obtenir la version Docker, vous pouvez effectuer les étapes suivantes: exécutez la commande docker "docker --version" pour afficher les versions client et serveur. Pour Mac ou Windows, vous pouvez également afficher les informations de version via l'onglet Version de la GUI de bureau Docker ou du menu de bureau à propos de Docker.

Étapes pour créer une image docker: écrivez un dockerfile qui contient les instructions de construction. Créez l'image dans le terminal, en utilisant la commande docker build. Marquez l'image et attribuez des noms et des balises à l'aide de la commande docker tag.

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Les méthodes pour afficher les journaux Docker incluent: à l'aide de la commande docker logs, par exemple: docker logs contener_name Utilisez la commande docker exec pour exécuter / bin / sh et afficher le fichier journal, par exemple: docker exec -it contener_name / bin / sh; Cat /var/log/continer_name.log Utilisez la commande docker-compose JORS de Docker Compose, par exemple: docker-compose -f docker-com

Vous pouvez passer à la source de miroir domestique. Les étapes sont les suivantes: 1. Modifiez le fichier de configuration /etc/docker/daemon.json et ajoutez l'adresse source miroir; 2. Après enregistrer et sortir, redémarrez le service Docker Sudo Systemctl Docker pour améliorer la vitesse et la stabilité du téléchargement d'image.

Pour enregistrer l'image dans Docker, vous pouvez utiliser la commande docker commit pour créer une nouvelle image, contenant l'état actuel du conteneur spécifié, Syntaxe: Docker Commit [Options] Nom d'image de l'ID de conteneur. Pour enregistrer l'image dans le référentiel, vous pouvez utiliser la commande docker push, Syntax: Docker Push Image Name [: Tag]. Pour importer des images enregistrées, vous pouvez utiliser la commande docker pull, syntaxe: docker pull name [: tag].
