Docker version 1.9 est arrivé – SFEIR Mag


À peine 3 mois après la sortie de la version 1.8, voici déjà la nouvelle mouture de son outil phare. Tour d’horizon des nouvelles fonctionnalités apportées par cette version de Docker 1.9.

Docker Network

Annoncé lors de la DockerCon à San Francisco, la nouvelle version 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 1.9 exemple

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 la version 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 celui-ci, 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 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.

Release Note Docker-Compose

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 !

Vous aimerez aussi...