À peine 3 mois après la sortie de la version 1.8, Docker annonce déjà la nouvelle mouture de son outil phare. Tour d’horizon des nouvelles fonctionnalités apportées par cette version 1.9.
Docker Network
Annoncé lors de la DockerCon à San Francisco, le nouveau modèle de réseau de Docker est enfin disponible dans la version stable. Ce mode permet de créer des réseaux dédiés, et de placer des conteneurs dans ceux-ci. Résultat, les conteneurs de réseaux différents ne peuvent plus communiquer, et cela même via un adressage par IP. Il est heureusement possible d’associer ou dissocier un conteneur d’un réseau ou l’autre dynamiquement, via le client Docker.
Le plus intéressant avec ce nouveau modèle, c’est qu’il permet, avec l’aide de plug-in, de créer des réseaux multihôtes. Il devient ainsi très simple de faire dialoguer des conteneurs ensemble, même s’ils sont déployés physiquement sur des machines différentes.
Plusieurs plug-ins de ce genre sont déjà disponibles ou en cours de développement, comme Weave ou le Project Calico.
Pour plus d’informations, je vous proposer d’aller voir ce lien ➜ Docker.com : Multi-Host Docker Networking is now ready for production
Docker Volume
Les plug-ins dédiés aux volumes étaient déjà supportés dans Docker 1.8, mais cette nouvelle version permet de les gérer directement via Docker :
# Création du volume, ici via le plug-in flocker ... docker volume create -d flocker --name=myvolume # ... que l'on référence lors du lancement du conteneur docker run -v myvolume:/data busybox sh -c "echo hello > /data/file.txt" docker run -v myvolume:/data busybox sh -c "cat /data/file.txt"
Il existe à ce jour plusieurs plug-ins disponibles :
– Flocker
– Blockbrige
– Cepth
– ClusterHQ
– EMC
– Portworx
– Convoy
Variables dans le Dockerfile
Une fonctionnalité plus modeste, mais qui peut s’avérer très utile, est la possibilité d’utiliser des variables dans le Dockerfile, qui seront injectées lors du l’exécution du docker build.
Exemple, un Dockerfile qui télécharge une version d’un jar sur un repository :
FROM java:7 ARG version=1.0.0 ENV APP_VERSION $version ADD https://repository.mycompany.com/releases/com/mycompany/myapp/$version/myapp-$version.jar myapp.jar
Et la version qui serait injectée lors du Build :
docker build --build-arg version=1.0.0 .
Docker Swarm 1.0
C’est officiel, Swarm sort enfin de la période de beta-testing et est annoncé comme prêt pour la production. Il supporte évidemment les fonctionnalités de Networking et de Volume apportées par Docker 1.9.
Pour ceux qui ne connaissent pas encore Swarm, il s’agit d’un outil d’orchestration de d’engine Docker. Au lieu de gérer chacun de vos serveurs individuellement, vous configurez ces derniers comme étant un node de cluster Swarm. Ensuite, au lieu d’interagir avec chaque noeud, vous ne communiquez plus qu’avec le manager, via la même API qu’un Engine Docker standard. Lorsque vous lui demanderez de démarrer un conteneur, celui-ci va analyser l’utilisation de votre cluster pour décider du meilleur endroit pour effectuer cette action.
Docker.com : Announcing Swarm 1.0: Production-ready clustering at any scale
Docker Compose 1.5
La nouvelle version de Compose apporte également quelques nouveautés :
– Le support du Networking, bien évidemment.
– Compose est maintenant disponible pour Windows.
– Utilisation des variables d’environnement dans les fichiers de configuration afin de permettre d’externaliser certaines informations.
– La validation des configurations Compose avec des messages d’erreur compréhensibles.
Et après ?
Dans quelques jours aura lieu une DockerCon en Espagne, et il y a de grandes chances que de nombreuses annonces seront faites à cette occasion (une update du projet Orca ?). Rendez-vous le 16 novembre pour un débrief de l’évènement !
The post Le Docker nouveau est arrivé appeared first on SFEIR Mag.