250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

[Docker] Docker์—์„œ image ์ƒ์„ฑ ๋ณธ๋ฌธ

๐Ÿณ Docker

[Docker] Docker์—์„œ image ์ƒ์„ฑ

ใ…… ใ…œ ใ…” ใ…‡ 2023. 4. 29. 18:27
728x90

 

๋ณธ ํฌ์ŠคํŒ…์€ 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์—์„œ ๊ณ„์ • ์ƒ์„ฑ

https://hub.docker.com/

 

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 ๋ช…๋ น์–ด๋กœ ์–ด๋””์„œ๋“  ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ

728x90
Comments