GNU/Linux >> Tutoriels Linux >  >> Linux

Comment gérer les conteneurs Docker

Docker est une plateforme logicielle développée pour faciliter le déploiement d'applications basées sur le concept de conteneurs. La plate-forme peut être utilisée pour créer, tester et distribuer des applications en les rassemblant dans des unités standardisées, appelées "conteneurs".

Les conteneurs Docker peuvent être considérés comme des environnements isolés où les applications peuvent être exécutées sans interférence par d'autres processus. De la même manière que pour les machines virtuelles, des ressources de calcul spécifiques sont allouées à chaque conteneur. Contrairement aux machines virtuelles, Docker ne nécessite aucune émulation matérielle mais utilise le matériel physique de l'hôte pour chaque conteneur.

Être économe en ressources et capable de générer des performances système améliorées, la conteneurisation peut être considérée comme l'évolution naturelle de la virtualisation. De plus, comme ils contiennent tout ce qui est nécessaire à la bonne exécution des applications - y compris les bibliothèques, les outils système et les codes - les conteneurs simplifient le déploiement d'une application sans avoir à se soucier de la configuration de l'environnement d'exécution.

Dans ce didacticiel, vous apprendrez à gérer au mieux les conteneurs Docker sous Linux, à télécharger des images depuis Docker Hub, à créer un nouveau conteneur et à en enregistrer une image.

Lorsque la plate-forme Docker n'est pas présente sur votre système, il est recommandé de suivre notre guide Comment installer Docker sur Ubuntu 18.04.

Télécharger des images

Les conteneurs sont construits à partir d'images. Par défaut, ces images sont téléchargées depuis Docker Hub, un registre d'images officielles fourni par l'entreprise.

N'importe qui peut héberger ses images sur Docker Hub. Cela permet d'utiliser des images pré-emballées comme base pour vos applications.

Essayez d'exécuter la commande :

$ docker run centos

Docker recherchera l'image "centos" dans le registre local. Ne le trouvant pas (car il n'a pas été téléchargé jusqu'à présent), Docker le téléchargera à partir de Docker Hub et construira le conteneur avec cette image.

L'image utilisée ne fournit aucune sortie visuelle, mais vous pouvez voir le conteneur exécuté par la commande :

$ docker ps

pour voir tous les conteneurs existants, en cours d'exécution et arrêtés :

$ docker ps -a

Pour afficher la liste des images téléchargées, tapez :

$ docker images

Construire des conteneurs

Les conteneurs sont similaires aux machines virtuelles et sont moins coûteux en termes de ressources.

Essayez d'en créer un avec l'image centos téléchargée précédemment :

$ docker run -it centos

Le commutateur "-it" permet d'accéder au shell à l'intérieur du conteneur. Le shell affiché n'est pas celui de votre système d'exploitation mais celui du conteneur :toutes les commandes seront exécutées sur le shell de l'OS présent à l'intérieur du conteneur (ici Ubuntu) et non sur le shell de l'hôte.

Pour quitter le shell du conteneur et revenir au shell de l'hôte, tapez :

$ exit

Pour démarrer, arrêter ou supprimer un conteneur :

$ docker start ID_or_container_name
$ docker stop ID_or_container_name
$ docker rm ID_or_container_name

Avant de démarrer ou de supprimer un conteneur, il doit être dans un état "stop".
Avant de bloquer un conteneur, il doit être dans un état "run".

Les conteneurs sont des environnements isolés et sont donc "fermés" par définition. Pour interagir avec leur "contenu", mappez un port de communication.

$ docker run -p 8081:80 -d nginx
  • "docker run" :commande de démarrage du conteneur.

  • "-p 8081:80" :expose le conteneur port 80 sur le port 8081 de l'hôte.

    • S'il s'agit d'un conteneur qui héberge un WebServer, accédez-y par "localhost:8081".

  • "-d" :exécute le conteneur en arrière-plan.

  • "nginx" :image utilisée pour construire le conteneur.

    • Si l'image n'est pas présente localement, elle est téléchargée depuis Docker Hub.

Construire des images de conteneurs

Une fois le conteneur réalisé et les "personnalisations" nécessaires, la création de l'image relative est recommandée :tout ce qui est inséré dans le conteneur (installation de modules supplémentaires ou autres personnalisations) reste dans le conteneur et non dans l'image utilisée pour la construction. S'il est supprimé et recréé, le conteneur n'affichera aucune des modifications apportées jusqu'à ce point.

Supposez que vous avez créé un conteneur avec l'image CentOS et installé Nginx. Si vous supprimez le conteneur et le recréez avec l'image ubuntu, vous n'aurez pas Nginx dans le conteneur car l'image utilisée ne le contient pas.

Pour générer l'image d'un conteneur (et avoir une sauvegarde pour recréer le conteneur avec les mêmes conditions) exécutez la commande :

$ docker commit -m "List of changes made" -a "User name" container_id repository/image_name
  • "-m" est utilisé pour écrire la liste des changements pour obtenir un journal auquel se référer

  • "-a" est utilisé pour indiquer le nom de l'utilisateur qui génère l'image

Cette commande enregistre l'image dans le registre local (affichable via les images docker).

L'image peut également être enregistrée sur Docker Hub. Cela peut être fait en vous authentifiant d'abord sur Docker Hub, en utilisant Docker (depuis le shell), en tapant :

$ docker login -u username
  • Vous devrez entrer le mot de passe pour l'authentification sur Docker Hub

$ docker push username/image_name

Linux
  1. Comment partager des données entre des conteneurs Docker

  2. Comment répertorier les conteneurs Docker

  3. Comment quitter un conteneur Docker

  4. Comment sauvegarder et restaurer des conteneurs Docker

  5. Comment mettre en pause et reprendre les conteneurs Docker

Comment se connecter en SSH aux conteneurs Docker [étape par étape]

Comment exécuter des conteneurs Docker

Comment supprimer les conteneurs Docker

Comment arrêter les conteneurs Docker

Comment nommer ou renommer les conteneurs Docker

Comment se connecter en SSH à un conteneur Docker