Kas ir entrypoint un cmd Docker kontekstā?
sobes.tech AI
Atbilde no AI
ENTRYPOINT nosaka komandu, kas tiks izpildīta, palaidot konteineru. Ja CMD vai komandas parametri tiek nodoti, palaižot docker run, tie tiek pievienoti kā argumenti šai komandai.
CMD nodrošina noklusējuma argumentus ENTRYPOINT vai tiek izpildīts kā atsevišķa komanda, ja ENTRYPOINT nav definēts. Ja palaižot konteineru tiek nodoti parametri, tie pārdefinē CMD vērtību.
Atšķirības:
| Īpašība | ENTRYPOINT | CMD |
|---|---|---|
| Mērķis | Nosaka galveno komandu, kas jāizpilda | Nodrošina noklusējuma argumentus vai komandu |
| Pārdefinēšana | Prasa docker run --entrypoint |
Pārdefinējas ar docker run argumentiem |
Izmantošana ar ENTRYPOINT |
Argumenti ENTRYPOINT |
Noklusējuma komanda, ja ENTRYPOINT nav |
Piemēri:
Ar ENTRYPOINT un CMD:
# Dockerfile
FROM alpine:latest
ENTRYPOINT ["echo", "Hello"]
CMD ["World!"]
Palaižot docker run tavs-vards-attēls: tiks izpildīts echo Hello World!
Palaižot docker run tavs-vards-attēls Universe!: tiks izpildīts echo Hello Universe!
Tikai ar CMD:
# Dockerfile
FROM alpine:latest
CMD ["echo", "Hello World!"]
Palaižot docker run tavs-vards-attēls: tiks izpildīts echo Hello World!
Palaižot docker run tavs-vards-attēls echo Hello Docker!: Pārdefinēs CMD, tiks izpildīts echo Hello Docker!
Ieteicams izmantot ENTRYPOINT izpildāmajam failam un CMD noklusējuma parametru nodošanai šim failam.