1. Dockerfile์ด๋?
โข
Docker ์ด๋ฏธ์ง๋ฅผ ์๋์ผ๋ก ๋น๋ํ๊ธฐ ์ํ ์ค์ ํ์ผ
โข
์ด๋ค ๋ฒ ์ด์ค ์ด๋ฏธ์ง๋ฅผ ์ธ์ง, ์ด๋ค ํจํค์ง๋ฅผ ์ค์นํ ์ง, ์ด๋ค ๋ช
๋ น์ด๋ฅผ ์คํํ ์ง ๋ฑ์ ๋จ๊ณ๋ณ๋ก ์ ์ํจ
โข
๊ฐ๋ฐ์๊ฐ ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌํ์ฑ ์๊ฒ ์ด๋ฏธ์งํํ ์ ์๊ฒ ํด์ฃผ๋ ํต์ฌ ๋๊ตฌ์
2. Dockerfile ๊ธฐ๋ณธ ๊ตฌ์กฐ
# ๋ฒ ์ด์ค ์ด๋ฏธ์ง ์ ํ
FROM <์ด๋ฏธ์ง๋ช
>:<ํ๊ทธ>
# ๋ฉํ๋ฐ์ดํฐ (์ ํ์ฌํญ)
LABEL maintainer="yourname@example.com"
# ํ์ํ ํจํค์ง ์ค์น
RUN apt-get update && apt-get install -y python3
# ํ์ผ ๋ณต์ฌ (ํธ์คํธ โ ์ปจํ
์ด๋)
COPY ./app /app
# ์์
๋๋ ํ ๋ฆฌ ์ค์
WORKDIR /app
# ํ๊ฒฝ ๋ณ์ ์ค์
ENV PORT=8080
# ์คํํ ๋ช
๋ น์ด
CMD ["python3", "app.py"]
Docker
๋ณต์ฌ
3. ์ฃผ์ ๋ช
๋ น์ด
โข
FROM : ์ด๋ค ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ง ์ง์ (์: FROM ubuntu:20.04)
โข
LABEL : ์ด๋ฏธ์ง ๋ฉํ๋ฐ์ดํฐ ์ถ๊ฐ (๊ด๋ฆฌ์, ๋ฒ์ ์ ๋ณด ๋ฑ)
โข
RUN : ์ด๋ฏธ์ง ๋น๋ ์ ์คํํ ๋ช
๋ น์ด (ํจํค์ง ์ค์น ๋ฑ)
โข
COPY / ADD : ํ์ผ์ ์ด๋ฏธ์ง์ ๋ณต์ฌ
โข
WORKDIR : ์์
๋๋ ํ ๋ฆฌ ์ค์ (cd ๊ฐ์ ์ญํ )
โข
ENV : ํ๊ฒฝ ๋ณ์ ์ค์
โข
EXPOSE : ์ปจํ
์ด๋์์ ์ฌ์ฉํ ํฌํธ ์ง์
โข
CMD : ์ปจํ
์ด๋๊ฐ ์คํ๋ ๋ ๊ธฐ๋ณธ์ผ๋ก ์คํํ ๋ช
๋ น์ด (1๊ฐ๋ง ๊ฐ๋ฅ)
โข
ENTRYPOINT : CMD์ ์ ์ฌํ์ง๋ง, ์คํ ๋ช
๋ น์ด๋ฅผ ๊ณ ์ ํ ๋ ์ฌ์ฉ
4. Dockerfile โ ์ด๋ฏธ์ง ๋น๋ โ ์คํ
์ด๋ฏธ์ง ๋น๋
docker build -t <์ด๋ฏธ์ง๋ช
>:<ํ๊ทธ> .
Bash
๋ณต์ฌ
์ปจํ
์ด๋ ์คํ
docker run -d --name <์ปจํ
์ด๋๋ช
> <์ด๋ฏธ์ง๋ช
>:<ํ๊ทธ>
Bash
๋ณต์ฌ
5. ๊ฐ๋จ ์์ (Python ์ฑ)
FROM python:3.10-slim
WORKDIR /app
COPY app.py /app
CMD ["python", "app.py"]
Docker
๋ณต์ฌ
๋น๋ & ์คํ:
docker build -t my-python-app .
docker run -d --name <์ปจํ
์ด๋๋ช
> my-python-app
Bash
๋ณต์ฌ
ํต์ฌ ์์ฝ
โข
Dockerfile = ์ด๋ฏธ์ง ๋น๋ ๋ ์ํผ
โข
FROM โ RUN โ COPY โ WORKDIR โ CMD ์์๋ก ๋ง์ด ์์ฑ
โข
docker build ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ณ docker run ์ผ๋ก ์คํ