[docker] Docker에서 저장과 내보내기의 차이점은 무엇입니까?

나는 Docker 와 며칠 동안 놀고 있는데 이미 이미지를 만들었습니다 (정말 재미있었습니다!). 이제 나는 일을 지속하고 싶고 saveexport명령에 왔지만 그것들을 완전히 이해하지 못했습니다.

의 차이 무엇입니까 saveexport고정 표시기는?



답변

짧은 대답은 다음과 같습니다.

  • saveVM 또는 실제 서버의 경우 이미지를 가져옵니다. 이는 설치 .ISO 이미지 또는 디스크입니다. 기본 운영 체제

    이미지를 만드는 데 필요한 모든 체인의 레이어와 메타 데이터를 압축합니다. 그런 다음이 “저장된”이미지 체인을 다른 도커 인스턴스에로드하고이 이미지에서 컨테이너를 만들 수 있습니다.

  • export일반 컨테이너의 스냅 샷처럼 전체 컨테이너를 가져옵니다. 물론 컨테이너 수명 동안 작성된 모든 데이터 파일뿐만 아니라 OS를 저장합니다. 이것은 전통적인 백업과 비슷합니다.

    컨테이너의 파일 시스템을 포함하는 플랫 .tar 아카이브를 제공합니다.

편집 : 내 설명이 여전히 혼란을 초래할 수 있으므로 이러한 명령 중 하나는 컨테이너와 작동하고 다른 명령은 이미지와 작동한다는 것을 이해하는 것이 중요하다고 생각합니다.

  • 이미지는 단일 바이트를 변경하지 않을 것이 0 1000 용기 시작 “죽은”또는 불변으로 간주되어야한다. 그렇기 때문에 시스템 설치 ISO와 비교해 보았습니다. 라이브 CD에 더 가깝습니다.

  • 컨테이너 “시동”이미지 및 그 위에 추가의 층을 추가한다. 이 레이어는 컨테이너의 모든 변경 사항을 생성합니다 (생성 / 변경 / 제거 된 파일 …)


답변

saveexport명령 사이에는 두 가지 주요 차이점이 있습니다 .

  1. save명령은 전체 이미지를 기록 및 메타 데이터와 함께 저장하지만 export명령은 파일 구조 만 기록합니다 (기록 및 메타 데이터 제외). 따라서 내 보낸 tar 파일은 저장된 것보다 작습니다.

  2. 새 이미지를 만들기 위해 내 보낸 파일 시스템을 사용하는 경우 다음이 새로운 이미지는 포함되지 않습니다 USER, EXPOSE, RUN당신 Dockerfile 등에서 명령을. 파일 구조 만 전송됩니다. 따라서 Dockerfile에서 언급 된 키워드를 사용하는 경우 이미지를 다른 시스템으로 전송하기 위해 내보내기 명령을 사용할 수 없습니다. 항상 save 명령을 사용해야합니다.


답변

내 보낸 이미지에는 레이어 또는 기록 정보가 저장되지 않으므로 크기가 더 작아서 롤백 할 수 없습니다.

저장된 이미지는 것이다 층 및 이력 정보를, 그래서 더 큰 있습니다.

이것을 고객에게 제공하는 경우 Q는 해당 계층을 유지 하시겠습니까?


답변

기술적으로 저장 /로드는 레이어라고도하는 하나 이상의 이미지 일 수있는 리포지토리와 함께 작동합니다. 이미지는 리포지토리 내의 단일 레이어입니다. 마지막으로 컨테이너는 인스턴스화 된 이미지입니다 (실행 중이거나 실행되지 않음).


답변

Docker save 이미지 에서 제공된 각 인수에 대해 모든 상위 계층과 모든 태그 + 버전 또는 지정된 repo : tag를 포함하는 tar 파일 저장소를 생성합니다. 합니다.

도커 내보내기 컨테이너 에서 지정된 볼륨의 내용이없는 플랫 내용으로 지정된 파일 (tar 또는 tgz 일 수 있음)을 생성합니다. .

도커 save 는 docker 이미지에서 사용해야하지만 docker export 는 컨테이너에서 사용해야합니다 (실행중인 이미지와 동일)

사용량 저장

도커 저장 [옵션] 이미지 [이미지 …]

tar 아카이브에 이미지 저장 (기본적으로 STDOUT으로 스트리밍 됨)

–help = false 인쇄 사용법 -o, –output = “”STDOUT 대신 파일에 쓰기

수출 사용법

도커 내보내기 [옵션] 컨테이너

컨테이너 파일 시스템의 내용을 tar 아카이브로 내보내기

–help = false 인쇄 사용법 -o, –output = “”STDOUT 대신 파일에 쓰기


답변

export: container (filesystem)-> image tar.
import: exported image tar-> image. 하나의 레이어 만

save: image-> image tar.
load: saved image tar-> image. 모든 레이어가 복구됩니다.

에서 액션 도커, 두 번째 판은 p190.

계층화 된 이미지는 이미지 기록, 컨테이너 생성 메타 데이터 및 삭제되었거나 재정의 된 이전 파일을 유지합니다.

병합 된 이미지에는 파일 시스템의 현재 파일 세트 만 포함됩니다.


답변