Tutoriel Docker pour les débutants : les bases, Architecture, Conteneurs

Qu'est-ce que Docker?

Docker est une plateforme de développement logiciel pour la virtualisation avec plusieurs Operasystèmes fonctionnant sur le même hôte. Cela permet de séparer l'infrastructure et les applications afin de fournir des logiciels rapidement. Contrairement aux hyperviseurs, qui sont utilisés pour créer des VM (machines virtuelles), la virtualisation dans Docker est effectuée au niveau du système, également appelé conteneurs Docker.

Comme vous pouvez voir la différence dans l'image ci-dessous, les conteneurs Docker s'exécutent au-dessus du serveur hôte. Operasystème de configuration. Cela vous aide à améliorer l’efficacité et la sécurité. De plus, nous pouvons exécuter plus de conteneurs sur la même infrastructure que de machines virtuelles, car les conteneurs utilisent moins de ressources.

Virtualisation dans Docker vs Hyperviseur
Virtualisation dans Docker vs Hyperviseur

Contrairement aux VM qui peuvent communiquer avec le matériel de l'hôte (ex : adaptateur Ethernet pour créer plus d'adaptateurs virtuels), les conteneurs Docker s'exécutent dans un environnement isolé au-dessus du système d'exploitation de l'hôte. Même si votre hôte exécute Windows OS, vous pouvez exécuter des images Linux dans des conteneurs à l'aide de Hyper-V, qui crée automatiquement une petite VM pour virtualiser l'image de base du système, dans ce cas, Linux.

Pourquoi utiliser Docker ?

  • Docker est un logiciel informatique utilisé pour la virtualisation afin d'avoir plusieurs Operasystèmes de réglage fonctionnant sur le même hôte
  • Docker est une application de type client-serveur, ce qui signifie que nous avons des clients qui se relayent vers le serveur
  • Les images Docker sont le « code source » de nos conteneurs ; nous les utilisons pour construire
  • Dockerfile a deux types de registres 1.) registres publics et 2) registres privés
  • Les conteneurs sont les unités organisationnelles du volume Docker. En termes simples, une image est un modèle et un conteneur est une copie de ce modèle. Vous pouvez avoir plusieurs conteneurs (copies) de la même image.

Docker Architecture

Maintenant, dans ce didacticiel sur le conteneur Docker, parlons des principaux composants de Docker dans Docker. Archistructure :

Docker Architecture
Docker Architecture

Docker Engine

Docker est une application de type client-serveur, ce qui signifie que nous avons des clients qui se relayent vers le serveur. Ainsi le démon Docker s'appelle : dockerd est le moteur Docker qui représente le serveur. Le démon Docker et les clients peuvent être exécutés sur le même hôte ou sur un hôte distant, et ils communiquent via le binaire client en ligne de commande, ainsi qu'un système complet. API RESTful pour interagir avec le démon : dockerd.

Images Docker

Les images Docker sont le « code source » de nos conteneurs ; nous les utilisons pour construire des conteneurs. Ils peuvent avoir un logiciel préinstallé qui accélère le déploiement. Ils sont portables et nous pouvons utiliser des images existantes ou créer les nôtres.

Registres Docker

Docker stocke les images que nous construisons dans des registres. Il existe des registres publics et privés. La société Docker a un registre public appelé Hub Docker, où vous pouvez également stocker des images en privé. Docker Hub contient des millions d'images, que vous pouvez commencer à utiliser dès maintenant.

Docker Containers

Les conteneurs sont les unités organisationnelles et l'un des concepts de base de Docker. Lorsque nous construisons une image et commençons à l’exécuter ; nous courons dans un conteneur. L'analogie avec le conteneur est utilisée en raison de la portabilité du logiciel que nous exécutons dans notre conteneur. On peut le déplacer, autrement dit « expédier » le logiciel, le modifier, le gérer, le créer ou le supprimer, le détruire, tout comme les cargos peuvent le faire avec de vrais conteneurs.

En termes simples, une image est un modèle et un conteneur est une copie de ce modèle. Vous pouvez avoir plusieurs conteneurs (copies) de la même image.

Ci-dessous nous avons une image qui représente parfaitement l'interaction entre les différents composants et le fonctionnement de la technologie des conteneurs Docker.

Ce que nous avons plusieurs commandes dockers, docker pull, docker run... nous en reparlerons plus tard.

Comment installer Docker sur Linux/Ubuntu

Vous trouverez ci-dessous un processus d'installation de Docker étape par étape sous Linux/Ubuntu:

Étape 1) Pour installer Docker, nous devons utiliser les packages DEB de l'équipe Docker.

Pour cela, quelques prérequis Ubuntu des forfaits sont requis.

Utilisez la commande ci-dessous pour installer Ubuntu Forfaits

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

*le signe « \ » n'est pas nécessaire, il est utilisé pour la nouvelle ligne, si vous le souhaitez vous pouvez écrire la commande sans utiliser « \ » sur une seule ligne.

Étape 2) Ajoutez la clé Docker GPG officielle avec l'empreinte digitale.

Utilisez la commande Docker ci-dessous pour saisir la clé GPG

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Étape 3) Ensuite, ajoutez le référentiel Docker APT.

Utilisez la commande Docker ci-dessous pour ajouter le référentiel

$ sudo add-apt-repository \ 
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \ 
$(lsb_release -cs) \
stable"

Vous serez peut-être invité à confirmer que vous souhaitez ajouter le référentiel et que la clé GPG soit automatiquement ajoutée à votre hôte.

La commande lsb_release doit remplir le Ubuntu version de distribution de votre hébergeur.

Étape 4) Après avoir ajouté la clé GPG,

Mettez à jour les sources APT à l'aide de la commande Docker ci-dessous

$ sudo apt-get update

Nous pouvons maintenant installer le package Docker lui-même.

Étape 5) Une fois les sources APT mises à jour,

Commencez à installer les packages Docker sur Ubuntu en utilisant la commande Docker ci-dessous

$ sudo apt-get install docker-ce

La commande ci-dessus installe Docker et d'autres packages supplémentaires requis. Avant Docker 1.8.0, le nom du package était lxc-docker, et entre Docker 1.8 et 1.13, le nom du package était docker-engine.

REMARQUE: Docker pour Windows a besoin Windows 10 Pro ou Entreprise version 14393, ou Windows serveur 2016 RTM à exécuter

Comment utiliser Docker à l'aide des commandes Docker de base

Voici comment utiliser Docker à l'aide des commandes Docker de base :

La commande la plus basique que nous devons exécuter après l'installation de Docker est $ docker info comme nous l'avons dit précédemment.

$ sudo docker info

Vous devriez obtenir le résultat similaire ou suivant

Utiliser Docker à l'aide des commandes Docker de base

Comme nous pouvons le voir dans l'exemple Docker ci-dessus, nous avons des informations sur les conteneurs Docker, combien sont en cours d'exécution, en pause ou arrêtés et combien d'images nous avons téléchargées. Prenons donc notre première image dans ce didacticiel sur les commandes Docker.

$ sudo docker pull alpine

Avec cette commande, nous demandons à Docker de télécharger l'image alpine, de l'extraire du registre public, la dernière version définie par défaut.

*alpine est une image Docker minimale basée sur Alpine Linux avec un index de package complet et une taille de seulement 5 Mo.

Si nous souhaitons exécuter l'image en tant que conteneur, nous utiliserons la commande suivante dans ce guide des didacticiels Docker.

$ sudo docker run -i -t alpine /bin/bash

Si nous exécutons la commande, nous serons envoyés directement au terminal alpin. L'indicateur -i maintient STDIN ouvert depuis le conteneur, même lorsque vous n'y êtes pas attaché. Cette entrée standard persistante représente la moitié de ce dont vous avez besoin pour un shell interactif. L'indicateur -t est l'autre moitié et qui demande à Docker d'attribuer un pseudo-tty au conteneur. Cela nous offre un shell interactif dans le nouveau conteneur. Nous quittons le conteneur avec une simple commande de sortie.

Maintenant, dans ce didacticiel sur les bases de Docker, nous pouvons essayer d'exécuter un Ubuntu l'image.

$ sudo docker run -it ubuntu /bin/bash

Vous pouvez remarquer que Docker vérifie l'image localement, et si elle n'est pas là, l'image est automatiquement extraite de la bibliothèque d'images, et une fois de plus, nous avons un shell interactif en cours d'exécution. Nous pouvons également nommer les conteneurs au fur et à mesure que nous les exécutons.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

et nous sortons à nouveau.

Nous pouvons également exécuter le conteneur que nous avons créé précédemment, sans shell interactif.

$ sudo docker start container_name

Et arrêtez l'écriture du conteneur docker stop conteneur_name

$ sudo docker stop container_name

Si nous voulons voir tous les conteneurs en cours d'exécution, nous exécutons simplement

$ docker ps

Et pour tous les conteneurs on ajoute « -a » à la fin de cette même commande, comme ce docker ps -a.

Cette commande affiche l'ID du conteneur, l'image utilisée lors de sa création, l'état d'exécution, les ports exposés et le nom généré aléatoirement pour le conteneur pour une gestion plus facile.

Lorsque nous exécutons des conteneurs, nous aimerions également savoir combien de ressources ils utilisent, pour cela nous pouvons utiliser la commande.

$ docker stats

Vous pouvez également voir quelles images nous avons téléchargées localement et des informations à leur sujet.

$ sudo docker images

La commande dans l'exemple Docker ci-dessus affiche l'image Docker avec une balise qui indique la version de notre image, un ID d'image distinctif, la date de création et la taille de l'image.

Qu'est-ce que la virtualisation ?

Auparavant, le processus de déploiement d'un service était lent et pénible. Premièrement, les développeurs écrivaient du code ; Ensuite, l'équipe des opérations le déployait sur des machines nues, où elle devait rechercher les versions de bibliothèque, les correctifs et les compilateurs de langage pour que le code fonctionne. S'il y avait des bugs ou des erreurs, le processus recommençait, les développeurs le corrigeaient, puis à nouveau l'équipe opérationnelle était là pour déployer.

Il y a eu une amélioration avec la création des Hyperviseurs. Les hyperviseurs ont plusieurs Machines virtuelles ou des machines virtuelles sur le même hôte, qui peuvent être en cours d'exécution ou désactivées. Les machines virtuelles ont considérablement réduit le temps d'attente pour le déploiement du code et la correction des bogues, mais le véritable changement de donne a été les conteneurs Docker.

Commandes Docker importantes

Vous trouverez ci-dessous les commandes Docker importantes :

Command Description
infos docker Commandement de l'information
docker tirer Télécharger une image
docker run -i -t nom_image /bin/bash Exécuter l'image en tant que conteneur
docker démarre notre_conteneur Démarrer le conteneur
docker stop nom_conteneur Arrêter le conteneur
docker ps Liste de tous les conteneurs en cours d'exécution
statistiques de docker Informations sur le conteneur
images docker Liste des images téléchargées
Nettoyage de Docker Tuez tous les conteneurs en cours d'exécution.

Aussi, lisez Questions et réponses pour l'entretien d'embauche de Docker pour les professionnels débutants et expérimentés.

Résumé

  • Docker est une plateforme de développement logiciel pour la virtualisation avec plusieurs Operasystèmes fonctionnant sur le même hôte. Cela permet de séparer l'infrastructure et les applications afin de fournir des logiciels rapidement.
  • Docker Archistructure : Moteur Docker, images Docker, registres Docker, conteneurs Docker.
  • Moteur Docker : Docker est une application de type client-serveur, ce qui signifie que nous avons des clients qui se relayent vers le serveur. Ainsi le démon Docker s'appelle : dockerd est le moteur Docker qui représente le serveur.
  • Images Docker : Les images Docker sont le « code source » de nos conteneurs ; nous les utilisons pour construire des conteneurs. Ils peuvent avoir un logiciel préinstallé qui accélère le déploiement. Ils sont portables et nous pouvons utiliser des images existantes ou créer les nôtres.
  • Registres Docker : Docker stocke les images que nous construisons dans des registres. Il existe des registres publics et privés. La société Docker dispose d'un registre public appelé Docker hub, où vous pouvez également stocker des images en privé. Docker Hub contient des millions d'images, que vous pouvez commencer à utiliser dès maintenant.
  • Conteneurs Docker : Les conteneurs sont les unités organisationnelles et l'un des concepts de base de Docker. Lorsque nous construisons une image et commençons à l’exécuter ; nous courons dans un conteneur. L'analogie avec le conteneur est utilisée en raison de la portabilité du logiciel que nous exécutons dans notre conteneur.