Cloud/Docker

Docker Image를 local에서 server로 옮기기

junnnhhh 2024. 3. 4. 16:00
728x90

폐쇄망인 서버에서 docker repo를 참조하여 이미지를 다운로드 받는 것은 거의 불가하다.

(방법이 있으면 공유 부탁드립니다.)

 

따라서, 다른 방법을 조금 검색해봤다.

결론은 docker save를 통해 image를 압축하여 로컬에 다운로드 후,

해당 압축파일을 서버에 전송한 후, docker load를 통해 이미지를 pull 받으면 된다!


docker image save

docker image save ~ 풀로 입력해도 되지만,

docker save ~ 으로 image를 생략하고도 사용이 가능하다.

 

docker save는 stdout을 입력하는 방법 및 옵션 + 압축 파일명으로 입력하는 방법이 있다.

1. stdout

docker save busybox > busybox.tar
docker save busybox > C:\Docker\busybox.tar

busybox 이름을 가진 image를 busybox.tar로 저장한다는 뜻이다.

경로를 따로 명시하지 않으면 현재 명령어를 사용하는 위치에 저장이 된다.

2. option ( -o, --output )

docker save --output busybox.tar busybox
docker save -o C:\Docker\busybox.tar busybox

--output 또는 -o 뒤에 저장할 파일명을 적어주고, 그 뒤에 이미지 이름을 입력하면 된다.

 

이제 로컬에서 다운로드 받은 이미지 압축 파일을 서버로 옮겨주면 된다.

spc 명령어를 사용해서 옮기거나 mobaXterm을 사용하면 편하게 작업이 가능하다.


docker image load

docker image load ~ 풀로 입력해도 되지만,

docker load ~ 으로 image를 생략하고도 사용이 가능하다.

 

docker load는 stdin을 입력하는 방법 및 옵션 + 압축 해제하 파일명으로 입력하는 방법이 있다.

1. stdout

docker load < busybox.tar.gz

busybox 이름을 가진 image를 busybox.tar로 저장한다는 뜻이다.

경로를 따로 명시하지 않으면 현재 명령어를 사용하는 위치에 저장이 된다.

2. option

docker load --input busybox.tar.gz

-i, --input 뒤에 이미지로 등록할 압축 파일명을 입력하면 된다.

※ -q, --quiet의 경우 과정을 안보이게 해주는 옵션이다.

 

 

docker image save

 

docs.docker.com

 

 

docker image load

 

docs.docker.com

 

728x90