O QUE É CMD NO DOCKERFILE?
[PARTE 07]
Opa pessoal tudo certo!?
No artigo anterior vimos o que é a instrução EXPOSE no Dockerfile e sua aplicabilidade.
Neste artigo vamos entender a utilização do CMD no Dockerfile.
A instrução CMD permite configura o comando padrão que será utilizado quando container iniciar sua execução. Se durante o comando docker run
for especificado a outra instrução CMD, a instrução CMD do Dockerfile será ignorada.
Pode haver somente uma instrução ** CMD** no Dockerfile, caso tenha mais de uma instrução CMD, apenas a última será válida.
O CMD pode ser utilizado de 03 formas:
- Exec form
- Default parameters for ENTRYPOINT
- Shell form
Exec form
Nesta forma vamos definir o executável que será utilizado e os parâmetro para rodar a aplicação.
CMD ["executable","param1","param2"]
#EXAMPLE
CMD [ "sh", "-c", "echo $HOME" ]
Default parameters for ENTRYPOINT
Desta forma o CMD será utilizado para definir parâmetros padrões para a instrução ENTRYPOINT, assim caso o comando docker run
seja executado e não forneçam os parâmetros necessários, os parâmetros do CMD serão utilizados.
CMD ["param1","param2"]
#EXAMPLE
ENTRYPOINT ["/bin/echo", "Hello"]
CMD ["world"]
Shell form
No Shell form é a forma normalmente utilizada no shell, o /bin/bash no Linux ou o CMD do Windows.
CMD command param1 param2
#EXAMPLE
CMD echo "Hello world"
Relembrando o Dockerfile que criamos, temos:
#PRIMEIRO DOCKERFILE
FROM centos:7
RUN yum -y update
RUN yum -y install httpd
COPY ./index.html /var/www/html/index.html
EXPOSE 80
CMD ["httpd", "-D", "FOREGROUND"]
Neste Dockerfile a instrução CMD assim que executarmos o container a aplicação “httpd” será executada com os parâmetros: “-D” e “FOREGROUND”. Seria similar se no shell utilizaremos o httpd -D FOREGROUND
.
Obrigado por acompanhar até aqui e te espero no próximo artigo 😃😃😃😃
CRIANDO SUA PRIMEIRA IMAGEM DOCKER PARTE-01
O QUE É FROM NO DOCKERFILE? - PARTE-02
O QUE É REGISTRY NO DOCKER? - PARTE-03
O QUE É RUN NO DOCKERFILE? - PARTE-04
O QUE É COPY NO DOCKERFILE? - PARTE-05
O QUE É EXPOSE NO DOCKERFILE? - PARTE-06