Sobes.tech
Junior

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.