deployment of applications inside software containers, by providing an additional layer of abstraction and automation of operating-system-level virtualization on Linux Docker, c’est quoi ? https://en.wikipedia.org/wiki/Docker_(software)
Démon : Le service Docker • Noeud : Hôte + Démon • Client : Outil pour interagir avec le démon • Container : Processus (ou groupe) qui s’exécute • Image : Modèle des containers • Registre : Dépôt des images
eval "$(docker-machine env local-docker) » docker version On provisionne un noeud Docker (local-docker) avec docker-machine dans virtualbox docker-machine supporte beaucoup d’autres providers (EC2, Azure, Openstack, …)
jubianchi/docker-node-4:latest On récupère une image depuis le registre public avec docker CLI Une image est caractérisée par son dépôt (jubianchi), son nom (docker-node-4) et sa version (latest)
container) docker run -it -d \ —name dive-in-docker \ jubianchi/docker-node-4:latest On lance un container depuis une image Le container est lancé en mode détaché (-d), avec un terminal interactif (-it) et est nommé dive-in-docker
container) docker ps -a —format '{{.ID}}: {{.Names}} ({{.Image}})' db5d5b74c3d5: dive-in-docker (jubianchi/docker- node-4) On vérifie l’état des containers qui tournent Notre container est en cours d’exécution avec l’identifiant db5d5b74c3d5
container a été arrêté (stop) et les résidus supprimés (rm). docker stop dive-in-docker docker rm dive-in-docker docker ps -a —format '{{.ID}}: {{.Names}} ({{.Image}})'
=== durée de vie du processus principal (ENTRYPOINT) • Encapsule une simple commande • Se comporte (presque) comme la commande qu’il encapsule • Peut être utilisé comme alias
exécuter le fichier 01-dive-in-docker.js, • Et relancer un container à partir de la nouvelle image, • En associant le port 8080 du container au port 8888 de l’hôte Tips : Tout se passe dans la CMD
voulons mettre à jour nodejs en 5.1.0 depuis http://nodejs.org/dist/v5.1.0/, • Et relancer un container à partir de la nouvelle image Tips : Il faut regarder le Dockerfile de l’image de base
• Au lieu d’écrire sur stdout/stderr, nous voulons écrire dans un fichier, • Et persister ce fichier sur l’hôte Tips : Utilisez la directive VOLUME dans le Dockerfile et —volume en CLI
=== durée de vie du processus principal (ENTRYPOINT) • Encapsule une application • Expose des services via TCP/UDP • Configurable via les variables d’environnement • Données persistées dans des volumes