{"id":1459,"date":"2023-01-19T00:56:39","date_gmt":"2023-01-18T23:56:39","guid":{"rendered":"https:\/\/techtocraft.xyz\/?p=1459"},"modified":"2023-02-19T23:15:23","modified_gmt":"2023-02-19T22:15:23","slug":"installation-de-docker-sur-debian-11","status":"publish","type":"post","link":"https:\/\/hinakuu.xyz\/?p=1459","title":{"rendered":"Installation de Docker sur Debian 11"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Dans ce tutoriel, nous allons voir comment installer Docker sur Debian 11 afin d&rsquo;utiliser ses premiers containers sous&nbsp;Linux&nbsp;!<\/strong>&nbsp;Cette installation pas-\u00e0-pas repose sur la m\u00e9thode officielle d\u00e9crite dans la documentation de Docker. Au-del\u00e0 des d\u00e9pendances que nous allons installer et de Docker en lui-m\u00eame, les ressources de votre machine seront d\u00e9terminantes pour ex\u00e9cuter plus ou moins de containers Docker.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;utilisation d&rsquo;un container reste tr\u00e8s pratique pour tester rapidement un logiciel sans affecter la machine h\u00f4te, en phase de d\u00e9veloppement, etc. Un container Docker va permettre d&#8217;empaqueter facilement des applications afin de les rendre utilisables sur diff\u00e9rentes plateformes. De nos jours, c&rsquo;est une technologie populaire et appr\u00e9ci\u00e9e et que l&rsquo;on utilise aussi bien on-premise que sur les environnements\u00a0Cloud.<\/p>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">VM vs Conteneur<\/mark><\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/techtocraft.xyz\/wp-content\/uploads\/2023\/02\/VMvsDocker-1024x974.png\" alt=\"\" class=\"wp-image-1701\" width=\"717\" height=\"681\" srcset=\"https:\/\/hinakuu.xyz\/wp-content\/uploads\/2023\/02\/VMvsDocker-1024x974.png 1024w, https:\/\/hinakuu.xyz\/wp-content\/uploads\/2023\/02\/VMvsDocker-300x285.png 300w, https:\/\/hinakuu.xyz\/wp-content\/uploads\/2023\/02\/VMvsDocker-768x731.png 768w, https:\/\/hinakuu.xyz\/wp-content\/uploads\/2023\/02\/VMvsDocker-1536x1461.png 1536w, https:\/\/hinakuu.xyz\/wp-content\/uploads\/2023\/02\/VMvsDocker.png 1577w\" sizes=\"auto, (max-width: 717px) 100vw, 717px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour fonctionner, Docker s&rsquo;appuie sur diff\u00e9rents composants qu&rsquo;il est important de conna\u00eetre :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Docker Engine<\/strong>&nbsp;ou&nbsp;<strong>Docker Daemon<\/strong>&nbsp;correspondant au processus qui fait tourner Docker sur le syst\u00e8me, en charge de la g\u00e9n\u00e9ration et l&rsquo;ex\u00e9cution des containers<\/li>\n\n\n\n<li><strong>Docker Registry<\/strong>&nbsp;est un emplacement de stockage pour h\u00e9berger les images de containers Docker (il peut \u00eatre public ou priv\u00e9)<\/li>\n\n\n\n<li><strong>Docker Image<\/strong>&nbsp;correspondant \u00e0 un fichier qui contient la d\u00e9finition d&rsquo;un container Docker (d\u00e9pendances, configuration, etc.)<\/li>\n\n\n\n<li><strong>Docker Client<\/strong>&nbsp;correspondant \u00e0 l&rsquo;utilitaire en ligne de commande qui va permettre de g\u00e9rer les containers (commande \u00ab\u00a0<em>docker<\/em>\u00ab\u00a0)<\/li>\n\n\n\n<li><strong>Docker Container<\/strong>&nbsp;correspondant aux containers en eux-m\u00eames, tout en sachant qu&rsquo;une image peut permettre de cr\u00e9er plusieurs containers avec chacun un identifiant unique<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">La documentation de Docker est disponible \u00e0 cette adresse :\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/docs.docker.com\/\" target=\"_blank\">docs.docker.com<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Installer les d\u00e9pendances de Docker<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Premi\u00e8rement, nous devons installer les d\u00e9pendances n\u00e9cessaires au bon fonctionnement de Docker. Commen\u00e7ons par mettre \u00e0 jour le cache des paquets :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt-get update<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Puis, ex\u00e9cutez la commande ci-dessous pour installer les paquets :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-light-green-cyan-color\">Ajouter le d\u00e9p\u00f4t officiel Docker<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Deuxi\u00e8mement, nous devons ajouter le d\u00e9p\u00f4t officiel de Docker \u00e0 notre machine Debian afin de pouvoir r\u00e9cup\u00e9rer les sources. Commen\u00e7ons par r\u00e9cup\u00e9rer la cl\u00e9 GPG qui nous permettra de valider les paquets r\u00e9cup\u00e9r\u00e9s depuis le d\u00e9p\u00f4t Docker :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo curl -fsSL https:\/\/download.docker.com\/linux\/debian\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ensuite, on ajoute le d\u00e9p\u00f4t Docker \u00e0 la liste des sources de notre machine :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo echo \"deb [arch=amd64 signed-by=\/usr\/share\/keyrings\/docker-archive-keyring.gpg] https:\/\/download.docker.com\/linux\/debian $(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pour finir, nous devons mettre \u00e0 jour le cache des paquets pour prendre en compte les paquets de ce nouveau d\u00e9p\u00f4t :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt-get update<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Installation des paquets Docker<\/mark><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt-get install docker-ce docker-ce-cli containerd.io<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous souhaitez que Docker d\u00e9marre automatiquement avec votre machine Debian, la commande suivante doit \u00eatre ex\u00e9cut\u00e9e :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo systemctl enable docker<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ensuite, le meilleur moyen de v\u00e9rifier si Docker est install\u00e9, c&rsquo;est d&rsquo;ex\u00e9cuter le container nomm\u00e9 \u00ab\u00a0hello-world\u00a0\u00bb. La commande ci-dessous permettra de t\u00e9l\u00e9charger l&rsquo;image de ce container et de l&rsquo;ex\u00e9cuter.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker run hello-world<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Lorsque ce container sera ex\u00e9cut\u00e9, le message \u00ab\u00a0<em>Hello from Docker!<\/em>\u00a0\u00bb sera retourn\u00e9 dans la console.\u00a0<strong>C&rsquo;est le signe que les diff\u00e9rents composants sont op\u00e9rationnels et que Docker a pu g\u00e9n\u00e9rer et ex\u00e9cuter le container.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"730\" height=\"421\" src=\"https:\/\/techtocraft.xyz\/wp-content\/uploads\/2023\/02\/docker-hello-world.png\" alt=\"\" class=\"wp-image-1699\" srcset=\"https:\/\/hinakuu.xyz\/wp-content\/uploads\/2023\/02\/docker-hello-world.png 730w, https:\/\/hinakuu.xyz\/wp-content\/uploads\/2023\/02\/docker-hello-world-300x173.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-cyan-blue-color\">Docker est-il bien install\u00e9 ?<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;installation des paquets est termin\u00e9e, mais Docker est-il correctement install\u00e9 ? Pour r\u00e9pondre \u00e0 cette question, vous pouvez regarder le statut de Docker, ce qui sera une premi\u00e8re indication si le service est identifi\u00e9 sur la machine.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo systemctl status docker<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ensuite, le meilleur moyen de v\u00e9rifier si Docker est install\u00e9, c&rsquo;est d&rsquo;ex\u00e9cuter le container nomm\u00e9 \u00ab\u00a0hello-world\u00a0\u00bb. La commande ci-dessous permettra de t\u00e9l\u00e9charger l&rsquo;image de ce container et de l&rsquo;ex\u00e9cuter.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker run hello-world<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Lorsque ce container sera ex\u00e9cut\u00e9, le message \u00ab\u00a0<em>Hello from Docker!<\/em>\u00a0\u00bb sera retourn\u00e9 dans la console.&nbsp;<strong>C&rsquo;est le signe que les diff\u00e9rents composants sont op\u00e9rationnels et que Docker a pu g\u00e9n\u00e9rer et ex\u00e9cuter le container.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quelle est la version de Docker install\u00e9e ?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pour finir avec la phase d&rsquo;installation, sachez qu&rsquo;\u00e0 tout moment vous pouvez voir quelle est la version de Docker que vous utilisez gr\u00e2ce \u00e0 la commande suivante :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker --version\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-light-green-cyan-color\">Docker version 20.10.16, build aa7e414<\/mark><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">Quelques commandes Docker<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Docker est install\u00e9 sur notre serveur Debian 11, mais comment faire pour l&rsquo;utiliser ?<\/strong>&nbsp;Pour finir, nous allons voir quelques commandes utiles qui vous permettront de d\u00e9buter avec Docker.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lister les containers Docker en&nbsp;cours&nbsp;d&rsquo;ex\u00e9cution<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">docker ps<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Le r\u00e9sultat de la commande permet d&rsquo;avoir une liste avec diff\u00e9rentes informations dont l&rsquo;ID unique du container, le nom de l&rsquo;image, et le statut.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lister tous les containers Docker enregistr\u00e9s sur votre machine, peu importe l&rsquo;\u00e9tat<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">docker ps -a<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Supprimer un container Docker<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A partir d&rsquo;un ID, il est possible de supprimer un container Docker. Par exemple, cela peut permettre de supprimer le container \u00ab\u00a0hello-world\u00a0\u00bb (ID&nbsp;<em>3c745b055853<\/em>&nbsp;sur ma machine) car il n&rsquo;a plus d&rsquo;int\u00e9r\u00eat.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker rm 3c745b055853<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lister les images Docker (disponibles en local)<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">docker images<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ur ma machine Debian 11, l&rsquo;instance Docker dispose de trois images.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Supprimer une image Docker<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;image du container \u00ab\u00a0hello-world\u00a0\u00bb peut \u00eatre supprim\u00e9e, apr\u00e8s avoir arr\u00eat\u00e9 puis supprim\u00e9 le container associ\u00e9, via cette commande :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker rmi hello-world<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>D\u00e9marrer un container Docker<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Avec Docker, on peut d\u00e9marrer un container existant mais arr\u00eat\u00e9 avec \u00ab\u00a0<em>docker start<\/em>\u00a0\u00bb mais aussi cr\u00e9er un container et le d\u00e9marrer avec \u00ab\u00a0<em>docker run<\/em>\u00ab\u00a0. Un container peut-\u00eatre d\u00e9marr\u00e9 en l&rsquo;appelant par son identifiant :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker start d964015967b4<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Arr\u00eater un container Docker<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">La commande ci-dessus stoppe le container Docker avec l&rsquo;ID \u00ab\u00a0<em>6108d7c37298<\/em>\u00a0\u00bb r\u00e9cup\u00e9r\u00e9 via la commande \u00ab\u00a0docker ps\u00a0\u00bb.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker stop 6108d7c37298<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>T\u00e9l\u00e9charger une image Docker \u00e0 partir de Docker Hub<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Le site Docker Hub r\u00e9f\u00e9rence les images Docker, et il est possible de t\u00e9l\u00e9charger une image \u00e0 partir de cette source. Voici un exemple o\u00f9 l&rsquo;image d&rsquo;un container Docker Apache est t\u00e9l\u00e9charg\u00e9e :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker pull httpd<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cette image sera ensuite exploitable pour cr\u00e9er un nouveau container Docker.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">D\u00e9sinstaller Docker<\/mark><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">apt-get remove --purge docker*<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ensuite, si vous souhaitez supprimer les conteneurs et les images stock\u00e9s vous pouvez proc\u00e9der comme suit :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">rm -rf \/var\/lib\/docker\n\nPour supprimer les certificats et fichiers de configurations li\u00e9es \u00e0 Docker :\n\nrm -rf \/etc\/docker\r\nrm \/etc\/systemd\/system\/docker.service\r\nrm \/etc\/init\/d\/docker<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pour finir et repartir sur de bonnes bases :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt-get autoremove &amp;&amp; apt-get autoclean<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Dans ce tutoriel, nous allons voir comment installer Docker sur Debian 11 afin d&rsquo;utiliser ses premiers containers sous&nbsp;Linux&nbsp;!&nbsp;Cette<\/p>\n","protected":false},"author":1,"featured_media":1463,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1459","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/posts\/1459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1459"}],"version-history":[{"count":12,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/posts\/1459\/revisions"}],"predecessor-version":[{"id":1708,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/posts\/1459\/revisions\/1708"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/media\/1463"}],"wp:attachment":[{"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}