English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Utilisation des images Docker

Lorsque vous exécutez un conteneur, si l'image utilisée n'existe pas localement, Docker téléchargera automatiquement l'image depuis le dépôt de镜像 Docker, par défaut depuis Docker Hub.

Nous allons apprendre à présent :

  • 1、Gérer et utiliser les images Docker locales sur l'hôte principal

  • 2、Créer une image

Lister les images

Nous pouvons utiliser docker images Pour lister les images sur l'hôte local.

w3codebox@w3codebox:~$ docker images           
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu              14.04               90d5884b1ee0        5 il y a quelques jours          188 MB
php                 5.6                 f40e9e0f10c8        9 il y a quelques jours          444.8 MB
nginx latest              6f8d099c3adc        12 il y a quelques jours         182.7 MB
mysql               5.6                 f2e8d6c772c0        3 il y a quelques semaines         324.6 MB
httpd latest 02ef73cf1bc0        3 il y a quelques semaines         194.4 MB
ubuntu              15.10               4e3b13c8a266        4 il y a quelques semaines         136.3 MB
hello-world latest              690ed74de00f        6 il y a quelques mois        960 B
formation/webapp latest              6fae60ef3446        11 il y a quelques mois       348.8 MB

Explications des différentes options:

  • REPOSITORY :Représente la source de dépôt de l'image

  • TAG :Étiquette de l'image

  • IMAGE ID :ID de l'image

  • CREATED :Heure de création de l'image

  • SIZE :Taille de l'image

La même source de dépôt peut avoir plusieurs TAG, représentant différentes versions de ce dépôt, par exemple, dans le dépôt ubuntu, il y a 15.10、14.04 Nous utilisons REPOSITORY:TAG pour définir différentes images.

Donc, si nous devons utiliser plusieurs versions telles que15.10Pour exécuter des conteneurs avec l'image système ubuntu, la commande est la suivante :

w3codebox@w3codebox:~$ docker run -t -i ubuntu:15.10 /bin/bash 
root@d77ccb2e5cca:/#

Explication des paramètres :

  • -i: Opérations interactives.

  • -t: Terminal.

  • ubuntu:15.10Cela fait référence à l'utilisation d'ubuntu 15.10 Pour démarrer un conteneur en utilisant une image de version.

  • /bin/bash:Ce qui est placé après le nom de l'image est une commande, ici nous souhaitons avoir un Shell interactif, donc nous utilisons /bin/bash.

Si vous souhaitez utiliser la version 14.04 Pour exécuter des conteneurs avec l'image système ubuntu, la commande est la suivante :

w3codebox@w3codebox:~$ docker run -t -i ubuntu:14.04 /bin/bash 
root@:39e968165990:/#

Si vous ne spécifiez pas une étiquette de version d'image, par exemple, si vous utilisez uniquement ubuntu, Docker utilisera par défaut l'image ubuntu:latest.

Obtenir une nouvelle image

Lorsque nous utilisons une image inexistante sur l'hôte local, Docker télécharge automatiquement cette image. Si nous voulons télécharger cette image à l'avance, nous pouvons utiliser la commande docker pull pour la télécharger.

Cw3codebox@w3codebox:~$ docker pull ubuntu:13.10
13.10: Télécargement depuis la bibliothèque/ubuntu
6599cadaf950: Téléchargement terminé 
23eda618d451: Téléchargement terminé 
f0be3084efe9: Téléchargement terminé 
52de432f084b: Téléchargement terminé 
a3d95caeb02: Téléchargement terminé 
Digest : sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3
Statut : Nouvelle image téléchargée pour ubuntu :13.10

Après le téléchargement, nous pouvons utiliser directement cette image pour exécuter le conteneur.

Recherche d'image

Nous pouvons chercher des images sur le site Docker Hub, l'adresse du site Docker Hub est :https://hub.docker.com/

Nous pouvons également utiliser la commande docker search pour chercher des images. Par exemple, si nous avons besoin d'une image httpd pour notre service web, nous pouvons chercher l'image httpd en utilisant la commande docker search pour trouver l'image adaptée à nos besoins.

w3codebox@w3codebox:~$ docker search httpd

NAME: Nom de la source de l'image

DESCRIPTION: Description de l'image

OFFICIEL: Est-ce que c'est une version publiée par Docker officiellement

stars: Similaire à la star de Github, elle signifie j'aime ou favori.

AUTOMATIQUE: Construction automatique.

Téléchargement de l'image

Nous avons décidé d'utiliser l'image officielle httpd de la figure précédente, télécharger l'image en utilisant la commande docker pull.

w3codebox@w3codebox:~$ docker pull httpd
Utilisation de l'étiquette par défaut : latest
latest: Télécargement depuis la bibliothèque/httpd
8b87079b7a06: Télécargement de la couche fs 
a3d95caeb02: Téléchargement terminé 
0d62c9c6a76: Téléchargement terminé 
a329d50397b9: Téléchargement terminé 
avoir7c1f032b5c: En attente 
être44112b72c7: En attente

Téléchargement terminé, nous pouvons utiliser cette image maintenant.

w3codebox@w3codebox:~$ docker run httpd

Suppression de l'image

Suppression de l'image docker rmi commande, par exemple, nous supprimons hello-world image :

$ docker rmi hello-world

Créer l'image

Lorsque l'image téléchargée à partir du dépôt d'images Docker ne répond pas à nos besoins, nous pouvons modifier l'image de deux manières.

  • 1、mettre à jour l'image à partir du conteneur déjà créé et soumettre cette image

  • 2、créer une nouvelle image en utilisant les instructions Dockerfile

Mettre à jour l'image

Avant de mettre à jour l'image, nous devons utiliser l'image pour créer un conteneur.

w3codebox@w3codebox:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@e218edb10161:/#

dans le conteneur en cours d'exécution apt-get update commande pour mettre à jour.

Après avoir terminé l'opération, tapez la commande exit pour quitter ce conteneur.

lorsque l'ID est e218edb10161 du conteneur, est modifié selon nos besoins. Nous pouvons soumettre une copie de conteneur via la commande docker commit.

w3codebox@w3codebox:~$ docker commit -m="has update" -a="w3codebox" e218edb10161 w3codebox/ubuntu:v2
sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8

description des différents paramètres :

  • -m: description informative soumise

  • -a: spécifier l'auteur de l'image

  • e218edb10161:ID de conteneur

  • w3codebox/ubuntu:v2: spécifier le nom de l'image cible à créer

Nous pouvons utiliser docker images la commande pour visualiser notre nouvelle image w3codebox/ubuntu:v2:

w3codebox@w3codebox:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
w3codebox/ubuntu v2                  70bf1840fd7c        15 seconds ago      158.5 MB
ubuntu              14.04               90d5884b1ee0        5 il y a quelques jours          188 MB
php                 5.6                 f40e9e0f10c8        9 il y a quelques jours          444.8 MB
nginx latest              6f8d099c3adc        12 il y a quelques jours         182.7 MB
mysql               5.6                 f2e8d6c772c0        3 il y a quelques semaines         324.6 MB
httpd latest 02ef73cf1bc0        3 il y a quelques semaines         194.4 MB
ubuntu              15.10               4e3b13c8a266        4 il y a quelques semaines         136.3 MB
hello-world latest              690ed74de00f        6 il y a quelques mois        960 B
formation/webapp latest              6fae60ef3446        12 il y a quelques mois       348.8 MB

en utilisant notre nouvelle image w3codebox/ubuntu pour démarrer un conteneur

w3codebox@w3codebox:~$ docker run -t -i w3codebox/ubuntu:v2 /bin/bash                            
root@:1a9fbdeb5da3:/#

construire l'image

Nous utilisons la commande docker build , à partir de zéro pour créer une nouvelle image. À cette fin, nous devons créer un fichier Dockerfile, qui contient un ensemble d'instructions pour informer Docker sur la manière de construire notre image.

w3codebox@w3codebox:~$ cat Dockerfile 
FROM centos:6.7
MAINTAINER Fisher "[email protected]"
RUN     /bin/echo 'root:123456' |chpasswd
RUN useradd w3codebox
RUN     /bin/echo 'w3codebox:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8""/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D

Chaque instruction crée une nouvelle couche sur l'image, et le préfixe de chaque instruction doit être en majuscules.

Le premier FROM, spécifie l'image source à utiliser

L'instruction RUN indique à Docker d'exécuter des commandes à l'intérieur de l'image, ce qui a été installé...

Ensuite, nous utilisons le fichier Dockerfile pour construire une image en utilisant la commande docker build.

w3codebox@w3codebox:~$ docker build -t w3codebox/centos:6.7 .
Envoi du contexte de construction à l'agent Docker 17.92 kB
Étape 1 : FROM centos:6.7
 ---> d95b5ca17cc3
Étape 2 : MAINTAINER Fisher "[email protected]"
 ---> Utilisation du cache
 ---> 0c92299c6f03
Étape 3 : RUN /bin/echo 'root:123456' |chpasswd
 ---> Utilisation du cache
 ---> 0397ce2fbd0a
Étape 4 : RUN useradd w3codebox
......

Explication des paramètres :

  • -t :Spécifier le nom de l'image cible à créer

  • . :Répertoire du fichier Dockerfile, le chemin absolu du fichier Dockerfile peut être spécifié

L'utilisation de docker images montre que l'image créée est déjà présente dans la liste, l'ID de l'image est860c279d2fec

w3codebox@w3codebox:~$ docker images 
REPOSITORY TAG IMAGE ID CRÉÉ TAILLE
w3codebox/centos       6.7                 860c279d2fec il y a environ une minute   190.6 MB
w3codebox/ubuntu v2                  70bf1840fd7c        17 il y a quelques heures         158.5 MB
ubuntu              14.04               90d5884b1ee0        6 il y a quelques jours           188 MB
php                 5.6                 f40e9e0f10c8        10 il y a quelques jours          444.8 MB
nginx latest              6f8d099c3adc        12 il y a quelques jours          182.7 MB
mysql               5.6                 f2e8d6c772c0        3 il y a quelques semaines          324.6 MB
httpd latest 02ef73cf1bc0        3 il y a quelques semaines          194.4 MB
ubuntu              15.10               4e3b13c8a266        5 il y a quelques semaines          136.3 MB
hello-world latest              690ed74de00f        6 il y a quelques mois         960 B
centos              6.7                 d95b5ca17cc3        6 il y a quelques mois         190.6 MB
formation/webapp latest              6fae60ef3446        12 il y a quelques mois        348.8 MB

Nous pouvons utiliser la nouvelle image pour créer un conteneur

w3codebox@w3codebox:~$ docker run -t -i w3codebox/centos:6.7  /bin/bash
[root@41c28d18b5fb /]# id w3codebox
uid=500(w3codebox) gid=500(w3codebox) groupes=500(w3codebox)

Comme nous pouvons le voir ci-dessus, la nouvelle image contient déjà l'utilisateur que nous avons créé, w3codebox.

Définir l'étiquette de l'image

Nous pouvons utiliser la commande docker tag pour ajouter une nouvelle étiquette à l'image.

w3codebox@w3codebox:~$ docker tag 860c279d2fec w3codebox/centos:dev

docker tag ID_de_l'image, ici 860c279d2fec, le nom d'utilisateur, le nom de l'image de dépôt (repository name) et le nouveau nom d'étiquette (tag).

L'utilisation de la commande docker images montre que l'ID est860c279d2L'image fec a une étiquette en plus.

w3codebox@w3codebox:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
w3codebox/centos       6.7                 860c279d2fec        5 il y a quelques heures         190.6 MB
w3codebox/centos dev                 860c279d2fec        5 il y a quelques heures         190.6 MB
w3codebox/ubuntu v2                  70bf1840fd7c        22 il y a quelques heures        158.5 MB
ubuntu              14.04               90d5884b1ee0        6 il y a quelques jours          188 MB
php                 5.6                 f40e9e0f10c8        10 il y a quelques jours         444.8 MB
nginx latest              6f8d099c3adc        13 il y a quelques jours         182.7 MB
mysql               5.6                 f2e8d6c772c0        3 il y a quelques semaines         324.6 MB
httpd latest 02ef73cf1bc0        3 il y a quelques semaines         194.4 MB
ubuntu              15.10               4e3b13c8a266        5 il y a quelques semaines         136.3 MB
hello-world latest              690ed74de00f        6 il y a quelques mois        960 B
centos              6.7                 d95b5ca17cc3        6 il y a quelques mois        190.6 MB
formation/webapp latest              6fae60ef3446        12 il y a quelques mois       348.8 MB