Publié le 21/08/2016

L'idée derrière Docker est juste géniale (en plus d'avoir mis une baleine comme logo, je veux dire): une simplification de la virtualisation pour faire tourner des processus dans des simili-machines virtuelles, c'est le bien. Jusqu'à présent, je n'ai jamais réellement eu l'occasion ou l'envie de me pencher sur le sujet... et puis la révélation: pour un test de django-haystack, j'ai besoin d'un environnement ElasticSearch. Voire MongoDB ou Solr. Bref, vous voyez l'idée: on a un besoin, et on n'a pas envie de s'en farcir l'installation ou la configuration. On veut juste que it works! (si possible du premier coup). Alors, clairement, je ne le ferais pas en prod', mais pour un environnement de dev', c'est top. Ce que [Gitlab](filename}articles/dev/python/2016-08-05 framagit-continuous-integration.rst) en fait est juste génial aussi: les runners tournent dans un environnement sandbox basé sur une image Docker.

Pour démarrer, c'est super simple:

# dnf install docker
# systemctl start docker
# docker run -d elasticsearch

Ensuite, pour obtenir l'adresse IP à laquelle le container répond, on regarde via systemctl status docker.

Et finalement, on ouvre son navigateur préféré (Firefox, what else) pour se rendre à l'adresse http://172.17.0.2:9200. On obtient ceci:

{
    "name" : "Yellowjacket",
    "cluster_name" : "elasticsearch",
    "version" : {
        "number" : "2.3.5",
        "build_hash" : "90f439ff60a3c0f497f91663701e64ccd01edbb4",
        "build_timestamp" : "2016-07-27T10:36:52Z",
        "build_snapshot" : false,
        "lucene_version" : "5.5.0"
    },
    "tagline" : "You Know, for Search"
}

Magique :)