Vous êtes ici

Premiers pas avec Docker - 1

dockerPourquoi Docker?

MonBlocNotes tourne sur un serveur que je loue chez OVH, un hébergeur très dynamique. Il est arrivé plusieurs fois qu'ils mettent sur le marché une nouvelle offre, plus attractive que celle que j'utilisais alors pour mon site web. Dans ce cas, je souscris à la nouvelle offre, installe Linux sur le nouveau serveur, ajoute l'ensemble des applications que j'utilise, et transfère les données de l'ancien serveur au nouveau.

Comme je fais tourner quelques autres services sur le serveur (un serveur de courriel, un serveur DNS, un forum, un autre site web, un serveur Subversion, etc.), passer d'une machine à l'autre n'est pas trivial, et me demande quelques jours (en temps écoulé).

De plus, un de mes enfants fait tourner quelques serveurs Minecraft sur la même machine. Et là, j'ai à gérer un autre type de problème : le code Java de Minecraft ne semble pas réellement optimisé. Chaque fois qu'un serveur est démarré, il tend à monopoliser presque toute la puissance et la mémoire disponibles. J'ai essayé d'utiliser cpulimit pour mettre en place des limites, mais je n'en ai pas été si content que cela.

Il y a quelques semaines, j'ai découvert Docker. Il m'a semblé qu'il pouvait être la solution à mes deux problèmes : déplacer un ensemble d'applications d'une machine à l'autre, et isoler certains services. J'ai donc décidé de passer un peu de temps à apprendre à connaître Docker. Je décrirai mes expériences au jour le jour dans cet article et dans les suivants.

Installation de Docker sur la machine de développement

La première étape est d'installer Docker sur l'une de mes machines de développement, un Mac tournant sous OS X Mavericks (10.9.5). Je suis le guide Docker.

Au démarrage de la machine virtuelle, un message fournit les informations nécessaires pour connecter le client :

To connect the Docker client to the Docker daemon, please set:
    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/<user>/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1

La version installée de Docker est :

Client version: 1.3.0
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): c78088f
OS/Arch (client): darwin/amd64
Server version: 1.3.0
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): c78088f

Le démon Docker peut être contrôlé en ligne de commande (commande boot2docker). Ne pas oublier d'exporter les variables d'environnement, comme décrit plus haut, avant d'utiliser la commande docker. Le test docker run hello-world réussit sans aucun problème, tirant l'image hello-world depuis le Docker Hub.

Article suivant