Blame

9c901f theophile 2026-03-17 18:46:21
ajout sectoin env
1
{{InfoBox
2
|caption=Ressources
3
|Docker docs= [docs.docker.com](https://docs.docker.com/)
4
}}
5
76cbf6 theophile 2026-03-17 18:23:40
Page initial avec section setup (vide) et mise à jours
6
# Containers
7
4efceb theophile 2026-03-17 18:31:59
introduction sur docker et OCI
8
Nous utilisons des containers d'image [OCI](https://opencontainers.org/) (Open Container Initiative), orchestré par [Docker](https://www.docker.com/).
9
10
Les containers sont tous les même, mais le système qui les fait fonctionner, Docker, pourrait être remplacer par des projets comme [Podman](https://podman.io/), [Nerdctl](https://github.com/containerd/nerdctl) ou [Lilipod](https://github.com/89luca89/lilipod), par exemple.
11
12
> [!IMPORTANT]
13
> Nous penchons pour Podman, notamment pour les containers rootless.
14
15
## Installation
76cbf6 theophile 2026-03-17 18:23:40
Page initial avec section setup (vide) et mise à jours
16
8bdfb8 theophile 2026-03-17 18:39:19
ajout des repo d'images, le warning, et l'indication des networks entre docker
17
## Repository d'images
18
19
- [Docker Hub](https://hub.docker.com/)
20
- [quay.io](https://quay.io/)
21
- [ghcr.io](https://ghcr.io)
22
23
24
> [!CAUTION]
d09d82 theophile 2026-03-19 19:48:04
expliciter le danger des noms de domaines mal frappé
25
> Attention au fautes de frappes[^A]. Certains variants de nom de domains sont malveillants.
8bdfb8 theophile 2026-03-17 18:39:19
ajout des repo d'images, le warning, et l'indication des networks entre docker
26
9c901f theophile 2026-03-17 18:46:21
ajout sectoin env
27
## Création d'un nouveau service
28
358b20 theophile 2026-03-19 19:46:51
ajout de liens vers des pages que j'avais consulté
29
### .env
30
31
32
9c901f theophile 2026-03-17 18:46:21
ajout sectoin env
33
The --env-file command-line argument and the env_file docker-compose.yml variable specify the env file to use for the container:
34
35
```yaml
36
env_file:
37
- my_service.env
38
```
39
358b20 theophile 2026-03-19 19:46:51
ajout de liens vers des pages que j'avais consulté
40
**Aller plus loins:**
41
42
- [Set environment variables Docker Docs](https://docs.docker.com/compose/how-tos/environment-variables/set-environment-variables/)
43
- [Specify the env file docker compose uses](https://stackoverflow.com/questions/40525230/specify-the-env-file-docker-compose-uses)
44
- [Interpolation Docker Docs](https://docs.docker.com/compose/how-tos/environment-variables/variable-interpolation/)
9c901f theophile 2026-03-17 18:46:21
ajout sectoin env
45
83fe59 theophile 2026-03-17 18:25:35
Ajout du contenus de la page maintenance
46
## Maintenance
47
48
### Zombies
49
Regularly check that containers whose services have either moved or been removed, are not still running
50
51
```bash
52
# List containers running.
53
docker compose ls
5caafa theophile 2026-03-28 07:11:56
Nettoyage de codeblocks
54
83fe59 theophile 2026-03-17 18:25:35
Ajout du contenus de la page maintenance
55
# Kill a container that should not still be running.
56
# The <id> is found in the list above.
57
docker kill <id>
58
```
59
60
### Pruning
61
62
> Docker takes a conservative approach to cleaning up unused objects (often referred to as "garbage collection"), such as images, containers, volumes, and networks. These objects **are generally not removed unless you explicitly ask Docker to do so**. This can cause Docker to use extra disk space. For each type of object, Docker provides a prune command. In addition, you can use docker system prune to clean up multiple types of objects at once.
63
64
- [Prune unused Docker objects Docker Docs](https://docs.docker.com/engine/manage-resources/pruning/)
65
98fd71 theophile 2026-03-28 07:07:18
ajout des cmds prune
66
**TLDR;**
67
68
```bash
69
# cleans up dangling images. A dangling image is one that isn't tagged, and isn't referenced by any container.
70
docker image prune
71
72
# To remove all images which aren't used by existing containers
73
docker image prune -a
74
```
83fe59 theophile 2026-03-17 18:25:35
Ajout du contenus de la page maintenance
75
76cbf6 theophile 2026-03-17 18:23:40
Page initial avec section setup (vide) et mise à jours
76
## Mise à Jours
77
### Commandes
78
79
```bash
80
# arrête et enlève le container
81
docker compose down
82
83
# récupère la dernière image comme indiqué dans le docker-compose. yml
84
# Souvent `latest`
85
docker compose pull
86
87
# recrée le container d'après la dernière image locale (qu'on a avec pull)
88
# -d/--detach permet de lancer le service en arrière plan.
89
docker compose up -d
90
```
91
### Procéssus
92
93
Nous avons pour l'instant identifier deux façons de mettre à jours un container docker:
94
95
1. `down` > `pull` > `up -d`
96
2. `pull` > `up -d`
97
98
La différence notable entre les deux approches est que la deuxième version permet d'éviter de recréer les contenaires pas mis à jour tandis que la première approche retire tout et repart de zéro, guardant bien sur les data qui étaient dans les volumes.
99
100
**Nous utilisons la deuxième méthode.**
101
102
#### Détails sur `up`
103
104
Cette commande recréer le container sous plusieurs conditions :
105
106
1. Une versions plus récente de l'image
107
2. Des changements au fichiers de configurations (image/tag, networks, entrypoints, env variables, port mappings, volume mounts, restart policies et labels)
f91571 theophile 2026-03-17 18:26:35
ajout de la section troubleshooting. Fin de la consolidation des pages dans Container
108
109
## Troubleshooting
110
111
### Network
112
8bdfb8 theophile 2026-03-17 18:39:19
ajout des repo d'images, le warning, et l'indication des networks entre docker
113
#### Connecté un container à un autre via URL
114
89b593 theophile 2026-03-17 18:39:58
ajout de la mention de création du network partagé
115
Utilisez `nom_du_container:port`, sinon créer un network partagé par les deux.
8bdfb8 theophile 2026-03-17 18:39:19
ajout des repo d'images, le warning, et l'indication des networks entre docker
116
f91571 theophile 2026-03-17 18:26:35
ajout de la section troubleshooting. Fin de la consolidation des pages dans Container
117
#### `internal=true`
118
119
Si un network est `internal=true`, le container qui n'a que ce network n'aura pas accès à internet.
8bdfb8 theophile 2026-03-17 18:39:19
ajout des repo d'images, le warning, et l'indication des networks entre docker
120
121
122
[^A]: Apparament, `ghrc.io` est malicieux. Attention au fautes de frappes → [ghrc.io Appears to be Malicious Brandon Mitchell](https://bmitch.net/blog/2025-08-22-ghrc-appears-malicious/)