도커 이미지, 컨테이너, 웨어하우스란 무엇인가요?
Docker 이미지
Docker 이미지(Image)는 가상 머신의 이미지와 유사하며 파일 시스템을 포함한 Docker 엔진의 읽기 전용 템플릿으로 이해될 수 있습니다. .
예를 들어 이미지는 Ubuntu 운영 체제 환경을 완전히 포함할 수 있으며 Ubuntu 이미지라고 부를 수 있습니다. 이미지에는 Apache 이미지라고 불리는 Apache 애플리케이션(또는 기타 소프트웨어)이 설치되어 있을 수도 있습니다.
이미지는 Docker 컨테이너를 생성하는 기반입니다. 버전 관리 및 증분 파일 시스템을 통해 Docker는 기존 이미지를 생성하고 업데이트하는 매우 간단한 메커니즘을 제공합니다. 사용자는 준비된 애플리케이션 이미지를 인터넷에서 다운로드하고 명령어를 통해 직접 사용할 수 있다. 간단히 말해서 응용 프로그램을 실행하려면 환경이 필요하며 미러링은 이러한 환경을 제공하기 위해 존재합니다.
Docker 컨테이너
Docker 컨테이너(Container)는 경량 샌드박스와 유사합니다(Docker는 Linux 커널 기반의 가상화 기술이므로 Docker는 컨테이너를 사용하는 리소스가 거의 없습니다). 애플리케이션을 실행하고 격리합니다.
컨테이너는 이미지에서 생성된 애플리케이션 실행 인스턴스이며, 시작, 중지 및 삭제될 수 있습니다. 이러한 컨테이너는 서로 격리되어 있으며 보이지 않습니다.
각 컨테이너는 Linux 시스템 환경(루트 사용자 권한, 프로세스 공간, 사용자 공간 및 네트워크 공간 포함)의 단순화된 버전으로 여기에서 실행되는 애플리케이션과 함께 패키지되어 있다고 생각할 수 있습니다.
이미지 자체는 읽기 전용입니다. 컨테이너가 이미지에서 시작되면 Docker는 이미지 위에 쓰기 가능한 레이어를 생성하며 이미지 자체는 변경되지 않습니다. ISO로 시스템을 설치한 후와 마찬가지로 ISO는 크게 변경되지 않았습니다.
Docker Warehouse
Docker Warehouse(Repository)는 코드웨어하우스와 유사하게 Docker가 이미지 파일을 중앙에 저장하는 곳입니다.
도커 웨어하우스와 등록서버(Registry)를 엄밀하게 구분하지 않고 혼동하는 정보를 보게 되는 경우가 있습니다. 실제로 등록 서버는 창고가 저장되는 곳으로, 여러 개의 창고가 저장되는 경우가 많습니다. 각 창고는 서로 다른 태그로 구분되는 여러 이미지 파일을 포함하여 특정 유형의 이미지를 중앙에 저장합니다. 예를 들어 Ubuntu 운영 체제 이미지를 저장하는 웨어하우스를 Ubuntu 웨어하우스라고 하며 여기에는 14.04 및 12.04와 같은 다양한 버전의 이미지가 포함될 수 있습니다.
저장된 이미지를 공개적으로 공유하는지 여부에 따라 도커 웨어하우스는 공용 웨어하우스(Public)와 개인 웨어하우스(Private) 두 가지 형태로 나뉜다.
현재 가장 큰 공공 웨어하우스는 사용자가 다운로드할 수 있는 대량의 이미지를 저장하는 Docker Hub입니다. 국내 공공창고에는 Docker Pool 등이 있어 안정적인 국내 접근이 가능합니다. 사용자가 이미지 파일을 공개적으로 공유하고 싶지 않은 경우 Docker는 사용자가 로컬 네트워크 내에 본인만 액세스할 수 있는 개인 창고를 생성하도록 지원합니다.
사용자는 자신의 이미지를 만든 후 푸시를 사용하여 지정된 공개 또는 비공개 저장소에 업로드할 수 있습니다. 이런 방식으로 사용자가 다음에 다른 시스템에서 이미지를 사용할 때 창고에서 해당 이미지를 가져오기만 하면 됩니다.