3

Docker가 dockerfile의 모든 단계에서 이미지 레이어를 만드는 것으로 알고 있습니다.docker는 여러 컨테이너가 동일한 호스트에서 실행될 때 이미지를 다시 사용합니까?

동일한 컴퓨터 (X> = 2)에서 X 컨테이너를 실행하고 모든 컨테이너에 공통된 기본 이미지 레이어 (예 : debian)가있는 경우 해당 컴퓨터에 기본 이미지 복사본 하나만 보관하면, 또는 각 컨테이너에 대해 여러 사본이 있습니까?

dockerfile의 모든 레이어에 해당되는 지점이 있습니까?

어떻게 작동합니까?

Kubernetes가 어떤 식 으로든이 문제에 영향을 줍니까?

+0

몇 개라도 상관없이 동일한 레이어를 공유해야합니다. 다음을 참조하십시오 : https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/ 특정 문제 나 질문이있는 경우 몇 가지 물건을 시험해보고 다시 방문하십시오. – ldg

답변

5

도커 Understand images, containers, and storage drivers이 대부분입니다.

Docker 1.10부터 이미지를 구성하는 모든 계층에는 빌드시에 연관된 SHA256 보안 콘텐츠 해시가 있습니다. 이 해시는 레이어의 내용이 동일하면 호스트와 빌드간에 일관됩니다.

이미지를 여러 개 공유하는 경우 해당 레이어의 복사본이 하나만 저장되어 Docker 엔진의 해당 인스턴스에있는 모든 이미지에 사용됩니다.

debian과 같은 태그는 새로운 릴리스가 나올 때마다 여러 SHA256 이미지 해시를 참조 할 수 있습니다. FROM debian으로 빌드 된 두 이미지는 반드시 SHA256 해시가 일치하는 경우에만 레이어를 공유하지는 않습니다.

아래의 Docker 엔진을 실행하는 모든 것이이 저장 장치 설정을 사용합니다.

이 공유는 Docker 레지스트리 (최상의 결과를 얻기 위해 2.2 이상)에서도 작동합니다. 해당 레지스트리에 이미있는 레이어로 이미지를 푸시하려면 기존 레이어를 건너 뜁니다. 로컬 엔진에 레이어를 가져 오는 것과 동일합니다.

+0

감사합니다. 매우 명확했습니다! – IanEdington