A partir do acesso ao terminal de um servidor Debian GNU/Lin...
• O usuário logado no terminal é o root • A saída do comando pwd é: /home/user/projeto • A saída do comando docker image ls é:
• A saída do comando ls -lha é:
• O conteúdo do arquivo Dockerfile é:
• O conteúdo do arquivo docker-compose.yml é
Para se colocar em execução, em segundo plano, um contêiner baseado na imagem especificada pelo arquivo Dockerfile, publicando a porta 8080 do host para a porta 80 do contêiner, é/são suficiente(s) o(s) comando(s):
Comentários
Veja os comentários dos nossos alunos
The docker compose up command aggregates the output of each container (liked docker compose logs --follow does). When the command exits, all containers are stopped. Running docker compose up --detach starts the containers in the background and leaves them running.
https://docs.docker.com/compose/reference/up/
KUESTÃO difícil, mas a resposta é essa mesmo.
O docker-compose.yml sempre busca e detecta na pasta corrente um arquivo Dockerfile.
Como é executado o comando docker-compose up, o próprio comando entende que deve buscar um Dockerfile e executar um container com aquela especificação.
E como usamos o comando docker-compose ao invés do comando docker puro, significa que os parâmetros de porta (-p), volume (-v) e variáveis de ambiente (-e) não precisam estar especificados na linha de execução toda do comando básico docker run, bastando apenas estarem especificados no corpo do docker-compose.yml. É isso que aconteceu. Ele especificou "ports: 80:8080".
O parâmetro -d significa dettached, do inglês "desanexado" ou "desacoplado", significando que o processo executa em background no Linux, e não no foreground.
Dockerfile vs Docker-compose.yml
Dockerfile: instruções para construir imagem Docker personalizada, contém comandos Docker, específica o ambiente e dependências, é usado com o comando "docker build".
docker-compose.yml: definir e gerenciar vários contêineres, define os serviços necessários para o app e suas configurações, dependências, links de rede e volume de dados. É usado com o comando "docker-compose up".
Gabarito E
- A questão trouxe o primeiro comando docker image ls seguido da primeira imagem para informar que não tem nenhuma imagem docker.
- O segundo comando ls -lha é para nos informar que estamos dentro do diretório que se encontra os arquivos Dockerfile e docker-compose.yml, se não estivesse os comandos seguintes não funcionariam.
- Aqui ele apresentou o conteúdo do Dockerfile dentro dele tem o comando EXPOSE 80, o que indica que essa é a porta de entrada para o container (o que pede na questão)
- ele apresenta o conteúdo do docker-compose, com ele podemos verificar que vai executar um container web, mapeando a porta host 8080 para a do docker 80.
- Sabendo disso não precisamos executar o container, mas sim o docker-compose diretamente. o comando é docker-compose up o parâmetro -d é só pra deixar eles rodando em segundo plano (modo detached)
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo