Qual é a diferença entre ports de composição do ancoradouro vs expos
In docker-compose.ficheiro yml, existem opções para ports
e expose
. Como é que são diferentes?
171
1 answers
De acordo com o termo de Referência,
Os portos são definidos como:
Exponhaportas . Indique ambos os portos (HOST:CONTAINER) ou apenas o porto do container (será escolhido um porto host Aleatório).
- Os Portos mencionados no "docker-compose".yml será compartilhado entre os diferentes serviços iniciados pela docker-compose.
- As portas serão expostas à máquina hospedeira a uma porta aleatória ou a uma dada porta.
O meu docker-compose.yml
parece
mysql:
image: mysql:5.7
ports:
- "3306"
Se o fizer docker-compose ps
, parecerá:
$ docker-compose ps 10:27:28
Name Command State Ports
-------------------------------------------------------------------------------------
mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:32769->3306/tcp
Expose é definido como:
Exponha os portos sem publicá - los na máquina anfitriã-eles só serão acessíveis a serviços ligados. Só o porto interno pode ser especificado.
Os Portos não estão expostos a máquinas hospedeiras, apenas expostos a outros serviços.
mysql:
image: mysql:5.7
expose:
- "3306"
Se o fizer docker-compose up
, parecerá:
Name Command State Ports
---------------------------------------------------------------
mysql_1 docker-entrypoint.sh mysqld Up 3306/tcp
241
Author: bibstha, 2018-09-08 19:52:56