Skip to main content

Introduction à Docker

· 3 min read
Ladji Cissé
Software Engineer - TECHLEAD

Docker est une plateforme de conteneurisation open source permettant de Packager, Distribuer et Exécuter les applications.
Docker s'articule autour de 3 principes de base: IMAGE, REGISTRY et CONTAINER

  • IMAGE
    L’image correspond à l’environnement d’exécution de votre application. Elle contient l’ensemble des fichiers systèmes qui vont être disponibles l’application ainsi que d’autres méta-données

  • REGISTRE
    Le registre est de répertoire de stockage pour les images que nous créons. Il peut être public ou privé.

  • CONTENEUR
    Un conteneur est une instance d’une image. D’un point de vue système, il correspond à un processus s’exécutant sur l’hôte sur lequel est installé Docker.

Quelle relation l'on peut établir entre ces 3 principes ?

    • On Construit une l'image de notre application au travers d'un Dockerfile
    • On pousse cette image dans un registry (Docker Hub)
    • Exécution de l'image (Container) qui va induire un téléchargement de l'image
info

Nous allons maintenant créer une application NodeJS qui afficher I am Nom de la machine et qui réppond sur le port 3000.
Pour ce faire une nous allons installer NodeJS, Docker, Créer note image, lancer exécuter l'image et faire quelques tests.

  1. Création d'une application simple Node JS

myapp/main.js

const http = require("http");
const os = require("os");

const handler = (req, res) => {
res.writeHead(200);
res.end("I am " + os.hostname() + "\n");
};

const web = http.createServer(handler);
web.listen(3000);
  1. Construction de l'image Docker

Dockerfile

FROM node:23-alpine
ADD main.js /main.js
ENTRYPOINT ["node", "main.js"]

build

docker buildx -t myapp:1.0.0 .

test

docker run --name myapp-container -p 3000:3000 -d myapp:1.0.0

Faire un test dans le navigateur: http://localhost:3000

On supprime le conteneur

docker stop myapp-container
docker ps
docker rm myapp-container
  1. Publication de l'image

Comme registre, nous choisissons Docker HUB. Après avoir créé son compte, on s'y connecte:

docker login -u ladci
warning

Pour créer mot de passe (Access Token), merci d'utiliser le lien ci-dessous:
https://app.docker.com/settings/personal-access-tokens

Pour pousser une image dans Docker HUB, il faut la tagger avec votre nom de repo

docker tag myapp:1.0.0 ladci/myapp:1.0.0

Après avoir créer taggé l'image, on peut maintenant la pousser sur Docker HUB

docker push ladci/myapp:1.0.0

test

docker run --name myapp-container -p 3000:3000 -d ladci/myapp:1.0.0

Faire un test dans le navigateur: http://localhost:3000