Code source wiki de Containers et Portainer
Modifié par john le 2025/05/24 23:47
Afficher les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
| 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]] |