Mettre à jour docker sous ubuntu

Écrit par

dans

, , ,

Pour faire suite au précédent article, je voulais utiliser la fonctionnalité du link qui modifie le /etc/hosts du conteneur parent pour ajouter le nom et l’ip du conteneur fils. Mais cette fonctionnalité est arrivée avec docker 0.11.

Si vous êtes comme moi sous ubuntu 14.04, mon premier réflmexe a été comme indiqué dans la documentation, d’installer docker à partir d’un des dépôts d’ubuntu:

$ sudo apt-get update
$ sudo apt-get install docker.io 
$ sudo apt-cache madison docker.io
 docker.io | 0.9.1~dfsg1-2 | http://fr.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
 docker.io | 0.9.1~dfsg1-2 | http://fr.archive.ubuntu.com/ubuntu/ trusty/universe Sources

Or dans ce dépôt la version ne suit pas les différentes releases du projet.

Si vous voulez mettre à jour docker dans une version plus récente (1.0.0 aujourd’hui), voila ce qu’il faut faire:

sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install lxc-docker

Ce qui nous donne une version :

$ sudo apt-cache madison lxc-docker
lxc-docker | 1.0.0 | http://get.docker.io/ubuntu/ docker/main amd64 Packages

On peut donc maintenant vérifier que la fonctionnalité est bien présente:

pc:~/session-webapp$ ./run_redis-server.sh 
85c5a0a51fe3df1dcb678b6bccbee7c9bc8db54232c100be03e1b4aa22e49050
pc:~/session-webapp$ docker run -i -t --link redis:redis dockerfile/ubuntu /bin/bash
[ root@c9cee8eddad7:~ ]$ more /etc/hosts
172.17.0.3 c9cee8eddad7
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 redis

J’ai lancé le serveur redis et l’ai linké à un conteneur de test. On voit bien que dans le /etc/hosts, l’ip du conteneur redis est ajouté. Dans le prochain article, nous allons donc pouvoir lié la datasource et les serveurs applicatifs sans avoir a connaitre à l’avance l’ip de la datasource.