virli/tutorial/2/installation.md
2017-09-22 10:27:47 +02:00

2.7 KiB

\newpage

Installation

Par le gestionnaire de paquets

Sous Debian et ses dérivés (Ubuntu, Mint, ...) le paquet et la commande ont été nommés docker.io. Vous pouvez vous créer un alias alias docker=docker.io si celui-ci n'a pas déjà été défini.

Sous les autres distributions, docker correspond a priori bien à la solution de virtualisation légère que l'on va utiliser.

Debian Jessie

docker se trouve dans les backports, ajouter-les à votre /etc/apt/sources.list :

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

Puis :

apt-get update
apt-get install docker.io

Debian Wheezy

Il vous faut utiliser le dépôt de paquets fourni par Docker :

apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Ajoutez cette ligne dans votre /etc/apt/sources.list :

deb https://apt.dockerproject.org/repo debian-wheezy main

Puis :

apt-get update
apt-get install docker-engine

Manuellement

L'équipe en charge de Docker met à disposition un script pour installer Docker sur n'importe quel système :

curl -sSL https://get.docker.com/ | sh

Vérifier la bonne marche de l'installation

Vous devriez maintenant être capable de lancer la commande suivante :

docker version

Une sortie similaire au bloc suivant devrait apparaître sur votre écran :

Client version: 1.3.3
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): d344625
OS/Arch (client): linux/amd64
Server version: 1.3.3
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): d344625

no such file or directory?

Si vous avez cette erreur : dial unix /var/run/docker.sock: no such file or directory., le deamon n'est sans doute pas lancé. Lancez-le :

sudo service docker restart

permission denied?

Si vous avez cette erreur : dial unix /var/run/docker.sock: permission denied., ajoutez votre utilisateur au groupe docker et relancer votre session :

sudo gpasswd -a $USER docker

Attention : cette action n'est pas anodine d'un point de vue sécurité : https://docs.docker.com/articles/security/#docker-daemon-attack-surface

Rendu

Questions

  1. Dans quel langage Docker a-t-il été écrit ? Docker utilise la libcontainer afin d'avoir une couche d'abstraction des namespaces et des cgroups. Dois-je installer cette bibliothèque avant de recopier sur une nouvelle machine le binaire docker (sans passer par le gestionnaire de paquets) ? Pourquoi ?

  2. Décrivez une méthode permettant à un utilisateur (non-root), présent dans le groupe docker, d'effectuer une action privilégiée impactant la machine hôte.