[Docker] Comment voir le contenu des volumes. Démarrez un conteneur avec les privilèges root.

Comment vérifier les dossiers et fichiers contenus dans le volume Docker.

Méthode de confirmation

  1. Vérifiez le point de volume (chemin absolu) avec docker volume inspect.
  2. Démarrez un conteneur avec les privilèges root à partir de l'image.
  3. Utilisez la commande ls dans le terminal à l'intérieur du conteneur

Vérification du point de montage du volume


#Afficher la liste des volumes
docker volume ls

#Vérifier le point de montage
docker volume inspect [Nom du volume]

Démarrez un conteneur avec les privilèges root et vérifiez le contenu du volume


#Démarrer le conteneur avec les privilèges root
$ docker run -it --privileged --pid=host [Nom de l'image] nsenter -t 1 -m -u -n -i sh

#Afficher le contenu du volume
/ # ls [Chemin absolu du point de montage]

#Terminer le mode interactif
/ # exit

Avec l'opération ci-dessus, le contenu du volume peut être confirmé.


## Procédure de confirmation par exemple

Vérifiez l'image


$ docker images
REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
tomcat                                          latest              35064a4fcc93        2 weeks ago         648MB
django_web                                      latest              7f0eff7ebc94        2 weeks ago         937MB
debian                                          latest              1510e8501783        5 weeks ago         114MB
python                                          3                   dfc47c6cee13        6 weeks ago         886MB
postgres                                        latest              817f2d3d51ec        7 weeks ago         314MB
vuecli                                          3                   4040959eab16        2 months ago        338MB

Afficher la liste des volumes


$ docker volume ls
DRIVER              VOLUME NAME
local               0adf7a2b08b8e09f74ffb7799716e48263f012612dc2047da1d7137a75f12b5d
local               vuecli3_vue-cli-node-volume

Vérifier le point de montage


$ docker volume inspect vuecli3_vue-cli-node-volume
[
    {
        "CreatedAt": "2020-09-08T05:35:36Z",
        "Driver": "local",
        "Labels": {
            "com.docker.compose.project": "vuecli3",
            "com.docker.compose.version": "1.26.2",
            "com.docker.compose.volume": "vue-cli-node-volume"
        },
        "Mountpoint": "/var/lib/docker/volumes/vuecli3_vue-cli-node-volume/_data",
        "Name": "vuecli3_vue-cli-node-volume",
        "Options": null,
        "Scope": "local"
    }
]

Entrer en mode interactif Docker


$ docker run -it --privileged --pid=host [Nom de l'image] nsenter -t 1 -m -u -n -i sh

mode interactif docker


/ # ls
EFI         boot        dev         home        lib         mnt         proc        run         srv         tmp         var
bin         containers  etc         init        media       opt         root        sbin        sys         usr

Vérifier le volume


/ # ls /var/lib/docker/volumes/micres_micres-node_modules2/_data
@babel                                       mime-db
@csstools                                    mime-types
@mdi                                         mimic-response
@nicolo-ribaudo                              mini-css-extract-plugin
@npmcli                                      minimalistic-assert
@rails                                       minimalistic-crypto-utils

Détails du démarrage d'un conteneur avec les privilèges root

Quelle est la chose la plus importante, la commande de démarrage du conteneur avec l'autorité racine?

Commande $ docker run -it --privileged --pid = host [nom de l'image] nsenter -t 1 -m -u -n -i sh`

-Il -t pseudo terminal (--tty) -i Sortie standard toujours ON (--interactive)

- Privilégié Mode privilégié. Lancez un conteneur spécial avec les privilèges root sur l'hôte.

--Pid = hôte --pit = Spécifiez l'espace de noms PID pour le conteneur. Utilisez l'espace de noms PID côté hôte dans le conteneur hôte.

Nsenter Un outil de ligne de commande pour entrer les espaces de noms créés avec Docker. Une combinaison d'acronymes pour «ENTRER dans les espaces de noms».


▼ nsenter les options ・ `-T` Spécifiez le processus "--target pid". Spécifiez 1 ici.

-M "--Mount" Entrez l'espace de nom de montage. Si aucun espace de noms n'est spécifié, le processus spécifié par PID est utilisé.

・ ` ` "-Uts" Entrez l'espace de noms UTS. Si aucun espace de noms n'est spécifié, le processus spécifié par PID est utilisé.

uts signifie Partage de temps Unix.

・ ` ` Entrez l'espace de noms réseau "--net". Si aucun espace de noms n'est spécifié, le processus spécifié par PID est utilisé.

-I Entrez l'espace de noms IPC "--ipc". Si aucun espace de noms n'est spécifié, le processus spécifié par PID est utilisé.

En bref, il semble que différents espaces de noms seront lancés en traitant PID = 1.

Liste des options nsenter Linux

Recommended Posts

[Docker] Comment voir le contenu des volumes. Démarrez un conteneur avec les privilèges root.
Comment démarrer un conteneur Docker avec un volume monté dans un fichier de commandes
[Ruby] Comment récupérer le contenu du double hachage
Comment démarrer Camunda avec Docker
Comment créer un serveur Jenkins avec un conteneur Docker sur CentOS 7 de VirtualBox et accéder au serveur Jenkins à partir d'un PC local
L'histoire du transfert d'un conteneur Docker vers le registre de packages GitHub et Docker Hub avec des actions GitHub
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
Après tout, je voulais prévisualiser le contenu de mysql avec Docker ...
Comment vérifier le journal dans le conteneur Docker
Personnalisez la répartition du contenu de Recyclerview
Comment obtenir un heapdump à partir d'un conteneur Docker
Comment monter l'emplacement du fichier de commandes via WSL2 et démarrer le conteneur Docker
Comment obtenir l'ID d'un utilisateur qui s'est authentifié avec Firebase dans Swift
Comment afficher la quantité de disque utilisée par le conteneur Docker pour chaque conteneur
Jusqu'au lancement d'un conteneur Docker construit avec RedHat Quarkus
[Rails] Comment obtenir le contenu des paramètres forts
[Java] Comment rompre une ligne avec StringBuilder
Si vous utilisez SQLite avec VSCode, utilisez l'extension (comment voir le fichier binaire de sqlite3)
[Docker] Comment mettre à jour à l'aide d'un conteneur dans Heroku et comment gérer l'erreur de migration
Solution lorsque la connexion à la base de données n'est pas possible avec un nouveau conteneur car le port est affecté au conteneur docker existant
Comment faire une capture d'écran avec l'émulateur Android Studio
[Docker] Supprimer uniquement le volume associé à un conteneur spécifique
Comment modifier le contenu du fichier jar sans décompresser
[jsoup] Comment obtenir la totalité de la documentation
[Docker] Comment accéder à l'hôte depuis l'intérieur du conteneur. http: //host.docker.internal:
Essayez d'imiter l'idée d'un tableau à deux dimensions avec un tableau à une dimension
Comment créer un conteneur Java
J'ai essayé de créer un environnement de serveur UML Plant avec Docker
Comment obtenir le contenu de la carte à l'aide du mémorandum d'instructions
Créons un conteneur Docker qui peut SSH à la configuration minimale de CentOS 8
[Note] Comment redémarrer le conteneur Windows configuré avec docker-compose
[chown] Comment changer le propriétaire d'un fichier ou d'un répertoire
[Linux] Démarrer le conteneur Apache avec Docker
Attendez que PostgreSQL démarre avec Docker, puis démarrez le service WEB
Comment vérifier avant d'envoyer un message au serveur avec Spring Integration
Comment exécuter avec des commandes de langage de développement normales dans l'environnement de développement Docker
Comment accéder directement à Socket avec la fonction TCP de Spring Integration
Comment convertir un tableau de chaînes en un tableau d'objets avec l'API Stream
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
[Docker] Comment créer lorsque le code source est monté en liaison sur le conteneur
Comment savoir quelle version Java d'un fichier de classe a été compilée
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
Comment changer la valeur d'une variable à un point d'arrêt dans intelliJ
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
[swift5] Comment changer la couleur de TabBar ou la couleur de l'élément de TabBar avec le code
Comment partager des fichiers avec Docker Toolbox
L'histoire de la mise à jour du Docker Container de Sonar Qube
Comment déterminer le nombre de parallèles
Comment trier une liste de SelectItems
[Docker] Démarrez le conteneur dès que possible