Sobes.tech
Junior

Čo sú entrypoint a cmd v kontexte Dockeru?

sobes.tech AI

Odpoveď od AI

ENTRYPOINT določa ukaz, ki bo izveden ob zagonu kontejnerja. Če so ob zagonu docker run predani CMD ali ukazni parametri, se ti dodajo kot argumenti k temu ukazu.

CMD zagotavlja privzete argumente za ENTRYPOINT ali se izvede kot ločen ukaz, če ENTRYPOINT ni določen. Če so ob zagonu kontejnerja predani parametri, ti prepišejo vrednost CMD.

Razlike:

Značilnost ENTRYPOINT CMD
Namen Določa glavno ukazno vrstico za izvajanje Nudi argumente ali privzeti ukaz
Prepisovanje Zahteva docker run --entrypoint Lahko se prepiše z argumenti docker run
Uporaba z ENTRYPOINT Argumenti za ENTRYPOINT Privzeti ukaz, če ENTRYPOINT ni določen

Primeri:

Z ENTRYPOINT in CMD:

# Dockerfile
FROM alpine:latest
ENTRYPOINT ["echo", "Pozdrav"]
CMD ["Svet!"]

Ob zagonu docker run vaš-ime-slika se bo izvedel ukaz echo Pozdrav Svet! Ob zagonu docker run vaš-ime-slika Vesolje! se bo izvedel ukaz echo Pozdrav Vesolje!

Samo z CMD:

# Dockerfile
FROM alpine:latest
CMD ["echo", "Pozdrav Svet!"]

Ob zagonu docker run vaš-ime-slika se bo izvedel ukaz echo Pozdrav Svet! Ob zagonu docker run vaš-ime-slika echo Pozdrav Docker! se bo prepisal CMD in izvedel ukaz echo Pozdrav Docker!

Priporočljivo je uporabljati ENTRYPOINT za izvršljivi datoteki in CMD za posredovanje privzetih parametrov tej datoteki.