Č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.