Ready for j1
This commit is contained in:
parent
150f5a8834
commit
dc8544c0c9
31 changed files with 690 additions and 546 deletions
|
|
@ -2,118 +2,30 @@
|
|||
|
||||
# Installation
|
||||
|
||||
## Par le gestionnaire de paquets
|
||||
## `docker-compose`
|
||||
|
||||
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` :
|
||||
L'équipe en charge de Docker compose met à disposition un binaire contenant
|
||||
tous les scripts. Nous pouvons l'installer en suivant la procédure suivante :
|
||||
|
||||
```
|
||||
deb http://ftp.debian.org/debian/ jessie-backports main non-free contrib
|
||||
curl -L https://github.com/docker/compose/releases/download/1.3.3/docker-compose-Linux-x86_64 > /usr/bin/docker-compose
|
||||
chmod +x /usr/bin/docker-compose
|
||||
```
|
||||
|
||||
Puis :
|
||||
Le projet étant écrit en Python, il est également disponible via `pip`, si vous
|
||||
préférez cette méthode. N'oubliez pas de préciser une version compatible avec
|
||||
votre version de Docker.
|
||||
|
||||
|
||||
### Vérification du fonctionnement
|
||||
|
||||
Comme avec Docker, nous pouvons vérifier le bon fonctionnement de
|
||||
`docker-compose` en exécutant la commande :
|
||||
|
||||
```
|
||||
apt-get update
|
||||
apt-get install docker.io
|
||||
42sh$ docker-compose --version
|
||||
docker-compose version: 1.3.3
|
||||
```
|
||||
|
||||
### 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 :
|
||||
|
||||
```sh
|
||||
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 ?
|
||||
|
||||
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.
|
||||
Si vous obtenez une réponse similaire, c'est que vous êtes prêt à commencer le
|
||||
TP ! Alors n'attendons pas, partons à l'aventure !
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue