Docker - Guide rapide

Docker est un service de gestion de conteneurs. Les mots-clés de Docker sontdevelop, ship et runnulle part. L'idée même de Docker est que les développeurs développent facilement des applications, les expédient dans des conteneurs qui peuvent ensuite être déployés n'importe où.

La version initiale de Docker remonte à mars 2013 et depuis lors, il est devenu le mot à la mode pour le développement du monde moderne, en particulier face aux projets basés sur Agile.

Caractéristiques de Docker

  • Docker a la capacité de réduire la taille du développement en fournissant une plus petite empreinte du système d'exploitation via des conteneurs.

  • Avec les conteneurs, il devient plus facile pour les équipes de différentes unités, telles que le développement, l'assurance qualité et les opérations, de travailler de manière transparente entre les applications.

  • Vous pouvez déployer des conteneurs Docker n'importe où, sur toutes les machines physiques et virtuelles et même sur le cloud.

  • Les conteneurs Docker étant assez légers, ils sont très facilement évolutifs.

Composants de Docker

Docker comprend les composants suivants

  • Docker for Mac - Il permet d'exécuter des conteneurs Docker sur Mac OS.

  • Docker for Linux - Il permet d'exécuter des conteneurs Docker sur le système d'exploitation Linux.

  • Docker for Windows - Il permet d'exécuter des conteneurs Docker sur le système d'exploitation Windows.

  • Docker Engine - Il est utilisé pour créer des images Docker et créer des conteneurs Docker.

  • Docker Hub - Il s'agit du registre utilisé pour héberger diverses images Docker.

  • Docker Compose - Ceci est utilisé pour définir des applications utilisant plusieurs conteneurs Docker.

Nous discuterons de tous ces composants en détail dans les chapitres suivants.

Le site officiel de Docker est https://www.docker.com/Le site contient toutes les informations et la documentation sur le logiciel Docker. Il contient également les liens de téléchargement pour divers systèmes d'exploitation.

Pour démarrer l'installation de Docker, nous allons utiliser une instance Ubuntu. Vous pouvez utiliser Oracle Virtual Box pour configurer une instance Linux virtuelle, au cas où vous ne l'auriez pas déjà.

La capture d'écran suivante montre un simple serveur Ubuntu qui a été installé sur Oracle Virtual Box. Un utilisateur du système d'exploitation est nommédemo qui a été défini sur le système ayant un accès root complet au serveur.

Pour installer Docker, nous devons suivre les étapes ci-dessous.

Step 1- Avant d'installer Docker, vous devez d'abord vous assurer que vous disposez de la bonne version du noyau Linux en cours d'exécution. Docker est uniquement conçu pour fonctionner sur le noyau Linux version 3.8 et supérieure. Nous pouvons le faire en exécutant la commande suivante.

ton nom

Cette méthode renvoie les informations système sur le système Linux.

Syntaxe

uname -a

Options

a - Ceci est utilisé pour garantir que les informations système sont renvoyées.

Valeur de retour

Cette méthode renvoie les informations suivantes sur le système Linux -

  • nom du noyau
  • nom du nœud
  • version du noyau
  • version du noyau
  • machine
  • processor
  • plate-forme matérielle
  • système opérateur

Exemple

uname –a

Production

Lorsque nous exécutons la commande ci-dessus, nous obtiendrons le résultat suivant -

À partir de la sortie, nous pouvons voir que la version du noyau Linux est 4.2.0-27 qui est supérieure à la version 3.8, nous sommes donc prêts à partir.

Step 2 - Vous devez mettre à jour le système d'exploitation avec les derniers packages, ce qui peut être fait via la commande suivante -

apt-get

Cette méthode installe les packages d'Internet sur le système Linux.

Syntaxe

sudo apt-get mise à jour

Options

  • sudo - Le sudo La commande est utilisée pour garantir que la commande s'exécute avec un accès root.

  • update - Le update L'option est utilisée pour s'assurer que tous les packages sont mis à jour sur le système Linux.

Valeur de retour

Aucun

Exemple

sudo apt-get update

Production

Lorsque nous exécutons la commande ci-dessus, nous obtiendrons le résultat suivant -

Cette commande se connecte à Internet et télécharge les derniers packages système pour Ubuntu.

Step 3- L'étape suivante consiste à installer les certificats nécessaires qui seront nécessaires pour travailler avec le site Docker ultérieurement pour télécharger les packages Docker nécessaires. Cela peut être fait avec la commande suivante.

sudo apt-get install apt-transport-https ca-certificates

Step 4- L'étape suivante consiste à ajouter la nouvelle clé GPG. Cette clé est requise pour garantir que toutes les données sont chiffrées lors du téléchargement des packages nécessaires pour Docker.

La commande suivante téléchargera la clé avec l'ID 58118E89F3A912897C070ADBF76221572C52609D à partir du keyserver hkp: //ha.pool.sks-keyservers.net: 80 et l'ajoute au advporte-clés. Veuillez noter que cette clé particulière est requise pour télécharger les packages Docker nécessaires.

Step 5 - Ensuite, selon la version d'Ubuntu dont vous disposez, vous devrez ajouter le site correspondant au docker.list pour le apt package manager, afin qu'il puisse détecter les packages Docker à partir du site Docker et les télécharger en conséquence.

  • Précis 12.04 (LTS) ─ deb https://apt.dockerproject.org/repoubuntu-précis main

  • Trusty 14.04 (LTS) ─ deb https://apt.dockerproject.org/repo/ ubuntu-trusty main

  • Wily 15.10 ─ deb https://apt.dockerproject.org/repo ubuntu-wily main

  • Xenial 16.04 (LTS) - https://apt.dockerproject.org/repo ubuntu-xenial main

Puisque notre système d'exploitation est Ubuntu 14.04, nous utiliserons le nom du référentiel comme «deb https://apt.dockerproject.org/repoubuntu-trusty main ».

Et puis, nous devrons ajouter ce référentiel au docker.list comme mentionné ci-dessus.

echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main” 
   | sudo tee /etc/apt/sources.list.d/docker.list

Step 6 - Ensuite, nous émettons le apt-get update command pour mettre à jour les packages sur le système Ubuntu.

Step 7 - Si vous souhaitez vérifier que le gestionnaire de packages pointe vers le bon référentiel, vous pouvez le faire en émettant le apt-cache command.

apt-cache policy docker-engine

Dans la sortie, vous obtiendrez le lien vers https://apt.dockerproject.org/repo/

Step 8 - Émettez le apt-get update command pour garantir que tous les packages du système local sont à jour.

Step 9 - Pour Ubuntu Trusty, Wily et Xenial, nous devons installer les packages du noyau linux-image-extra- *, ce qui permet d'utiliser le aufs storage driver. Ce pilote est utilisé par les nouvelles versions de Docker.

Cela peut être fait en utilisant la commande suivante.

sudo apt-get install linux-image-extra-$(uname -r) 
   linux-image-extra-virtual

Step 10 - La dernière étape consiste à installer Docker et nous pouvons le faire avec la commande suivante -

sudo apt-get install –y docker-engine

Ici, apt-get utilise l'option d'installation pour télécharger l'image du moteur Docker à partir du site Web Docker et installer Docker.

Le moteur Docker est le package officiel de Docker Corporation pour les systèmes basés sur Ubuntu.

Dans la section suivante, nous verrons comment vérifier la version de Docker qui a été installée.

Version Docker

Pour voir la version de Docker en cours d'exécution, vous pouvez émettre la commande suivante -

Syntaxe

docker version

Options

  • version - Il est utilisé pour garantir que la commande Docker renvoie la version Docker installée.

Valeur de retour

La sortie fournira les différents détails de la version Docker installée sur le système.

Exemple

sudo docker version

Production

Lorsque nous exécutons le programme ci-dessus, nous obtiendrons le résultat suivant -

Informations Docker

Pour voir plus d'informations sur le Docker en cours d'exécution sur le système, vous pouvez émettre la commande suivante -

Syntaxe

docker info

Options

  • info - Il est utilisé pour s'assurer que la commande Docker renvoie les informations détaillées sur le service Docker installé.

Valeur de retour

La sortie fournira les différents détails du Docker installé sur le système tels que -

  • Nombre de conteneurs
  • Nombre d'images
  • Le pilote de stockage utilisé par Docker
  • Le répertoire racine utilisé par Docker
  • Le pilote d'exécution utilisé par Docker

Exemple

sudo docker info

Production

Lorsque nous exécutons la commande ci-dessus, nous obtiendrons le résultat suivant -

Docker pour Windows

Docker a une prise en charge prête à l'emploi pour Windows, mais vous devez disposer de la configuration suivante pour installer Docker pour Windows.

Configuration requise

Système d'exploitation Windows Windows 10 64 bits
Mémoire 2 Go de RAM (recommandé)

Vous pouvez télécharger Docker pour Windows à partir de - https://docs.docker.com/docker-for-windows/

Boîte à outils Docker

Docker ToolBox a été conçu pour les anciennes versions de Windows, telles que Windows 8.1 et Windows 7. Vous devez disposer de la configuration suivante pour installer Docker pour Windows.

Configuration requise

Système d'exploitation Windows Windows 7, 8, 8.1
Mémoire 2 Go de RAM (recommandé)
Virtualisation Cela devrait être activé.

Vous pouvez télécharger Docker ToolBox à partir de - https://www.docker.com/products/docker-toolbox

Passons en revue l'installation de chaque produit.

Docker pour Windows

Une fois le programme d'installation téléchargé, double-cliquez dessus pour démarrer le programme d'installation, puis suivez les étapes ci-dessous.

Step 1 - Cliquez sur les termes du contrat, puis sur le bouton Installer pour poursuivre l'installation.

Step 2 - Une fois terminé, cliquez sur le bouton Terminer pour terminer l'installation.

Boîte à outils Docker

Une fois le programme d'installation téléchargé, double-cliquez dessus pour démarrer le programme d'installation, puis suivez les étapes ci-dessous.

Step 1 - Cliquez sur le bouton Suivant sur l'écran de démarrage.

Step 2 - Conservez l'emplacement par défaut sur l'écran suivant et cliquez sur le bouton Suivant.

Step 3 - Conservez les composants par défaut et cliquez sur le bouton Suivant pour continuer.

Step 4 - Conservez les tâches supplémentaires telles quelles, puis cliquez sur le bouton Suivant.

Step 5 - Sur l'écran final, cliquez sur le bouton Installer.

Travailler avec Docker Toolbox

Voyons maintenant comment Docker Toolbox peut être utilisé pour travailler avec des conteneurs Docker sous Windows. La première étape consiste à lancer l'application Docker Toolbox pour laquelle le raccourci est créé sur le bureau lors de l'installation de Docker Toolbox.

Ensuite, vous verrez la configuration en cours lors du lancement de la boîte à outils Docker.

Une fois terminé, vous verrez Docker configuré et lancé. Vous obtiendrez un shell interactif pour Docker.

Pour tester que Docker fonctionne correctement, nous pouvons utiliser Docker run command pour télécharger et exécuter un simple HelloWorld Docker container.

Le fonctionnement du Docker run command est donné ci-dessous -

docker run

Cette commande est utilisée pour exécuter une commande dans un conteneur Docker.

Syntaxe

docker run image

Options

  • Image - C'est le nom de l'image qui est utilisée pour exécuter le conteneur.

Valeur de retour

La sortie exécutera la commande dans le conteneur souhaité.

Exemple

sudo docker run hello-world

Cette commande téléchargera le hello-world image, si elle n'est pas déjà présente, et exécutez le hello-world en tant que conteneur.

Production

Lorsque nous exécutons la commande ci-dessus, nous obtiendrons le résultat suivant -

Si vous souhaitez exécuter le système d'exploitation Ubuntu sous Windows, vous pouvez télécharger l'image Ubuntu à l'aide de la commande suivante -

Docker run –it ubuntu bash

Ici, vous indiquez à Docker d'exécuter la commande en mode interactif via le –it option.

Dans la sortie, vous pouvez voir que l'image Ubuntu est téléchargée et exécutée, puis vous serez connecté en tant qu'utilisateur root dans le conteneur Ubuntu.

Docker Hub est un service de registre sur le cloud qui vous permet de télécharger des images Docker créées par d'autres communautés. Vous pouvez également télécharger vos propres images intégrées dans Docker sur le hub Docker. Dans ce chapitre, nous verrons comment télécharger et utiliser l'image Jenkins Docker à partir du hub Docker.

Le site officiel du hub Docker est - https://www.docker.com/community-edition#/add_ons

Step 1 - Vous devez d'abord faire une simple inscription sur Docker Hub.

Step 2 - Une fois que vous vous êtes inscrit, vous serez connecté à Docker Hub.

Step 3 - Ensuite, parcourons et trouvons l'image Jenkins.

Step 4 - Si vous faites défiler vers le bas sur la même page, vous pouvez voir le Docker pullcommander. Cela sera utilisé pour télécharger l'image Jenkins sur le serveur Ubuntu local.

Step 5 - Maintenant, allez sur le serveur Ubuntu et exécutez la commande suivante -

sudo docker pull jenkins

Pour exécuter Jenkins, vous devez exécuter la commande suivante -

sudo docker run -p 8080:8080 -p 50000:50000 jenkins

Notez les points suivants à propos de ce qui précède sudo commande -

  • Nous utilisons le sudo pour s'assurer qu'il s'exécute avec un accès root.

  • Ici, jenkins est le nom de l'image que nous voulons télécharger à partir du hub Docker et installer sur notre machine Ubuntu.

  • -p est utilisé pour mapper le numéro de port de l'image Docker interne à notre serveur Ubuntu principal afin que nous puissions accéder au conteneur en conséquence.

Vous aurez alors Jenkins s'exécutant avec succès en tant que conteneur sur la machine Ubuntu.

Dans Docker, tout est basé sur des images. Une image est une combinaison d'un système de fichiers et de paramètres. Prenons un exemple de la commande suivante dans Docker.

docker run hello-world
  • La commande Docker est spécifique et indique au programme Docker sur le système d'exploitation que quelque chose doit être fait.

  • le run La commande est utilisée pour mentionner que nous voulons créer une instance d'une image, qui est alors appelée container.

  • Enfin, "hello-world" représente l'image à partir de laquelle le conteneur est fabriqué.

Voyons maintenant comment nous pouvons utiliser l'image CentOS disponible dans Docker Hub pour exécuter CentOS sur notre machine Ubuntu. Nous pouvons le faire en exécutant la commande suivante sur notre machine Ubuntu -

sudo docker run centos –it /bin/bash

Notez les points suivants à propos de ce qui précède sudo commande -

  • Nous utilisons le sudo commande pour s'assurer qu'il s'exécute avec root accès.

  • Ici, centos est le nom de l'image que nous voulons télécharger depuis Docker Hub et installer sur notre machine Ubuntu.

  • ─it est utilisé pour mentionner que nous voulons exécuter interactive mode.

  • /bin/bash est utilisé pour exécuter le shell bash une fois que CentOS est opérationnel.

Affichage des images Docker

Pour voir la liste des images Docker sur le système, vous pouvez émettre la commande suivante.

docker images

Cette commande permet d'afficher toutes les images actuellement installées sur le système.

Syntaxe

docker images

Options

Aucun

Valeur de retour

La sortie fournira la liste des images sur le système.

Exemple

sudo docker images

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

À partir de la sortie ci-dessus, vous pouvez voir que le serveur a trois images: centos, newcentos, et jenkins. Chaque image a les attributs suivants -

  • TAG - Ceci est utilisé pour marquer logiquement les images.

  • Image ID - Ceci est utilisé pour identifier de manière unique l'image.

  • Created - Le nombre de jours depuis la création de l'image.

  • Virtual Size - La taille de l'image.

Téléchargement d'images Docker

Les images peuvent être téléchargées depuis Docker Hub à l'aide du Docker runcommander. Voyons en détail comment nous pouvons le faire.

Syntaxe

La syntaxe suivante est utilisée pour exécuter une commande dans un conteneur Docker.

docker run image

Options

  • Image - C'est le nom de l'image qui est utilisée pour exécuter le conteneur.

Valeur de retour

La sortie exécutera la commande dans le conteneur souhaité.

Exemple

sudo docker run centos

Cette commande téléchargera le centos image, si elle n'est pas déjà présente, et exécutez le système d'exploitation en tant que conteneur.

Production

Lorsque nous exécutons la commande ci-dessus, nous obtiendrons le résultat suivant -

Vous verrez maintenant l'image CentOS Docker téléchargée. Maintenant, si nous exécutons le Dockerimages pour voir la liste des images sur le système, nous devrions pouvoir voir le centos l'image aussi.

Suppression des images Docker

Les images Docker sur le système peuvent être supprimées via le docker rmicommander. Examinons cette commande plus en détail.

docker rmi

Cette commande est utilisée pour supprimer les images Docker.

Syntaxe

docker rmi ImageID

Options

  • ImageID - C'est l'ID de l'image qui doit être supprimée.

Valeur de retour

La sortie fournira l'ID d'image de l'image supprimée.

Exemple

sudo docker rmi 7a86f8ffcb25

Ici, 7a86f8ffcb25 est l'ID d'image du newcentos image.

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

Voyons quelques commandes Docker supplémentaires sur les images.

images docker -q

Cette commande est utilisée pour renvoyer uniquement les ID d'image des images.

Syntaxe

docker images

Options

  • q - Il indique à la commande Docker de ne renvoyer que les ID d'image.

Valeur de retour

La sortie affichera uniquement les ID d'image des images sur l'hôte Docker.

Exemple

sudo docker images -q

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

docker inspecter

Cette commande est utilisée pour voir les détails d'une image ou d'un conteneur.

Syntaxe

docker inspect Repository

Options

  • Repository - C'est le nom de l'image.

Valeur de retour

La sortie affichera des informations détaillées sur l'image.

Exemple

sudo docker inspect jenkins

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

Les conteneurs sont des instances d'images Docker qui peuvent être exécutées à l'aide de la commande d'exécution Docker. L'objectif de base de Docker est d'exécuter des conteneurs. Voyons comment travailler avec des conteneurs.

Exécuter un conteneur

L'exécution des conteneurs est gérée avec le Docker runcommander. Pour exécuter un conteneur en mode interactif, lancez d'abord le conteneur Docker.

sudo docker run –it centos /bin/bash

Ensuite, appuyez sur Crtl + p et vous reviendrez à votre shell OS.

Vous serez alors exécuté dans l'instance du système CentOS sur le serveur Ubuntu.

Liste des conteneurs

On peut lister tous les conteneurs sur la machine via le docker pscommander. Cette commande est utilisée pour renvoyer les conteneurs en cours d'exécution.

docker ps

Syntaxe

docker ps

Options

Aucun

Valeur de retour

La sortie affichera les conteneurs en cours d'exécution.

Exemple

sudo docker ps

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

Voyons quelques autres variantes du docker ps commander.

docker ps -a

Cette commande est utilisée pour lister tous les conteneurs du système

Syntaxe

docker ps -a

Options

  • ─a - Il raconte le docker ps commande pour répertorier tous les conteneurs du système.

Valeur de retour

La sortie affichera tous les conteneurs.

Exemple

sudo docker ps -a

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

histoire de docker

Avec cette commande, vous pouvez voir toutes les commandes qui ont été exécutées avec une image via un conteneur.

Syntaxe

docker history ImageID

Options

  • ImageID - Il s'agit de l'ID d'image pour lequel vous voulez voir toutes les commandes qui ont été exécutées contre elle.

Valeur de retour

La sortie affichera toutes les commandes exécutées sur cette image.

Exemple

sudo docker history centos

La commande ci-dessus affichera toutes les commandes exécutées sur le centos image.

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

Dans ce chapitre, nous explorerons en détail ce que nous pouvons faire avec les conteneurs.

haut de docker

Avec cette commande, vous pouvez voir les principaux processus dans un conteneur.

Syntaxe

docker top ContainerID

Options

  • ContainerID - Il s'agit de l'ID de conteneur pour lequel vous souhaitez voir les principaux processus.

Valeur de retour

La sortie affichera les processus de niveau supérieur dans un conteneur.

Exemple

sudo docker top 9f215ed0b0d3

La commande ci-dessus affichera les processus de niveau supérieur dans un conteneur.

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

arrêt docker

Cette commande est utilisée pour arrêter un conteneur en cours d'exécution.

Syntaxe

docker stop ContainerID

Options

  • ContainerID - Il s'agit de l'ID du conteneur qui doit être arrêté.

Valeur de retour

La sortie donnera l'ID du conteneur arrêté.

Exemple

sudo docker stop 9f215ed0b0d3

La commande ci-dessus arrêtera le conteneur Docker 9f215ed0b0d3.

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

docker rm

Cette commande est utilisée pour supprimer un conteneur.

Syntaxe

docker rm ContainerID

Options

  • ContainerID - Il s'agit de l'ID de conteneur qui doit être supprimé.

Valeur de retour

La sortie donnera l'ID du conteneur supprimé.

Exemple

sudo docker rm 9f215ed0b0d3

La commande ci-dessus supprimera le conteneur Docker 9f215ed0b0d3.

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

statistiques de docker

Cette commande est utilisée pour fournir les statistiques d'un conteneur en cours d'exécution.

Syntaxe

docker stats ContainerID

Options

  • ContainerID - Il s'agit de l'ID du conteneur pour lequel les statistiques doivent être fournies.

Valeur de retour

La sortie affichera l'utilisation du processeur et de la mémoire du conteneur.

Exemple

sudo docker stats 9f215ed0b0d3

La commande ci-dessus fournira le processeur et l'utilisation de la mémoire du conteneur 9f215ed0b0d3.

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

attachement docker

Cette commande est utilisée pour s'attacher à un conteneur en cours d'exécution.

Syntaxe

docker attach ContainerID

Options

  • ContainerID - Il s'agit de l'ID de conteneur auquel vous devez vous attacher.

Valeur de retour

Aucun

Exemple

sudo docker attach 07b0b6f434fe

La commande ci-dessus s'attachera au conteneur Docker 07b0b6f434fe.

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

Une fois que vous vous êtes attaché au conteneur Docker, vous pouvez exécuter la commande ci-dessus pour voir l'utilisation du processus dans ce conteneur Docker.

pause docker

Cette commande est utilisée pour suspendre les processus dans un conteneur en cours d'exécution.

Syntaxe

docker pause ContainerID

Options

  • ContainerID - Il s'agit de l'ID de conteneur pour lequel vous devez interrompre les processus dans le conteneur.

Valeur de retour

ContainerID du conteneur mis en pause.

Exemple

sudo docker pause 07b0b6f434fe

La commande ci-dessus suspendra les processus dans un conteneur en cours d'exécution 07b0b6f434fe.

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

redémarrage du docker

Cette commande est utilisée pour unpause les processus dans un conteneur en cours d'exécution.

Syntaxe

docker unpause ContainerID

Options

  • ContainerID - Il s'agit de l'ID de conteneur pour lequel vous devez réactiver les processus dans le conteneur.

Valeur de retour

Le ContainerID du conteneur en cours d'exécution.

Exemple

sudo docker unpause 07b0b6f434fe

La commande ci-dessus réactivera les processus dans un conteneur en cours d'exécution: 07b0b6f434fe

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

tuer les dockers

Cette commande est utilisée pour tuer les processus dans un conteneur en cours d'exécution.

Syntaxe

docker kill ContainerID

Options

  • ContainerID - Il s'agit de l'ID de conteneur pour lequel vous devez tuer les processus dans le conteneur.

Valeur de retour

Le ContainerID du conteneur en cours d'exécution.

Exemple

sudo docker kill 07b0b6f434fe

La commande ci-dessus tuera les processus dans le conteneur en cours d'exécution 07b0b6f434fe.

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

Docker - Cycle de vie du conteneur

L'illustration suivante explique le cycle de vie complet d'un conteneur Docker.

  • Au départ, le conteneur Docker sera dans le created Etat.

  • Ensuite, le conteneur Docker passe à l'état d'exécution lorsque le Docker run la commande est utilisée.

  • Le Docker kill La commande est utilisée pour tuer un conteneur Docker existant.

  • Le Docker pause La commande est utilisée pour mettre en pause un conteneur Docker existant.

  • Le Docker stop La commande est utilisée pour mettre en pause un conteneur Docker existant.

  • Le Docker run La commande est utilisée pour remettre un conteneur à partir d'un stopped état à un running Etat.

L'image suivante montre l'architecture standard et traditionnelle de virtualization.

  • Le serveur est le serveur physique utilisé pour héberger plusieurs machines virtuelles.

  • Le système d'exploitation hôte est la machine de base telle que Linux ou Windows.

  • L'hyperviseur est VMWare ou Windows Hyper V utilisé pour héberger des machines virtuelles.

  • Vous installeriez ensuite plusieurs systèmes d'exploitation en tant que machines virtuelles au-dessus de l'hyperviseur existant en tant que SE invité.

  • Vous hébergez ensuite vos applications au-dessus de chaque OS invité.

L'image suivante montre la nouvelle génération de virtualisation activée via Dockers. Jetons un coup d'œil aux différentes couches.

  • Le serveur est le serveur physique utilisé pour héberger plusieurs machines virtuelles. Donc, cette couche reste la même.

  • Le système d'exploitation hôte est la machine de base telle que Linux ou Windows. Donc, cette couche reste la même.

  • Vient maintenant la nouvelle génération qui est le moteur Docker. Ceci est utilisé pour exécuter le système d'exploitation qui était auparavant des machines virtuelles en tant que conteneurs Docker.

  • Toutes les applications fonctionnent désormais en tant que conteneurs Docker.

L'avantage évident de cette architecture est que vous n'avez pas besoin de matériel supplémentaire pour le système d'exploitation invité. Tout fonctionne comme des conteneurs Docker.

L'avantage du moteur Docker est qu'il est conçu pour fonctionner sur différents systèmes d'exploitation. Nous avons déjà vu l'installation sur Windows et vu toutes les commandes Docker sur les systèmes Linux. Voyons maintenant les différentes commandes Docker sur le système d'exploitation Windows.

Images Docker

Lançons le Docker images commande sur l'hôte Windows.

De là, nous pouvons voir que nous avons deux images - ubuntu et hello-world.

Exécuter un conteneur

Maintenant, exécutons un conteneur dans l'hôte Windows Docker.

Nous pouvons voir qu'en exécutant le conteneur, nous pouvons maintenant exécuter le conteneur Ubuntu sur un hôte Windows.

Liste de tous les conteneurs

Listons tous les conteneurs sur l'hôte Windows.

Arrêt d'un conteneur

Arrêtons maintenant un conteneur en cours d'exécution sur l'hôte Windows.

Vous pouvez donc voir que le moteur Docker est assez cohérent lorsqu'il s'agit de différents hôtes Docker et qu'il fonctionne sur Windows de la même manière qu'il fonctionne sur Linux.

Dans ce chapitre, nous examinerons les différentes options pour configurer Docker.

service docker stop

Cette commande est utilisée pour arrêter le Docker daemon processus.

Syntaxe

service docker stop

Options

Aucun

Valeur de retour

Un message indiquant que le processus Docker s'est arrêté.

Exemple

sudo service docker stop

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

démarrage du docker de service

Cette commande est utilisée pour démarrer le processus du démon Docker.

Syntaxe

service docker start

Options

Aucun

Valeur de retour

Un message indiquant que le processus Docker a démarré.

Exemple

sudo service docker start

Production

Lorsque nous exécutons la commande ci-dessus, cela produira le résultat suivant -

Par défaut, lorsque vous lancez un conteneur, vous utiliserez également un shell commandlors du lancement du conteneur comme indiqué ci-dessous. C'est ce que nous avons vu dans les chapitres précédents lorsque nous travaillions avec des conteneurs.

Dans la capture d'écran ci-dessus, vous pouvez observer que nous avons émis la commande suivante -

sudo docker run –it centos /bin/bash

Nous avons utilisé cette commande pour créer un nouveau conteneur, puis utilisé la commande Ctrl + P + Q pour sortir du conteneur. Cela garantit que le conteneur existe toujours même après notre sortie du conteneur.

Nous pouvons vérifier que le conteneur existe toujours avec le Docker pscommander. Si nous devions sortir directement du conteneur, le conteneur lui-même serait détruit.

Il existe désormais un moyen plus simple de se fixer aux conteneurs et de les sortir proprement sans avoir à les détruire. Une façon d'y parvenir est d'utiliser lensenter commander.

Avant de lancer le nsenter commande, vous devez d'abord installer le nsenterimage. Cela peut être fait en utilisant la commande suivante -

docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter

Avant d'utiliser le nsenter commande, nous devons obtenir l'ID de processus du conteneur, car cela est requis par le nsentercommander. Nous pouvons obtenir l'ID de processus via le Dockerinspect command et filtrer via le Pid.

Comme le montre la capture d'écran ci-dessus, nous avons d'abord utilisé le docker pscommande pour voir les conteneurs en cours d'exécution. Nous pouvons voir qu'il existe un conteneur en cours d'exécution avec l'ID ef42a4c5e663.

Nous utilisons ensuite le Docker inspect pour inspecter la configuration de ce conteneur, puis utiliser la commande greppour filtrer simplement l'ID de processus. Et à partir de la sortie, nous pouvons voir que l'ID de processus est 2978.

Maintenant que nous avons l'ID de processus, nous pouvons continuer et utiliser le nsenter commande à attacher au conteneur Docker.

nsenter

Cette méthode permet de s'attacher à un conteneur sans sortir du conteneur.

Syntaxe

nsenter –m –u –n –p –i –t commande containerID

Options

  • -u est utilisé pour mentionner le Uts namespace

  • -m est utilisé pour mentionner le mount namespace

  • -n est utilisé pour mentionner le network namespace

  • -p est utilisé pour mentionner le process namespace

  • -i s pour faire fonctionner le conteneur en mode interactif.

  • -t est utilisé pour connecter les flux d'E / S du conteneur au système d'exploitation hôte.

  • containerID - Il s'agit de l'ID du conteneur.

  • Command - Il s'agit de la commande à exécuter dans le conteneur.

Valeur de retour

Aucun

Exemple

sudo nsenter –m –u –n –p –i –t 2978 /bin/bash

Production

À partir de la sortie, nous pouvons observer les points suivants -

  • L'invite se transforme en bash shell directement lorsque nous émettons le nsenter commander.

  • Nous émettons ensuite le exitcommander. Maintenant normalement si vous n'avez pas utilisé lensentercommande, le conteneur serait détruit. Mais vous remarquerez que lorsque nous exécutons lensenter commande, le conteneur est toujours opérationnel.

Dans les chapitres précédents, nous avons vu les différents fichiers image tels que Centos qui sont téléchargés depuis Docker hubà partir de laquelle vous pouvez faire tourner des conteneurs. Un exemple est à nouveau montré ci-dessous.

Si nous utilisons le Docker imagescommande, nous pouvons voir les images existantes dans notre système. À partir de la capture d'écran ci-dessus, nous pouvons voir qu'il y a deux images:centos et nsenter.

Mais Docker vous donne également la possibilité de créer vos propres images Docker, et cela peut être fait à l'aide de Docker Files. Un fichier Docker est un simple fichier texte contenant des instructions sur la création de vos images.

Les étapes suivantes expliquent comment créer un fichier Docker.

Step 1 - Créez un fichier appelé Docker File et modifiez-le en utilisant vim. Veuillez noter que le nom du fichier doit être "Dockerfile" avec "D" en majuscule.

Step 2 - Créez votre fichier Docker en suivant les instructions suivantes.

#This is a sample Image 
FROM ubuntu 
MAINTAINER [email protected] 

RUN apt-get update 
RUN apt-get install –y nginx 
CMD [“echo”,”Image created”]

Les points suivants doivent être notés à propos du fichier ci-dessus -

  • La première ligne «#This is a sample Image» est un commentaire. Vous pouvez ajouter des commentaires au fichier Docker à l'aide du# commander

  • La ligne suivante doit commencer par FROMmot-clé. Il indique à docker, à partir de quelle image de base vous voulez baser votre image. Dans notre exemple, nous créons une image à partir duubuntu image.

  • La commande suivante est la personne qui va maintenir cette image. Ici, vous spécifiez leMAINTAINER mot-clé et mentionnez simplement l'ID de messagerie.

  • le RUNLa commande est utilisée pour exécuter des instructions sur l'image. Dans notre cas, nous mettons d'abord à jour notre système Ubuntu, puis nous installons le serveur nginx sur notreubuntu image.

  • La dernière commande est utilisée pour afficher un message à l'utilisateur.

Step 3- Enregistrez le fichier. Dans le chapitre suivant, nous discuterons de la manière de créer l'image.

Nous avons créé notre fichier Docker dans le dernier chapitre. Il est maintenant temps de créer le fichier Docker. Le fichier Docker peut être construit avec la commande suivante -

docker build

Apprenons-en plus sur cette commande.

construction de docker

Cette méthode permet aux utilisateurs de créer leurs propres images Docker.

Syntaxe

docker build  -t ImageName:TagName dir

Options

  • -t - c'est mentionner une balise à l'image

  • ImageName - C'est le nom que vous souhaitez donner à votre image.

  • TagName - C'est le tag que vous souhaitez donner à votre image.

  • Dir - Le répertoire dans lequel le fichier Docker est présent.

Valeur de retour

Aucun

Exemple

sudo docker build –t myimage:0.1.

Ici, myimage est le nom que nous donnons à l'image et 0.1 est le numéro d'étiquette que nous attribuons à notre image.

Puisque le fichier Docker se trouve dans le répertoire de travail actuel, nous avons utilisé "." à la fin de la commande pour signifier le répertoire de travail actuel.

Production

À partir de la sortie, vous verrez d'abord que l'image Ubuntu sera téléchargée depuis Docker Hub, car aucune image n'est disponible localement sur la machine.

Enfin, lorsque la construction est terminée, toutes les commandes nécessaires se seraient exécutées sur l'image.

Vous verrez alors le message généré avec succès et l'ID de la nouvelle image. Lorsque vous exécutez le Dockerimages command, vous pourrez alors voir votre nouvelle image.

Vous pouvez désormais créer des conteneurs à partir de votre nouvelle image.

Les référentiels publics peuvent être utilisés pour héberger des images Docker qui peuvent être utilisées par tout le monde. Un exemple est les images qui sont disponibles dans Docker Hub. La plupart des images telles que Centos, Ubuntu et Jenkins sont toutes accessibles au public pour tous. Nous pouvons également rendre nos images disponibles en les publiant dans le référentiel public sur Docker Hub.

Pour notre exemple, nous utiliserons le myimageréférentiel intégré dans le chapitre "Création de fichiers Docker" et téléchargez cette image sur Docker Hub. Examinons d'abord les images sur notre hôte Docker pour voir ce que nous pouvons pousser vers le registre Docker.

Ici, nous avons notre myimage:0.1image qui a été créée dans le cadre du chapitre «Création de fichiers Docker». Utilisons ceci pour télécharger dans le référentiel public Docker.

Les étapes suivantes expliquent comment télécharger une image dans un référentiel public.

Step 1- Connectez-vous à Docker Hub et créez votre référentiel. C'est le référentiel où votre image sera stockée. Aller àhttps://hub.docker.com/ et connectez-vous avec vos identifiants.

Step 2 - Cliquez sur le bouton "Créer un référentiel" sur l'écran ci-dessus et créez un référentiel avec le nom demorep. Assurez-vous que la visibilité du référentiel est publique.

Une fois le référentiel créé, notez le pull commande qui est attachée au référentiel.

le pull La commande qui sera utilisée dans notre référentiel est la suivante -

docker pull demousr/demorep

Step 3- Revenez maintenant à l'hôte Docker. Ici, nous devons marquer notremyimagevers le nouveau référentiel créé dans Docker Hub. Nous pouvons le faire via le Dockertag command.

Nous en apprendrons plus à ce sujet tag command plus loin dans ce chapitre.

Step 4- Exécutez la commande de connexion Docker pour vous connecter au référentiel Docker Hub à partir de l'invite de commande. La commande de connexion Docker vous demandera le nom d'utilisateur et le mot de passe pour le référentiel Docker Hub.

Step 5- Une fois l'image balisée, il est maintenant temps de pousser l'image vers le référentiel Docker Hub. Nous pouvons le faire via le Dockerpushcommander. Nous en apprendrons plus sur cette commande plus loin dans ce chapitre.

balise docker

Cette méthode permet de marquer une image dans le référentiel concerné.

Syntaxe

docker tag imageID Repositoryname

Options

  • imageID - Ceci est l'ImageID qui doit être étiqueté dans le référentiel.

  • Repositoryname - Il s'agit du nom du référentiel auquel l'ImageID doit être balisé.

Valeur de retour

Aucun

Exemple

sudo docker tag ab0c1d3744dd demousr/demorep:1.0

Production

Un exemple de sortie de l'exemple ci-dessus est donné ci-dessous.

push docker

Cette méthode permet de pousser des images vers le Docker Hub.

Syntaxe

docker push Repositoryname

Options

  • Repositoryname - Il s'agit du nom du référentiel qui doit être poussé vers Docker Hub.

Valeur de retour

L'ID long du référentiel transféré vers Docker Hub.

Exemple

sudo docker push demousr/demorep:1.0

Production

Si vous revenez à la page Docker Hub et accédez à votre référentiel, vous verrez le nom de la balise dans le référentiel.

Essayons maintenant d'extraire le référentiel que nous avons téléchargé sur notre hôte Docker. Supprimons d'abord les images,myimage:0.1 et demousr/demorep:1.0, à partir de l'hôte Docker local. Utilisons le Dockerpull command pour extraire le référentiel du Docker Hub.

À partir de la capture d'écran ci-dessus, vous pouvez voir que le Docker pull a pris notre nouveau référentiel du Docker Hub et l'a placé sur notre machine.

Dans Docker, les conteneurs eux-mêmes peuvent avoir des applications s'exécutant sur des ports. Lorsque vous exécutez un conteneur, si vous souhaitez accéder à l'application dans le conteneur via un numéro de port, vous devez mapper le numéro de port du conteneur sur le numéro de port de l'hôte Docker. Regardons un exemple de la façon dont cela peut être réalisé.

Dans notre exemple, nous allons télécharger le conteneur Jenkins à partir de Docker Hub. Nous allons ensuite mapper le numéro de port Jenkins sur le numéro de port sur l'hôte Docker.

Step 1 - Tout d'abord, vous devez faire une simple inscription sur Docker Hub.

Step 2 - Une fois que vous vous êtes inscrit, vous serez connecté à Docker Hub.

Step 3 - Ensuite, parcourons et trouvons l'image Jenkins.

Step 4 - Si vous faites défiler vers le bas sur la même page, vous pouvez voir le Docker pullcommander. Cela sera utilisé pour télécharger l'image Jenkins sur le serveur Ubuntu local.

Step 5 - Allez maintenant sur le serveur Ubuntu et exécutez la commande -

sudo docker pull jenkins

Step 6 - Pour comprendre quels ports sont exposés par le conteneur, vous devez utiliser le Docker inspect command pour inspecter l'image.

Apprenons maintenant plus à ce sujet inspect commander.

docker inspecter

Cette méthode permet de renvoyer des informations de bas niveau sur le conteneur ou l'image.

Syntaxe

docker inspect Container/Image

Options

  • Container/Image - Le conteneur ou l'image à inspecter

Valeur de retour

Les informations de bas niveau de l'image ou du conteneur au format JSON.

Exemple

sudo docker inspect jenkins

Production

La sortie du inspectcommande donne une sortie JSON. Si nous observons la sortie, nous pouvons voir qu'il y a une section de "ExposedPorts" et voir qu'il y a deux ports mentionnés. L'un est ledata port de 8080 et l'autre est le control port de 50000.

Pour exécuter Jenkins et mapper les ports, vous devez changer le Docker runet ajoutez l'option 'p' qui spécifie le mappage de port. Donc, vous devez exécuter la commande suivante -

sudo docker run -p 8080:8080 -p 50000:50000 jenkins

Le côté gauche du mappage du numéro de port est le port hôte Docker à mapper et le côté droit est le numéro de port du conteneur Docker.

Lorsque vous ouvrez le navigateur et accédez à l'hôte Docker sur le port 8080, vous verrez Jenkins opérationnel.

Vous pourriez avoir besoin d'avoir vos propres référentiels privés. Vous ne souhaiterez peut-être pas héberger les référentiels sur Docker Hub. Pour cela, il existe un conteneur de référentiel lui-même de Docker. Voyons comment nous pouvons télécharger et utiliser le conteneur pour le registre.

Step 1 - Utilisez le Docker runcommande pour télécharger le registre privé. Cela peut être fait en utilisant la commande suivante.

sudo docker run –d –p 5000:5000 –-name registry registry:2

Les points suivants doivent être notés à propos de la commande ci-dessus -

  • Registry est le conteneur géré par Docker qui peut être utilisé pour héberger des référentiels privés.

  • Le numéro de port exposé par le conteneur est 5000. Par conséquent, avec le –p command, nous mappons le même numéro de port au numéro de port 5000 sur notre hôte local.

  • Nous marquons simplement le conteneur de registre comme «2», pour le différencier sur l'hôte Docker.

  • le –dL'option est utilisée pour exécuter le conteneur en mode détaché. C'est pour que le conteneur puisse fonctionner en arrière-plan

Step 2 - Faisons un docker ps pour voir que le conteneur de registre est effectivement en cours d'exécution.

Nous avons maintenant confirmé que le conteneur de registre fonctionne bien.

Step 3- Maintenant marquons une de nos images existantes afin que nous puissions la pousser vers notre référentiel local. Dans notre exemple, puisque nous avons lecentos image disponible localement, nous allons la taguer dans notre référentiel privé et ajouter un nom de tag de centos.

sudo docker tag 67591570dd29 localhost:5000/centos

Les points suivants doivent être notés à propos de la commande ci-dessus -

  • 67591570dd29 fait référence à l'ID d'image pour le centos image.

  • localhost:5000 est l'emplacement de notre référentiel privé.

  • Nous marquons le nom du référentiel comme centos dans notre référentiel privé.

Step 4 - Utilisons maintenant le Docker push commande pour pousser le référentiel vers notre référentiel privé.

sudo docker push localhost:5000/centos

Ici, nous poussons le centos image vers le référentiel privé hébergé sur localhost:5000.

Step 5 - Supprimons maintenant les images locales que nous avons pour centos en utilisant le docker rmicommandes. Nous pouvons ensuite télécharger le nécessairecentos image de notre référentiel privé.

sudo docker rmi centos:latest 
sudo docker rmi 67591570dd29

Step 6 - Maintenant que nous n'en avons plus centos images sur notre machine locale, nous pouvons maintenant utiliser le Docker suivant pull commande pour tirer le centos image de notre référentiel privé.

sudo docker pull localhost:5000/centos

Ici, nous tirons le centos image vers le référentiel privé hébergé sur localhost:5000.

Si vous voyez maintenant les images sur votre système, vous verrez le centos l'image aussi.

We have already learnt how to use Docker File to build our own custom images. Now let’s see how we can build a web server image which can be used to build containers.

In our example, we are going to use the Apache Web Server on Ubuntu to build our image. Let’s follow the steps given below, to build our web server Docker file.

Step 1 − The first step is to build our Docker File. Let’s use vim and create a Docker File with the following information.

FROM ubuntu 
RUN apt-get update 
RUN apt-get install –y apache2 
RUN apt-get install –y apache2-utils 
RUN apt-get clean 
EXPOSE 80 CMD [“apache2ctl”, “-D”, “FOREGROUND”]

The following points need to be noted about the above statements −

  • We are first creating our image to be from the Ubuntu base image.

  • Next, we are going to use the RUN command to update all the packages on the Ubuntu system.

  • Next, we use the RUN command to install apache2 on our image.

  • Next, we use the RUN command to install the necessary utility apache2 packages on our image.

  • Next, we use the RUN command to clean any unnecessary files from the system.

  • The EXPOSE command is used to expose port 80 of Apache in the container to the Docker host.

  • Finally, the CMD command is used to run apache2 in the background.

Maintenant que les détails du fichier ont été saisis, enregistrez simplement le fichier.

Step 2 - Exécutez le Docker buildcommande pour créer le fichier Docker. Cela peut être fait en utilisant la commande suivante -

sudo docker build –t=”mywebserver” .

Nous marquons notre image comme mywebserver. Une fois l'image créée, vous recevrez un message indiquant que le fichier a été créé.

Step 3- Maintenant que le fichier du serveur Web a été construit, il est maintenant temps de créer un conteneur à partir de l'image. Nous pouvons le faire avec le Dockerrun commander.

sudo docker run –d –p 80:80 mywebserver

Les points suivants doivent être notés à propos de la commande ci-dessus -

  • Le numéro de port exposé par le conteneur est 80. Par conséquent avec le –p commande, nous mappons le même numéro de port au numéro de port 80 sur notre hôte local.

  • le –dL'option est utilisée pour exécuter le conteneur en mode détaché. C'est pour que le conteneur puisse s'exécuter en arrière-plan.

Si vous accédez au port 80 de l'hôte Docker dans votre navigateur Web, vous verrez maintenant qu'Apache est opérationnel.

Docker a une multitude de commandes d'instructions. Ce sont des commandes qui sont placées dans le fichier Docker. Regardons ceux qui sont disponibles.

Instruction CMD

Cette commande est utilisée pour exécuter une commande à l'exécution lorsque le conteneur est exécuté.

Syntaxe

CMD command param1

Options

  • command - Il s'agit de la commande à exécuter lorsque le conteneur est lancé.

  • param1 - C'est le paramètre entré dans la commande.

Valeur de retour

La commande s'exécutera en conséquence.

Exemple

Dans notre exemple, nous entrerons un simple Hello World echo dans notre fichier Docker et créez une image et lancez un conteneur à partir de celle-ci.

Step 1 - Créez le fichier Docker avec les commandes suivantes -

FROM ubuntu 
MAINTAINER [email protected] 
CMD [“echo” , “hello world”]

Ici, le CMD sert uniquement à imprimer hello world.

Step 2 - Construisez l'image à l'aide du Docker build commander.

Step 3 - Exécutez un conteneur à partir de l'image.

POINT D'ACCÈS

Cette commande peut également être utilisée pour exécuter des commandes lors de l'exécution du conteneur. Mais nous pouvons être plus flexibles avec la commande ENTRYPOINT.

Syntaxe

ENTRYPOINT command param1

Options

  • command - Il s'agit de la commande à exécuter lorsque le conteneur est lancé.

  • param1 - C'est le paramètre entré dans la commande.

Valeur de retour

La commande s'exécutera en conséquence.

Exemple

Jetons un coup d'œil à un exemple pour en savoir plus sur ENTRYPOINT. Dans notre exemple, nous entrerons un simpleecho commande dans notre fichier Docker et créez une image et lancez un conteneur à partir de celle-ci.

Step 1 - Créez le fichier Docker avec les commandes suivantes -

FROM ubuntu 
MAINTAINER [email protected] 
ENTRYPOINT [“echo”]

Step 2 - Construisez l'image à l'aide du Docker build commander.

Step 3 - Exécutez un conteneur à partir de l'image.

ENV

Cette commande est utilisée pour définir des variables d'environnement dans le conteneur.

Syntaxe

ENV key value

Options

  • Key - C'est la clé de la variable d'environnement.

  • value - Il s'agit de la valeur de la variable d'environnement.

Valeur de retour

La commande s'exécutera en conséquence.

Exemple

Dans notre exemple, nous entrerons un simple echo commande dans notre fichier Docker et créez une image et lancez un conteneur à partir de celle-ci.

Step 1 - Créez le fichier Docker avec les commandes suivantes -

FROM ubuntu 
MAINTAINER [email protected] 
ENV var1=Tutorial var2=point

Step 2 - Construisez l'image à l'aide du Docker build commander.

Step 3 - Exécutez un conteneur à partir de l'image.

Step 4 - Enfin, exécutez le env commande pour voir les variables d'environnement.

WORKDIR

Cette commande permet de définir le répertoire de travail du conteneur.

Syntaxe

WORKDIR dirname

Options

  • dirname- Le nouveau répertoire de travail. Si le répertoire n'existe pas, il sera ajouté.

Valeur de retour

La commande s'exécutera en conséquence.

Exemple

Dans notre exemple, nous entrerons un simple echo commande dans notre fichier Docker et créez une image et lancez un conteneur à partir de celle-ci.

Step 1 - Créez le fichier Docker avec les commandes suivantes -

FROM ubuntu 
MAINTAINER [email protected] 
WORKDIR /newtemp 
CMD pwd

Step 2 - Construisez l'image à l'aide du Docker build commander.

Step 3 - Exécutez un conteneur à partir de l'image.

La liaison de conteneurs permet à plusieurs conteneurs de se lier les uns aux autres. C'est une meilleure option que d'exposer les ports. Allons-y étape par étape et apprenons comment cela fonctionne.

Step 1 - Téléchargez l'image Jenkins, si elle n'est pas déjà présente, en utilisant le Jenkins pull commander.

Step 2 - Une fois l'image disponible, exécutez le conteneur, mais cette fois, vous pouvez spécifier un nom pour le conteneur en utilisant le –-nameoption. Ce sera notresource container.

Step 3- Ensuite, il est temps de lancer le conteneur de destination, mais cette fois, nous allons le lier à notre conteneur source. Pour notre conteneur de destination, nous utiliserons l'image standard Ubuntu.

Lorsque vous faites un docker ps, vous verrez les deux conteneurs en cours d'exécution.

Step 4 - Maintenant, attachez-le au conteneur de réception.

Puis exécutez le envcommander. Vous remarquerez de nouvelles variables pour la liaison avec le conteneur source.

Pilotes de stockage

Docker dispose de plusieurs pilotes de stockage qui permettent de travailler avec les périphériques de stockage sous-jacents. Le tableau suivant présente les différents pilotes de stockage ainsi que la technologie utilisée pour les pilotes de stockage.

La technologie Pilote de stockage
OverlayFS superposition ou superposition2
AUFS aufs
Btrfs brtfs
Gestionnaire de périphériques Gestionnaire de périphériques
VFS vfs
ZFS zfs

Voyons maintenant quelques-unes des instances dans lesquelles vous utiliseriez les différents pilotes de stockage -

AUFS

  • C'est un pilote stable; peut être utilisé pour des applications prêtes pour la production.

  • Il a une bonne utilisation de la mémoire et est bon pour assurer une expérience Docker fluide pour les conteneurs.

  • Il existe une activité d'écriture élevée associée à ce pilote qui doit être prise en compte.

  • C'est bon pour les systèmes qui sont de type Platform en tant que service.

Devicemapper

  • C'est un pilote stable; garantit une expérience Docker fluide.

  • Ce pilote est idéal pour tester les applications en laboratoire.

  • Ce pilote est conforme aux principales fonctionnalités du noyau Linux.

Btrfs

  • Ce pilote est conforme aux principales fonctionnalités du noyau Linux.

  • Il existe une activité d'écriture élevée associée à ce pilote qui doit être prise en compte.

  • Ce pilote convient aux instances où vous gérez plusieurs pools de build.

Ovelay

  • Il s'agit d'un pilote stable et conforme aux principales fonctionnalités du noyau Linux.

  • Il a une bonne utilisation de la mémoire.

  • Ce pilote est idéal pour tester les applications en laboratoire.

ZFS

  • Il s'agit d'un pilote stable et idéal pour tester des applications en laboratoire.

  • C'est bon pour les systèmes de type Platform-as-a-Service.

Pour voir le pilote de stockage utilisé, lancez le docker info commander.

Syntaxe

docker info

Options

Aucun

Valeur de retour

La commande fournira toutes les informations relatives sur le composant Docker installé sur l'hôte Docker.

Exemple

sudo docker info

Production

La sortie suivante montre que le pilote principal utilisé est le aufs pilote et que le répertoire racine est stocké dans /var/lib/docker/aufs.

Volumes de données

Dans Docker, vous disposez d'un volume distinct qui peut être partagé entre les conteneurs. Ceux-ci sont connus commedata volumes. Certaines des caractéristiques du volume de données sont:

  • Ils sont initialisés lors de la création du conteneur.
  • Ils peuvent être partagés et réutilisés entre de nombreux conteneurs.
  • Toute modification du volume lui-même peut être effectuée directement.
  • Ils existent même après la suppression du conteneur.

Regardons notre conteneur Jenkins. Faisons undocker inspectpour voir les détails de cette image. Nous pouvons émettre la commande suivante pour écrire la sortie dudocker inspect dans un fichier texte, puis affichez le fichier en conséquence.

sudo docker inspect Jenkins > tmp.txt

Lorsque vous affichez le fichier texte à l'aide de more command, vous verrez une entrée comme JENKINS_HOME=/var/Jenkins_home.

Il s'agit du mappage effectué dans le conteneur via l'image Jenkins.

Supposons maintenant que vous vouliez mapper le volume du conteneur sur un volume local, vous devez alors spécifier l'option –v lors du lancement du conteneur. Un exemple est montré ci-dessous -

sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

L'option –v est utilisée pour mapper le volume dans le conteneur qui est /var/jenkins_home à un emplacement sur notre hôte Docker qui est /home/demo.

Maintenant, si vous allez au /home/demo emplacement sur votre hôte Docker après le lancement de votre conteneur, vous verrez tous les fichiers conteneurs qui y sont présents.

Modification du pilote de stockage d'un conteneur

Si vous souhaitez modifier le pilote de stockage utilisé pour un conteneur, vous pouvez le faire lors du lancement du conteneur. Cela peut être fait en utilisant le–volume-driver paramètre lors de l'utilisation du docker runcommander. Un exemple est donné ci-dessous -

sudo docker run –d --volume-driver=flocker 
   –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

le –volume-driver L'option est utilisée pour spécifier un autre pilote de stockage pour le conteneur.

Pour confirmer que le pilote a été modifié, utilisons d'abord le docker pscommande pour voir les conteneurs en cours d'exécution et obtenir l'ID du conteneur. Alors, lancez d'abord la commande suivante -

sudo docker ps

Puis émettez un docker inspect contre le conteneur et placez la sortie dans un fichier texte à l'aide de la commande.

sudo docker inspect 9bffb1bfebee > temp.txt

Si vous parcourez le fichier texte et allez à la ligne qui dit VolumeDriver, vous verrez que le nom du pilote a été changé.

Créer un volume

Un volume peut être créé au préalable à l'aide du dockercommander. Apprenons-en plus sur cette commande.

Syntaxe

docker volume create –-name=volumename –-opt options

Options

  • name - C'est le nom du volume qui doit être créé.

  • opt - Ce sont des options que vous pouvez fournir lors de la création du volume.

Valeur de retour

La commande affichera le nom du volume créé.

Exemple

sudo docker volume create –-name = demo –opt o = size = 100m

Dans la commande ci-dessus, nous créons un volume de taille 100 Mo et avec un nom de démo.

Production

La sortie de la commande ci-dessus est affichée ci-dessous -

Liste de tous les volumes

Vous pouvez également lister tous les docker volumes sur un docker host. Plus de détails sur cette commande sont donnés ci-dessous -

Syntaxe

docker volume ls

Options

Aucun

Valeur de retour

La commande affichera tous les volumes sur le docker host.

Exemple

sudo docker volume ls

Production

La sortie de la commande ci-dessus est affichée ci-dessous -

Docker prend en charge les aspects de mise en réseau afin que les conteneurs puissent communiquer avec d'autres conteneurs et également avec l'hôte Docker. Si vous faites unifconfigsur l'hôte Docker, vous verrez l'adaptateur Ethernet Docker. Cet adaptateur est créé lorsque Docker est installé sur l'hôte Docker.

Il s'agit d'un pont entre l'hôte Docker et l'hôte Linux. Examinons maintenant certaines commandes associées à la mise en réseau dans Docker.

Liste de tous les réseaux Docker

Cette commande peut être utilisée pour lister tous les réseaux associés à Docker sur l'hôte.

Syntaxe

docker network ls

Options

Aucun

Valeur de retour

La commande affichera tous les réseaux sur l'hôte Docker.

Exemple

sudo docker network ls

Production

La sortie de la commande ci-dessus est affichée ci-dessous

Inspecter un réseau Docker

Si vous souhaitez voir plus de détails sur le réseau associé à Docker, vous pouvez utiliser le Docker network inspect commander.

Syntaxe

docker network inspect networkname

Options

  • networkname - C'est le nom du réseau que vous devez inspecter.

Valeur de retour

La commande affichera tous les détails sur le réseau.

Exemple

sudo docker network inspect bridge

Production

La sortie de la commande ci-dessus est affichée ci-dessous -

Maintenant, exécutons un conteneur et voyons ce qui se passe lorsque nous inspectons à nouveau le réseau. Lançons un conteneur Ubuntu avec la commande suivante -

sudo docker run –it ubuntu:latest /bin/bash

Maintenant, si nous inspectons le nom de notre réseau via la commande suivante, vous verrez maintenant que le conteneur est attaché au pont.

sudo docker network inspect bridge

Créer votre propre nouveau réseau

On peut créer un réseau dans Docker avant de lancer des conteneurs. Cela peut être fait avec la commande suivante -

Syntaxe

docker network create –-driver drivername name

Options

  • drivername - C'est le nom utilisé pour le pilote réseau.

  • name - C'est le nom donné au réseau.

Valeur de retour

La commande affichera l'ID long du nouveau réseau.

Exemple

sudo docker network create –-driver bridge new_nw

Production

La sortie de la commande ci-dessus est affichée ci-dessous -

Vous pouvez maintenant attacher le nouveau réseau lors du lancement du conteneur. Alors faisons tourner un conteneur Ubuntu avec la commande suivante -

sudo docker run –it –network=new_nw ubuntu:latest /bin/bash

Et maintenant, lorsque vous inspectez le réseau via la commande suivante, vous verrez le conteneur attaché au réseau.

sudo docker network inspect new_nw

Node.js est un framework JavaScript utilisé pour développer des applications côté serveur. Il s'agit d'un framework open source développé pour fonctionner sur une variété de systèmes d'exploitation. Étant donné que Node.js est un cadre de développement populaire, Docker a également veillé à ce qu'il prenne en charge les applications Node.js.

Nous allons maintenant voir les différentes étapes pour obtenir le conteneur Docker pour Node.js opérationnel.

Step 1- La première étape consiste à extraire l'image de Docker Hub. Lorsque vous vous connectez à Docker Hub, vous pourrez rechercher et voir l'image de Node.js comme indiqué ci-dessous. Tapez simplement Node dans la zone de recherche et cliquez sur le lien du nœud (officiel) qui apparaît dans les résultats de la recherche.

Step 2 - Vous verrez que le Docker pull commande pour node dans les détails du référentiel dans Docker Hub.

Step 3 - Sur l'hôte Docker, utilisez le Docker pull comme indiqué ci-dessus pour télécharger la dernière image de nœud à partir de Docker Hub.

Une fois la pull est terminé, nous pouvons alors passer à l'étape suivante.

Step 4 - Sur l'hôte Docker, utilisons le viméditeur et créez un fichier d'exemple Node.js. Dans ce fichier, nous ajouterons une commande simple pour afficher «HelloWorld» à l'invite de commande.

Dans le fichier Node.js, ajoutons l'instruction suivante -

Console.log(‘Hello World’);

Cela affichera la phrase «Hello World» lorsque nous l'exécuterons via Node.js.

Assurez-vous de sauvegarder le fichier, puis passez à l'étape suivante.

Step 5 - Pour exécuter notre script Node.js à l'aide du conteneur Node Docker, nous devons exécuter l'instruction suivante -

sudo docker run –it –rm –name = HelloWorld –v “$PWD”:/usr/src/app 
   –w /usr/src/app node node HelloWorld.js

Les points suivants doivent être notés à propos de la commande ci-dessus -

  • le –rm L'option est utilisée pour supprimer le conteneur après son exécution.

  • Nous donnons un nom au conteneur appelé «HelloWorld».

  • Nous mentionnons de mapper le volume dans le conteneur qui est /usr/src/appà notre répertoire de travail actuel. Ceci est fait pour que le conteneur de nœuds récupère notre script HelloWorld.js qui est présent dans notre répertoire de travail sur l'hôte Docker.

  • le –w L'option est utilisée pour spécifier le répertoire de travail utilisé par Node.js.

  • La première option de nœud est utilisée pour spécifier d'exécuter l'image de nœud.

  • La deuxième option de nœud est utilisée pour mentionner l'exécution de la commande de nœud dans le conteneur de nœud.

  • Et enfin nous mentionnons le nom de notre script.

Nous obtiendrons alors la sortie suivante. Et à partir de la sortie, nous pouvons clairement voir que le conteneur Node s'est exécuté en tant que conteneur et a exécuté le script HelloWorld.js.

MongoDB est une célèbre base de données orientée document qui est utilisée par de nombreuses applications Web modernes. Étant donné que MongoDB est une base de données populaire pour le développement, Docker a également veillé à ce qu'elle prenne en charge MongoDB.

Nous allons maintenant voir les différentes étapes pour mettre en place et exécuter le conteneur Docker pour MongoDB.

Step 1- La première étape consiste à extraire l'image de Docker Hub. Lorsque vous vous connectez à Docker Hub, vous pourrez rechercher et voir l'image de Mongo comme indiqué ci-dessous. Tapez simplement Mongo dans la zone de recherche et cliquez sur le lien Mongo (officiel) qui apparaît dans les résultats de la recherche.

Step 2 - Vous verrez que le Docker pull commande pour Mongo dans les détails du référentiel dans Docker Hub.

Step 3 - Sur l'hôte Docker, utilisez le Docker pull comme indiqué ci-dessus pour télécharger la dernière image Mongo à partir de Docker Hub.

Step 4- Maintenant que nous avons l'image de Mongo, exécutons d'abord un conteneur MongoDB qui sera notre instance pour MongoDB. Pour cela, nous émettrons la commande suivante -

sudo docker run -it -d mongo

Les points suivants peuvent être notés à propos de la commande ci-dessus -

  • le –it L'option est utilisée pour exécuter le conteneur en mode interactif.

  • le –d L'option est utilisée pour exécuter le conteneur en tant que processus démon.

  • Et enfin, nous créons un conteneur à partir de l'image Mongo.

Vous pouvez ensuite émettre le docker ps commande pour voir les conteneurs en cours d'exécution -

Prenez note des points suivants -

  • Le nom du conteneur est tender_poitras. Ce nom sera différent car le nom des conteneurs ne cesse de changer lorsque vous faites tourner un conteneur. Mais notez simplement le conteneur que vous avez lancé.

  • Ensuite, notez également le numéro de port sur lequel il fonctionne. Il écoute sur le port TCP de 27017.

Step 5- Maintenant, faisons tourner un autre conteneur qui agira comme notre client qui sera utilisé pour se connecter à la base de données MongoDB. Émettons la commande suivante pour cela -

sudo docker run –it –link=tender_poitras:mongo mongo /bin/bash

Les points suivants peuvent être notés à propos de la commande ci-dessus -

  • le –it L'option est utilisée pour exécuter le conteneur en mode interactif.

  • Nous lions maintenant notre nouveau conteneur au conteneur de serveur MongoDB déjà lancé. Ici, vous devez mentionner le nom du conteneur déjà lancé.

  • Nous spécifions ensuite que nous voulons lancer le conteneur Mongo en tant que client, puis exécuter le bin/bash shell dans notre nouveau conteneur.

Vous serez maintenant dans le nouveau conteneur.

Step 6 - Exécutez le env dans le nouveau conteneur pour voir les détails de la connexion au conteneur de serveur MongoDB.

Step 6- Il est maintenant temps de se connecter au serveur MongoDB depuis le conteneur client. Nous pouvons le faire via la commande suivante -

mongo 172.17.0.2:27017

Les points suivants doivent être notés à propos de la commande ci-dessus

  • le mongo la commande est le client mongo commande utilisée pour se connecter à une base de données MongoDB.

  • L'adresse IP et le numéro de port sont ce que vous obtenez lorsque vous utilisez le env commander.

Une fois la commande exécutée, vous serez alors connecté à la base de données MongoDB.

Vous pouvez ensuite exécuter n'importe quelle commande MongoDB dans l'invite de commande. Dans notre exemple, nous exécutons la commande suivante -

use demo

Cette commande est une commande MongoDB qui est utilisée pour passer à un nom de base de données demo. Si la base de données n'est pas disponible, elle sera créée.

Vous avez maintenant créé avec succès un conteneur MongoDB client et serveur.

NGINX est une application Web légère populaire utilisée pour développer des applications côté serveur. Il s'agit d'un serveur Web open source développé pour fonctionner sur une variété de systèmes d'exploitation. Depuisnginx est un serveur Web populaire pour le développement, Docker a veillé à ce qu'il prenne en charge nginx.

Nous allons maintenant voir les différentes étapes pour obtenir le conteneur Docker pour nginx opérationnel.

Step 1- La première étape consiste à extraire l'image de Docker Hub. Lorsque vous vous connectez à Docker Hub, vous pourrez rechercher et voir l'image denginxcomme indiqué ci-dessous. Tapez simplement nginx dans le champ de recherche et cliquez sur le boutonnginx (officiel) qui apparaît dans les résultats de recherche.

Step 2 - Vous verrez que le Docker pull commande pour nginx dans les détails du référentiel dans Docker Hub.

Step 3 - Sur l'hôte Docker, utilisez le Docker pull comme indiqué ci-dessus pour télécharger la dernière image nginx à partir de Docker Hub.

Step 4 - Maintenant, exécutons le nginx container via la commande suivante.

sudo docker run –p 8080:80 –d nginx

Nous exposons le port sur le nginx serveur qui est le port 80 au port 8080 sur l'hôte Docker.

Une fois que vous exécutez la commande, vous obtiendrez la sortie suivante si vous accédez à l'URL http://dockerhost:8080. Cela montre que lenginx le conteneur est opérationnel.

Step 5 - Regardons un autre exemple où nous pouvons héberger une simple page Web dans notre ngnixrécipient. Dans notre exemple, nous allons créer un simpleHelloWorld.html fichier et hébergez-le dans notre nginx récipient.

Créons d'abord un fichier HTML appelé HelloWorld.html

Ajoutons une simple ligne de Hello World dans le fichier HTML.

Exécutons ensuite la commande Docker suivante.

sudo docker run –p 8080:80 –v 
   “$PWD”:/usr/share/nginx/html:ro –d nginx

Les points suivants doivent être notés à propos de la commande ci-dessus -

  • Nous exposons le port sur le nginx serveur qui est le port 80 au port 8080 sur l'hôte Docker.

  • Ensuite, nous attachons le volume sur le conteneur qui est /usr/share/nginx/htmlà notre répertoire de travail actuel. C'est là que notre fichier HelloWorld.html est stocké.

Maintenant, si nous naviguons vers l'URL http://dockerhost:8080/HelloWorld.html nous obtiendrons la sortie suivante comme prévu -

Dans les chapitres d'introduction, nous avons vu l'installation de Docker toolbox sur Windows. La boîte à outils Docker est développée pour que les conteneurs Docker puissent être exécutés sur Windows et MacOS. Le site de toolbox sous Windows esthttps://docs.docker.com/docker-for-windows/

Pour Windows, vous devez disposer de Windows 10 ou Windows Server 2016 avec Hyper-V activé.

La boîte à outils comprend les composants suivants -

  • Docker Engine - Ceci est utilisé comme moteur de base ou démon Docker utilisé pour exécuter les conteneurs Docker.

  • Docker Machine - pour exécuter les commandes de la machine Docker.

  • Docker Compose pour exécuter les commandes de composition de Docker.

  • Kinematic - Il s'agit de l'interface graphique Docker conçue pour Windows et Mac OS.

  • Oracle virtualbox

Discutons maintenant des différents types d'activités possibles avec la boîte à outils Docker.

Courir dans Powershell

Avec la boîte à outils Docker sur Windows 10, vous pouvez désormais exécuter les commandes Docker powershell. Si vous ouvrez PowerShell sur Windows et tapez la commande de la version Docker, vous obtiendrez tous les détails requis sur la version Docker installée.

Extraction d'images et exécution de conteneurs

Vous pouvez également maintenant extraire des images de Docker Hub et exécuter des conteneurs dans PowerShell comme vous le feriez sous Linux. L'exemple suivant montrera brièvement le téléchargement de l'image Ubuntu et l'exécution du conteneur hors de l'image.

La première étape consiste à utiliser le Docker pull commande pour extraire l'image Ubuntu de Docker Hub.

L'étape suivante consiste à exécuter l'image Docker en utilisant les éléments suivants run commande -

docker run –it ubuntu /bin/bash

Vous remarquerez que la commande est la même que sous Linux.

Kitematic

C'est l'équivalent GUI de Docker sur Windows. Pour ouvrir cette interface graphique, allez dans la barre des tâches et sur l'icône Docker, faites un clic droit et choisissez d'ouvrir Kitematic.

Il vous demandera de télécharger l'interface graphique de Kitematic. Une fois téléchargé, décompressez simplement le contenu. Il y aura un fichier appeléKitematic.exe. Double-cliquez sur ce fichier exe pour ouvrir l'interface graphique.

Il vous sera ensuite demandé de vous connecter à Docker Hub, entrez via l'interface graphique. Entrez simplement le nom d'utilisateur et le mot de passe requis, puis cliquez sur le bouton Connexion.

Une fois connecté, vous pourrez voir toutes les images téléchargées sur le système sur le côté gauche de l'interface.

Sur le côté droit, vous trouverez toutes les images disponibles sur Docker Hub.

Prenons un exemple pour comprendre comment télécharger l'image de nœud depuis Docker Hub à l'aide de Kitematic.

Step 1 - Entrez le mot-clé du nœud dans les critères de recherche.

Step 2 - Cliquez sur le createbouton sur l'image officielle du nœud. Vous verrez alors l'image en cours de téléchargement.

Une fois l'image téléchargée, elle commencera alors à exécuter le conteneur Node.

Step 3 - Si vous allez au settings onglet, vous pouvez explorer d'autres options de paramètres, comme indiqué ci-dessous.

  • General settings - Dans cet onglet, vous pouvez nommer le conteneur, modifier les paramètres du chemin et supprimer le conteneur.

  • Ports- Ici vous pouvez voir les différents mappages de ports. Si vous le souhaitez, vous pouvez créer vos propres mappages de ports.

  • Volumes - Ici vous pouvez voir les différents mappages de volume.

  • Advanced - Il contient les paramètres avancés du conteneur.

ASP.Net est le cadre de développement Web standard fourni par Microsoft pour le développement d'applications côté serveur. Étant donné qu'ASP.Net existe depuis longtemps pour le développement, Docker a veillé à ce qu'il prenne en charge ASP.Net.

Dans ce chapitre, nous verrons les différentes étapes pour obtenir le conteneur Docker pour ASP.Net opérationnel.

Conditions préalables

Les étapes suivantes doivent être effectuées en premier pour exécuter ASP.Net.

Step 1 - Étant donné que cela ne peut fonctionner que sur les systèmes Windows, vous devez d'abord vous assurer que vous avez Windows 10 ou Windows Server 2016.

Step 2- Ensuite, assurez-vous qu'Hyper-V est et que les conteneurs sont installés sur le système Windows. Pour installer Hyper – V et conteneurs, vous pouvez accéder à Activer ou désactiver les fonctionnalités Windows. Assurez-vous ensuite que l'option Hyper-V et les conteneurs sont cochés et cliquez sur le bouton OK.

Le système peut nécessiter un redémarrage après cette opération.

Step 3 - Ensuite, vous devez utiliser la commande Powershell suivante pour installer le 1.13.0rc4version de Docker. La commande suivante le téléchargera et le stockera dans l'emplacement temporaire.

Invoke-WebRequest "https://test.docker.com/builds/Windows/x86_64/docker-1.13.0-
   rc4.zip" -OutFile "$env:TEMP\docker-1.13.0-rc4.zip" –UseBasicParsing

Step 4 - Ensuite, vous devez développer l'archive en utilisant les éléments suivants powershell commander.

Expand-Archive -Path "$env:TEMP\docker-1.13.0-rc4.zip" -DestinationPath $env:ProgramFiles

Step 5 - Ensuite, vous devez ajouter les fichiers Docker à la variable d'environnement en utilisant ce qui suit powershell commander.

$env:path += ";$env:ProgramFiles\Docker"

Step 6 - Ensuite, vous devez enregistrer le service Docker Daemon en utilisant les éléments suivants powershell commander.

dockerd --register-service

Step 7 - Enfin, vous pouvez démarrer le docker daemon en utilisant la commande suivante.

Start-Service Docker

Utilisez le docker version commande dans powershell pour vérifier que le docker daemon travaille

Installation du conteneur ASP.Net

Voyons comment installer le conteneur ASP.Net.

Step 1- La première étape consiste à extraire l'image de Docker Hub. Lorsque vous vous connectez à Docker Hub, vous pourrez rechercher et voir l'image deMicrosoft/aspnetcomme indiqué ci-dessous. Tapez simplementasp dans la zone de recherche et cliquez sur le lien Microsoft / aspnet qui apparaît dans les résultats de la recherche.

Step 2 - Vous verrez que le Docker pull commande pour ASP.Net dans les détails du référentiel dans Docker Hub.

Step 3 - Accédez à l'hôte Docker et exécutez le Docker pullcommande pour l'image microsoft / aspnet. Notez que l'image est assez grande, quelque part près de 4,2 Go.

Step 4 - Allez maintenant à l'emplacement suivant https://github.com/Microsoft/aspnet-docker et téléchargez l'intégralité du dépôt Git.

Step 5 - Créez un dossier appelé Appdans votre lecteur C. Copiez ensuite le contenu du4.6.2/sampledossier sur votre lecteur C. Accédez au fichier Docker dans le répertoire d'exemple et exécutez la commande suivante -

docker build –t aspnet-site-new –build-arg site_root=/

Les points suivants doivent être notés à propos de la commande ci-dessus -

  • Il construit une nouvelle image appelée aspnet-site-new à partir du fichier Docker.
  • Le chemin d'accès racine est défini sur le dossier localpath.

Step 6- Il est maintenant temps d'exécuter le conteneur. Cela peut être fait en utilisant la commande suivante -

docker run –d –p 8000:80 –name my-running-site-new aspnet-site-new

Step 7- Vous allez maintenant exécuter IIS dans le conteneur Docker. Pour trouver l'adresse IP du conteneur Docker, vous pouvez émettre le Dockerinspect comme indiqué ci-dessous.

Le Docker Cloud est un service fourni par Docker dans lequel vous pouvez effectuer les opérations suivantes -

  • Nodes - Vous pouvez connecter le Docker Cloud à vos fournisseurs de cloud existants tels qu'Azure et AWS pour créer des conteneurs sur ces environnements.

  • Cloud Repository - Fournit un endroit où vous pouvez stocker vos propres référentiels.

  • Continuous Integration - Connectez-vous avec Github et construire un pipeline d'intégration continue.

  • Application Deployment - Déployez et faites évoluer l'infrastructure et les conteneurs.

  • Continuous Deployment - Peut automatiser les déploiements.

Commencer

Vous pouvez accéder au lien suivant pour démarrer avec Docker Cloud - https://cloud.docker.com/

Une fois connecté, vous recevrez l'interface de base suivante -

Connexion au fournisseur de cloud

La première étape consiste à se connecter à un fournisseur de cloud existant. Les étapes suivantes vous montreront comment vous connecter à un fournisseur Amazon Cloud.

Step 1- La première étape consiste à vous assurer que vous disposez des bonnes clés AWS. Cela peut être tiré duawsconsole. Connectez-vous à votreaws compte en utilisant le lien suivant - https://aws.amazon.com/console/

Step 2- Une fois connecté, accédez à la section Informations d'identification de sécurité. Notez les clés d'accès qui seront utilisées à partir de Docker Hub.

Step 3 - Ensuite, vous devez créer une stratégie dans awscela permettra à Docker de visualiser les instances EC2. Accédez à la section profils dansaws. Clique leCreate Policy bouton.

Step 4 - Cliquez sur `` Créer votre propre politique '' et donnez le nom de la politique comme dockercloudpolicy et la définition de la politique présentée ci-dessous.

{ 
   "Version": "2012-10-17", 
   "Statement": [ { 
      "Action": [ 
         "ec2:*", 
         "iam:ListInstanceProfiles" 
      ], 
      "Effect": "Allow", 
      "Resource": "*" 
   } ] 
}

Ensuite, cliquez sur le Create Policy bouton

Step 5 - Ensuite, vous devez créer un rolequi sera utilisé par Docker pour faire tourner des nœuds sur AWS. Pour cela, rendez-vous auRoles dans AWS et cliquez sur le Create New Role option.

Step 6 - Donnez le nom du rôle comme dockercloud-role.

Step 7 - Sur l'écran suivant, allez dans «Rôle pour l'accès croisé» et sélectionnez «Fournir un accès entre votre compte et un compte AWS tiers».

Step 8 - Sur l'écran suivant, entrez les détails suivants -

  • Dans le champ ID de compte, saisissez l'ID du service Docker Cloud: 689684103426.
  • Dans le champ ID externe, saisissez votre nom d'utilisateur Docker Cloud.

Step 9 - Ensuite, cliquez sur le Next Step et sur l'écran suivant, attachez la politique qui a été créée à l'étape précédente.

Step 10 - Enfin, sur le dernier écran lorsque le rôle est créé, assurez-vous de copier le arn rôle qui est créé.

arn:aws:iam::085363624145:role/dockercloud-role

Step 11 - Revenez maintenant à Docker Cloud, sélectionnez Cloud Providers, et cliquez sur le plug symbol à côté d'Amazon Web Services.

Entrer le arn rôle et cliquez sur le Save bouton.

Une fois enregistrée, l'intégration avec AWS serait terminée.

Configuration des nœuds

Une fois l'intégration avec AWS terminée, l'étape suivante consiste à configurer un nœud. Accédez à la section Nodes dans Docker Cloud. Notez que la configuration des nœuds configurera d'abord automatiquement un cluster de nœuds.

Step 1 - Accédez à la section Nodes dans Docker Cloud.

Step 2 - Ensuite, vous pouvez donner les détails des nœuds qui seront configurés dans AWS.

Vous pouvez ensuite cliquer sur le cluster Launch Node qui sera présent en bas de l'écran. Une fois le nœud déployé, vous recevrez la notification dans l'écran Node Cluster.

Déployer un service

L'étape suivante après le déploiement d'un nœud consiste à déployer un service. Pour ce faire, nous devons effectuer les étapes suivantes.

Step 1 - Allez au Services Sectiondans Docker Cloud. Clique leCreate bouton

Step 2- Choisissez le service requis. Dans notre cas, choisissonsmongo.

Step 3 - Sur l'écran suivant, choisissez le Create & Deployoption. Cela commencera à déployer leMongo conteneur sur votre cluster de nœuds.

Une fois déployé, vous pourrez voir le conteneur dans un état en cours d'exécution.

Docker a mis en place des mécanismes de journalisation qui peuvent être utilisés pour déboguer les problèmes au fur et à mesure qu'ils se produisent. Il y a une journalisation audaemon level et au container level. Regardons les différents niveaux de journalisation.

Journalisation du démon

Au niveau de la journalisation du démon, quatre niveaux de journalisation sont disponibles -

  • Debug - Il détaille toutes les informations possibles gérées par le processus démon.

  • Info - Il détaille toutes les erreurs + Informations gérées par le processus démon.

  • Errors - Il détaille toutes les erreurs gérées par le processus démon.

  • Fatal - Il ne détaille que toutes les erreurs fatales gérées par le processus démon.

Suivez les étapes suivantes pour savoir comment activer la journalisation.

Step 1 - Premièrement, nous devons arrêter le docker daemon process, s'il est déjà en cours d'exécution. Cela peut être fait en utilisant la commande suivante -

sudo service docker stop

Step 2 - Maintenant, nous devons commencer le docker daemon process. Mais cette fois, nous devons ajouter le–lparamètre pour spécifier l'option de journalisation. Alors, émettons la commande suivante lors du démarrage dudocker daemon process.

sudo dockerd –l debug &

Les points suivants doivent être notés à propos de la commande ci-dessus -

  • dockerd est l'exécutable du docker daemon process.

  • le –lL'option est utilisée pour spécifier le niveau de journalisation. Dans notre cas, nous mettons cela comme débogage

  • & est utilisé pour revenir à l'invite de commande une fois la journalisation activée.

Une fois que vous avez démarré le processus Docker avec la journalisation, vous verrez également le Debug Logs envoyé à la console.

Maintenant, si vous exécutez une commande Docker telle que docker images, les informations de débogage seront également envoyées à la console.

Journalisation des conteneurs

La journalisation est également disponible au niveau du conteneur. Donc, dans notre exemple, commençons par lancer un conteneur Ubuntu. Nous pouvons le faire en utilisant la commande suivante.

sudo docker run –it ubuntu /bin/bash

Maintenant, nous pouvons utiliser le docker log command pour voir les logs du conteneur.

Syntaxe

Docker logs containerID

Paramètres

  • containerID - Il s'agit de l'ID du conteneur pour lequel vous devez voir les journaux.

Exemple

Sur notre hôte Docker, émettons la commande suivante. Avant cela, vous pouvez émettre des commandes dans le conteneur.

sudo docker logs 6bfb1271fcdd

Production

À partir de la sortie, vous pouvez voir que les commandes exécutées dans le conteneur sont affichées dans les journaux.

Docker Composeest utilisé pour exécuter plusieurs conteneurs en un seul service. Par exemple, supposons que vous ayez une application nécessitant NGNIX et MySQL, vous pouvez créer un fichier qui démarrerait les deux conteneurs en tant que service sans avoir à démarrer chacun séparément.

Dans ce chapitre, nous verrons comment démarrer avec Docker Compose. Ensuite, nous verrons comment obtenir un service simple avec MySQL et NGNIX opérationnel à l'aide de Docker Compose.

Docker Compose ─ Installation

Les étapes suivantes doivent être suivies pour que Docker Compose soit opérationnel.

Step 1 - Téléchargez les fichiers nécessaires depuis github en utilisant la commande suivante -

curl -L "https://github.com/docker/compose/releases/download/1.10.0-rc2/dockercompose
   -$(uname -s) -$(uname -m)" -o /home/demo/docker-compose

La commande ci-dessus téléchargera la dernière version de Docker Compose qui, au moment de la rédaction de cet article, est 1.10.0-rc2. Il le stockera ensuite dans le répertoire/home/demo/.

Step 2 - Ensuite, nous devons fournir execute privileges vers le fichier Docker Compose téléchargé, à l'aide de la commande suivante -

chmod +x /home/demo/docker-compose

Nous pouvons ensuite utiliser la commande suivante pour voir le compose version.

Syntaxe

docker-compose version

Paramètres

  • version - Ceci est utilisé pour spécifier que nous voulons les détails de la version de Docker Compose.

Production

Les détails de la version de Docker Compose seront affichés.

Exemple

L'exemple suivant montre comment obtenir le docker-compose version.

sudo ./docker-compose -version

Production

Vous obtiendrez alors la sortie suivante -

Création de votre premier fichier Docker-Compose

Maintenant, allons-y et créons notre premier fichier Docker Compose. Tous les fichiers Docker Compose sont des fichiers YAML. Vous pouvez en créer un à l'aide de l'éditeur vim. Exécutez donc la commande suivante pour créer lecompose fichier -

sudo vim docker-compose.yml

Examinons de près les différents détails de ce fichier -

  • le database et webLes mots clés sont utilisés pour définir deux services distincts. L'un exécutera notremysql base de données et l'autre sera notre nginx serveur Web.

  • le image Le mot-clé est utilisé pour spécifier l'image de dockerhub pour notre mysql et nginx conteneurs

  • Pour la base de données, nous utilisons le mot-clé ports pour mentionner les ports qui doivent être exposés pour mysql.

  • Et puis, nous spécifions également les variables d'environnement pour mysql qui sont nécessaires pour exécuter mysql.

Maintenant, exécutons notre fichier Docker Compose à l'aide de la commande suivante -

sudo ./docker-compose up

Cette commande prendra le docker-compose.yml dans votre répertoire local et commencez à créer les conteneurs.

Une fois exécutées, toutes les images commenceront à se télécharger et les conteneurs démarreront automatiquement.

Et quand tu fais un docker ps, vous pouvez voir que les conteneurs sont effectivement opérationnels.

Docker a des intégrations avec de nombreux outils d'intégrations continues, qui incluent également le populaire outil CI connu sous le nom de Jenkins. Dans Jenkins, vous avez des plugins disponibles qui peuvent être utilisés pour travailler avec des conteneurs. Regardons donc rapidement un plugin Docker disponible pour l'outil Jenkins.

Allons-y étape par étape et voyons ce qui est disponible dans Jenkins pour les conteneurs Docker.

Step 1 - Accédez à votre tableau de bord Jenkins et cliquez sur Manage Jenkins.

Step 2 - Aller à Manage Plugins.

Step 3- Recherchez les plugins Docker. Choisissez le plugin Docker et cliquez sur leInstall without restart bouton.

Step 4- Une fois l'installation terminée, accédez à votre travail dans le tableau de bord Jenkins. Dans notre exemple, nous avons un travail appeléDemo.

Step 5 - Dans le travail, lorsque vous passez à l'étape Génération, vous pouvez maintenant voir l'option permettant de démarrer et d'arrêter les conteneurs.

Step 6 − As a simple example, you can choose the further option to stop containers when the build is completed. Then, click the Save button.

Now, just run your job in Jenkins. In the Console output, you will now be able to see that the command to Stop All containers has run.

Kubernetes is an orchestration framework for Docker containers which helps expose containers as services to the outside world. For example, you can have two services − One service would contain nginx and mongoDB, and another service would contain nginx and redis. Each service can have an IP or service point which can be connected by other applications. Kubernetes is then used to manage these services.

The following diagram shows in a simplistic format how Kubernetes works from an architecture point of view.

The minion is the node on which all the services run. You can have many minions running at one point in time. Each minion will host one or more POD. Each POD is like hosting a service. Each POD then contains the Docker containers. Each POD can host a different set of Docker containers. The proxy is then used to control the exposing of these services to the outside world.

Kubernetes has several components in its architecture. The role of each component is explained below &mius;

  • etcd − This component is a highly available key-value store that is used for storing shared configuration and service discovery. Here the various applications will be able to connect to the services via the discovery service.

  • Flannel − This is a backend network which is required for the containers.

  • kube-apiserver − This is an API which can be used to orchestrate the Docker containers.

  • kube-controller-manager − This is used to control the Kubernetes services.

  • kube-scheduler − This is used to schedule the containers on hosts.

  • Kubelet − This is used to control the launching of containers via manifest files.

  • kube-proxy − This is used to provide network proxy services to the outside world.

In this chapter, we will see how to install Kubenetes via kubeadm. This is a tool which helps in the installation of Kubernetes. Let’s go step by step and learn how to install Kubernetes.

Step 1 − Ensure that the Ubuntu server version you are working on is 16.04.

Step 2 − Ensure that you generate a ssh key which can be used for ssh login. You can do this using the following command.

ssh-keygen

This will generate a key in your home folder as shown below.

Step 3 − Next, depending on the version of Ubuntu you have, you will need to add the relevant site to the docker.list for the apt package manager, so that it will be able to detect the Kubernetes packages from the kubernetes site and download them accordingly.

We can do it using the following commands.

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -  
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee /etc/apt/sources.list.d/docker.list

Step 4 − We then issue an apt-get update to ensure all packages are downloaded on the Ubuntu server.

Step 5 - Installez le package Docker comme détaillé dans les chapitres précédents.

Step 6 - Il est maintenant temps d'installer kubernetes en installant les packages suivants -

apt-get install –y kubelet kubeadm kubectl kubernetes-cni

Step 7 - Une fois tout kubernetes les packages sont téléchargés, il est temps de démarrer le contrôleur kubernetes à l'aide de la commande suivante -

kubeadm init

Une fois terminé, vous obtiendrez un message indiquant que le maître est opérationnel et que les nœuds peuvent désormais rejoindre le cluster.