ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ENTRYPOINT ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Docker ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅.
Π₯ΠΎΡΡ ENTRYPOINT Π½Π΅Π»ΡΠ·Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅, ΠΊΠΎΠΌΠ°Π½Π΄Π° docker run ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π΅.
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ENTRYPOINT Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ docker run.
π³Β Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ENTRYPOINT ΠΈ CMD Π² Dockerfile
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ENTRYPOINT Π² Docker
ENTRYPOINT – ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Dockerfile, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Docker, ΠΊΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΡΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, Ρ. Π΅. Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π΅Π΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ.
ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ².
Π Π΄ΠΎΠΊΠ΅ΡΡΠ°ΠΉΠ»Π°Ρ ENTRYPOINT ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ CMD.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ CMD ΠΈ ENTRYPOINT Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅ΠΌΠΎΠ½ Docker ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ CMD, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ:
π³Β Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ENTRYPOINT ΠΈ CMD Π² Dockerfile
ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ENTRYPOINT ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π° CMD – Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ Dockerfile ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π· Docker ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ test-override.
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ENTRYPOINT ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Docker Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo, Π° CMD ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Β«Hello, World!Β» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
FROM ubuntu
MAINTAINER test-user
RUN apt update
ENTRYPOINT ["echo"]
CMD ["Hello, World!"]
Docker ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ docker run:
docker run test-override
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ENTRYPOINT, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΡΡ ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄.
ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ docker run, Docker ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ CMD:
docker run test-override new-argument
Π Π²ΡΠ²ΠΎΠ΄Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ Π½ΠΎΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ENTRYPOINT Ρ ΠΏΠΎΠΌΠΎΡΡΡ docker run
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ CMD, Π½ΠΎ ENTRYPOINT ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ.
Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ENTRYPOINT Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΠΏΡΠΈΡ –entrypoint ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ docker run:
docker run [options] --entrypoint [new_command] [docker_image]
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅:
sudo docker run -it --entrypoint /bin/bash test-override
Π Π²ΡΠ²ΠΎΠ΄Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ENTRYPOINT ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠΉΠ΄Π΅Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ Π·Π°ΠΏΡΡΡΠΈΡ Π΅Π³ΠΎ ΡΠ½ΠΎΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ docker run, Docker Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ENTRYPOINT ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π»ΠΎΡΡ ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π΅ ENTRYPOINT ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π Π½Π΅ΠΌ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»Π°ΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ docker run ΠΈ ENTRYPOINT, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΡΠ½ΡΠ»ΠΎΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ –entrypoint.