Docker 이미지는 컨테이너 런타임에 필요한 프로그램, 라이브러리, 리소스, 구성 및 기타 파일을 제공하는 것 외에도 런타임을 위해 준비된 일부 구성 매개변수(예: 익명 볼륨, 환경 변수, 사용자 등)도 포함하고 있습니다. .); 이미지에는 동적 데이터가 포함되어 있지 않으며 해당 내용은 빌드된 후에도 변경되지 않습니다.
이 문서의 운영 환경: ubuntu 18.04 시스템, Docker 버전 20.10.11, Dell G3 컴퓨터.
도커 이미지란 정확히 무엇인가요?
먼저 이미지가 무엇인지 이해해 봅시다.
운영 체제가 커널 공간과 사용자 공간으로 나누어져 있다는 것은 우리 모두 알고 있습니다. Linux의 경우 커널이 시작된 후 루트 파일 시스템이 마운트되어 이에 대한 사용자 공간 지원을 제공합니다. Docker 이미지(Image)는 루트 파일 시스템과 동일합니다. 예를 들어 공식 이미지 ubuntu:18.04에는 Ubuntu 18.04 최소 시스템의 전체 루트 파일 시스템 세트가 포함되어 있습니다.
Docker image는 컨테이너 런타임에 필요한 프로그램, 라이브러리, 리소스, 구성 및 기타 파일을 제공하는 것 외에도 런타임을 위해 준비된 일부 구성 매개변수(예: 익명 볼륨, 환경 변수, 사용자 등). 이미지에는 동적 데이터가 포함되어 있지 않으며 해당 콘텐츠는 빌드된 후에도 변경되지 않습니다.
계층형 스토리지
이미지에는 운영 체제의 전체 루트 파일 시스템이 포함되어 있기 때문에 용량이 큰 경우가 많습니다. 따라서 Docker를 설계할 때 기술을 최대한 활용하여 계층형 스토리지 아키텍처로 설계합니다. 따라서 엄밀히 말하면 이미지는 ISO와 같은 패키지 파일이 아니며, 이미지의 실제 표현은 파일로 구성되는 것이 아니라 파일 시스템의 집합, 즉 다중 파일 시스템의 조합으로 구성됩니다. 레이어 파일 시스템.
이미지가 빌드되면 레이어별로 구성되며 이전 레이어가 다음 레이어의 기초가 됩니다. 각 레이어가 구성된 후에는 후속 레이어의 변경 사항이 해당 레이어에서만 발생합니다. 예를 들어, 이전 레벨의 파일을 삭제하는 작업은 실제로 이전 레벨의 파일을 삭제하는 것이 아니라, 현재 레벨의 파일을 삭제된 것으로 표시만 할 뿐입니다. 최종 컨테이너가 실행되면 이 파일은 표시되지 않지만 실제로 파일은 항상 이미지를 따릅니다. 따라서 이미지를 생성할 때 각 레이어에는 레이어에 추가해야 할 항목만 포함되어야 하며, 레이어 구성이 완료되기 전에 추가 항목을 정리해야 합니다.
계층형 스토리지 기능을 사용하면 이미지를 더 쉽게 재사용하고 맞춤 설정할 수도 있습니다. 이전에 구축한 이미지를 기본 레이어로 사용한 다음 새 레이어를 추가하여 필요한 것을 사용자 정의하고 새 이미지를 구축할 수도 있습니다.
거울 시공에 대해서는 이후 관련 글에서 자세히 설명하도록 하겠습니다.
추천 학습: "Docker Video Tutorial"
위 내용은 도커 이미지란 정확히 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!