Virtualiser autrement : installer et utiliser Docker

docker

Pourquoi nous allons installer et utiliser Docker ?

De nos jours, la plupart des serveurs sont virtualisés. L’avantage, c’est de pouvoir de ce fait, déplacer une machine virtuelle d’un serveur à un autre, quel que soit le hardware.

Dans la même idée, Docker vient lui aussi virtualiser, mais au niveau de l’application. On se concentrera donc sur une seule chose : l’outil.
Je ne vais pas détailler Docker, je vous invite à chercher ça et là des informations sur le web à ce sujet.

Installer docker

Avant de commencer, on va vérifier que notre système est à jour. Mon installation sera valable sur Debian/RaspBian.

$ sudo apt update && sudo apt upgrade

Une fois cette partie faite, on peut passer à la suite. On va utiliser un outil simple pour mettre en place nos conteneurs : docker-compose.
L’installation est, comme d’habitude, relativement simple :

$ sudo apt install docker-compose -y

Maintenant que docker est installé, il faut lui dire quoi faire. Et pour cela, c’est relativement simple. Il existe une bibliothèque où vous pourrez trouver à peu près tout ce qui vous intéressera. C’est le Docker Hub.

Exemple de configuration

Maintenant que notre Docker est installé, il faut le mettre en route.
Pour cela, on va utiliser un fichier docker-compose.yml qui contiendra l’intégralité des configurations de vos images.

Il se compose en général, de la forme suivante :

version: '3' <-- version du fichier de configuration
services:
  nom <-- nom de votre service 
    image: toto/toto:stable <-- répertoire/image:version, la version dépend du conteneur
    container_name: toto <-- nom que vous utiliserez pour appeler le conteneur
    restart: always <-- on veut redémarer le conteneur tout le temps
    volumes:
      - /chemin/local:/chemin/conteneur <-- chemin local où seront stockées les données
    environment:
      - TS=Europe/Paris <-- facultatif, dépend du conteneur
    ports:
      - "local:conteneur" <-- pour accéder au conteneur

Par exemple, pour nginx, cela donnerait ça :

version: '3'
  services:
    nginx:
      image: nginx:latest
      container_name: nginx
      restart: always
      volumes:
        - /datastore/nginx/nginx.conf:/etc/nginx/nginx.conf
        - /datastore/nginx/cache/:/etc/nginx/cache
        - /datastore/nginx/logs/:/etc/nginx/logs
      environment:
        DEFAULT_HOST: mondomaine.com
      ports:
        - "80:80"

Une fois votre fichier docker-compose.yml enregistré, on peut passer à l’étape suivante : le démarrage.

Attention à l’indentation, elle est importante. Service a deux espaces, et ainsi de suite. Sinon, votre fichier sera erroné et rien ne fonctionnera !

Démarrer Docker

Pour démarrer, rien de plus simple. On part du principe que vos données et votre fichier docker-compose.yml sont stockés dans /datastore et que vous êtes dans ledit répertoire.

$ sudo docker-compose up nginx

Une fois lancé, vous verrez cela :

$ sudo docker-compose up nginx
Starting nginx ... done
Attaching to nginx


Et si vous accédez à votre adresse via http://xx.xx.xx.xx vous verrez quelques lignes de log de ce genre :

nginx | 192.168.1.58 - - [14/Apr/2020:18:06:09 +0000] "GET / HTTP/1.1" 200 3175 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"

Maintenant que nous avons pu valider notre configuration, il faut se détacher du conteneur, sinon, en quittant, il s’arrête.
Comme toujours, on quitte avec CTRL+C

^CGracefully stopping… (press Ctrl+C again to force)
Stopping nginx ... done

On relance le conteneur mais cette fois, on lui ajoute un petit -d qui signifie « detach ».

$ sudo docker-compose up -d nginx
Starting nginx ... done

Vous pouvez retourner sur votre page web et vérifier que votre page s’affiche correctement.
Pour voir les logs de votre conteneur, c’est relativement simple :

$ sudo docker logs nginx

Comme vous avez pu le voir, il est plutôt facile de d’installer et utiliser Docker.
Ainsi, vous pouvez commencer sur votre Raspberry Pi, et continuer sur n’importe quelle autre plateforme prenant en charge les conteneurs !

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *