Docker
Gérer des images
Recherche…
Syntaxe
- images de docker [OPTIONS] [REPOSITORY [: TAG]]
- docker inspect [OPTIONS] CONTENEUR | IMAGE [CONTENEUR | IMAGE ...]
- docker pull [OPTIONS] NAME [: TAG | @DIGEST]
- docker rmi [OPTIONS] IMAGE [IMAGE ...]
- tag docker [OPTIONS] IMAGE [: TAG] [REGISTRYHOST /] [NOM D'UTILISATEUR /] NOM [: TAG]
Récupérer une image depuis Docker Hub
Normalement, les images sont extraites automatiquement de Docker Hub . Docker tentera d'extraire n'importe quelle image de Docker Hub qui n'existe pas déjà sur l'hôte Docker. Par exemple, si vous utilisez docker run ubuntu
lorsque l'image d' ubuntu
n'est pas déjà sur l'hôte Docker, Docker déclenchera la dernière image ubuntu
. Il est possible de tirer une image séparément en utilisant Docker docker pull
pour docker pull
ou mettre à jour manuellement une image depuis Docker Hub.
docker pull ubuntu
docker pull ubuntu:14.04
Des options supplémentaires pour extraire un registre d'images différent ou extraire une version spécifique d'une image existent. Indiquant qu'un autre registre est effectué à l'aide du nom complet de l'image et de la version facultative. Par exemple, la commande suivante tente d'extraire l'image ubuntu:14.04
du registry.example.com
registry.example.com:
docker pull registry.example.com/username/ubuntu:14.04
Liste des images téléchargées localement
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 693bce725149 6 days ago 967 B
postgres 9.5 0f3af79d8673 10 weeks ago 265.7 MB
postgres latest 0f3af79d8673 10 weeks ago 265.7 MB
Référencement d'images
Les commandes Docker qui prennent le nom d'une image acceptent quatre formes différentes:
Type | Exemple |
---|---|
ID court | 693bce725149 |
prénom | hello-world (par défaut à :latest balise) |
Nom + tag | hello-world:latest |
Digérer | hello-world@sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619 |
Remarque: vous ne pouvez vous référer à une image que par son condensé si cette image a été à l'origine extraite à l'aide de ce résumé. Pour voir le résumé d'une image (s'il en existe une), exécutez les docker images --digests
.
Supprimer des images
La commande docker rmi
permet de supprimer des images:
docker rmi <image name>
Le nom complet de l'image doit être utilisé pour supprimer une image. Si l'image n'a pas été marquée pour supprimer le nom du registre, elle doit être spécifiée. Par exemple:
docker rmi registry.example.com/username/myAppImage:1.3.5
Il est également possible de supprimer les images par leur ID à la place:
docker rmi 693bce725149
Pour plus de commodité, il est possible de supprimer des images par leur identifiant d'image en spécifiant uniquement les premiers caractères de l'ID d'image, tant que la sous-chaîne spécifiée n'est pas ambiguë:
docker rmi 693
Remarque: les images peuvent être supprimées même si des conteneurs existants utilisent cette image. docker rmi se contente de "débloquer" l'image.
Si aucun conteneur n'utilise une image, celle-ci est récupérée. Si un conteneur utilise une image, l'image sera collectée une fois que tous les conteneurs qui l'utilisent sont supprimés. Par exemple:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b hello-world "/hello" Less than a second ago Exited (0) 2 seconds ago small_elion
$ docker rmi hello-world
Untagged: hello-world:latest
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b 693bce725149 "/hello" Less than a second ago Exited (0) 12 seconds ago small_elion
Supprimer toutes les images sans conteneur démarré
Pour supprimer toutes les images locales sans conteneur démarré, vous pouvez fournir une liste des images en tant que paramètre:
docker rmi $(docker images -qa)
Supprimer toutes les images
Si vous souhaitez supprimer des images, qu'elles aient ou non un conteneur démarré, utilisez l'indicateur de force ( -f
):
docker rmi -f $(docker images -qa)
Supprimer les images pendantes
Si une image n'est pas étiquetée et n'est pas utilisée par un conteneur, elle est "en suspens" et peut être supprimée comme ceci:
docker images -q --no-trunc -f dangling=true | xargs -r docker rmi
Rechercher des images dans le Docker Hub
Vous pouvez rechercher des images dans Docker Hub en utilisant la commande de recherche :
docker search <term>
Par exemple:
$ docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 3565 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 717 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 232 [OK]
...
Inspection d'images
docker inspect <image>
La sortie est au format JSON. Vous pouvez utiliser l'utilitaire de ligne de commande jq
pour analyser et imprimer uniquement les clés souhaitées.
docker inspect <image> | jq -r '.[0].Author'
La commande ci-dessus affiche le nom de l'auteur des images.
Marquage des images
Le marquage d'une image est utile pour suivre les différentes versions d'image:
docker tag ubuntu:latest registry.example.com/username/ubuntu:latest
Un autre exemple de marquage:
docker tag myApp:1.4.2 myApp:latest
docker tag myApp:1.4.2 registry.example.com/company/myApp:1.4.2
Enregistrement et chargement des images Docker
docker save -o ubuntu.latest.tar ubuntu:latest
Cette commande enregistre l'image ubuntu:latest
sous forme d'archive tarball dans le répertoire actuel sous le nom de ubuntu.latest.tar
. Cette archive tarball peut ensuite être déplacée vers un autre hôte, par exemple en utilisant rsync
, ou archivée dans le stockage.
Une fois l'archive a été déplacée, la commande suivante crée une image à partir du fichier:
docker load -i /tmp/ubuntu.latest.tar
Maintenant, il est possible de créer des conteneurs à partir de l’ ubuntu:latest
image comme d’habitude.