Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes |
technique:docker:general:config [2020/10/13 11:39] – créée qduchemi | technique:docker:admin:config [2021/11/25 00:00] – qduchemi |
---|
{{indexmenu_n>60}} | {{indexmenu_n>10}} |
# Configuration et commandes du démon Docker | # Configuration et commandes du démon Docker |
| |
| |
Le démon peut se configurer de deux façons : via un fichier *drop-in* `systemd`, ou via un fichier de configuration. | Le démon peut se configurer de deux façons : via un fichier *drop-in* `systemd`, ou via un fichier de configuration. |
| |
| <bootnote>La plupart des options de configuration peuvent être inspectée "à chaud" avec la commande `docker system info`.</bootnote> |
| |
### Drop in | ### Drop in |
| |
| <bootnote critical>Ne faire cette opération qu'après avoir [[technique:docker:admin:socket-certs|générer les certificats]]. Sinon, on saute à la suivante.</bootnote> |
| |
L'installation de Docker livre un fichier de service situé à `/lib/systemd/system/docker.service`. | L'installation de Docker livre un fichier de service situé à `/lib/systemd/system/docker.service`. |
On ne peut pas le modifier car il est écrasé à chaque ré-installation. | On ne peut pas le modifier car il est écrasé à chaque ré-installation. |
| |
<bootnote warning>Cette manière de faire n'est pas privilégiée. On l'utilise uniquement pour exposer le démon Docker en TLS, car [on a pas le choix](https://docs.docker.com/config/daemon/#troubleshoot-conflicts-between-the-daemonjson-and-startup-scripts)</bootnote> | <bootnote warning>Cette manière de faire n'est pas privilégiée. On l'utilise uniquement pour exposer le démon Docker en TLS, car [on a pas le choix](https://docs.docker.com/config/daemon/#troubleshoot-conflicts-between-the-daemonjson-and-startup-scripts).</bootnote> |
| |
L'idée est donc de créer un fichier `/etc/systemd/system/docker.service.d/override.conf`, dont les valeurs vont venir écraser celles du fichier original. | L'idée est donc de créer un fichier `/etc/systemd/system/docker.service.d/override.conf`, dont les valeurs vont venir écraser celles du fichier original. |
```json | ```json |
{ | { |
"live-restore": true, | |
"no-new-privileges": true, | |
"log-driver": "json-file", | "log-driver": "json-file", |
"log-opts": { | "log-opts": { |
### Live restore | ### Live restore |
| |
| <bootnote critical>Tant que [cette issue](https://github.com/moby/moby/issues/41686) ne sera pas résolue, le live restore est **désactivé** sur toutes les machines. En effet, il y a risque de suppression de l'ensemble des données de production lors du lancement de commandes de type `docker volume prune`.</bootnote> |
Cette fonctionnalité permet de laisser les conteneurs Docker allumés lorsque le démon est éteint, pour une maintenance, un changement de configuration ou une mise à jour mineure. | Cette fonctionnalité permet de laisser les conteneurs Docker allumés lorsque le démon est éteint, pour une maintenance, un changement de configuration ou une mise à jour mineure. |
| |
| |
Une fois cette fonctionnalité activée, on peut modifier un paramètre de configuration (par exemple passer en mode `debug`), et redémarrer le démon Docker, sans interruption de service. | Une fois cette fonctionnalité activée, on peut modifier un paramètre de configuration (par exemple passer en mode `debug`), et redémarrer le démon Docker, sans interruption de service. |
| |
### No new privileges | |
| |
Cette fonctionnalité permet d'empêcher l'escalade de privilèges au sein d'un conteneur une fois qu'il est lancé. | |
| |
Par exemple, si un conteneur est lancé avec un utilisateur non-privilégié, il ne pourra jamais obtenir les super-pouvoirs de `root`, même s'il utilise un binaire avec `setuid` ou bien que quelqu'un essaye d'exécuter un `bash` en tant que `root` avec `docker exec`. | |
| |
<bootnote>L'activation de cette option la rend vraie **par défaut** sur tous les conteneurs, il est toujours possible de la désactiver manuellement pour un conteneur en particulier, à son lancement.</bootnote> | |
| |
### Rotation de logs | ### Rotation de logs |
| |
<bootnote web>On se référera à la documentation officielle : https://docs.docker.com/config/daemon/</bootnote> | <bootnote web>On se référera à la documentation officielle : https://docs.docker.com/config/daemon/</bootnote> |
| |
| ## À la fin |
| |
| On lance Docker et on l'active au démarrage : |
| |
| ``` |
| systemctl enable --now docker |
| ``` |