Blame

76cbf6 theophile 2026-03-17 18:23:40
Page initial avec section setup (vide) et mise à jours
1
# Containers
2
4efceb theophile 2026-03-17 18:31:59
introduction sur docker et OCI
3
Nous utilisons des containers d'image [OCI](https://opencontainers.org/) (Open Container Initiative), orchestré par [Docker](https://www.docker.com/).
4
5
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.
6
7
> [!IMPORTANT]
8
> Nous penchons pour Podman, notamment pour les containers rootless.
9
10
## Installation
76cbf6 theophile 2026-03-17 18:23:40
Page initial avec section setup (vide) et mise à jours
11
83fe59 theophile 2026-03-17 18:25:35
Ajout du contenus de la page maintenance
12
## Maintenance
13
14
### Zombies
15
Regularly check that containers whose services have either moved or been removed, are not still running
16
17
```bash
18
# List containers running.
19
docker compose ls
20
# Kill a container that should not still be running.
21
# The <id> is found in the list above.
22
docker kill <id>
23
```
24
25
### Pruning
26
27
> 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.
28
29
- [Prune unused Docker objects Docker Docs](https://docs.docker.com/engine/manage-resources/pruning/)
30
31
76cbf6 theophile 2026-03-17 18:23:40
Page initial avec section setup (vide) et mise à jours
32
## Mise à Jours
33
### Commandes
34
35
```bash
36
# arrête et enlève le container
37
docker compose down
38
39
40
# récupère la dernière image comme indiqué dans le docker-compose. yml
41
# Souvent `latest`
42
docker compose pull
43
44
45
# recrée le container d'après la dernière image locale (qu'on a avec pull)
46
# -d/--detach permet de lancer le service en arrière plan.
47
docker compose up -d
48
```
49
### Procéssus
50
51
Nous avons pour l'instant identifier deux façons de mettre à jours un container docker:
52
53
1. `down` > `pull` > `up -d`
54
2. `pull` > `up -d`
55
56
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.
57
58
**Nous utilisons la deuxième méthode.**
59
60
#### Détails sur `up`
61
62
Cette commande recréer le container sous plusieurs conditions :
63
64
1. Une versions plus récente de l'image
65
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
66
67
## Troubleshooting
68
69
### Network
70
71
#### `internal=true`
72
73
Si un network est `internal=true`, le container qui n'a que ce network n'aura pas accès à internet.