Um técnico deseja usar o Keycloak no Docker, instalado e em ...
Um técnico deseja usar o Keycloak no Docker, instalado e em condições ideais.
I 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:20.0.0 start-dev
Para iniciar o Keycloak exposto na porta local 8080, criando um usuário inicial admin, com senha admin, a lacuna I deve ser
preenchida por:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Vamos analisar a questão passo a passo, começando pela alternativa correta, que é a letra C - docker run -p.
Para iniciar o Keycloak exposto na porta local 8080 e criar um usuário inicial admin com senha admin, precisamos utilizar um comando Docker adequado. A questão envolve conhecimento específico sobre o uso do Docker para rodar containers e a exposição de portas.
O comando correto é:
docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:20.0.0 start-dev
A opção C - docker run -p é a correta porque:
- docker run: inicia um novo container.
- -p 8080:8080: mapeia a porta 8080 do host para a porta 8080 do container.
- -e KEYCLOAK_ADMIN=admin: define a variável de ambiente para o usuário administrador.
- -e KEYCLOAK_ADMIN_PASSWORD=admin: define a variável de ambiente para a senha do administrador.
Agora vamos entender por que as outras alternativas estão incorretas:
A - docker run -v:
O comando -v é usado para mapear volumes, permitindo a persistência de dados entre o host e o container. Não é apropriado para expor portas, por isso está incorreto.
B - docker container start on port:
Esse comando não é válido no Docker. O correto para iniciar um container com mapeamento de porta é usar docker run -p. Além disso, a sintaxe "start on port" não existe no Docker.
D - docker start --port:
O comando docker start serve para iniciar containers que já foram criados anteriormente e não aceita a opção --port para mapear portas. Para mapear portas, utiliza-se docker run -p.
E - docker container run -d port:
A opção -d é usada para rodar o container em segundo plano (detached mode), mas a forma correta de mapear portas é -p 8080:8080. Além disso, "port" como argumento isolado não é reconhecido.
Espero que esta explicação tenha ajudado a compreender melhor os conceitos de Docker e como utilizá-los para iniciar containers corretamente.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
c-
todo cmd docker inicia com docker run
p especifica portas. no caso, 8080:8080
https://docs.docker.com/engine/reference/commandline/run/
A história não é bem assim "todo cmd docker inicia com docker run"
- Antes Versão 1.13
Antes do docker 1.13, apenas o comando "docker run" estava disponível.
Os comandos da CLI foram então refatorado. Isso foi feito para ter um agrupamento de comandos mais intuitivo, já que o número de comandos na época cresceu substancialmente.
- Após Versão 1.13
Após a versão 1.13 a linha de comando foi reestruturada para ter a seguinte sintaxe:
docker <object> <command> <options>
Nesta sintaxe:
<object>indica o tipo de objeto do Docker que você manipulará. Isso pode ser um objeto container, image ou .networkvolume
<command>indica a tarefa a ser executada pelo daemon, ou seja, o comando executar.
<options>pode ser qualquer parâmetro válido que pode substituir o comportamento padrão do comando, como a "--publish" opção de mapeamento de porta.
Por isso, "docker container run" acaba sendo um comando válido.
Fonte: https://stackoverflow.com/questions/51247609/difference-between-docker-run-and-docker-container-run
meu pai amado quanta humilhação.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo