์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ํ ์คํธ๋ถ์
- LDA
- dataframe
- PCA
- Python
- ๋ฐ์ดํฐ๋ถ๊ท ํ
- ํฌ๋กค๋ง
- Lambda
- ADP
- ๋น ๋ฐ์ดํฐ
- numpy
- ์ธ๋์ํ๋ง
- ํ์ด์ฌ
- ๋ฐ์ดํฐ๋ถ์์ ๋ฌธ๊ฐ
- ADsP
- ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ
- ๋ ๋ฆฝํ๋ณธ
- t-test
- ๋์ํ๋ณธ
- ์๋ํด๋ผ์ฐ๋
- ๋ฐ์ดํฐ๋ถ์์ค์ ๋ฌธ๊ฐ
- ๊ตฐ์งํ
- datascience
- opencv
- pandas
- DBSCAN
- iloc
- ์ฃผ์ฑ๋ถ๋ถ์
- ๋ฐ์ดํฐ๋ถ์
- ์ค๋ฒ์ํ๋ง
Data Science LAB
[Docker] Docker์์ image ์์ฑ ๋ณธ๋ฌธ
๋ณธ ํฌ์คํ ์ NaverBoostcamp AI Tech 5๊ธฐ ์๋น์ค ๊ฐ๋ฐ ๊ธฐ์ด ๊ฐ์ ์๊ฐ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
1. Docker ์ค์น
๋์ปค ๊ณต์ ํํ์ด์ง์์ ์ด์์ฒด์ ์ ๋ง๋ Docker Desktop ์ค์น
https://docs.docker.com/get-docker/
Get Docker
docs.docker.com
2. ํฐ๋ฏธ๋์์ docker ์ปค๋งจ๋๊ฐ ๋์ํ๋ ์ง ํ์ธ
์์ ๊ฐ์ ํ๋ฉด์ด ๋์จ๋ค๋ฉด ์ ์ค์น ๋๊ฒ
3. ํ๋ก์ ํธ setting
- Pytorch ์ฝ๋ ์คํ์ ์ํ docker image ๋ฅผ ์์ฑํด๋ณด๊ณ ์ ํจ
# ํด๋ ์์ฑ
mkdir [ํด๋๋ช
]
# ์์ฑํ ํด๋๋ก ์ด๋
cd [ํด๋๋ช
]
# ํ์ด์ฌ ๋ฒ์ ํ์ธ : ์ถฉ๋ ์๋๊ฒ ์ค์ ์ํด์ผํจ
python -V
poetry init
poetry add torch torchvision
Poetry
์์กด์ฑ ๊ด๋ฆฌ ๋ฐ ํ์ด์ฌ ๋ด ํจํค์ง์ ์ํ ํด๋ก ํ๋ก์ ํธ๊ฐ ์์กดํ๊ณ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฒ์ ์ ๊ด๋ฆฌํด์ค
์์กด์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ค
poetry๋ lock ํ์ผ๊ณผ pyproject.toml(requirements.txt ๊ฐ์ด ์ค์นํ ํจํค์ง๋ฅผ ๋ฆฌ์คํ ํด๋์ ํ์ผ)์ ์๋์ผ๋ก ์์ฑ ๋ฐ ์ ๋ฐ์ดํธํจ
4. Docker file ์์ฑ
Docker Image๋ฅผ ๋น๋ํ๊ธฐ ์ํ ์ ๋ณด๊ฐ ๋ด๊ธด Dockerfile์ ์์ฑํด์ค๋ค.
# FROM ์ด๋ฏธ์ง ์ด๋ฆ : ํ๊ทธ -> ๋ฒ ์ด์ค ์ด๋ฏธ์ง ์ง์ (dockerhub์ ์กด์ฌํ๋ ์ด๋ฏธ์ง๊ฐ์ ธ์ด)
FROM pytorch/pytorch:2.0.0-cuda11.7-cudnn8-runtime
# COPY "๋ก์ปฌ ๋๋ ํ ๋ฆฌ ํ์ผ" "์ปจํ
์ด๋ ๋ด ๋๋ ํ ๋ฆฌ ํ์ผ"
# ํ์ผ์ ์ปจํ
์ด๋์์ ์ฌ์ฉํ๋ ค๋ฉด COPY ๋ช
๋ น์ด๋ก ๋ฐ๋์ ๋ณต์ฌ
COPY . /app
# ENV "ํ๊ฒฝ๋ณ์ ์ด๋ฆ=๊ฐ" : ์ปจํ
์ด๋ ๋ด ํ๊ฒฝ๋ณ์ ์ง์
ENV PYTHONPATH=/app
# RUN "์คํํ ๋ฆฌ๋
์ค ๋ช
๋ น์ด"
RUN pip install poetry=1.4.2 &&\
pip install -r requirements.txt
# CMD ['์คํํ ๋ช
๋ น์ด', '์ธ์', ...]
CMD ['python', 'main.py']
๊ทธ ์ธ์ ์ฌ์ฉํ๋๊ฒ
- EXPOSE : ์ปจํ ์ด๋ ์ธ๋ถ์ ๋ ธ์ถํ ํฌํธ ์ง์
- ENTRYPOINT : ์ด๋ฏธ์ง๋ฅผ ์ปจํ ์ด๋๋ก ๋์ธ ๋ ํญ์ ์คํํ๋ ์ปค๋งจ๋
5. Docker image Build
docker build -t <๋น๋ํ ์ด๋ฏธ์ง ์ด๋ฆ:ํ๊ทธ ์ด๋ฆ> "Dockerfile์ด ์์นํ ๊ฒฝ๋ก"
-t "์ด๋ฏธ์ง ์ด๋ฆ:ํ๊ทธ"์ต์ ์ผ๋ก ์ด๋ฏธ์ง ์ด๋ฆ๊ณผ ํ๊ทธ๋ฅผ ์ง์ ํ ์ ์์ (default : latest)
6. ๋น๋๋ ์ด๋ฏธ์ง ํ์ธ
docker images
์์ ๋ช ๋ น์ด๋ก ๋ฐฉ๊ธ ๋น๋ํ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ ์ ์์
7. ์ปจํ ์ด๋ ์คํ
docker run " ์ด๋ฏธ์ง ์ด๋ฆ:ํ๊ทธ"
๋ฐฉ๊ธ ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ์คํํ๋ค. (ํ๊ทธ๊ฐ latest์ธ ๊ฒฝ์ฐ๋ ์๋ต ๊ฐ๋ฅํจ)
8. Docker Image Push
์ด๋ฏธ์ง ์ ์ฅ์์ธ Container Registry๋ก Docker Image๋ฅผ pushํ ์ ์์
1) Dockerhub์์ ๊ณ์ ์์ฑ
Docker Hub Container Image Library | App Containerization
Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.
hub.docker.com
2) ๋ก๊ทธ์ธํ๋ฉด dockerhub์ pushํ ์ด๋ฏธ์ง ๋ชฉ๋ก์ ๋ณผ ์ ์์
3) docker login ๋ช ๋ น์ด๋ก ๊ณ์ ์ CLI์ ์ฐ๋
docker login
4) tag์ค์
docker tag "๊ธฐ์กด ์ด๋ฏธ์ง:ํ๊ทธ" "์ ์ด๋ฏธ์ง ์ด๋ฆ:ํ๊ทธ"
dockerhub์ ์ฌ๋ฆด ์ด๋ฏธ์ง ์ด๋ฆ์ ๋ด ๊ณ์ ID/์ด๋ฏธ์ง ์ด๋ฆ ํํ์ฌ์ผํจ
docker push "์ด๋ฏธ์ง ์ด๋ฆ:ํ๊ทธ"
-> pushํ ์ด๋ฏธ์ง๋ docker pull ๋ช ๋ น์ด๋ก ์ด๋์๋ ๋ฐ์ ์ ์์