07E. CMD
07E. CMD ๊ด๋ จ
CMD๋ ์ปจํ
์ด๋๊ฐ ์์๋์์ ๋ ์คํฌ๋ฆฝํธ ํน์ ๋ช
๋ น์ ์คํํฉ๋๋ค. ์ฆ docker run
๋ช
๋ น์ผ๋ก ์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ฑฐ๋, docker start
๋ช
๋ น์ผ๋ก ์ ์ง๋ ์ปจํ
์ด๋๋ฅผ ์์ํ ๋ ์คํ๋ฉ๋๋ค. CMD๋ Dockerfile์์ ํ ๋ฒ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ธ(/bin/sh)๋ก ๋ช ๋ น ์คํํ๊ธฐ
.
Dockerfile
CMD touch /home/hello/hello.txt
CMD <๋ช
๋ น>
ํ์์ด๋ฉฐ ์
ธ ์คํฌ๋ฆฝํธ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. FROM์ผ๋ก ์ค์ ํ ์ด๋ฏธ์ง์ ํฌํจ๋ /bin/sh
์คํ ํ์ผ์ ์ฌ์ฉํ๊ฒ ๋๋ฉฐ /bin/sh
์คํ ํ์ผ์ด ์์ผ๋ฉด ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ธ ์์ด ๋ฐ๋ก ์คํํ๊ธฐ
.
Dockerfile
CMD ["redis-server"]
์ ธ ์์ด ๋ฐ๋ก ์คํํ ๋ ๋งค๊ฐ ๋ณ์ ์ค์ ํ๊ธฐ
.
Dockerfile
CMD ["mysqld", "--datadir=/var/lib/mysql", "--user=mysql"]
CMD ["<์คํ ํ์ผ>", "<๋งค๊ฐ ๋ณ์1>", "<๋งค๊ฐ ๋ณ์2>"]
ํ์์
๋๋ค. ์คํ ํ์ผ๊ณผ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ฐฐ์ด ํํ๋ก ์ค์ ํฉ๋๋ค. FROM
์ผ๋ก ์ค์ ํ ์ด๋ฏธ์ง์ /bin/sh
์คํ ํ์ผ์ ์ฌ์ฉํ์ง ์๋ ๋ฐฉ์์
๋๋ค. ์
ธ ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ด ์ธ์๋์ง ์์ผ๋ฏ๋ก ์
ธ ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ๊ณผ ๊ด๋ จ๋ ๋ฌธ์๋ฅผ ๊ทธ๋๋ก ์คํ ํ์ผ์ ๋๊ฒจ์ค ์ ์์ต๋๋ค.
ENTRYPOINT๋ฅผ ์ฌ์ฉํ์์ ๋
.
Dockerfile
ENTRYPOINT ["echo"]
CMD ["hello"]
CMD ["<๋งค๊ฐ ๋ณ์1>", "<๋งค๊ฐ ๋ณ์2>"]
ํ์์
๋๋ค. ENTRYPOINT
์ ์ค์ ํ ๋ช
๋ น์ ๋งค๊ฐ ๋ณ์๋ฅผ ์ ๋ฌํ์ฌ ์คํํฉ๋๋ค. Dockerfile
์ ENTRYPOINT
๊ฐ ์์ผ๋ฉด CMD
๋ ENTRYPOINT
์ ๋งค๊ฐ ๋ณ์๋ง ์ ๋ฌํ๋ ์ญํ ์ ํฉ๋๋ค. ๊ทธ๋์ CMD
๋
์์ ์ผ๋ก ํ์ผ์ ์คํํ ์ ์๊ฒ ๋ฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด Dockerfile
์ ๋น๋ํ์ฌ ์ปจํ
์ด๋๋ฅผ ์์ฑํ๋ฉด hello
๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
sudo docker build --tag example .
sudo docker run example
#
# hello