[docker] 저장소를 통하지 않고 한 호스트에서 다른 호스트로 도커 이미지를 복사하는 방법은 무엇입니까?



Answers

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

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

또한 파이프 중간에 pv 를 두어 전송이 어떻게 진행되는지 확인하는 것이 좋습니다.

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

비공개 또는 공개가 아닌 저장소를 사용하지 않고 한 컴퓨터에서 다른 컴퓨터로 도커 이미지를 전송하는 방법?

나는 가상 머신에서 자신의 이미지를 만들고 재생하는데 익숙해졌으며, 끝나면 실제 사용을 위해 다른 머신에 배치하려고한다.

Redhat과 같은 자체 기반 이미지를 기반으로하므로 Dockerfile에서 다시 만들 수 없습니다.

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

업데이트 됨 저장 / 내보내기가 비슷한 목적을 달성 할 수 있습니다 . Docker에서 저장 및 내보내기의 차이점무엇입니까?를 참조하십시오 . , 나는 나의 경우를 위해 save 명령을 선호한다.




이미지 ID가 7ebc8510bc2c 인 couchdb- 카트리지를 저장해야한다고 가정합니다.

stratos@Dev-PC:~$ docker images
REPOSITORY                             TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
couchdb-cartridge                      latest              7ebc8510bc2c        17 hours ago        1.102 GB
192.168.57.30:5042/couchdb-cartridge   latest              7ebc8510bc2c        17 hours ago        1.102 GB
ubuntu                                 14.04               53bf7a53e890        3 days ago          221.3 MB

archiveName 이미지를 tar 파일에 저장하십시오. 이미지를 저장하려면 /media/sf_docker_vm/ 을 사용합니다.

stratos@Dev-PC:~$ docker save imageID > /media/sf_docker_vm/archiveName.tar

환경에서 작동하는 모든 방법 (예 : FTP , SCP 등)을 사용하여 archiveName.tar 파일을 새 Docker 인스턴스로 복사하십시오.

새 Docker 인스턴스에서 docker load 명령을 실행하고 이미지 tar 파일의 위치를 ​​지정하십시오.

stratos@Dev-PC:~$ docker load < /media/sf_docker_vm/archiveName.tar

마지막으로 docker images 명령을 실행하여 docker images 를 사용할 수 있는지 확인하십시오.

stratos@Dev-PC:~$ docker images
REPOSITORY                             TAG        IMAGE ID         CREATED             VIRTUAL SIZE
couchdb-cartridge                      latest     7ebc8510bc2c     17 hours ago        1.102 GB
192.168.57.30:5042/couchdb-cartridge   latest     bc8510bc2c       17 hours ago        1.102 GB
ubuntu                                 14.04      4d2eab1c0b9a     3 days ago          221.3 MB

상세한 게시물을 찾으십시오.




컨테이너 파일 시스템의 병합 된 내보내기를 사용하려면;

docker export CONTAINER_ID > my_container.tar

cat my_container.tar | docker import - 사용 cat my_container.tar | docker import - cat my_container.tar | docker import - 이미지를 가져옵니다.




우선, 도커 이미지 ( 도커 이미지 )는 도커 이미지 허브를 통해 액세스 할 수 있습니다 (또는 이전 방법을 사용하여 내보낼 수 있음). 그런데 Docker 컨테이너 ( docker ps -a )를 이동하거나 복사하는 방법을 찾고 있다면. 가능한 해결책은 다음 명령을 사용하는 것입니다.

docker container export [options] CONTAINER ID -o given-name.tar

예 :

docker ps -a

docker container export cf54f5423a66 -o cf54f5423a66.tar

이렇게하면 다음 번 배포시 변경 사항을 유지할 수 있습니다. 자세한 내용은 docker 문서 페이지를 참조하십시오.




먼저 도커 이미지를 zip 파일에 저장하십시오.

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

그런 다음 아래 명령을 사용하여 내 보낸 이미지를 도커에로드합니다.

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



다른 모든 대답은 매우 유용합니다. 나는 방금 같은 문제를 겪고 docker machine scp 쉬운 방법을 찾아 냈다.

docker machine v0.3.0 이후 scp가 도입되어 한 도커 시스템에서 다른 시스템으로 파일을 복사했습니다. 이것은 docker 컴퓨터가 ssh 자격 증명을 처리하고 있기 때문에 로컬 컴퓨터의 파일을 AWS EC2 또는 Digital Ocean과 같은 원격 도커 시스템으로 복사하려는 경우 매우 편리합니다.

  1. docker save 사용하여 이미지를 docker save 과 같이 저장하십시오.

    도커 save -o docker-images.tar app-web

  2. docker-machine scp를 사용하여 이미지 복사

    도커 - 기계 scp ./docker-images.tar remote-machine : / home / 우분투

원격 도커 머신이 remote-machine 이고 tar 파일이 될 디렉토리가 /home/ubuntu

  1. 로드 도커 이미지

    도커 - 기계 ssh 원격 - 기계 sudo 도커로드 -i docker-images.tar




Links



Tags

docker docker