답변:
Docker 이미지는 파일 시스템 계층으로 저장됩니다. Dockerfile의 모든 명령은 레이어를 만듭니다. docker commit명령 행에서 일부를 변경 한 후 ( docker run아마도) 레이어를 작성할 수도 있습니다 .
이 레이어는 기본적으로에 저장됩니다 /var/lib/docker. 거기에서 (이론적으로) 체리 파일을 선택하여 다른 도커 서버에 설치할 수는 있지만 Docker가 사용하는 내부 표현을 가지고 노는 것은 좋지 않은 생각 일 것입니다.
이미지를 푸시하면이 레이어가 레지스트리 (기본적으로 도커 허브 레지스트리로 전송됩니다. 다른 레지스트리 접두어로 이미지에 태그를 지정하지 않는 한 ...)에 저장됩니다. 푸시 할 때 레이어 ID는 이미 레이어가 로컬에 있는지 또는 다운로드해야하는지 확인하는 데 사용됩니다. docker history어떤 레이어 (다른 이미지)가 사용되는지 (그리고 어느 명령으로 레이어를 만들 었는지) 엿볼 수 있습니다 .
도커 허브 레지스트리로 푸시하지 않고 이미지를 공유하는 옵션의 경우 가장 좋은 옵션은 다음과 같습니다.
docker save이미지 또는 docker export컨테이너. tar 파일을 표준 출력으로 출력하므로 다음과 같은 작업을 수행하려고 docker save 'dockerizeit/agent' > dk.agent.latest.tar합니다. 그런 다음 docker load또는 docker import다른 호스트를 사용할 수 있습니다 .
개인 레지스트리를 호스팅하십시오. - 구식, 설명 참조 docker registry 이미지를 참조하십시오 . 필요에 따라 시작하고 중지 할 수 있는 s3 백업 레지스트리 를 만들었습니다 (모든 상태는 선택한 s3 버킷에 유지됨). 이것은 또한 레지스트리로 푸시 할 때 발생하는 일을 관찰하는 흥미로운 방법입니다.
docker hub와 관련하여 우려되는 사항이 여기에도 적용될 수 있지만 quay.io 와 같은 다른 레지스트리를 사용하십시오 (개인적으로 시도하지는 않았습니다).
docker save: 다른 이미지 (예 :)에서 파생 된 이미지를 python:2.7레지스트리로 푸시하면 변경되지 않는 한 상위 이미지를 두 번 이상 업로드 할 필요가 없습니다. 유사한 파일 크기 최적화를 위해 부분 이미지를 저장할 수 있습니까? 나는 여러 이미지를 가진 애호가이며 개인 레지스트리 비용을 지불하고 싶지 않기 때문에이 농구 대를 뛰어 넘고 있습니다.
docker build호스트 에서 src 파일을 가져올 수 있습니까?
npm install... 메모리가 적고이 단계가 항상 실패하기 때문에 호스트에서 빌드 할 수 없습니다 ( github.com/npm/npm/issues/5021 참조 )
Docker Hub 자체를 사용하지 않으려면 Artifactory by JFrog에서 고유 한 Docker 저장소를 호스팅 할 수 있습니다.
https://www.jfrog.com/confluence/display/RTF/Docker+Repositories
그런 다음 자신의 서버에서 실행됩니다.
CoreOS와 같은 다른 호스팅 공급 업체도 이용할 수 있습니다.
http://www.theregister.co.uk/2014/10/30/coreos_enterprise_registry/
quay.io를 구입 한