TIL | Docker file, lmage layer

sik2·2021년 5월 16일
2

Docker

목록 보기
2/4

# Step1
FROM centos:7

# Step2
RUN touch /etc/yum.repos.d/nginx.repo && echo -e '[nginx]\nname=nage repo\nbaseurl=http://nginx.org/packages/centos/7/$basearch/\ngpgcheck=0\nenabled=1' > /etc/yum.repos.d/nginx.repo

# Step3
RUN yum -y install nginx

# Step4
EXPOSE 80

# Step5
CMD ["nginx", "-g", "daemon off;"]
  • 여러 패키지 설치나 설정 등을 저장한 dockerfile빌드할 때(이미지 파일로 변환 시킬 때)는 layer 구조를 보인다.
  • 이미지가 계층적으로 하나씩 쌓으면서 빌드업 된다

  • 실제로 컨테이너를 사용할 때는 하나의 파일 시스템으로 보인다
  • 모든 레이어들이 준비 되었다면 유니온 파일시스템을 통해 여러개의 파일 시스템을 하나의 파일 시스템으로 마운트하여 실제 사용할때는 하나로 보이게 한다.

docker layer

  • 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기에 무겁다
  • 기존 이미지에 파일 하나 추가했다고 수백 메가를 다시 다운 받으면 매우 비효율적이다
  • docker는 이런 문제를 해결하기위해 레이어layer 라는 개념을 도입 유니온 파일 시스템을 이용해 여러 레이어를 하나의 파일 시스템으로 사용할 수 있게 해준다.

Union File System

  • 도커에서 AUFS를 쓴다
  • Union Monut를 지원하는 파일 시스템
  • 도커 이미지는 변하지 않고 바뀐 부분만 이미지로 생성(실행 할 때 베이스 이미지와 바뀐 부분을 저장한 이미지를 합쳐서 실행)

결론

  • 나중 소스를 추가를 한다고 레이어를 모두 다시 받지 않고 추가된 레이어만 다운받으면 된다
  • 굉장히 효율적으로 이미지를 관리 할 수 있다

3줄 요약

  • 도커 파일을 빌드할때 레이어 구조를 보인다
  • 레이어 구조는 유니온 파일 시스템을 이용한다
  • 유니온 파일 시스템은 바뀐 부분이미지로 생성한다 이후 실행 할 때 베이스 이미지와 바뀐 부분을 저정한 이미지를 합쳐서 실행한다

ref


[Docker] 개념 정리 및 사용방법까지.

만들면서 이해하는 도커(Docker) 이미지: 도커 이미지 빌드 원리와 OverlayFS

[Docker] 컨테이너의 구조

[Docker] 개념 정리 및 사용방법까지.

만들면서 이해하는 도커(Docker) 이미지: 도커 이미지 빌드 원리와 OverlayFS

[Docker] 컨테이너의 구조

profile
문제해결을 즐기는 개발자

관심 있을 만한 포스트

0개의 댓글