Gostaria de entender o seguinte detalhe: por que não é necessário especificar uma porta para a execução do container do Mongo DB? Esta instância precisa ser acessada por outro container, porém a porta 27017 não é especificada.
Gostaria de entender o seguinte detalhe: por que não é necessário especificar uma porta para a execução do container do Mongo DB? Esta instância precisa ser acessada por outro container, porém a porta 27017 não é especificada.
Olá,
No Dockerfile do Mongo DB ocorre a exposição da porta 27017, podendo ser assim acessada por outros containers, segue Dockerfile do Mongo DB:
https://github.com/dockerfile/mongodb/blob/master/Dockerfile
Só pra ficar claro então. Temos as seguintes situações:
Ai surge a dúvida: parece que a propriedade "EXPOSE" do dockerfile e a propriedade "ports" do docker-compose, quando usada conforme o segundo tópico acima, fazem a mesma coisa.
Olá,
O comando ports expõem portas do container para a máquina host. Quando colocamos 2000:2000, estamos mapeando a porta 2000 do container para a porta 2000 da máquina host. Quando colocamos o comando ports e somente 2000 por exemplo, estamos mapeando a porta 2000 do container para uma porta aleatória da máquina host
O comando expose irá expor as portas do container para demais containers que estejam linkados com esse, porém sem fazer o mapeamento para a máquina host, como é feito pelo comando ports
Entendido, obrigado.