Skip to main content

04B. Dockerfile ์ž‘์„ฑํ•˜๊ธฐ

Less than 1 minuteDevOpsDockercrashcoursepyrasis.comdockerdevops

04B. Dockerfile ์ž‘์„ฑํ•˜๊ธฐ ๊ด€๋ จ

๋ชฉ์ฐจ

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

4์žฅ - 2. Dockerfile ์ž‘์„ฑํ•˜๊ธฐ
์–ธ์ œ๋‚˜ ์ตœ์‹  Docker

.Dockerfile์€ Docker ์ด๋ฏธ์ง€ ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. Dockerfile์— ์„ค์ •๋œ ๋‚ด์šฉ๋Œ€๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € example ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ ๋’ค example ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

mkdir example
cd example

๋‹ค์Œ ๋‚ด์šฉ์„ Dockerfile๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

example/Dockerfile
FROM ubuntu:22.04
MAINTAINER Foo Bar <foo@bar.com>

RUN apt update
RUN apt install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
RUN chown -R www-data:www-data /var/lib/nginx

VOLUME ["/data", "/etc/nginx/site-enabled", "/var/log/nginx"]

WORKDIR /etc/nginx

CMD ["nginx"]

EXPOSE 80
EXPOSE 443

์šฐ๋ถ„ํˆฌ 22.04๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ nginx ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•œ Docker ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

  • FROM: ์–ด๋–ค ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ• ์ง€ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Docker ์ด๋ฏธ์ง€๋Š” ๊ธฐ์กด์— ๋งŒ๋“ค์–ด์ง„ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. <์ด๋ฏธ์ง€ ์ด๋ฆ„>:<ํƒœ๊ทธ> ํ˜•์‹์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • MAINTAINER: ๋ฉ”์ธํ…Œ์ด๋„ˆ ์ •๋ณด์ž…๋‹ˆ๋‹ค.
  • RUN: ์…ธ ์Šคํฌ๋ฆฝํŠธ ํ˜น์€ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋ฏธ์ง€ ์ƒ์„ฑ ์ค‘์—๋Š” ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ apt install ๋ช…๋ น์—์„œ -y ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(yum install๋„ ๋™์ผ).
    • ๋‚˜๋จธ์ง€๋Š” nginx ์„ค์ •์ž…๋‹ˆ๋‹ค.
    • VOLUME: ํ˜ธ์ŠคํŠธ์™€ ๊ณต์œ ํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. docker run ๋ช…๋ น์—์„œ -v ์˜ต์…˜์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ) -v /root/data:/data๋Š” ํ˜ธ์ŠคํŠธ์˜ /root/data ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ Docker ์ปจํ…Œ์ด๋„ˆ์˜ /data ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  • CMD: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ์‹คํ–‰ ํŒŒ์ผ ๋˜๋Š” ์…ธ ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค.
  • WORKDIR: CMD์—์„œ ์„ค์ •ํ•œ ์‹คํ–‰ ํŒŒ์ผ์ด ์‹คํ–‰๋  ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค.
  • EXPOSE: ํ˜ธ์ŠคํŠธ์™€ ์—ฐ๊ฒฐํ•  ํฌํŠธ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.

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