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