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
λ 무μλ©λλ€.