Skip to main content

07E. CMD

Less than 1 minuteDevOpsDockercrashcoursepyrasis.comdockerdevops

07E. CMD ๊ด€๋ จ

๋ชฉ์ฐจ

์–ธ์ œ๋‚˜ ์ตœ์‹  Docker

7์žฅ - 5. CMD
์–ธ์ œ๋‚˜ ์ตœ์‹  Docker

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

์ด์ฐฌํฌ (MarkiiimarK)
Never Stop Learning.