0 Votes

Code source wiki de Containers et Portainer

Modifié par john le 2025/05/24 23:47

Afficher les derniers auteurs
1 = Containers & Portainer =
2
3 {{toc/}}
4
5 Cette section regroupe mes notes autour de l’utilisation de **conteneurs Docker**, la gestion via **Portainer**, le déploiement d’applications auto-hébergées, et la configuration d’un accès sécurisé même en local.
6
7 Docker est aujourd’hui un outil incontournable pour isoler, déployer et gérer des services légers. Combiné à Portainer, on dispose d’une interface web pour piloter facilement ses conteneurs.
8
9 == Déployer Portainer ==
10
11 Portainer permet d’administrer Docker (ou Docker Swarm) via une interface web intuitive.
12
13 === Exemple de stack Portainer ===
14
15 {{code language="yaml"}}
16 version: '3.8'
17 services:
18 portainer:
19 image: portainer/portainer-ce:latest
20 container_name: portainer
21 restart: always
22 ports:
23 - "9443:9443"
24 - "8000:8000"
25 volumes:
26 - /var/run/docker.sock:/var/run/docker.sock
27 - portainer_data:/data
28
29 volumes:
30 portainer_data:
31 {{/code}}
32
33 Une fois démarré, l’interface est accessible sur :
34 `https://192.168.1.25:9443`
35
36 == Sécuriser l’accès à Portainer ==
37
38 Même en réseau local, il est recommandé :
39 - d’utiliser le port 9443 en HTTPS
40 - de définir un mot de passe fort
41 - de restreindre l’accès par pare-feu (`nftables`, `ufw`) aux seules adresses IP de confiance
42
43 == Déployer une application avec Docker Compose ==
44
45 Voici un exemple basique pour lancer XWiki dans un stack :
46
47 {{code language="yaml"}}
48 version: '3'
49
50 services:
51 xwiki:
52 image: xwiki:lts-mysql-tomcat
53 ports:
54 - "8080:8080"
55 environment:
56 - DB_USER=xwiki
57 - DB_PASSWORD=xwiki
58 - DB_DATABASE=xwiki
59 - DB_HOST=db
60 volumes:
61 - xwiki_data:/usr/local/xwiki
62
63 db:
64 image: mysql:5.7
65 environment:
66 - MYSQL_ROOT_PASSWORD=root
67 - MYSQL_DATABASE=xwiki
68 - MYSQL_USER=xwiki
69 - MYSQL_PASSWORD=xwiki
70 volumes:
71 - db_data:/var/lib/mysql
72
73 volumes:
74 xwiki_data:
75 db_data:
76 {{/code}}
77
78 == HTTPS sans domaine en local ==
79
80 Pour générer un certificat local sans nom de domaine :
81
82 === Avec mkcert ===
83
84 {{code language="bash"}}
85 mkcert 192.168.1.25
86 {{/code}}
87
88 Cela génère un certificat valide pour l’IP locale. Il peut ensuite être monté dans un service nginx ou traefik.
89
90 == Superviser ses conteneurs ==
91
92 Quelques bonnes pratiques :
93 - Mettre à jour régulièrement les images (`docker pull`)
94 - Utiliser des volumes nommés pour la persistance
95 - Activer des logs montés dans des fichiers ou avec journald
96 - Restreindre les droits (capabilities, réseau, etc.)
97
98 == Astuce : voir les ports utilisés par les containers ==
99
100 {{code language="bash"}}
101 docker ps --format "table {{.Names}}\t{{.Ports}}"
102 {{/code}}
103
104 == Astuce : nettoyer les containers/images inutilisés ==
105
106 {{code language="bash"}}
107 docker system prune -a
108 {{/code}}
109
110 == Liens utiles ==
111
112 * [Documentation Portainer](https://docs.portainer.io/)
113 * [Docker Cheat Sheet](https://dockerlabs.collabnix.com/docker/cheatsheet/)
114 * [mkcert – création de certificats locaux](https://github.com/FiloSottile/mkcert)
115
116 == Liens internes ==
117
118 * [[Retour à l’accueil>>doc:Wiki Batcave John.WebHome]]