/ június 6, 2018/ docker/ 0 comments

CMD – ez a parancs fog lefutni, ha a docker run után semmit nem írunk. Ha több van, akkor csak a legutolsó fog lefutni.
ENTRYPOINT – abban segít, hogy a lemezképünket úgy használhassuk, mintha egy bináris lenne. Ha a docker run után paramétereket adunk meg, akkor ez azokat megkapja. Ha a CMD után nem parancsot hanem paramétereket írunk, akkor azokat megkapja alapértelmezetten. Ha nincs CMD, akkor ez fut le, ha nem adunk meg paramétereket.

Kétféle formátumban írhatjuk a parancsokat:

shell forma

RUN apt-get install python3
CMD echo “Hello world”
ENTRYPOINT echo “Hello world”

Shell forma esetén a /bin/sh -c <parancs> futtatja az általunk megadottat.

exec forma

CMD és ENTRYPOINT-nál ez ajánlott.

RUN [“apt-get”, “install”, “python3”]
CMD [“/bin/echo”, “Hello world”]
ENTRYPOINT [“/bin/echo”, “Hello world”]

A következő példában érthető a különbség:

ENV name John Dow
ENTRYPOINT [“/bin/echo”, “Hello, $name”] -> Hello $name-et futtatja, mert nincs ott a shell.
ENTRYPOINT [“/bin/bash”, “-c”, “echo Hello, $name”] -> a bash futtatja megint, értelmezi a változót, mintha shell formában írtuk volna.

Leave a Comment