Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Dockerfiles 작성 Best Practice

Info
titleBest practices for writing Dockerfiles.

https://docs.docker.com/develop/develop-images/dockerfile_best-practices/


Code Block
FROM ubuntu:15.04
COPY . /app
RUN make /app
CMD python /app/app.py
  • FROM : ubuntu:15.04 Docker 이미지 레이어를 만듭니다 .
  • COPY : Docker 클라이언트의 현재 디렉토리에서 파일을 추가합니다.
  • RUN make응용 프로그램을 빌드합니다. 
  • CMD : 컨테이너 내에서 실행할 명령을 지정합니다.

이미지 및 레이어

Info

이미지 레이어 및 Docker가 이미지를 빌드하고 저장하는 방법에 대한 자세한 내용은 스토리지 드라이버 정보를 참조하십시오 .


Image Added


컨테이너 및 레이어


Info
title동일한 이미지를 공유하는 컨테이너들 예

Image Added


디스크의 컨테이너 크기

Code Block
docker ps -s
  • size: 각 컨테이너의 쓰기 가능한 계층에 사용되는 데이터 양 (디스크에 있음).

  • virtual size: 컨테이너에서 사용하는 읽기 전용 이미지 데이터와 컨테이너의 쓰기 가능한 레이어에 사용되는 데이터의 양입니다 size. 여러 컨테이너가 일부 또는 모든 읽기 전용 이미지 데이터를 공유 할 수 있습니다. 동일한 이미지에서 시작된 두 개의 컨테이너는 읽기 전용 데이터의 100 %를 공유하는 반면 공통 레이어를 가진 서로 다른 이미지를 가진 두 개의 컨테이너는 공통 레이어를 공유합니다. 따라서 가상 크기를 합산 할 수는 없습니다. 이것은 잠재적으로 중요한 디스크 사용량을 과소 평가합니다.


불필요한 Layer가 생성되지 않도록 권장 합니다.

Not Bed

Info
ADD http://example.com/big.tar.xz /usr/src/things/
RUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things
RUN make -C /usr/src/things all


Best

Info
RUN mkdir -p /usr/src/things \
    && curl -SL http://example.com/big.tar.xz \
    | tar -xJC /usr/src/things \
    && make -C /usr/src/things all


Docker 공식 이미지

Info

https://docs.docker.com/docker-hub/official_images/