Découverte et installation de Docker

Dans cet article, je vais vous présenter les différentes éditions et versions de docker et par la suite nous procéderons à l'installation et post installation de Docker.

Introduction

Cette partie du cours va être très rapide mais aussi très importante. Vous allez connaître les différentes versions et éditions éxistantes de Docker. Une fois qu'on aura fini les présentations, on passera ensuite directement à l'étape d'installation et de vérification d'install.

Vue d'ensemble des éditions et des versions de Docker

Docker est disponible en deux éditions:

  • Docker Community Edition (CE)
  • docker Enterprise Edition (EE)

Docker Community Edition (CE) est idéale pour les développeurs individuels et les petites équipes cherchant à se familiariser avec Docker et à expérimenter des applications basées sur des conteneurs. De plus cette version est gratuite. Ça sera la version que nous utiliserons.

Docker Enterprise Edition (EE) est conçue pour les équipes de développement d’entreprise et les équipes système qui créent, expédient et exécutent des applications critiques pour la production à grande échelle (Elle n'est pas gratuite).

La version communautaire Docker dispose de trois types de canaux de mise à jour, stable, test et Nightly :

  • Stable : cette version vous donne les dernières releases pour une disponibilité générale
  • Test : cette version vous fournit des pré-versions prêtes à être testées avant la disponibilité générale
  • Nightly : cette version vous présente les dernières versions de build en cours pour la prochaine release, elle fournit donc un accès plus rapide aux nouvelles fonctionnalités et correctifs pour les tests.

Pour ce cours, nous utiliserons la version communautaire de Docker

Installation Linux

Dans cette partie je vais installer le moteur Docker sur mon OS Fedora version 29 avec la version 18.09.6 du moteur Docker. Si vous avez une autre distribution, je vous conseille alors de vous reférer directement à la documentation qui vous expliquera pas à pas quelles sont les commandes à lancer pour votre installation.

On va commencer par ajouter le repository officiel de Docker sur notre machine. Cette étape va nous permettre de profiter des dernières mises à jour stable directement depuis le repository Docker.

voici la commande à lancer :

sudo dnf config-manager \
    --add-repo \
    https://download.docker.com/linux/fedora/docker-ce.repo

Dans mon cas je n'utiliserai que la version stable de docker mais si vous souhaitez activer le repository et les mises à jour des versions Nightly et Test depuis le repository de Docker, alors il faut lancer les commandes suivantes :

Pour la version Nightly :

sudo dnf config-manager --set-enabled docker-ce-nightly

Pour la version Test :

sudo dnf config-manager --set-enabled docker-ce-test

Information

Si vous souhaitez désactiver la version Nightly ou Test, il suffit de remplacer --set-enabled par --set-disabled.

Une fois le repository Docker ajouté, l'étape suivante est l'installation de Docker :

sudo dnf install docker-ce docker-ce-cli containerd.io

Une fois votre installation finie, l'étape suivante est de vérifier que Docker CE est correctement installé en vérifiant d'abord la version du moteur :

sudo docker --version

Résultat:

Docker version 18.09.6, build 481bc77

Maintenant il faut activer le service docker en tapant la commande suivante :

sudo systemctl start docker

Pour activer le service docker automatiquement après un boot, il suffit de lancer la commande suivante :

sudo systemctl enable docker

Pour finir nos tests de vérifications d'install, on va lancer la commande suivante :

sudo docker run hello-world

Cette commande va télécharger une image (vous comprendrez ce terme plus tard) de test et l'exécute dans un conteneur. Lorsque le conteneur va s'exécuter, il vous affichera un message d'information et se fermera automatiquement

Résultat:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:0e11c388b664df8a27a901dce21eb89f11d8292f7fca1b3e3c4321bf7897bffe
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
    1. The Docker client contacted the Docker daemon.
    2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
    3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
    4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
    $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
    https://hub.docker.com/

For more examples and ideas, visit:
    https://docs.docker.com/get-started/

Bonus Linux

Par défaut on ne peut lancer les commandes docker qu'avec l'utilisateur root et les autres utilisateurs ne peuvent y accéder qu'en utilisant le sudo.

En ce qui me concerne et pour la suite de ce cours, je vais autoriser mon compte utilisateur Unix à lancer les commandes docker sans passer par le sudo. Donc à partir de maintenant je ne vais plus utiliser le sudo dans mes exemples, sauf si obligation.

Cette manipulation est assez simple à faire, il suffit de créer un groupe Unix appelé docker et de lui ajouter notre utilisateur.

On va commencer par créer notre groupe Unix avec la commande suivante :

sudo groupadd docker

Puis on rajoute notre utilisateur au groupe docker

sudo usermod -aG docker $USER

Ensuite, déconnectez-vous et reconnectez-vous (si ça ne fonctionne pas alors il faut redémarrer complètement votre machine) pour que votre appartenance au groupe soit réévaluée.

Enfin, vérifiez que vous pouvez exécuter la commande docker suivante sans sudo :

docker ps

Installation Windows

Voici la configuration requise pour une installation windows native :

  • Windows 10 64 bits: Pro, Entreprise ou Education (version 15063 ou ultérieure).
  • La virtualisation est activée dans le BIOS (normalement elle est activée par défaut).
  • Au moins 4 Go de RAM

Une fois les conditions satisfaites, rendez-vous et inscrivez sur le Docker Hub en cliquant ici. Une fois inscrit et connecté, cliquez sur le bouton "Get Docker" pour télécharger l'exécutable Docker CE et suivez les instructions ci-dessous :

install docker in windows 10 PRO machine part 1

Cliquez sur le bouton "OK".

Une fois votre installation terminée, vous recevrez le message suivant :

install docker in windows 10 PRO machine part 2

Cliquez sur "Close and log out". Vous allez ensuite être automatiquement déconnecté de votre session Windows.

Si vous n'avez pas activé Hyper-V, alors Docker s'en chargera en l'activant automatiquement pour vous :

install docker in windows 10 PRO machine require Hyper-V

Cliquez sur "OK" pour activer Hyper-V. Par la suite votre machine va automatiquement se redémarrer à la fin de l'activation d'Hyper-V.

Après votre redémarrage, Vous verrez la fenêtre suivante indiquant que le moteur Docker est bien installé :

installation docker in windows 10 PRO machine was successful

Dernière étape, lancez votre powershell en tant qu'administrateur et exécutez la commande suivante afin de vérifier que votre Docker CE c'est correctement installé :

Testing docker Installation on Windows

Si votre système ne remplit pas les conditions requises vous pouvez alors installer Docker Toolbox, qui utilise Oracle Virtual Box au lieu de Hyper-V en cliquant ici.

Voilà c'est bon, vous pouvez passer au chapitre suivant :).

Espace commentaire

Écrire un commentaire

Rejoignez la discussion

Vous devez être connecté pour poster un message.

29 commentaires

ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Pensez bien à vérifier vos versions de kernel avant l'install, les vieux noyaux Fedora peuvent causer des soucis avec les dernières versions de containerd.

17/06/2019 à 10:03
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Tape dnf repolist, tu devrais voir le repo docker-ce-nightly listé si tu as bien activé avec la commande du tuto.

17/06/2019 à 04:33
huet-gregoire
Membre Actif
Avatar de huet-gregoire
huet-gregoire
Membre Actif

Comment on vérifie si la version Nightly est bien active ?

16/06/2019 à 20:58
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Problème de DNS ou de proxy. Vérifie ta connexion internet depuis le serveur. Si t'es en entreprise, il faut configurer le proxy dans /etc/docker/daemon.json.

16/06/2019 à 14:04
nicolas65
Membre Actif
Avatar de nicolas65
nicolas65
Membre Actif

Mon docker run hello-world reste bloqué sur 'Pulling from library/hello-world'. Ça dure depuis 10 minutes.

16/06/2019 à 10:00
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

C'est le runtime de conteneurs qui gère le cycle de vie. Docker-ce est juste le moteur de haut niveau qui utilise containerd pour faire le sale boulot.

16/06/2019 à 04:16
zoe47
Membre Actif
Avatar de zoe47
zoe47
Membre Actif

L'article dit d'installer containerd.io. C'est quoi la différence avec docker-ce ?

15/06/2019 à 22:49
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Comme dit plus haut, newgrp docker suffit pour la session en cours. Le reboot n'est qu'une sécurité pour les utilisateurs qui ne maîtrisent pas les groupes shell.

15/06/2019 à 17:55
glevy
Membre Actif
Avatar de glevy
glevy
Membre Actif

Est-ce que je dois vraiment reboot après le usermod ? On est sous Linux, on évite les reboots inutiles.

15/06/2019 à 10:37
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Vérifie s'il n'y a pas un service docker.socket qui bloque le démarrage ou si tu n'as pas un conflit avec podman qui est parfois installé par défaut sur Fedora.

15/06/2019 à 04:30
leon-gimenez
Membre Actif
Avatar de leon-gimenez
leon-gimenez
Membre Actif

Le service Docker ne démarre pas automatiquement après reboot malgré le systemctl enable docker. C'est quoi ce délire ?

14/06/2019 à 21:30
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Pour un nettoyage complet, vire les paquets et les données :

sudo dnf remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker

14/06/2019 à 16:31
leroux-raymond
Membre Actif
Avatar de leroux-raymond
leroux-raymond
Membre Actif

Petite question : comment on désinstalle tout proprement si on a fait une erreur au début ?

14/06/2019 à 09:32
lambert-suzanne
Membre Actif
Avatar de lambert-suzanne
lambert-suzanne
Membre Actif

Merci pour le tuto, ça m'a bien aidé pour le setup initial sur Fedora.

14/06/2019 à 04:42
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

À ne jamais faire. Ça va foutre le bordel dans tes variables d'environnement et tes drivers réseau. Choisis l'un ou l'autre.

13/06/2019 à 21:49
marine-guillou
Membre Actif Rédacteur
Avatar de marine-guillou
marine-guillou
Membre Actif Rédacteur

Est-ce que je peux installer Docker CE et Toolbox en même temps ?

13/06/2019 à 14:49
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

C'est matériel, pas logiciel. Redémarre ton PC, va dans le BIOS et active 'Intel VT-x' ou 'AMD-V'. Sans ça, Docker Desktop ne tournera jamais.

13/06/2019 à 07:36
meunier-guy
Membre Actif
Avatar de meunier-guy
meunier-guy
Membre Actif

Je suis sur Windows 10 Pro, l'install de Docker CE plante au moment d'activer Hyper-V. Ça me dit 'Virtualization not enabled in BIOS'.

13/06/2019 à 01:16
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Non, c'est ton système de fichiers. Vérifie les droits POSIX sur le dossier que tu essaies de monter. Le daemon docker tourne avec ses propres privilèges.

12/06/2019 à 21:04
bdenis
Membre Actif
Avatar de bdenis
bdenis
Membre Actif

Le docker run hello-world fonctionne, mais je vois Permission denied quand je veux monter un volume local. C'est lié au groupe docker ?

12/06/2019 à 16:42
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

T'as bien fermé ta session et rouvert ? C'est obligatoire pour que le changement de groupe soit pris en compte par ton shell. Si ça persiste, fais un newgrp docker dans ton terminal actuel.

12/06/2019 à 12:10

J'ai suivi la partie bonus pour virer le sudo. J'ai bien fait usermod -aG docker $USER mais je dois toujours mettre sudo pour lancer docker ps. C'est normal ?

12/06/2019 à 06:04
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Regarde les logs pour comprendre ce qui bloque :

journalctl -u docker.service -xe
Ça te dira si c'est un conflit avec un autre socket ou un souci de config daemon.

11/06/2019 à 22:33
susan02
Membre Actif
Avatar de susan02
susan02
Membre Actif

Gros souci au moment du sudo systemctl start docker. J'ai une erreur 'Job for docker.service failed'. Une idée ?

11/06/2019 à 17:09
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

De rien @paulg2025 !

11/06/2019 à 15:25

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire