897 votes

Comment voir le contenu de l'image de docker

J'ai fait un tirage de menu fixe et je peux répertorier l'image téléchargée. Je veux voir le contenu de cette image. A fait une recherche sur le net mais pas de réponse directe. Merci.

1015voto

Ayman Nedjmeddine Points 2180

Il vous suffit d'exécuter un shell interactif conteneur à l'aide de cette image et d'explorer quel que soit le contenu que l'image.

Par exemple:

docker run -it image_name sh

Ou, si vous voulez voir comment l'image a été construit, ce qui signifie le suit dans ses Dockerfile, vous pouvez:

docker image history --no-trunc image_name > image_history

Les étapes seront enregistrés dans l' image_history le fichier.

Pour les images avec un entrypoint configuré, vous pouvez exécuter docker run -it --entrypoint sh image_name au lieu de le remplacer (gentiment suggéré dans les commentaires).

591voto

user939955 Points 31

Vous ne devez pas démarrer un conteneur uniquement pour voir le contenu de l'image. Par exemple, vous souhaiterez peut-être rechercher du contenu malveillant, et non pas l'exécuter. Utilisez "create" au lieu de "run";

 docker create --name="tmp_$$" image:tag
docker export tmp_$$ | tar t
docker rm tmp_$$
 

408voto

larsks Points 23184

La accepté de répondre ici est problématique, car il n'y a aucune garantie qu'une image s'affiche toute sorte de shell interactif. Par exemple, le drone drone/ image contient sur une seule commande /drone, et il a un ENTRYPOINT ainsi que, si cela ne fonctionne pas:

$ docker run -it drone/drone sh
FATA[0000] DRONE_HOST is not properly configured        

Et cela ne fonctionne pas:

$ docker run --rm -it --entrypoint sh drone/drone
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"sh\": executable file not found in $PATH".

Ce n'est pas rare de configuration; le nombre minimal d'images contiennent uniquement les binaires nécessaires pour soutenir le service cible. Heureusement, il existe des mécanismes pour explorer une image de système de fichiers qui ne dépend pas du contenu de l'image. Le plus simple est probablement l' docker export de commande, ce qui permettra d'exporter un conteneur de système de fichiers comme une archive tar. Donc, commencer à un conteneur (il n'a pas d'importance si il ne respecte pas ou pas):

$ docker run -it drone/drone sh
FATA[0000] DRONE_HOST is not properly configured        

Ensuite, utilisez docker export d'exporter le système de fichiers tar:

$ docker export $(docker ps -lq) | tar tf -

L' docker ps -lq "signifie "donnez-moi l'id de la plus récente conteneur docker". Vous pouvez remplacer qui explicite le nom du conteneur ou de l'identifiant.

255voto

Andy Wong Points 399
docker save nginx > nginx.tar
tar -xvf nginx.tar

Les fichiers suivants sont présents:

  • le manifeste.json – Décrit le système de fichiers de couches et le nom de fichier json qui a le Conteneur des propriétés.
  • .json Contenant les propriétés
  • – Chaque "layerid" répertoire contient le fichier json décrivant propriété de calque et le système de fichier associé à cette couche. Docker magasins Contenant des images en tant que couches pour optimiser l'espace de stockage grâce à la réutilisation des couches à travers des images.

https://sreeninet.wordpress.com/2016/06/11/looking-inside-container-images/

OU

vous pouvez utiliser de plongée pour afficher le contenu de l'image de manière interactive avec le TUI

enter image description here

https://github.com/wagoodman/dive

16voto

Serge Voloshenko Points 1303

Pour répertorier le contenu détaillé d'une image, vous devez exécuter docker run --rm image/name ls -alR--rm signifie supprimer dès que les sorties forment un conteneur.

entrez la description de l'image ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X