virli/tutorial/2/installation.md

120 lines
2.7 KiB
Markdown
Raw Normal View History

2015-10-07 01:52:31 +00:00
\newpage
# Installation
2015-10-22 03:25:20 +00:00
## Par le gestionnaire de paquets
2015-10-07 01:52:31 +00:00
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.
2015-10-22 03:25:20 +00:00
### 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
2015-10-07 01:52:31 +00:00
L'équipe en charge de Docker met à disposition un script pour installer Docker
sur n'importe quel système :
```sh
curl -sSL https://get.docker.com/ | sh
```
2015-10-22 03:25:20 +00:00
## Vérifier la bonne marche de l'installation
2015-10-07 01:52:31 +00:00
Vous devriez maintenant être capable de lancer la commande suivante :
```
docker version
```
Une sortie similaire au bloc suivant devrait apparaître sur votre écran :
```
2015-10-22 03:25:20 +00:00
Client version: 1.3.3
2015-10-07 01:52:31 +00:00
Client API version: 1.15
Go version (client): go1.3.3
2015-10-22 03:25:20 +00:00
Git commit (client): d344625
2015-10-07 01:52:31 +00:00
OS/Arch (client): linux/amd64
2015-10-22 03:25:20 +00:00
Server version: 1.3.3
2015-10-07 01:52:31 +00:00
Server API version: 1.15
Go version (server): go1.3.3
2015-10-22 03:25:20 +00:00
Git commit (server): d344625
2015-10-07 01:52:31 +00:00
```
2015-10-22 03:25:20 +00:00
### `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`?
2015-10-07 01:52:31 +00:00
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
```
2015-10-22 03:25:20 +00:00
**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 ?
1. 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.