Docker
Suite à une présentation à une conférence. J’ai commencé à m’y mettre. J’écris ce post en tant que grand débutant..
Docker est une solution de virtualisation d’instance, plus précisément de container. Il y a pas mal de différence avec les différentes visualisations de Virtual box/Xen/VmWare. On isole juste les process et le file-system. Ce qui fait que l’on consomme très peu de processeurs.
Installation
Installer docker n’est pas très compliqué sous ubuntu 14.04.
1
|
|
Et c’est tout !
Pour éviter de préfixer sudo
à chaque commande il est plus facile d’ajouter son utilisateur au group docker.
1
|
|
Hello world sous docker
Lancer docker
1
|
|
Cette commande fait plusieurs choses:
- si l’image
ubuntu:14.04
n’existe pas, elle va la télécharger. - Puis on lance le container
- Puis on exécute echo ‘Hello world’
D’ailleurs si on relance la même commande, on constate que l’image est déjà sur le disque dur.
la commande prend moins d’une seconde. Pourtant on a chargé un container et lancer une commande !
Essayons la commande suivante
1 2 |
|
Nous avons un bash intéractif. -i
mode interactif, et -t
affiche un pseudo terminal
Il faut comprendre que dès que la commande principale est finie, l’instance aussi. Dans le cas Echo 'Hello World'
la commande se finit de suite. Dans le cas de /bin/bash
On spécifie le mode interactif. Donc l’instance continue tant que l’on a pas quitté le bash.
Ouvrons un nouveau terminal
1 2 3 |
|
On voit que mon image est toujours en cours.
La commande docker ps affiche tout les containers allumés pour afficher tout les containers allumés pendant la session. C’est dockers ps -a
On peux inspecter une instance avec la commande
1 2 |
|
Cela renvoie un json.
On peux aussi lister les images disponibles via la commande
1
|
|
Vous voulez télécharger des images
1
|
|
Vous cherchez une images particulières
1
|
|
La liste des images disponibles est disponible sur Docker Hub . D’ailleurs Dockers est très couplé avec DockerHub. DockerHub est un le GitHub pour Docker. On peux très bien faire du Git sans GitHub. C’est la même chose pour docker.
Docker et Git partage aussi la notion de commit et de push.
relancons notre instance
1 2 |
|
Installons un paquet au hasard
1
|
|
On quitte Exit
puis on commit
1 2 |
|
Si je liste les images.
1
|
|
je vois apparaitre mon marc/vim
Je peux ainsi réutiliser mon container ainsi
1
|
|
On peux ainsi se créer ses propres containers. Mais c’est un peu laborieux. Docker utilise des DockerFile
pour automatiser le process. Cela fera un prochain post
Résumé des commandes
docker run -i -t ubuntu:14.10 /bin/bash
lance en mode interactif et un terminal avec la commande Bash.docker run -i -t ubuntu:14.10 'hello world'
docker ps
liste les containers en cours.docker ps -a
liste tout les containers.docker images
liste toutes les images.docker pull centos
pour télécharger une image (tout les images officielles sont sur le Hubdocker inspect uuid
affiche les informations sur l’instance.docker commit uuid name
pour commiter.
Conclusion
Bon j’avoue que je débute depuis 2 jours. Ce qui m’impressionne dans Docker c’est la vitesse (moins d’une seconde pour démarrer). C’est plutôt simple d’utilisation. La notion de commit a l’air sympa (Même si au fond c’est l’équivalent d’un snapshot sous vmware). J’espère pouvoir faire mon premier dépôt sous DockerHub bientôt.