Ainda não consegui entender a diferença do CMD pro RUN. Ambos consigo executar comandos. Qual é a diferença? quando usar um e outro?
obrigado
Ainda não consegui entender a diferença do CMD pro RUN. Ambos consigo executar comandos. Qual é a diferença? quando usar um e outro?
obrigado
Oi Matheus,
O comando CMD cria comandos default a serem executados quando a imagem rodar. Estes comandos podem ser sobreescritos.
Só pode ter um comando CMD dentro do Dockerfile, se tiver mais do que um, somente o último será executado.
Já o comando RUN executa os comandos em uma nova camada e cria uma nova imagem que será utilizada no próximo passo do Dockerfile. É bem útil para instalar pacotes e etc.
Você pode consultar estas informações no próprio site da documentação do Docker.
Abraço!
oi Joviane.
obrigado pela resposta mas ainda não me ficou claro...
Oi Matheus,
O CMD vai cadastrar valores padrão para todas as imagens que rodarem se você não colocar nada específico para elas. Todas as aplicações usam esta configuração então se você mudar, pode afetar todas.
Já o RUN é específico para uma aplicação. Ele sobrescreve o valor padrão que está dentro do CMD para que a sua imagem seja criado com configurações customizadas.
É como se você fosse instalar na sua máquina um programa que te desse a opção de instalação rápida e personalizada. A rápida utilizaria os valores padrão e você não escolheria nada (CMD), já a personalizada utilizaria os valores que você passasse para ela (RUN), ignorando os valores padrão.
Melhorou um pouco?
Abraço!
Fala, pessoal.
Joviane, obrigado pelo apoio. Segue um link que encontrei que pode facilitar o entendimento. https://stackoverflow.com/questions/37461868/difference-between-run-and-cmd-in-a-dockerfile