HowtoDocker initial commit
This commit is contained in:
parent
4bbed0afdf
commit
435b07f212
|
@ -0,0 +1,153 @@
|
|||
---
|
||||
title: Howto Docker
|
||||
categories: docker
|
||||
---
|
||||
|
||||
Docker est une solution qui permet de créer, déployer et gérer en toute
|
||||
simplicité des conteneurs Linux.
|
||||
Elle combine plusieurs technologies pour rendre l'utilisation
|
||||
des conteneurs accessible à tous.
|
||||
|
||||
# Docker Engine
|
||||
|
||||
## Installation
|
||||
|
||||
Les procédures d'installation suivantes sont destinées à Debian 8 (Jessie)
|
||||
|
||||
### Manuelle
|
||||
|
||||
```
|
||||
# echo "deb http://apt.dockerproject.org/repo debian-jessie main" > /etc/apt/sources.list.d/docker.list
|
||||
# apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
|
||||
# apt update
|
||||
# apt install docker-engine
|
||||
# adduser <USER> docker
|
||||
```
|
||||
|
||||
### Ansible
|
||||
Le rôle docker-host permet d'installer le docker-engine sur un hôte distant et
|
||||
de l'exposer à l'externe ou non.
|
||||
|
||||
La documentation concernant l'utilisation du rôle est située dans son répertoire.
|
||||
|
||||
#### TLS
|
||||
Lorsque le docker-engine est exposé, il est important de le sécuriser avec TLS.
|
||||
|
||||
Au moment de l'installation, une version altérée de shellpki est copiée dans le
|
||||
répertoire docker/tls. Ensuite, les certificats et la clé sont créés pour le
|
||||
serveur. (`shellpki init`)
|
||||
|
||||
Pour autoriser des hôtes à se connecter à l'engine, il faut leur créer une clé
|
||||
et un certificat.
|
||||
Pour ce faire, il suffit de lancer le script:
|
||||
|
||||
```
|
||||
/home/docker/tls$ ./shellpki create
|
||||
```
|
||||
|
||||
Les fichiers seront créés, par défaut, dans le répertoire
|
||||
`/home/docker/tls/files/$CN`
|
||||
|
||||
## Utilisation de base
|
||||
|
||||
Une image Docker contient un OS avec un ou plusieurs services préconfigurés.
|
||||
Un conteneur quant à lui est une instance (créée à partir d'une image)
|
||||
en cours d'execution.
|
||||
|
||||
### Lister les conteneurs et les images:
|
||||
```
|
||||
$ docker ps [options]
|
||||
```
|
||||
Voici quelques options utiles pour la commande `ps`
|
||||
```
|
||||
-a : Lister tous les conteneurs
|
||||
-l : Lister les conteneurs récentralise
|
||||
-q : Lister uniquement les ID des conteneurs
|
||||
```
|
||||
|
||||
### Démarrer un conteneur
|
||||
```
|
||||
$ docker run [options] IMAGE [commande]
|
||||
```
|
||||
Options courantes:
|
||||
```
|
||||
--name="nom" : Donner un nom au conteneur
|
||||
-p port_hôte:port_conteneur : Rendre un port accessible depuis l'hôte
|
||||
-d : Lancer le conteneur en mode 'détaché'
|
||||
-it : Lancer le conteneur en mode intéractif avec tty
|
||||
```
|
||||
Pour plus d'options, consulter `$ man docker run`
|
||||
|
||||
### Éteindre ou tuer un conteneur
|
||||
```
|
||||
$ docker stop [options] CONTENEUR
|
||||
ou
|
||||
$ docker kill [options] CONTENEUR
|
||||
```
|
||||
CONTENEUR correspond au nom ou à l'ID du conteneur.
|
||||
|
||||
Lorsque le conteneur n'est plus en fonction, il existe toujours et peut être
|
||||
lister à l'aide de la commande `$ docker ps -a`
|
||||
|
||||
### Supprimer un conteneur ou une image
|
||||
```
|
||||
$ docker rm [options] CONTENEUR
|
||||
ou
|
||||
$ docker rmi [options] IMAGE
|
||||
```
|
||||
|
||||
### Exécuter des commandes au sein d'un conteneur en marche
|
||||
```
|
||||
$ docker exec [options] CONTENEUR COMMANDE
|
||||
```
|
||||
Options courante:
|
||||
```
|
||||
-it : Lancer la commande de manière intéractive dans un TTY.
|
||||
```
|
||||
|
||||
### Visionner les logs d'un conteneur
|
||||
```
|
||||
$ docker logs [options] CONTENEUR
|
||||
```
|
||||
Option:
|
||||
```
|
||||
-f : Suivre les logs en direct
|
||||
```
|
||||
|
||||
### Se connecter à un conteneur en marche
|
||||
S'il est nécessaire d'intéragir directement avec un process lancé dans un
|
||||
conteneur, il faut utiliser la commande `attach`.
|
||||
Dans le cas où l'on souhaite simplement visionner la sortie (logs) du conteneur,
|
||||
il faut utiliser `logs`.
|
||||
Pour lancer un terminal ou une commande supplémmentaire, utiliser `exec`.
|
||||
```
|
||||
docker attach [options] CONTENEUR
|
||||
```
|
||||
|
||||
**ATTENTION!!!**
|
||||
|
||||
Lorsque le conteneur est attaché, l'utilisation de *CTRL+C* termine le processus
|
||||
en cours. La commande *CTRL+P+Q* doit être utilisé ou l'on doit ajouter l'option
|
||||
`--sig-proxy=false` lors du lancement ou de l'attachement.
|
||||
|
||||
|
||||
### Astuces
|
||||
Éteindre/Tuer/Supprimer tous les conteneurs:
|
||||
```
|
||||
$ docker stop|kill|rm $(docker ps -aq)
|
||||
```
|
||||
|
||||
Supprimer toutes les images:
|
||||
```
|
||||
$ docker rmi $(docker images -q)
|
||||
```
|
||||
|
||||
Lancer un terminal bash dans un conteneur en marche:
|
||||
```
|
||||
$ docker exec -it CONTENEUR bash
|
||||
```
|
||||
|
||||
Démarrer un conteneur avec un terminal bash:
|
||||
```
|
||||
$ docker run -it IMAGE bash
|
||||
```
|
Loading…
Reference in New Issue