๋์ปค ์ด๋ฏธ์ง๋ ์ปจํ ์ด๋ ์คํ์ ํ์ํ ๋ชจ๋ ์์(์ ํ๋ฆฌ์ผ์ด์ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๊ฒฝ ์ค์ ๋ฑ)๋ฅผ ํฌํจํ๋ ์ฝ๊ธฐ ์ ์ฉ ํ ํ๋ฆฟ์ด๋ค. ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ๋น๋ํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ค.
1. ๋์ปค ์ด๋ฏธ์ง ๋น๋
1.1 ๋์ปคํ์ผ(Dockerfile) ์์ฑ
๋์ปค ์ด๋ฏธ์ง๋ Dockerfile์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋จ
๊ธฐ๋ณธ์ ์ธ Dockerfile ์์๋ ๋ค์๊ณผ ๊ฐ์:
# ๋ฒ ์ด์ค ์ด๋ฏธ์ง ์ค์
FROM python:3.9
# ์์
๋๋ ํฐ๋ฆฌ ์ค์
WORKDIR /app
# ํ์ ํจํค์ง ๋ณต์ฌ ๋ฐ ์ค์น
COPY requirements.txt .
RUN pip install -r requirements.txt
# ์ ํ๋ฆฌ์ผ์ด์
๋ณต์ฌ
COPY . .
# ์คํ ๋ช
๋ น์ด ์ค์
CMD ["python", "app.py"]
1.2 ๋์ปค ์ด๋ฏธ์ง ๋น๋
์ Dockerfile์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด ๋จ:
docker build -t myapp:latest .
์ต์ ์ค๋ช :
- -t myapp:latest : ์ด๋ฏธ์ง ์ด๋ฆ(myapp)๊ณผ ํ๊ทธ(latest) ์ง์
- . : ํ์ฌ ๋๋ ํฐ๋ฆฌ์ Dockerfile์ ์ฌ์ฉํ์ฌ ๋น๋
2. ๋์ปค ์ด๋ฏธ์ง ๊ด๋ฆฌ
2.1 ๋์ปค ์ด๋ฏธ์ง ๋ชฉ๋ก ํ์ธ
๋น๋๋ ๋์ปค ์ด๋ฏธ์ง๋ ๋ค์ ๋ช ๋ น์ด๋ก ํ์ธํ ์ ์์:
docker images
2.2 ๋์ปค ์ด๋ฏธ์ง ์ญ์
ํน์ ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํ๋ ค๋ฉด:
docker rmi ์ด๋ฏธ์ง์ด๋ฆ ๋๋ ์ด๋ฏธ์งID
2.3 ์ด๋ฏธ์ง ํ๊ทธ ๋ณ๊ฒฝ
๊ธฐ์กด ์ด๋ฏธ์ง๋ฅผ ์๋ก์ด ์ด๋ฆ์ผ๋ก ํ๊ทธํ ์ ์์:
docker tag myapp:latest myrepo/myapp:v1.0
2.4 ๋์ปค ํ๋ธ(Docker Hub) ๋๋ ํ๋ผ์ด๋น ๋ ์ง์คํธ๋ฆฌ์ ์ด๋ฏธ์ง ์ ๋ก๋
๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ๋ ค๋ฉด ๋จผ์ ๋ก๊ทธ์ธ:
docker login
์ด๋ฏธ์ง๋ฅผ ํธ์ํ๋ ค๋ฉด:
docker push myrepo/myapp:v1.0
ํ๋ผ์ด๋น ๋ ์ง์คํธ๋ฆฌ์ ์ ๋ก๋ํ๋ ค๋ฉด ๋ ์ง์คํธ๋ฆฌ ์ฃผ์๋ฅผ ํฌํจํด์ผ ํจ:
docker tag myapp:latest myregistry.com/myapp:v1.0
docker push myregistry.com/myapp:v1.0
3. ๋์ปค ์ด๋ฏธ์ง ์ต์ ํ
3.1 ๋ฉํฐ์คํ ์ด์ง ๋น๋ ์ฌ์ฉ
๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ฒฝ๋ํํ๋ ค๋ฉด ๋ฉํฐ์คํ ์ด์ง ๋น๋๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ์ข์:
# ๋น๋ ๋จ๊ณ
FROM node:18 AS builder
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
RUN npm run build
# ์คํ ๋จ๊ณ
FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html
์ด๋ฅผ ํ์ฉํ๋ฉด ๋ถํ์ํ ํ์ผ์ ํฌํจํ์ง ์์ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ค์ผ ์ ์์
3.2 ๋ถํ์ํ ํ์ผ ์ ์ธ
.dockerignore ํ์ผ์ ์ค์ ํ์ฌ ๋ถํ์ํ ํ์ผ์ ์ ์ธํ ์ ์์:
node_modules
*.log
.git
3.3 ๊ฒฝ๋ ๋ฒ ์ด์ค ์ด๋ฏธ์ง ์ฌ์ฉ
ํ์ํ ๊ธฐ๋ฅ๋ง ํฌํจํ ๊ฒฝ๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ฉด ์ฉ๋์ ์ค์ผ ์ ์์.
- ์ผ๋ฐ์ ์ธ python ์ด๋ฏธ์ง ๋์ python:alpine ์ฌ์ฉ
- ubuntu ๋์ debian ๋๋ alpine ๊ธฐ๋ฐ ์ด๋ฏธ์ง ์ฌ์ฉ
'๊ฐ๋ฐ Code > ๋ถ๋ก Supplement' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Supplement][Docker] Building and Managing Docker Images (0) | 2025.02.12 |
---|---|
[Supplement][Docker] Understanding Docker (0) | 2025.02.12 |
[Supplement][Docker] Docker ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.02.07 |