07F. ENTRYPOINT
07F. ENTRYPOINT κ΄λ ¨

ENTRYPOINTλ 컨ν
μ΄λκ° μμλμμ λ μ€ν¬λ¦½νΈ νΉμ λͺ
λ Ήμ μ€νν©λλ€. μ¦ docker run λͺ
λ ΉμΌλ‘ 컨ν
μ΄λλ₯Ό μμ±νκ±°λ, docker start λͺ
λ ΉμΌλ‘ μ μ§λ 컨ν
μ΄λλ₯Ό μμν λ μ€νλ©λλ€. ENTRYPOINTλ Dockerfileμμ λ¨ νλ²λ§ μ¬μ©ν μ μμ΅λλ€.
μ
Έ(/bin/sh)λ‘ λͺ
λ Ή μ€ννκΈ°
.
Dockerfile
ENTRYPOINT touch /home/hello/hello.txt
ENTRYPOINT <λͺ
λ Ή> νμμ΄λ©° μ
Έ μ€ν¬λ¦½νΈ ꡬ문μ μ¬μ©ν μ μμ΅λλ€. FROMμΌλ‘ μ€μ ν μ΄λ―Έμ§μ ν¬ν¨λ /bin/sh μ€ν νμΌμ μ¬μ©νκ² λλ©° /bin/sh μ€ν νμΌμ΄ μμΌλ©΄ μ¬μ©ν μ μμ΅λλ€.
μ Έ μμ΄ λ°λ‘ μ€ννκΈ°
.
Dockerfile
ENTRYPOINT ["/home/hello/hello.sh"]
.
Dockerfile
ENTRYPOINT ["/home/hello/hello.sh", "--hello=1", "--world=2"]
ENTRYPOINT ["<μ€ν νμΌ>", "<λ§€κ° λ³μ1>", "<λ§€κ° λ³μ2>"] νμμ
λλ€. μ€ν νμΌκ³Ό λ§€κ° λ³μλ₯Ό λ°°μ΄ ννλ‘ μ€μ ν©λλ€. FROMμΌλ‘ μ€μ ν μ΄λ―Έμ§μ /bin/sh μ€ν νμΌμ μ¬μ©νμ§ μλ λ°©μμ
λλ€. μ
Έ μ€ν¬λ¦½νΈ λ¬Έλ²μ΄ μΈμλμ§ μμΌλ―λ‘ μ
Έ μ€ν¬λ¦½νΈ λ¬Έλ²κ³Ό κ΄λ ¨λ λ¬Έμλ₯Ό κ·Έλλ‘ μ€ν νμΌμ λκ²¨μ€ μ μμ΅λλ€.
CMDμ ENTRYPOINTλ 컨ν
μ΄λκ° μμ±λ λ λͺ
λ Ήμ΄ μ€νλλ κ²μ λμΌνμ§λ§ docker run λͺ
λ Ήμμ λμ λ°©μμ΄ λ€λ¦
λλ€.
λ€μκ³Ό κ°μ΄ Dockerfileμμ CMDλ‘ echo λͺ
λ Ήμ μ¬μ©νμ¬ helloλ₯Ό μΆλ ₯ν©λλ€.
.
Dockerfile
FROM ubuntu:latest
CMD ["echo", "hello"]
컨ν
μ΄λλ₯Ό μμ±ν λ docker run <μ΄λ―Έμ§> <μ€νν νμΌ> νμμΈλ° μ΄λ―Έμ§ λ€μμ μ€νν νμΌμ μ€μ ν μ μμ΅λλ€. docker run λͺ
λ Ήμμ μ€νν νμΌμ μ€μ νλ©΄ CMDλ 무μλ©λλ€.
sudo docker build --tag example .
sudo docker run example echo world
#
# world
CMD ["echo", "hello"]λ 무μλκ³ docker run λͺ
λ Ήμμ μ€μ ν echo worldκ° μ€νλμ΄ worldκ° μΆλ ₯λμμ΅λλ€. docker run λͺ
λ Ήμμ μ€μ ν <μ€νν νμΌ>κ³Ό Dockerfileμ CMDλ κ°μ κΈ°λ₯μ
λλ€.
μ΄μ ENTRYPOINTμ
λλ€. λ€μκ³Ό κ°μ΄ Dockerfileμμ ENTRYPOINTλ‘ echo λͺ
λ Ήμ μ¬μ©νμ¬ helloλ₯Ό μΆλ ₯ν©λλ€.
.
Dockerfile
FROM ubuntu:latest
ENTRYPOINT ["echo", "hello"]
.Dockerfileμ λΉλνμ¬ docker run λͺ
λ ΉμΌλ‘ μ€νν©λλ€. docker run λͺ
λ Ήμμ μ€νν νμΌμ μ€μ νλ©΄ ENTRYPOINT 무μλμ§ μκ³ , μ€νν νμΌ μ€μ μ체λ₯Ό λ§€κ° λ³μλ‘ λ°μμ μ²λ¦¬ν©λλ€.
sudo docker build --tag example .
sudo docker run example echo world
#
# hello echo world
ENTRYPOINT ["echo", "hello"]μμ echo helloκ° μ€νλμ΄ helloκ° μΆλ ₯λκ³ , docker run λͺ
λ Ήμμ μ€μ ν λ΄μ©μ΄ ENTRYPOINT ["echo", "hello"]μ λ§€κ° λ³μλ‘ μ²λ¦¬λμ΄ echo worldλ ν¨κ» μΆλ ₯λ©λλ€. μ
Έμμλ λ€μκ³Ό κ°μ΄ ννν μ μμ΅λλ€.
echo hello echo world
#
# hello echo world
echo λͺ
λ Ή μλ λ€λ₯Έ λ°©μμΌλ‘ μ€νν΄λ΄
λλ€. λ€μκ³Ό κ°μ΄ 1 2 3 4λ₯Ό λ겨주면 κ·Έλλ‘ 1 2 3 4κ° μΆλ ₯λ©λλ€.
sudo docker run example 1 2 3 4
#
# hello 1 2 3 4
ENTRYPOINTλ docker run λͺ
λ Ήμμ --entrypoint μ΅μ
μΌλ‘λ μ€μ ν μ μμ΅λλ€. --entrypoint μ΅μ
μΌλ‘ catμ μ€ννκ³ /etc/hostname νμΌμ λ΄μ©μ μΆλ ₯ν©λλ€.
sudo docker run --entrypoint="cat" example /etc/hostname
#
# 9efe43ea4d40
--entrypoint μ΅μ
μ μ€μ νλ©΄ Dockerfileμ μ€μ ν ENTRYPOINTλ 무μλ©λλ€.