Cosa sono entrypoint e cmd nel contesto di Docker?
sobes.tech AI
Risposta dell'AI
ENTRYPOINT definisce il comando che verrà eseguito all'avvio del contenitore. Se CMD o parametri di comando vengono passati durante l'esecuzione di docker run, vengono aggiunti come argomenti a questo comando.
CMD fornisce argomenti predefiniti per ENTRYPOINT o viene eseguito come comando separato se ENTRYPOINT non è definito. Se vengono passati parametri all'avvio del contenitore, questi sovrascrivono il valore di CMD.
Differenze:
| Caratteristica | ENTRYPOINT | CMD |
|---|---|---|
| Scopo | Definisce il comando principale da eseguire | Fornisce argomenti o comando predefinito |
| Sovrascrittura | Richiede docker run --entrypoint |
Può essere sovrascritto dagli argomenti di docker run |
Uso con ENTRYPOINT |
Argomenti per ENTRYPOINT |
Comando predefinito se ENTRYPOINT non è presente |
Esempi:
Con ENTRYPOINT e CMD:
# Dockerfile
FROM alpine:latest
ENTRYPOINT ["echo", "Hello"]
CMD ["World!"]
Eseguendo docker run tua-immagine verrà eseguito echo Hello World!
Eseguendo docker run tua-immagine Universo! verrà eseguito echo Hello Universo!
Solo con CMD:
# Dockerfile
FROM alpine:latest
CMD ["echo", "Hello World!"]
Eseguendo docker run tua-immagine verrà eseguito echo Hello World!
Eseguendo docker run tua-immagine echo Hello Docker! sovrascrive CMD e verrà eseguito echo Hello Docker!
Si consiglia di usare ENTRYPOINT per il file eseguibile e CMD per passare parametri predefiniti a tale file.