D_ontory : 개발스토리

[Docker] docker image hub에 업로드 + docker image .tar로 저장 도커 총정리 본문

Linux and Docker

[Docker] docker image hub에 업로드 + docker image .tar로 저장 도커 총정리

D_on 2023. 11. 2. 10:31
반응형

INTRO

 

개발하다보면 여러 부서에서 각자 맡은 일을 해주는 때가 많은데, 그때 내가 작업하던 docker container 를 통째로 image(이미지)로 만들어서 배포(?) 또는 전달 하는 경우가 많은 것 같다.

그래서 은근히 자주 사용하지만 자꾸 까먹는 나를 위해 총정리를 해보려 한다.

 

 

docker container 를 docker image로 만들기

 

docker ps -a

실행중인, 또는 만들어져있는 container 를 확인합니다. -a 옵션을 추가하면 실행중이지 않는 컨테이너도 모두 보이며, -a 옵션을 제거하면 실행중인 컨테이너만 보입니다

저는 가장 아래에 있는 'torch2' 라는 컨테이너이미지로 만들어 보려 합니다.

 

 

ex)
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit -a "dyon" -m "add openssh" torch2 ziwon6050/dyonser22

라고 하면 tag does not exist 라는 오류가 뜹니다.
도커 허브에 만들어놓은 저장소와 올리려는 이미지의 이름이 일치하지 않기 때문!

 

저장소 이름 : ziwon6050/dyonser 이고, 제가 이번에 올릴 이미지의 이름은 ziwon6050/dyonser22 입니다.

 

이럴때는 이름을 변경하여 이미지를 다시 만드는 방법보다는 tag를 사용하면 이미지에 새로운 이름을 달아줄 수 있습니다.

 

 

 

docker tag 기존이미지명 새로운이미지명:tag

:tag 는 원하지 않는다면 넣지 않아도 됩니다. 저는 대부분 업데이트 버전이나 날짜를 적습니다.

 

 

 

 

다시 docker images 를 통해 이미지를 확인해보면 이미지의 ID 값은 똑같지만 다른 이름을 가진 이미지 2개가 있습니다.

 

 

 

 

이제 도커 허브에 업로드 할 요건이 충족되었으니 다시 업로드해봅시다.

 

 

 

 

업로드에는 이미지 태그명과 함께 업로드 해야 합니다.

태그명 : latest

docker image push ziwon6050/dyonser:latest

 

 

그 후 도커 허브를 확인해보시면 이미지가 잘 push 되어있는 것을 확인해 보실 수 있습니다.

 

 

 

 

 

이렇게 올라온 도커 이미지를 다른 로컬에서 사용하려면 도커 이미지 받는 방법 그대로 사용하시면 됩니다.

docker pull docker/image:tag

 

 

 

 

docker container 를 image 화 하고, 그 이미지를 tar로 변환하여 다운로드하기

 

docker 를 tar로 만드는 방법은 여러가지가 있는데, save, load, import, export 등등 여러 방법이 있습니다.

어떤 방식을 사용하여 tar로 만들었느냐에 따라 사용해야하는 방법이 다르기 때문에 이 이미지가 어떻게 만들어진 이미지인지 잘 파악해야 합니다.

 

저는 학습을 진행하고 있는 원래 사용하던 환경의 container 를 앞서말한 commit을 활용하여 이미지화 시킵니다.

그 다음, 이미지화 된 이미지를 tar로 저장하는 방법을 많이 사용합니다.

 

컨테이너를 바로 tar로 만드는 방법도 있는데 오류를 많이 만났던 기억이 있어서 잘 사용하지 않습니다.

 

 

docker image 를 저장하고 사용할때에는 save , load 를 사용합니다.

 

docker save -o dyonimage.tar ziwon6050/dyonser:latest

docker save -o 저장할tar명.tar 저장할이미지명

을하면 용량에 따라 시간이 많이 소요되기도 합니다.

 

그렇게 만들어진 tar 파일을 이동하여 다시 이미지로 만들기 위해서는 

 

docker load -i dyonimage.tar

load 를 사용하시면 이미지로드가 완료됩니다.

 

 

 

 

 

 

 

 

 

 

반응형
Comments