


Le tutoriel le plus détaillé sur l'organisation des volumes de données Docker
Cet article vous apporte des connaissances pertinentes sur les volumes de données dans docker. Les volumes de données peuvent partager ou réutiliser des données entre conteneurs. Les modifications des volumes de données ne seront pas incluses dans la mise à jour de l'image. aide.
Étude recommandée : "Tutoriel vidéo Docker"
Qu'est-ce qu'un volume de données ?
Lors de l'utilisation d'un conteneur Docker, une série de fichiers de données seront générés lorsque le conteneur Docker. est supprimé, mais une partie du contenu généré devrait être enregistrée pour une autre utilisation. Docker regroupe l'application et l'environnement d'exécution dans des conteneurs pour la publication. Les programmeurs espèrent que certaines des données générées pendant le processus en cours pourront être conservées. pour pouvoir partager des données entre conteneurs.
D'une manière générale, le volume de données du conteneur Docker peut être considéré comme un disque USB couramment utilisé. Il existe dans un ou plusieurs conteneurs et est monté sur le conteneur par Docker. Cependant, il n'appartient pas au système de fichiers commun et Docker le fera. ne le supprimez pas dans le conteneur. Supprimez son volume de données monté.
Caractéristiques des volumes de données
Les volumes de données peuvent partager ou réutiliser des données entre conteneurs
Les modifications du volume de données peuvent prendre effet immédiatement
Les modifications du volume de données ne seront pas incluses dans la mise à jour du miroir
Par défaut, le volume de données existera toujours, même si le conteneur est supprimé
Le cycle de vie du volume de données continue jusqu'à ce qu'aucun conteneur ne l'utilise
Données de gestion dans le conteneur
Volumes de données : volumes de données Les données du conteneur sont directement mappées à l'environnement hôte local
Conteneur de volume de données : Conteneurs de volume de données Utilisez des conteneurs spécifiques pour maintenir les volumes de données
Commande docker commune cp
Syntaxe
Copier les fichiers hôte dans le conteneur
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
Copier les fichiers du conteneur vers l'hôte
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
Paramètres communs
-L : Conserver les liens source dans la cible
Utilisation de base
Copier les fichiers de l'hôte dans le conteneur
docker cp /data/index.html nginx:/usr/share/nginx/html/index.html
Copier les fichiers du conteneur vers l'hôte
docker cp nginx:/etc/nginx/nginx.conf /data
Volumes de données Docker
Volumes de données (Data Volumes) sont disponibles pour un ou plusieurs conteneurs. Répertoire spécial utilisé qui mappe le répertoire du système d'exploitation hôte directement dans le conteneur.
Remarques sur les volumes de données
Pour monter un volume de données, il est préférable de créer un conteneur de démarrage via run au lieu de create/start. Une fois que la commande create/start a créé un conteneur de démarrage, il est assez difficile de monter le conteneur. volume de données. De nombreuses configurations doivent être modifiées, mais ce n'est pas impossible.
Le site officiel de Docker recommande de monter autant que possible des répertoires au lieu de monter des fichiers
Type de volume de données
Volume de données de l'hôte : directement dans le système de fichiers de l'hôte mais accessible par le conteneur (montage de liaison)
nommé Data volume : Un volume de données géré par Docker sur le disque, mais ce volume a un nom.
Volume de données anonyme : Un volume de données géré par Docker sur le disque Il n'est pas facile à trouver car il n'y a pas de nom pour gérer ces fichiers.
Volume de données hôte
montages de liaison : les données du conteneur sont stockées n'importe où dans le système de fichiers hôte, même dans certains répertoires ou fichiers système importants. Des processus autres que Docker peuvent également les modifier arbitrairement.
Lors de l'utilisation de montages de liaison, le répertoire ou le fichier hôte est monté dans le conteneur. Le conteneur utilisera ou modifiera les données de l'hôte en fonction du chemin absolu du répertoire ou du fichier de montage. Les répertoires ou fichiers de l'hôte n'ont pas besoin d'exister à l'avance et seront automatiquement créés en cas de besoin.
L'utilisation des montages de liaison est très bonne en termes de performances, mais cela dépend de la machine hôte disposant d'un système de fichiers bien structuré.
Les conteneurs utilisant des montages de liaison peuvent modifier le système de fichiers hôte via le processus à l'intérieur du conteneur, y compris la création, la modification et la suppression de fichiers et de répertoires système importants. Bien que cette fonction soit très puissante, elle aura évidemment également des implications en matière de sécurité. que Docker sur l'hôte
Notes
Si vous montez un volume de données vide sur un répertoire non vide du conteneur, les fichiers de ce répertoire seront copiés sur le volume de données
Si vous montez un volume de données non vide sur un répertoire dans le conteneur, et le répertoire dans le conteneur affichera les données dans le volume de données. S'il y a des données dans le répertoire d'origine du conteneur, les données d'origine seront masquées
Utilisation de base
Syntaxe
docker run -v /宿主机绝对路径目录:/容器内目录 镜像名
Utilisation de base
docker run -itd --name mysql --restart always --privileged=true -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin -v /data/mysql:/var/lib/mysql mysql:5.7.31 --character-set-server=utf8 --collation-server=utf8_general_ci
Autorisations du répertoire du conteneur
Pass -v Chemin dans le conteneur : ro rw Change read et autorisations d'écriture ro :readonly Lecture seule
rw:readwrite Lisible et inscriptible
docker run -it -v /Répertoire du chemin absolu de l'hôte :/Répertoire du conteneur :ro nom de l'image
docker run -it -v /Répertoire du chemin absolu de l'hôte :/Répertoire dans le conteneur : rw Nom de l'image
Par exemple :
docker run -d -P --name nginx05 -v nginx1:/etc/nginx:ro nginx docker run -d -P --name nginx05 -v nginx2:/etc/nginx:rw nginx
ro Tant que vous voyez ro, cela signifie que ce chemin ne peut être exploité que via l'hôte et ne peut pas être exploité à l'intérieur du conteneur !
Volume de données nommé
Basic Utilisez
docker run -itd --name nginx -p 80:80 -v lagouedu-nginx:/etc/nginx nginx:1.19.3-
alpine
pour afficher le volume de données docker docker volume ls
Afficher le répertoire hôte lagouedu-nginx
docker volume inspect lagouedu-nginx
Entrez le répertoire par défaut du volume de données docker
cd /var/lib/docker/volumes/lagouedu-nginx
Afficher les fichiers
ls
Tous les fichiers sont enregistrés dans Docker par défaut_ cd _data dans le répertoire de données
supprimez le conteneur
docker rm $(docker stop $(docker ps -aq))
查看挂载数据是否还存在,通过查看数据,发现删除容器后,宿主机中的数据还存在
ls
匿名数据卷
基本使用
docker run -itd --name nginx -p 80:80 -v /etc/nginx nginx:1.19.3-alpine 查看docker数据卷 docker volume ls
查看宿主机目录
docker volume inspect dbd07daa4e40148b11....
进入docker数据卷默认目录
cd /var/lib/docker/volumes/dbd07daa4e40148b11....
查看文件
ls
所有的文件docker默认保存在_data目录中 cd _data
删除容器
docker rm $(docker stop $(docker ps -aq))
查看挂载数据是否还存在,通过查看数据,发现删除容器后,宿主机中的数据还存在
ls
数据卷容器
run命令
常用参数
--volumes-from
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器
也是一个容器,但是它的目的是专门用来提供数据卷供其他容器挂载。
发现创建好的数据卷容器是处于停止运行的状态,因为使用 —volumes-from 参数所挂载数据卷的容器 自己并不需要保持在运行状态。
基本使用
docker run -d --name data-volume -v /data/nginx:/usr/share/nginx/html -v /data/mysql:/var/lib/mysql centos:7.8.2003 docker run -itd --name nginx01 -p 80:80 --volumes-from data-volume nginx:1.19.3- alpine echo "nginx" > /data/nginx/index.html http://192.168.198.100 docker run -itd --name nginx02 -p 81:80 --volumes-from data-volume nginx:1.19.3- alpine http://192.168.198.100:81 docker run -itd --name mysql01 --restart always --privileged=true -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin --volumes-from data-volume mysql:5.7.31 -- character-set-server=utf8 --collation-server=utf8_general_ci docker run -itd --name mysql02 --restart always --privileged=true -p 3307:3306 -e MYSQL_ROOT_PASSWORD=admin --volumes-from data-volume mysql:5.7.31 -- character-set-server=utf8 --collation-server=utf8_general_ci
推荐学习:《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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Sujets chauds

Quatre façons de quitter Docker Container: Utilisez Ctrl D dans le terminal de conteneur Entrez la commande d'exit dans le terminal de conteneur Utilisez Docker Stop & lt; contener_name & gt; Commande utilise docker kill & lt; contener_name & gt; commande dans le terminal hôte (sortie de force)

Méthodes de copie de fichiers en hôtes externes dans Docker: Utilisez la commande docker cp: exécuter docker cp [options] & lt; Container Path & gt; & lt; Host Path & gt;. Utilisation de volumes de données: créez un répertoire sur l'hôte et utilisez le paramètre -v pour monter le répertoire dans le conteneur lors de la création du conteneur pour obtenir la synchronisation de fichiers bidirectionnels.

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").

Comment redémarrer le conteneur Docker: Obtenez l'ID de conteneur (Docker PS); Arrêtez le conteneur (docker stop & lt; contener_id & gt;); Démarrer le conteneur (docker start & lt; contener_id & gt;); Vérifiez que le redémarrage réussit (Docker PS). Autres méthodes: Docker Compose (redémarrage Docker-Compose) ou API Docker (voir Docker Documentation).

Le processus de démarrage de MySQL dans Docker se compose des étapes suivantes: Tirez l'image MySQL pour créer et démarrer le conteneur, définir le mot de passe de l'utilisateur racine et mapper la connexion de vérification du port Créez la base de données et l'utilisateur accorde toutes les autorisations sur la base de données

Méthode de visualisation du processus docker: 1. Commande Docker CLI: Docker PS; 2. Commande CLI Systemd: Docker d'état SystemCTL; 3. Docker Compose CLI Commande: Docker-Compose PS; 4. Process Explorer (Windows); 5. / Répertoire proc (Linux).

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).
