Comment utiliser les conteneurs Docker

Les conteneurs sont le cœur de chaque installation Docker. Ils servent de fondation à la plateforme Docker et vous permettent d’exécuter des services sur votre ordinateur sans vous soucier des dépendances et des conflits de version. Ici, nous vous montrons les bases de la création, de la gestion et de la personnalisation des conteneurs Docker en utilisant l’outil CLI Docker.
Table des matières
- Comment trouver et tirer une image Docker
- Comment exécuter et arrêter un conteneur Docker
- Comment inspecter un conteneur Docker
- Comment personnaliser un conteneur Docker
- Comment supprimer des conteneurs et des images Docker
Remarque : Commencez par installer Docker sur votre système Linux.
Comment trouver et tirer une image Docker
Les conteneurs Docker sont un type spécial d’environnement logiciel qui vous permet d’exécuter des programmes séparément du reste de votre système d’origine. Pour ce faire, Docker utilise des “images logicielles”. Ce sont des copies statiques de programmes qui servent de base à partir de laquelle un conteneur démarre.
Cette distinction entre image et conteneur vous permet de recréer et d’adapter votre logiciel de la manière nécessaire. Par exemple, vous pouvez avoir une image telle que “httpd” mais créer deux conteneurs distincts à partir de celle-ci : “site1” et “site2”.
Le moyen le plus simple de rechercher une nouvelle image Docker est d’utiliser la sous-commande search :
docker search httpd
Vous pouvez également rechercher des paquets sur le site Docker Hub si vous préférez utiliser votre navigateur web.

Pour télécharger l’image sur votre système, exécutez la commande suivante :
docker image pull httpdConfirmez que vous avez correctement ajouté votre nouvelle image à votre système en utilisant la sous-commande images :
docker images
Création d’une nouvelle image à l’aide de Dockerfiles
En plus de tirer des images préconstruites depuis Docker Hub, vous pouvez construire des images directement depuis l’outil CLI Docker. Cela est utile si vous souhaitez créer des versions personnalisées de paquets logiciels existants ou si vous portez de nouvelles applications vers Docker.
Pour ce faire, commencez par créer un dossier dans votre répertoire personnel pour vos fichiers de construction :
mkdir ~/my-docker-image && cd ~/my-docker-imageCréez un nouveau Dockerfile en utilisant votre éditeur de texte préféré :
nano ./DockerfileCollez les lignes de code suivantes dans votre nouveau Dockerfile :
FROM nginx
COPY sample-site /usr/share/nginx/htmlCréez un dossier “sample-site” et copiez ou créez un site HTML de base :
mkdir ./sample-site
cp ~/index.html ./sample-site/Enregistrez votre nouveau Dockerfile, puis exécutez la commande suivante pour le construire sur votre système :
docker build -t custom-nginx .Vérifiez si votre nouvelle image Docker est présente dans votre liste d’images Docker :
docker images
Création d’une nouvelle image à partir de conteneurs existants
L’outil CLI Docker peut également construire de nouvelles images à partir des conteneurs qui existent actuellement dans votre système. Cela est utile si vous travaillez déjà sur un environnement existant et que vous souhaitez créer une nouvelle image à partir de votre configuration actuelle.
Pour ce faire, assurez-vous que votre conteneur n’est pas en cours d’exécution :
docker stop my-http-serverExécutez la sous-commande commit suivie du nom de votre conteneur, puis fournissez le nom de votre nouvelle image Docker après cela :
docker commit my-http-server my-new-server-imageConfirmez que votre nouvelle image Docker est dans votre système en exécutant docker images.

Comment exécuter et arrêter un conteneur Docker
Avec votre image Docker prête, vous pouvez maintenant commencer à l’utiliser pour créer votre premier conteneur. Pour ce faire, utilisez la sous-commande run suivie du nom de l’image que vous souhaitez exécuter :
docker run httpdBien que cela fonctionne pour exécuter votre premier conteneur Docker, le faire de cette manière prendra le contrôle de votre session shell actuelle. Pour exécuter votre conteneur en arrière-plan, ajoutez le drapeau -d après la sous-commande run :
docker run -d httpdLa sous-commande run peut également accepter un certain nombre de drapeaux supplémentaires qui peuvent modifier le comportement de votre nouveau conteneur Docker. Par exemple, le drapeau --name vous permet d’ajouter un nom personnalisable à votre conteneur :
docker run -d --name=my-http-server httpdD’autre part, vous pouvez utiliser le drapeau --publish pour rediriger le port réseau par lequel vous pouvez accéder à votre conteneur Docker. Cela est principalement utile si vous ne voulez pas que votre conteneur prenne le contrôle d’un port privilégié :
docker run -d --name=my-http-server --publish 8080:80 httpd
Vous pouvez vérifier tous les conteneurs Docker actuellement en cours d’exécution dans votre système en exécutant la commande suivante :
docker psTout comme la sous-commande run, ps peut également accepter un certain nombre de drapeaux qui modifieront son comportement. Par exemple, pour afficher les conteneurs qui sont actuellement arrêtés, utilisez le drapeau -a :
docker ps -aPour éteindre un conteneur en cours d’exécution, utilisez la sous-commande stop suivie de l’ID du conteneur ou du nom de votre conteneur Docker :
docker stop my-http-serverVous pouvez redémarrer n’importe quel conteneur que vous avez arrêté en réexécutant la sous-commande start :
docker start my-http-serverEn passant : apprenez les bases de l’hébergement web avec Docker en exécutant un simple site web en utilisant darkhttpd.
Mettre en pause et tuer un conteneur Docker
L’outil CLI Docker vous permet également de mettre temporairement en pause et de tuer un processus de conteneur en cours d’exécution. Cela peut être utile si vous dépannez un problème avec votre configuration Docker et que vous souhaitez soit isoler, soit arrêter un conteneur défaillant.
Commencez par exécuter docker ps pour lister tous les conteneurs en cours d’exécution dans le système.
Trouvez soit l’ID, soit le nom du conteneur que vous souhaitez gérer.

Exécutez la sous-commande pause suivie du nom du conteneur que vous souhaitez suspendre temporairement :
docker pause my-http-serverVous pouvez reprendre un processus suspendu en exécutant la sous-commande unpause :
docker unpause my-http-serverPour arrêter un processus défaillant, exécutez la sous-commande kill suivie du nom de votre conteneur :
docker kill my-http-serverComment inspecter un conteneur Docker
Connaître les détails complexes de votre conteneur est une partie vitale du maintien de la santé de votre pile Docker. Cela vous permet de rapidement examiner tout problème potentiel et cela peut faire la différence entre réparer et refaire l’ensemble de votre déploiement.
Pour obtenir un aperçu de votre conteneur Docker, exécutez la sous-commande inspect :
docker inspect my-http-serverCela imprimera une longue chaîne JSON qui décrit l’état actuel de votre conteneur entier. Vous pouvez affiner cela soit en redirigeant la sortie vers jq, soit en utilisant le drapeau intégré -f suivi de l’objet JSON que vous souhaitez imprimer :
docker inspect -f {{.Name}} my-http-serverImprimer les journaux du conteneur dans le terminal
En plus de cela, vous pouvez également suivre et imprimer les journaux de tout conteneur Docker actuellement en cours d’exécution. Cela peut être utile si vous souhaitez vérifier comment votre service se comporte actuellement et examiner la sortie qu’il renvoie à STDOUT.
Pour ce faire, exécutez la sous-commande logs suivie du nom de votre conteneur :
docker logs my-http-serverVous pouvez également exécuter la sous-commande logs avec le drapeau --follow pour créer un journal continu de votre service Docker. Cela est similaire à l’exécution de tail -f à la fin d’un pipe UNIX :
docker logs --follow my-http-server
Tout comme d’autres sous-commandes, vous pouvez également ajouter divers drapeaux pour personnaliser la sortie des journaux de votre conteneur Docker. Par exemple, le drapeau --timestamps ajoute un horodatage détaillé pour chaque message que votre conteneur envoie à son STDOUT :
docker logs --timestamps my-http-serverLe drapeau --details imprimera même les variables d’environnement que vous avez définies pour votre conteneur Docker actuel. Pendant ce temps, le drapeau --since vous permet d’afficher uniquement les journaux qui se sont produits après un certain moment :
docker logs --details --since 8m my-http-server
Comment personnaliser un conteneur Docker
Au fond, un conteneur Docker est une petite version allégée de Linux fonctionnant sur votre système actuel. Cela signifie que, tout comme une machine virtuelle, il est possible d’accéder et de récupérer les données à l’intérieur de votre conteneur.
Pour copier un fichier local de votre machine hôte vers le conteneur, exécutez la sous-commande cp :
docker cp ~/my-file my-http-server:/tmpParfois, vous devrez également “entrer” dans les conteneurs en ouvrant un shell à l’intérieur d’eux. De cette façon, vous pouvez modifier des fichiers, installer des binaires et les personnaliser selon vos besoins :
docker exec -it my-http-server /bin/bashMaintenant, vous pourriez, par exemple, modifier “index.html” et créer une page d’accueil pour le site web à l’intérieur.

Pour quitter le shell du conteneur, appuyez soit sur Ctrl + D, soit exécutez exit dans le terminal.

Bon à savoir : apprenez à déplacer un conteneur Docker existant vers un nouveau système.
Comment supprimer des conteneurs et des images Docker
Supprimer les conteneurs et les images Docker inutilisés est une partie importante de l’entretien général de votre déploiement. Cela vous permet de retirer des fichiers inutiles de votre serveur, économisant de l’espace de stockage à long terme.
Avant de supprimer un conteneur, assurez-vous de l’avoir d’abord arrêté :
docker stop my-http-serverMaintenant, supprimez le conteneur en utilisant la sous-commande rm :
docker rm my-http-serverConfirmez que vous avez correctement supprimé votre ancien conteneur Docker en exécutant docker ps -a.

Supprimez votre image Docker originale de votre déploiement Docker :
docker rmi my-new-server-image
Vérifiez si vous avez correctement supprimé votre image Docker originale en exécutant docker images.

Apprendre à créer, gérer et supprimer des conteneurs Docker n’est qu’une partie de ce que vous pouvez faire avec votre serveur Linux. Explorez le monde profond de l’administration système Linux en hébergeant un serveur et un hub de conteneurs Docker avec XPipe.
Crédit image : Shamin Haky via Unsplash. Toutes les modifications et captures d’écran par Ramces Red.