- toc {:toc}
Docker Hub
-
Repositoryes
- ์ปจํ ์ด๋ ์ด๋ฏธ์ง push, pull
-
Official Images
- ๋์ ์์ค์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ ๊ณต ๋ฐ์ ์ ์๋ค.
-
Team & Organizations
- ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ ๊ฐ์ธ์ ์ธ ๋ฆฌํฌ์ ๋ํ ์ ๊ทผ์ ๋ค๋ฃฐ ์ ์๋ค.
-
IaC์ ์ํํธ์จ์ด ๊ฐ๋ฐ๊ณผ ์ ์ฌํ ๊ณผ์
-
python/C++์ ์์ค์ฝ๋๋ฅผ ๋ง๋๋ ๊ฒ๊ณผ ๊ฐ์ด Dockerfile์ ๋ง๋ ๋ค.
-
Docker๋ Dockerfile์ instruction์ ์ฝ์ด ์ด๋ฏธ์ง๋ฅผ ๋ง๋ ๋ค.
-
์ปดํ์ผ/๋น๋ํด์ ์คํํ์ผ์ ๋ง๋๋ ๊ฒ๊ณผ ๊ฐ์ด ๋ง๋ ์ด๋ฏธ์ง๋ก ์คํํ ์ ์๋ ์ปจํ ์ด๋๋ฅผ ๋ง๋ ๋ค.
-
์คํ ํ์ผ์ ์คํํ๋ฉด C++์ main ํจ์๋ฅผ ํธ์ถํด ์คํํ๊ณ python์ .py ์คํํ์ผ์ ์คํํ๋ ๊ฒ๊ณผ ๊ฐ์ด Docker CLI๋ก ์คํ ๋ช ๋ น์ ๋ด๋ ค ์ปจํ ์ด๋๊ฐ ๋ช ๋ น์ ์คํํ๋๋ก ๋ง๋ ๋ค.
Dockerfile
- Dockerfile : ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ์ํด ํ์ํ ๋ชจ๋ ์ปค๋ฉ๋๋ฅผ ์์ฐจ์ ์ผ๋ก ํฌํจํ ํ
์คํธ ํ์ผ
- Docker๋ Dockerfile๋ก ๋ถํฐ instruction์ ์ฝ๊ณ ์๋์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ค.
- Docker ์ด๋ฏธ์ง๋ Dockerfile instruction์ ๋ํ๋ด๋ ๊ฐ๊ฐ์ read-only layer๋ค๋ก ๊ตฌ์ฑ๋๋ค.
- Layer๋ ๋ง์ด ์์ ์ ์๋ค
FROM ubuntu:latest # sub layer๋ก ubuntu๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค.
MAINTAINER fnndsc "dev@babymri.org" # Dockerfile์ ์์ ๊ถ์
RUN apt-get update \
&& apt-get install -y python3-pip python3-dev \ # &&๋ก ๊ตฌ๋ถ์ ํ ์ ์๋ค.
&& cd /usr/local/bin \
&& ln -s /usr/bin/python3 python \
&& pip3 install --upgrade pip
ENTRYPOINT ["python3"] # Dockerfile์ ๋ชฉ์ : ํ๊ฒฝ ์ค์
FROM, RUN ๋ฑ ๋นจ๊ฐ ๋ช ๋ น์ ์ฌ์ฉํ ๋ layer๊ฐ ์์ด๊ฒ ๋๋๋ฐ layer๊ฐ ๋ณดํต ์ฝ 30๊ฐ ์ด์์ผ๋ก ๋ง์์ง๋ฉด too much layer ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค. ๋๋ฌธ์ RUN์ &&๋ฅผ ํตํด ์ฐ๊ฒฐํ ๊ฒ.
FROM python:3 # python3 docker image๋ก๋ถํฐ layer๋ฅผ ๋ง๋ ๋ค.
COPY . /app # docker client์ ํ์ฌ ๋๋ ํ ๋ฆฌ ํ์ผ๋ค์ /app ํด๋์ ์ถ๊ฐ
CMD [ "python", "/app/myapp.py" ] # ์ปจํ
์ด๋์์ ์คํํ ์ปค๋ฉ๋๋ฅผ ๋ช
์ํ๋ค.Dockerfile Execution
docker build -t myapp
docker run -it --rm --name py3 myappDockerfile Layers
- Web Application Layer 9 : CMD Start model train Layer 8 : RUN Commands to set up model
โฆ
Lifecycle of Container
- Conatiner : ์คํ๋๋ ํ๋ก๊ทธ๋จ โ Lifecycle of process์ ๊ฐ์ด ์ํ๋ฅผ ๊ฐ๋๋ค.
- ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ๋ฐฉ์
- Dockerfile๋ก๋ถํฐ ๋น๋ํ๋ ๋ฐฉ์
- Runningํ๋ container๋ฅผ pauseํ๊ณ ๋น๋ํ๋ ๋ฐฉ์
๋ณด๋ค ๋ ์ธ๋ถํํด์ lifecycle์ ๊ตฌ๋ถํ ์ ์๋ค.