Dans le fichier docker-compose.yml, il existe des options pour les ports
et expose
. Comment sont-ils différents?
Selon la référence docker-compose ,
Exposer les ports . Spécifiez les deux ports (HOST: CONTAINER) ou simplement le port du conteneur (un port hôte aléatoire sera choisi).
Mon docker-compose.yml
ressemble à
mysql: image: mysql:5.7 ports: - "3306"
Si je docker-compose up
, cela ressemblera à ceci:
$ docker-compose ps 10:27:28 Name Command State Ports ------------------------------------------------------------------------------------- mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:32769->3306/tcp
Exposez les ports sans les publier sur la machine hôte – ils ne seront accessibles qu’aux services liés. Seul le port interne peut être spécifié.
Les ports ne sont pas exposés aux machines hôtes, mais uniquement aux autres services.
mysql: image: mysql:5.7 expose: - "3306"
Si je docker-compose up
, cela ressemblera à ceci:
Name Command State Ports --------------------------------------------------------------- mysql_1 docker-entrypoint.sh mysqld Up 3306/tcp