도커에서 저장과 내보내기의 차이점은 무엇입니까?
저는 며칠 동안 도커와 놀고 있고 이미 몇 개의 이미지를 만들었습니다(정말 재미있었습니다!).이제 저는 제 일을 계속하고 싶고 회사에 왔습니다.save
그리고.export
명령어는 이해가 잘 안 돼요
사이의 차이점은 무엇입니까?save
그리고.export
도커에서?
간단한 대답은 다음과 같습니다.
save
VM 또는 물리적 서버에 대한 이미지(설치)를 가져옵니다.ISO 이미지 또는 디스크.기본 운영 체제입니다.이미지를 구축하는 데 필요한 모든 체인의 레이어와 메타데이터를 패킹합니다.그런 다음 이 "저장된" 이미지 체인을 다른 도커 인스턴스에 로드하고 이러한 이미지에서 컨테이너를 만들 수 있습니다.
export
일반 VM의 스냅샷처럼 전체 컨테이너를 가져옵니다.물론 OS뿐만 아니라 컨테이너 수명 동안 작성된 모든 데이터 파일을 저장합니다.이것은 기존 백업에 더 가깝습니다.컨테이너의 파일 시스템이 포함된 flat.tar 아카이브를 제공합니다.
편집: 설명이 혼란스러울 수 있으므로 이러한 명령 중 하나는 컨테이너에서 작동하고 다른 하나는 이미지에서 작동한다는 점을 이해하는 것이 중요하다고 생각합니다.
이미지는 'dead' 또는 불변으로 간주되어야 하며, 이미지에서 0 또는 1000개의 컨테이너를 시작하면 단일 바이트가 변경되지 않습니다.그것이 제가 앞서 시스템 설치 ISO와 비교한 이유입니다.아마 라이브 CD에 더 가까울 겁니다.
컨테이너는 이미지를 "부팅"하고 그 위에 레이어를 추가합니다.이 계층은 컨테이너의 모든 변경 사항(생성/변경/제거된 파일...)을 저장합니다.
사이에는 두 가지 주요 차이점이 있습니다.save
그리고.export
명령을 실행합니다.
save
명령은 전체 이미지를 기록 및 메타데이터로 저장하지만export
명령은 기록 및 메타데이터 없이 파일 구조만 내보냅니다.따라서 내보낸 tar 파일은 저장된 파일보다 작습니다.새 이미지를 만들기 위해 내보낸 파일 시스템을 사용할 때 이 새 이미지에는 다음이 포함되지 않습니다.
USER
,EXPOSE
,RUN
Docker 파일의 명령어 등을 입력합니다.파일 구조만 전송됩니다.따라서 도커 파일에서 언급된 키워드를 사용하는 경우 내보내기 명령을 사용하여 이미지를 다른 컴퓨터로 전송할 수 없습니다. 항상 save 명령을 사용해야 합니다.
export
:container (filesystem)
->image tar
.
import
:exported image tar
->image
한 층만.
save
:image
->image tar
.
load
:saved image tar
->image
모든 계층이 복구됩니다.
행동 중인 도커로부터, 제2판 p190.
계층화된 이미지는 이미지, 컨테이너 생성 메타데이터 및 삭제되거나 재정의되었을 수 있는 이전 파일의 기록을 유지 관리합니다.
플랫 이미지에는 파일 시스템의 현재 파일 집합만 포함됩니다.
내보낸 이미지에는 저장된 계층 또는 기록 정보가 없으므로 이미지 크기가 작아지고 롤백할 수 없습니다.
저장된 이미지에는 계층 및 기록 정보가 더 크게 표시됩니다.
이를 고객에게 제공할 경우, 해당 계층을 유지할 것인지 여부가 문제입니다.
기술적으로 저장/로드는 계층이라고도 하는 하나 이상의 이미지일 수 있는 리포지토리와 함께 작동합니다.이미지는 레포 내의 단일 레이어입니다.마지막으로 컨테이너는 인스턴스화된 이미지(실행 중인지 여부)입니다.
도커 저장 이미지에서 제공된 각 인수에 대해 모든 상위 도면층과 모든 태그 + 버전 또는 지정된 repo:tag가 포함된 tar 파일 repo를 생성합니다.
도커 내보내기 컨테이너에서 지정된 볼륨의 콘텐츠 없이 플랫 콘텐츠로 지정된 파일(tar 또는 tgz일 수 있음)을 생성합니다.
도커 저장은 도커 이미지에서 사용해야 하는 반면 도커 내보내기는 컨테이너에서 사용해야 합니다(실행 중인 이미지와 동일).
사용량 저장
도커 저장 [OPTIONS] IMAGE [IMAGE...]
tar 아카이브(기본적으로 STDOUT로 스트리밍됨)에 영상을 저장합니다.
--help=false Print use -o, --output=" STDOUT 대신 파일에 쓰기
내보내기 사용
도커 내보내기 [옵션] 컨테이너
컨테이너의 파일 시스템 내용을 tar 보관 파일로 내보내기
--help=false Print use -o, --output=" STDOUT 대신 파일에 쓰기
언급URL : https://stackoverflow.com/questions/22655867/what-is-the-difference-between-save-and-export-in-docker
'programing' 카테고리의 다른 글
부트스트랩 드롭다운 메뉴가 작동하지 않음 (0) | 2023.08.25 |
---|---|
두 커밋을 하나의 커밋으로 결합하려면 어떻게 해야 합니까? (0) | 2023.08.25 |
Python에서 프록시와 함께 Selenium 웹 드라이버 실행 (0) | 2023.08.25 |
Javascript를 사용하여 인쇄 대화 상자를 팝업하려면 어떻게 해야 합니까? (0) | 2023.08.25 |
스레드 메시징 시스템 데이터베이스 스키마 설계 (0) | 2023.08.25 |