Notes Meetup Docker - chez Ecreall Lundi 15 juin 2015, par Olivier Duquesne aka DaffyDuke , popularité : 1% Au boulot | linux| virtualisation| docker build -t hello puis docker run it hello /bin/bash docker exec -it <id> /bin/bash <= screen attach setup, puis install de packages par exemple puis sur cloisonné depuis l'hyperviseur : docker ps (équivalent) container = image, le / est rw mais c'est l'image qui est provisionné on peut en lancer plusieurs sans soucis mode démon : docker run it <dockerfile> (attention, commande doit garder stdin) (dockerfile < EOF from debian add memory /usr/local/bin # add pour prendre en local et pousser dans le dfile run date > titi.txt # execution dans un ficher interne # notion de cache apt-get update && install apt-get install apache2 # mapping de port expose 80 # binder l'apache sur le port 80 , besoin du docker -P pour démarrer ou docker -p 8000-80 pour mapping 8000 vers 80 # volumes volumes /data # pas besoin d'historiser, donc données ignorées # -v /coin/data:/data : monte le répertoire , volumes peut servir pour un pseudo NFS , exemple utilisation pour centralisation des logs /bin/bash EOF ) Contraintes : que Linux x86_64, à venir Microsoft start-stop-daemon ne peut pas fonctionner dans un container : exemple tomcat6 a patcher dans /etc/init.d pas de mapping user dans le dockerfile contrairemeznt à lxc docker tag <ancien nom> <tag> exemple registry.deliverous.net/ docker log pour s'autenthifier sur le repo docker images # listing des images sur le repos Mise en place de signature sur le push pour verifier, pas par defaut sur docker.io, mais OK sur rocket (CoreOS) Nov14 docker : un binaire en root , rocket : n binaire en userland Avantages : utilisation des capa pour mettre des quotas (-m 64m par exemple) Notion de cache du dockerfile : docker history <docker> Utilisations puppet, ansible, salt (donc plus de layer) docker push <image> : utilisation des layer sur la creation du container : envoi sur docker.io Pas de ménage chez docker.io mais blacklist possible chez docker.io "bien vu" de pousser chez docker.io pour heberger docker, exemple via un proxy, mais pas obligatoire exemple OVH Attention ne pas mettre apt-get update dans le layer car mise en cache et donc pas de mise à jour en cas d'install soft/vers # sinon docker build --nocache docker compatible SELinux grace RedHat FS supportés : brtfs, device-mapper WebHook entre Github et docker.io pour rebuilder l'image, exemple debian or debian gesty pas encore dispo (systemd par defaut) , run ne démarre pa sle package car runlevel S , or systemd pas compatible avec le runkevel attendau (notamment udev) Namespace et Cgroups as openvz Exemple clients : 3Suisses, Camaieu /etc/hosts non modifiable, ou alors dnsmask ou alors docker 1.5 d'il y a une semaine si on démarre un container dans un container, les variables ocmmencent par <nom container> ,exemple un container se connecte à un autre en decouvrant les param à chaud