Containers et Portainer
Containers & Portainer
- Containers & Portainer
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.
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.
Déployer Portainer
Portainer permet d’administrer Docker (ou Docker Swarm) via une interface web intuitive.
Exemple de stack Portainer
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9443:9443"
- "8000:8000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
Une fois démarré, l’interface est accessible sur :
`https://192.168.1.25:9443`
Sécuriser l’accès à Portainer
Même en réseau local, il est recommandé :
- d’utiliser le port 9443 en HTTPS
- de définir un mot de passe fort
- de restreindre l’accès par pare-feu (`nftables`, `ufw`) aux seules adresses IP de confiance
Déployer une application avec Docker Compose
Voici un exemple basique pour lancer XWiki dans un stack :
services:
xwiki:
image: xwiki:lts-mysql-tomcat
ports:
- "8080:8080"
environment:
- DB_USER=xwiki
- DB_PASSWORD=xwiki
- DB_DATABASE=xwiki
- DB_HOST=db
volumes:
- xwiki_data:/usr/local/xwiki
db:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=xwiki
- MYSQL_USER=xwiki
- MYSQL_PASSWORD=xwiki
volumes:
- db_data:/var/lib/mysql
volumes:
xwiki_data:
db_data:
HTTPS sans domaine en local
Pour générer un certificat local sans nom de domaine :
Avec mkcert
Cela génère un certificat valide pour l’IP locale. Il peut ensuite être monté dans un service nginx ou traefik.
Superviser ses conteneurs
Quelques bonnes pratiques :
- Mettre à jour régulièrement les images (`docker pull`)
- Utiliser des volumes nommés pour la persistance
- Activer des logs montés dans des fichiers ou avec journald
- Restreindre les droits (capabilities, réseau, etc.)
Astuce : voir les ports utilisés par les containers
Astuce : nettoyer les containers/images inutilisés
Liens utiles
- [Documentation Portainer](https://docs.portainer.io/)
- [Docker Cheat Sheet](https://dockerlabs.collabnix.com/docker/cheatsheet/)
- [mkcert – création de certificats locaux](https://github.com/FiloSottile/mkcert)