Pages : 1
#1 Le 20/08/2025, à 19:11
- O_20_100_O
(Résolu) Docker et serveur web
Bonjour,
On peut trouver des images Docker d'applications qui ont besoin d'Apache, PHP, Mariadb et autres. Par exemple, Nextcloud, Grav ...
Ma question porte sur la façon dont cela peut s'articuler. J'ai vu avec l'exemple de docker-conpose de la documentation que le container du serveur web peut aussi servir à d'autres containers qui en auraient besoin. Est-ce que cela implique qu'une fois que l'on utilise un conteneur avec Apache, pour les autres services il faut trouver des images sans Apache ?
Ou alors un container de plus pour un reverse-proxy ?
Dernière modification par O_20_100_O (Le 21/08/2025, à 08:27)
Hors ligne
#2 Le 20/08/2025, à 21:21
- Vobul
Re : (Résolu) Docker et serveur web
En gros : 1 container = 1 application.
Donc un site web tourne dans un container et expose un service sur un port quelconque, par exemple une app node js va avoir Express sur le port 9000, une app en ruby va avoir webrick sur le port 8000, une autre va avoir nginx sur le port 8080, etc...
Et donc toi tu mets devant un reverse proxy genre HAProxy, Traefik, Caddy, nginx, apache qui se charge de faire la terminaison TLS et des certificats et redirige la requête sur le bon container/service. Lui aussi il est dans un container, mais c'est pas forcé bien entendu. C'est juste qu'à un moment tous tes services sont dans des containers et que ça n'a pas vraiment de sens d'installer "en dur" des choses sur le serveur. J'espère que c'est plus clair...
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#3 Le 20/08/2025, à 23:30
- krodelabestiole
Re : (Résolu) Docker et serveur web
+1 merci @Vobul !
soit reverse proxy (j'utilise traefik, c'est hyper bien avec docker) pour choisir un service en fonction du nom de domaine (ou sous-domaine), soit utiliser des ports différents, comme avec n'importe quel processus.
on peut choisir le port interne (container), et le port externe (hôte), il ne faut simplement pas utiliser 2 fois le même sur un même hôte, pour ce dernier c'est très facile : par ex. port 80:82 (80 dans le container lié à 82 sur l'hôte) on ne peut pas utiliser le plusieurs fois le port 82 sur un même hôte !
c'est rien d'extraordinaire, et c'est la même chose si on essaie de faire tourner plusieurs serveurs web sur une même machine : le port 80 est déjà utilisé...
docker permet d'utiliser plein de fois le même processus dans des versions différentes, mais évidemment tous ne peuvent pas répondre sur le même port en même temps...
donc en fonction de sa méthode de travail soit on arrête un service avant de lancer l'autre, soit on utilise différents ports, soit on utilise un reverse proxy (mais plus pour la prod) type traefik, pour que chaque service réponde en fonction du nom de domaine appelé, par ex...
traefik permet de modifier les conditions pour qu'un container soit concerné, et beaucoup plus : renouvellement du certificat ssl, redirection vers https, etc...
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#4 Le 21/08/2025, à 08:27
- O_20_100_O
Re : (Résolu) Docker et serveur web
Merci pour vos réponses, le principe est clair. je vais voir ce que donne la pratique.
Après un peu de lecture, j'ai un superbe tableau de bord avec Traefic en Docker.
Test en local : ajout d'un container de serveur Apache sur port 8081, Traefik le relie à
http://172.17.0.2:80
.
Dernière modification par O_20_100_O (Le 21/08/2025, à 09:07)
Hors ligne
#5 Le 21/08/2025, à 17:30
- Vobul
Re : (Résolu) Docker et serveur web
Perso je suis très fan de HAProxy. Il tourne dans un container avec le filesystem en readonly. La version alpine est à 29 Mb. Traefik je l'ai éliminé assez tôt car j'aime pas l'idée qu'il nécessite un accès à la socket docker (d'ailleurs en prod j'utilise podman). L'image traefik c'est 226 Mb au passage. Un peu "fat" quand même je trouve.
HAProxy c'est un truc qui est battle tested, très bien développé (en france), et ultra performant. Tu le déploies et tu l'oublies. Le même fichier de conf a vu passer plusieurs releases majeures sans avoir à le modifier. Bref c'est top ! Je ne peux que recommander.
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#6 Hier à 16:31
- O_20_100_O
Re : (Résolu) Docker et serveur web
Alors, j'ai testé Traefik et deux services, tout en images docker. Cela fonctionne en local. Chaque service est joignable sur un "sous-domaine" local avec une règle dans le compose.yml du genre :
labels:
- "traefik.http.routers.grav.rule=Host(`grav.localhost`)"
Par contre je n'ai pas trouvé l'équivalent sur HAProxy. Où faut-il faire la règle de correspondance entre le port du service et le "sous-domaine" ?
Hors ligne
#7 Hier à 17:43
- krodelabestiole
Re : (Résolu) Docker et serveur web
déso de ne pas t'avoir plus aiguillé, mais c'est exactement le type de config que j'utilise, effectivement !
un exemple là : https://gitlab.com/ubuntu-fr/code/ufr-d … ompose.yml
si besoin traefik est aussi hyper pratique pour forcer HTTPS, et générer et renouveler des certificats SSL avec let's encrypt.
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#8 Aujourd'hui à 09:09
- O_20_100_O
Re : (Résolu) Docker et serveur web
Merci pour la richesse de cet exemple.
Hors ligne
Pages : 1