[docker] 저장소를 사용하지 않고 한 호스트에서 다른 호스트로 Docker 이미지를 복사하는 방법

개인 또는 공개 저장소에 관계없이 저장소를 사용하지 않고 한 시스템에서 다른 시스템으로 Docker 이미지를 전송하는 방법은 무엇입니까?

VirtualBox에서 자체 이미지를 만들고 완료되면 다른 컴퓨터에 배포하여 실제 사용을 시도합니다.

Red Hat Linux와 같은 자체 이미지를 기반으로하기 때문에 Dockerfile에서 다시 만들 수 없습니다. 내 dockerfile은 쉽게 휴대 할 수 없습니다.

사용할 수있는 간단한 명령이 있습니까? 아니면 다른 해결책?



답변

Docker 이미지를 tar 파일로 저장해야합니다.

docker save -o <path for generated tar file> <image name>

다음과 같은 일반 파일 전송 도구를 사용하여 새로운 시스템에 이미지를 복사 cp, scp또는 rsync(큰 파일 선호). 그런 다음 이미지를 Docker에로드해야합니다.

docker load -i <path to image tar file>

추신 : sudo모든 명령 이 필요할 수 있습니다 .

편집 : -o를 사용하여 파일 이름 (디렉토리뿐만 아니라)을 추가해야합니다 (예 :

docker save -o c:/myfile.tar centos:16


답변

SSH를 통해 Docker 이미지 전송, 즉석에서 컨텐츠를 압축 :

docker save <image> | bzip2 | \
     ssh user@host 'bunzip2 | docker load'

pv파이프 중간에 배치 하여 전송이 어떻게 진행되는지 확인하는 것도 좋습니다.

docker save <image> | bzip2 | pv | \
     ssh user@host 'bunzip2 | docker load'

(자세한 정보 pv: 홈페이지 , 맨 페이지 ).


답변

파일 경로 또는 공유 NFS 위치에 이미지를 저장하려면 다음 예를 참조하십시오.

다음을 수행하여 이미지 ID를 얻으십시오.

sudo docker images

ID가 “매트릭스-데이터”인 이미지가 있다고 가정 해보십시오.

id로 이미지를 저장하십시오.

sudo docker save -o /home/matrix/matrix-data.tar matrix-data

경로에서 호스트로 이미지를 복사하십시오. 이제 다음을 사용하여 로컬 Docker 설치로 가져옵니다.

sudo docker load -i <path to copied image file>


답변

먼저 Docker 이미지를 zip 파일로 저장하십시오.

docker save <docker image name> | gzip > <docker image name>.tar.gz

그런 다음 아래 명령을 사용하여 내 보낸 이미지를 Docker에로드하십시오.

zcat <docker image name>.tar.gz | docker load


답변

운영

docker images

호스트의 이미지 목록을 볼 수 있습니다. awesomesauce 라는 이미지가 있다고 가정 해 봅시다 . 터미널 cd에서 이미지를 내보내려는 디렉토리로. 이제 다음을 실행하십시오.

docker save awesomesauce:latest > awesomesauce.tar

tar 파일을 썸 드라이브 등에 복사 한 다음 새 호스트 컴퓨터에 복사하십시오.

이제 새 호스트에서 다음을 수행하십시오.

docker load < awesomesauce.tar

이제 커피를 마시고 해커 뉴스를 읽으십시오 …


답변

컨테이너 파일 시스템을 평평하게 내보내려면 다음을 사용하십시오.

docker export CONTAINER_ID > my_container.tar

해당 cat my_container.tar | docker import -이미지를 가져 오는 데 사용 합니다.


답변

docker-machine을 사용할 때 다음 mach1mach2함께 사용하여 이미지를 복사 할 수 있습니다 .

docker $(docker-machine config <mach1>) save <image> | docker $(docker-machine config <mach2>) load

물론 pv중간에 붙어서 진행률 표시기를 얻을 수도 있습니다 .

docker $(docker-machine config <mach1>) save <image> | pv | docker $(docker-machine config <mach2>) load

docker-machine config현재 기본 docker-host를 사용하기 위해 서브 쉘 중 하나를 생략 할 수도 있습니다 .

docker save <image> | docker $(docker-machine config <mach>) load

현재 docker-host에서 이미지를 복사 mach

또는

docker $(docker-machine config <mach>) save <image> | docker load

mach현재 docker-host 에서 복사 합니다.