Mis on entrypoint ja cmd Docker kontekstis?
sobes.tech AI
Vastus AI-lt
ENTRYPOINT määrab käsu, mis täidetakse konteineri käivitamisel. Kui CMD või käsu parameetrid edastatakse docker run käivitamisel, lisatakse need selle käsu argumentidena.
CMD pakub vaikimisi argumente ENTRYPOINT jaoks või täidetakse eraldi käsuna, kui ENTRYPOINT ei ole määratud. Kui konteineri käivitamisel edastatakse parameetrid, ületavad need CMD väärtuse.
Erinevused:
| Omadus | ENTRYPOINT | CMD |
|---|---|---|
| Otstarve | Määrab põhikäsu, mida täita | Pakub vaikimisi argumente või käsku |
| Üle kirjutamine | Nõuab docker run --entrypoint |
Üle kirjutatakse docker run argumentidega |
Kasutamine ENTRYPOINT'iga |
Argumente ENTRYPOINT jaoks |
Vaikimisi käsk, kui ENTRYPOINT puudub |
Näited:
Kasutades ENTRYPOINT ja CMD:
# Dockerfile
FROM alpine:latest
ENTRYPOINT ["echo", "Hello"]
CMD ["World!"]
Käivitatakse docker run sinu-asi-beeld: täidetakse echo Hello World!
Käivitatakse docker run sinu-asi-beeld Universe!: täidetakse echo Hello Universe!
Ainult CMD-ga:
# Dockerfile
FROM alpine:latest
CMD ["echo", "Hello World!"]
Käivitatakse docker run sinu-asi-beeld: täidetakse echo Hello World!
Käivitatakse docker run sinu-asi-beeld echo Hello Docker!: ületab CMD, täidetakse echo Hello Docker!
Soovitatav on kasutada ENTRYPOINT täidetava faili jaoks ja CMD vaikeseadete edastamiseks sellele failile.