Installer docker sous debian wheezy

Cet article à pour but de décrire comment installer docker sous debian wheezy. Cela n’est pas aussi facile que prévu (j’ai eu des petits soucis avec cgroup)

1 – Installer un kernel > 3.8
Tout d’abord le noyau de debian wheezy n’est pas assez récent pour supporter docker. Heureusement, les backports sont là pour remédier à cela.
Ajouter la ligne suivante dans le fichier /etc/apt/sources.list puis lancer un aptitude update

deb http://http.debian.net/debian wheezy-backports main contrib non-free

Installer le noyau venant des backports :

aptitude install -t wheezy-backports linux-image-amd64

2 – Installer docker
L’installation s’effectue à partir du binaire docker

wget https://get.docker.com/builds/Linux/x86_64/docker-latest -O docker
chmod +x docker

Installer cgroup :

aptitude install cgroup-bin

3 – Lancer docker au boot
Créer le fichier /etc/init.d/docker avec le contenu ci-dessous :

#!/bin/bash
 # /etc/init.d/docker
 #
 ### BEGIN INIT INFO
 # Provides: docker
 # Required-Start: $local_fs $remote_fs $network vboxdrv
 # Should-Start:
 # Should-Stop:
 # Required-Stop:
 # Default-Start: 2 3 4 5
 # Default-Stop: 0 1 6
 # X-Interactive: true
 # Short-Description: Start docker
 # Description: Start docker
 ### END INIT INFO

 #
 # main part
 #
 #PATH=/sbin:/usr/sbin:/usr/bin:/bin
 LOG=/var/log/mydocker.log
DOCKER_CMD_RUN="PATH_TO_DOCKER_BINARY -d &"

cgroupfs_mount() {
 # see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
 if grep -v '^#' /etc/fstab | grep -q cgroup \
 || [ ! -e /proc/cgroups ] \
 || [ ! -d /sys/fs/cgroup ]; then
 return
 fi
 if ! mountpoint -q /sys/fs/cgroup; then
 mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
 fi
 (
 cd /sys/fs/cgroup
 for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
 mkdir -p $sys
 if ! mountpoint -q $sys; then
 if ! mount -n -t cgroup -o $sys cgroup $sys; then
 rmdir $sys || true
 fi
 fi
 done
 )
 }

case "$1" in
 start)
 echo `date` echo "Starting docker" >> $LOG
 cgroupfs_mount
 eval $DOCKER_CMD_RUN
 ;;
 stop)
 echo `date` "Stopping docker" >> $LOG
 killall docker
 ;;
 esac

Le script fourni permet de lancer docker avec SysV init. Il faut l’ajouter au boot via la commande

update-rc.d docker defaults

La fonction cgroupfs_mount permet de monter les filesystems cgroup afin d’éviter l’erreur suivante : docker failed to find the cgroup root

Voir stackoverflow si besoin : https://github.com/docker/docker/issues/8791

Laisser un commentaire


huit − 1 =


NOTE - Vous pouvez utiliser les éléments et attributs HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>