- 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 μ ꡬλΆν μ μλ€.