일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- paddlemultigpu
- python
- 우분투22.04
- python시각화
- paddleocr한국어
- 도커
- paddlepaddleocr
- paddleocrgpu
- paddlepaddlegpu
- paddlepaddle
- pp-ocr한국어
- paddleocr후기
- gitpostbuffer
- vscodesshkey
- paddleocr
- postbuffer
- python데이터시각화
- docker사용법
- Docker
- 도커이미지
- PyTorch
- ppocr
- addingembedded
- ppocrexportmodel
- matplotlib한글깨짐
- docker container
- gitrepository
- 우분투
- opencv오류
- dockergpu
- Today
- Total
D_ontory : 개발스토리
[Docker] docker image hub에 업로드 + docker image .tar로 저장 도커 총정리 본문
[Docker] docker image hub에 업로드 + docker image .tar로 저장 도커 총정리
D_on 2023. 11. 2. 10:31INTRO
개발하다보면 여러 부서에서 각자 맡은 일을 해주는 때가 많은데, 그때 내가 작업하던 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 를 사용하시면 이미지로드가 완료됩니다.