Utilisation des images Docker


Lors de l'exécution d'un conteneur, si l'image utilisée n'existe pas localement, Docker la téléchargera automatiquement depuis l'entrepôt d'images Docker. La valeur par défaut est de télécharger depuis la source d'image publique Docker Hub.

Apprenons ci-dessous :

  • 1. Gérer et utiliser les images hôtes Docker locales

  • 2. Créer des images

    .

Répertorier la liste d'images

Nous pouvons utiliser des images Docker pour lister les images sur l'hôte local.

php@php:~$ docker images           
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              14.04               90d5884b1ee0        5 days ago          188 MB
php                 5.6                 f40e9e0f10c8        9 days ago          444.8 MB
nginx               latest              6f8d099c3adc        12 days ago         182.7 MB
mysql               5.6                 f2e8d6c772c0        3 weeks ago         324.6 MB
httpd               latest              02ef73cf1bc0        3 weeks ago         194.4 MB
ubuntu              15.10               4e3b13c8a266        4 weeks ago         136.3 MB
hello-world         latest              690ed74de00f        6 months ago        960 B
training/webapp     latest              6fae60ef3446        11 months ago       348.8 MB

Explication de chaque option :

  • REPOSTITORY : Représente la source d'entrepôt de l'image

  • TAG : Tag de l'image

  • ID DE L'IMAGE : ID de l'image

  • CRÉÉ :Durée de création de l'image

  • TAILLE : Taille de l'image

Une même source d'entrepôt peut en avoir plusieurs TAGs, représentant cela Il existe différentes versions de la source de l'entrepôt. Par exemple, dans la source de l'entrepôt Ubuntu, il existe de nombreuses versions différentes telles que 15.10, 14.04, etc. Nous utilisons REPOSTITORY:TAG pour définir différentes images.

Donc, si nous voulons utiliser l'image système Ubuntu de la version 15.10 pour exécuter le conteneur, la commande est la suivante :

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

Si nous voulons utiliser l'image système Ubuntu de la version 14.04 pour exécuter le conteneur, la commande Comme suit :

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

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


Obtenir une nouvelle image

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

Cphp@php:~$ docker pull ubuntu:13.10
13.10: Pulling from library/ubuntu
6599cadaf950: Pull complete 
23eda618d451: Pull complete 
f0be3084efe9: Pull complete 
52de432f084b: Pull complete 
a3ed95caeb02: Pull complete 
Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3
Status: Downloaded newer image for ubuntu:13.10

Une fois le téléchargement terminé, nous pouvons directement utiliser cette image pour exécuter le conteneur.


Trouver l'image

Nous pouvons rechercher l'image sur le site Web de Docker Hub. L'URL de Docker Hub est : https://hub.docker.com/<. 🎜>Nous pouvons également utiliser la commande de recherche Docker pour rechercher des images. Par exemple, nous avons besoin d'un miroir httpd comme service Web. Nous pouvons rechercher httpd via la commande docker search pour trouver l'image qui nous convient.

php@php:~$  docker search httpd

docker35.png

NOM :Le nom de la source de l'entrepôt d'images

DESCRIPTION :La description de l'image

OFFICIEL :Si Docker est officiellement publié


Faites glisser l'image

Nous avons décidé d'utiliser la version officielle de l'image httpd dans l'image ci-dessus, utilisez la commande docker pull pour télécharger l'image.

php@php:~$ docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
8b87079b7a06: Pulling fs layer 
a3ed95caeb02: Download complete 
0d62ec9c6a76: Download complete 
a329d50397b9: Download complete 
ea7c1f032b5c: Waiting 
be44112b72c7: Waiting

Une fois le téléchargement terminé, nous pouvons utiliser cette image.

php@php:~$ docker run httpd


Créer une image

Lorsque l'image que nous avons téléchargée depuis l'entrepôt d'images Docker ne répond pas à nos besoins, nous pouvons modifier l'image des deux manières suivantes.

  • 1. Mettez à jour l'image à partir du conteneur déjà créé et soumettez l'image

  • 2. Utilisez la commande Dockerfile pour créer une nouvelle image


Mettre à jour l'image

Avant de mettre à jour l'image, nous devons utiliser l'image pour créer un conteneur.
php@php:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@e218edb10161:/#
utilise la commande apt-get update dans le conteneur en cours d'exécution pour mettre à jour.

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

Le conteneur portant l'ID e218edb10161 à l'heure actuelle est un conteneur qui a été modifié en fonction de nos besoins. Nous pouvons soumettre la copie du conteneur via la commande docker commit.

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

Description de chaque paramètre :

  • -m :Informations de description soumises

  • -a :Spécifiez l'auteur de l'image

  • e218edb10161 : ID du conteneur

  • php/ubuntu :v2:Spécifiez le nom de l'image cible à créer

Nous pouvons utiliser la commande docker images pour afficher notre nouvelle imagephp/ubuntu : v2:

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

Démarrer un conteneur en utilisant notre nouvelle imagephp/ubuntu

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

Construire l'image

Nous utilisons Commandez docker build pour créer une nouvelle image à partir de zéro. Pour ce faire, nous devons créer un Dockerfile contenant un ensemble d'instructions pour indiquer à Docker comment créer notre image.

php@php:~$ cat Dockerfile 
FROM    centos:6.7
MAINTAINER      Fisher "fisher@sudops.com"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd php
RUN     /bin/echo 'php:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D

Chaque commande créera un nouveau calque sur l'image, et le préfixe de chaque commande doit être en majuscule.

Le premier FROM spécifie quelle source d'image utiliser

La commande RUN indique à Docker d'exécuter la commande dans l'image et d'installer quoi. . .

Ensuite, nous utilisons le fichier Dockerfile pour créer une image via la commande docker build.

php@php:~$ docker build -t php/centos:6.7 .
Sending build context to Docker daemon 17.92 kB
Step 1 : FROM centos:6.7
 ---> d95b5ca17cc3
Step 2 : MAINTAINER Fisher "fisher@sudops.com"
 ---> Using cache
 ---> 0c92299c6f03
Step 3 : RUN /bin/echo 'root:123456' |chpasswd
 ---> Using cache
 ---> 0397ce2fbd0a
Step 4 : RUN useradd php
......

Description du paramètre :

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

  • . : Le répertoire où se trouve le fichier Dockerfile Vous pouvez spécifier le chemin absolu du Dockerfile

Utiliser les images Docker pour vérifier que l'image créée est déjà créée. existe dans la liste. L'ID de l'image est 860c279d2fec

php@php:~$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
php/centos       6.7                 860c279d2fec        About a minute ago   190.6 MB
php/ubuntu       v2                  70bf1840fd7c        17 hours ago         158.5 MB
ubuntu              14.04               90d5884b1ee0        6 days ago           188 MB
php                 5.6                 f40e9e0f10c8        10 days ago          444.8 MB
nginx               latest              6f8d099c3adc        12 days ago          182.7 MB
mysql               5.6                 f2e8d6c772c0        3 weeks ago          324.6 MB
httpd               latest              02ef73cf1bc0        3 weeks ago          194.4 MB
ubuntu              15.10               4e3b13c8a266        5 weeks ago          136.3 MB
hello-world         latest              690ed74de00f        6 months ago         960 B
centos              6.7                 d95b5ca17cc3        6 months ago         190.6 MB
training/webapp     latest              6fae60ef3446        12 months ago        348.8 MB

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

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

Comme vous pouvez le voir ci-dessus, la nouvelle image contient déjà l'utilisateur php. nous avons créé


Définir la balise d'image

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

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

ID d'image de balise docker, voici 860c279d2fec, nom d'utilisateur, nom de la source de l'image (nom du référentiel) et nouveau nom de balise (tag).

En utilisant la commande docker images, vous pouvez voir que l'image avec l'ID 860c279d2fec a une étiquette supplémentaire.

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