Middle
Para que são usados CMD e ENTRYPOINT no Docker?
sobes.tech IA
Resposta da IA
CMD e ENTRYPOINT determinam qual comando será executado pelo contêiner que inicia.
-
CMD (Comando): Define o comando padrão que será executado ao iniciar o contêiner, se nenhum comando for especificado na chamada ao
docker run. Pode conter apenas um arquivo executável ou um arquivo executável com argumentos. Pode ser sobrescrito pelos argumentos do comandodocker run.# CMD na forma exec CMD ["nginx", "-g", "daemon off;"] # CMD na forma shell (não recomendado para produção devido a problemas com sinais) # CMD nginx -g "daemon off;" -
ENTRYPOINT (Ponto de entrada): Define o comando que sempre será executado ao iniciar o contêiner. Os argumentos especificados na chamada ao
docker runserão passados a este comando como parâmetros. Frequentemente usado em conjunto com o CMD para definir parte do comando (ENTRYPOINT) e seus argumentos padrão (CMD).# ENTRYPOINT na forma exec ENTRYPOINT ["/usr/local/bin/my-script.sh"]
Comparação entre CMD e ENTRYPOINT:
| Característica | CMD | ENTRYPOINT |
|---|---|---|
| Propósito | Comando padrão | Comando principal que sempre é executado |
Capacidade de sobrescrita via docker run |
Sim (como argumento) | Não (apenas via a flag --entrypoint) |
Uso com argumentos em docker run |
Os argumentos do docker run substituem o CMD |
Os argumentos do docker run são adicionados ao ENTRYPOINT |
| Uso recomendado | Especificar argumentos do arquivo executável | Especificar o arquivo executável que será iniciado |