Introduction¶
Support de présentation : https://soleil-docker.jrobert-orleans.fr/01-Intro_docker
Lien vers le QCM de début et de fin de formation : https://forms.cloud.microsoft/e/08i0cHmL0i
Lien vers le questionnaire de satisfaction (à remplir en fin de formation): https://forms.office.com/e/TFmN6k7uDV
Ce document est téléchargeable en PDF : formationdocker.pdf.
Présentation¶
Les points qui vous ont été présentés :
La problématique de la mise en production
Virtualisation
Conteneurisation
Ce qu’apporte Docker
Démo
Docker, premiers pas¶
Installation¶
La documentation pour l’installation est disponible ici : https://docs.docker.com/engine/install/
Si vous êtes sous ubuntu, choisissez la méthode décrite ici : https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
Si vous êtes sous debian, choisissez la méthode décrite ici : https://docs.docker.com/engine/install/debian/#install-using-the-repository
Vous pouvez aussi installer docker-desktop en suivant la documentation décrite ici : https://docs.docker.com/desktop/ <https://docs.docker.com/desktop/>`_
Vérification de l’installation¶
Après l’installation, vérifiez que tout fonctionne correctement (si vous utilisez docker desktop, ne mettez pas sudo):
sudo docker version
sudo docker info
sudo docker run --rm hello-world
Post-installation (si vous ne passez pas par docker-desktop)¶
Pour pouvoir lancer la commande docker sans avoir à utiliser sudo, suivez les instructions Manage Docker as a non-root user du lien suivant, résumées ci-dessous : https://docs.docker.com/engine/install/linux-postinstall/
sudo groupadd docker
sudo usermod -aG docker $USER
Attention : cela donne des droits élevés à votre utilisateur. Un utilisateur qui appartient au groupe docker a les mêmes possibilités que le superutilisateur.
A l’issue de cette étape, vous pouvez lancer la commande docker sans sudo :
docker run --rm hello-world
Premier conteneur¶
Ouvrez deux terminaux, l’un pour lancer un conteneur, et l’autre pour observer le système.
Dans le premier terminal, lancez un conteneur ubuntu en exécutant : docker run -it ubuntu bash
Dans l’autre terminal, listez les conteneurs actifs avec : docker ps.
Faites un tour à l’intérieur du conteneur dans votre premier terminal :
constatez que l’utilisateur est root (avec la commande
whoami).constatez que le système de fichiers n’est pas celui de la machine hote (par exemple avec
ls /home/).constatez que vous pouvez installer des logiciels (
apt updatepuisapt install vim).constatez que vous ne pouvez pas rebooter la machine, ni tuer de processus qui ne sont pas dans le conteneur, etc.
Cycle de vie d’un conteneur¶
Un conteneur peut être dans l’un des états suivants :
Created (docker create) : vient d’être créé mais n’est pas lancé.
Running (docker run).
Restarting (docker restart).
Exited (docker kill/stop) : les processus du conteneur sont tous « morts ».
Paused (docker pause / docker unpause) : les processus sont tous en pause, prend des ressources mémoire.
Dead : en cours de suppression.
À vous¶
Dans quel état se trouve votre conteneur actuel (pour l’observer, utilisez
docker ps) ?Tuez votre conteneur avec
docker kill PREFIXE_ID_CONTENEURoù PREFIXE_ID_CONTENEUR est le début de l’ID de votre conteneur.Pour constater que ça a fonctionné, vous ne devez plus le voir apparaître lorsque vous faites
docker ps.Pourtant il existe encore, mais est dans l’état « exited ». Observez son existence avec
docker ps -aoudocker ps --all.Pour terminer, essayez de supprimer votre conteneur avec
docker rm.
Récapitulatif¶
commandes à retenir
docker ps -adocker run -it -d IMAGE COMMANDEdocker killdocker rm
Quelques autres petites options de docker run¶
Essayez les options suivantes:
--restart: redémarre le conteneur si il se termine--rm: supprime le conteneur quand il se termine--name: nomme le conteneur
Nettoyage¶
Pour supprimer tous les conteneurs terminés, vous pouvez utiliser docker container prune
Dockerhub¶
Présentation¶
DockerHub est le « registry public » officiel de Docker. Il permet de :
Stocker et partager des images Docker
Automatiser la construction d’images
Intégrer avec des outils CI/CD
Collaborer en équipe
Types d’images¶
Sur DockerHub, on trouve différents types d’images (cf : https://docs.docker.com/docker-hub/repos/manage/trusted-content/):
Images officielles : Maintenues par Docker ou les éditeurs officiels
Images vérifiées : Créées par des Docker Verified Publishers
Images communautaires : Créées par la communauté
Lorsque vous avez fait docker run ubuntu, l’image ubuntu:latest a été téléchargée à partir de docker hub.
Pour en savoir plus sur le contenu de cette image, on a la documentation ici : https://hub.docker.com/_/ubuntu .
On remarque par exemple que cette image propose le tag « 24.04 », probablement la mouture de 2024 de ubuntu. On peut la lancer en faisant :
docker run -it ubuntu:24.04. Regardez le contenu de /etc/os-release.
Sur le site dockerhub : https://hub.docker.com/ dans l’onglet « Explore », on y trouvera tout un tas d’images.
Pouvez vous trouver une image avec un interpréteur python ?
Pouvez vous trouver une image contenant un environnement pour votre langage de programmation préféré ?
Limites et alternatives¶
- Limites de DockerHub gratuit (cfhttps://docs.docker.com/docker-hub/usage/):
100 pulls anonymes / 6h
200 pulls authentifiés / 6h
Un seul build concurrent
- Alternatives à DockerHub :
GitHub Container Registry
Google Container Registry
Amazon Elastic Container Registry
Azure Container Registry