EXPOSE ou publier

EXPOSE dans un Dockerfile ne fait que documenter le port d'écoute de l'application ; il n'ouvre rien. C'est la publication avec -p ou ports: qui rend un port joignable depuis l'extérieur du serveur.

Comment ça marche

Sur un réseau partagé, tout port sur lequel un conteneur écoute est joignable par les autres conteneurs, exposé ou non. Dans Compose, expose: documente pour les autres services et ports: publie sur le serveur. docker run -P publie chaque port EXPOSE sur des ports aléatoires du serveur.

Ce qui casse

Publier la base ou l'API à côté du reverse proxy ouvre des portes dont personne n'a besoin : seul le point d'entrée doit avoir ports:. Tout le reste se parle par le réseau de la stack.

Dans compose.yaml

services:
  proxy:
    image: nginx:1.27
    ports:
      - "80:80"
  api:
    build: ./api
    expose:
      - "3000"

Regarde-le casser, puis répare-le

Écris le Dockerfile ou le fichier compose, tape les commandes docker, et regarde un serveur simulé les exécuter à travers redémarrages, mises à jour et trafic. Gratuit pour commencer.