English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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
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.
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.
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.
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 docker rmi commande, par exemple, nous supprimons hello-world image :
$ docker rmi hello-world
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
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:/#
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.
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