Aller au contenu principal

Conteneurs Docker: Premiers pas

Objectifs pédagogiques

  • Connaître les outils permettant d'interagir avec docker
  • Lancer son premier conteneur

Les outils pour interagir avec Docker

Docker Hub : télécharger des images

Une des forces de Docker vient de la distribution d'images :

  • pas besoin de dépendances, on récupère une boîte autonome

  • pas besoin de multiples versions en fonction des OS

Dans ce contexte un élément qui a fait le succès de Docker est le Docker Hub : hub.docker.com

Il s'agit d'un répertoire public et souvent gratuit d'images (officielles ou non) pour des milliers d'applications pré-configurées.


Docker Hub: comment ça marche ?

  • On peut y chercher et trouver presque n'importe quel logiciel au format d'image Docker.

  • Il suffit pour cela de chercher l'identifiant et la version de l'image désirée.

  • Puis utiliser docker run [<compte>/]<id_image>:<version>

  • La partie compte est le compte de la personne qui a poussé ses images sur le Docker Hub. Les images Docker officielles (ubuntu par exemple) ne sont pas liées à un compte : on peut écrire simplement ubuntu:focal.

  • On peut aussi juste télécharger l'image : docker pull <image>

On peut également y créer un compte gratuit pour pousser et distribuer ses propres images, ou installer son propre serveur de distribution d'images privé ou public, appelé registry.


Ma première instance Docker

L'image Docker la plus simple pour commencer est hello-world.

Lancez la commande pour exécuter l'image, nous allons analyser son retour.


docker run hello-world

Que se passe-t-il si vous relancez la même commande ?

Une fois que vous avez téléchargé une image, vous pouvez la voir avec la commande :


docker images


Images vs Instances

Nous allons faire une distinction entre les deux concepts.

  • Une image est une suite de fichiers téléchargeable, transférable, exploitable
  • Une instance est une activation de l'image, son instanciation, l'exécution particulière d'un programme présent dans l'image.

Nous utiliserons l'analogie du plat surgelé :

  • l'image est un plat surgelé, disponible et reproduit en grande quantité.
  • l'instance est un plat particulier que vous avez réchauffé, à consommer immédiatement

Portainer

Portainer est un portail web pour gérer une installation Docker via une interface graphique. Il va nous faciliter la vie.

  • Lancer portainer avec la ligne de commande suivante
 docker run --name portainer -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce:latest 
  • Visitez ensuite la page http://localhost:9000 ou l'adresse IP publique de votre serveur Docker sur le port 9000 pour accéder à l'interface.
  • il faut choisir l'option "local" lors de la configuration
  • Créez votre user admin et choisir un mot de passe avec le formulaire.
  • Explorez l'interface de Portainer.
  • On va installer une application toute simple en téléchargeant d'abord une image nommée camandel/web-password-generator.
  • Puis on va créer un conteneur avec cette image.
  • On va exposer le port de cette application web en cliquant sur Publish all exposed network ports to random host ports
  • Et on peut visiter la page affichée