Docker commit 명령어

청포도한라봉·2025년 1월 17일

Docker

목록 보기
2/6

1. Commit

도커 컨테이너를 종료하거나 삭제하면 컨테이너 내에서 작업했던 자료들은 함께 사라진다.
용량 관리 또는 컨테이너 정리를 위해 컨테이너 삭제 작업이 필요할 때도 분명히 존재할 것인데 이럴 경우 docker commit을 통해 백업을 할 수 있다.


Process

[해당] 게시글 맨 아래에 보면 tempfolder 이름의 폴더를 생성했었다.
컨테이너를 삭제하면 만들어둔 tempfolder 폴더 또한 함께 사라질텐데
이를 commit을 통해 백업시켜보자.

# tempfolder를 만들어둔 이미지를 커밋할 것이다.

Commit 명령어의 기본 형식은 아래와 같다.

docker commit [Container ID or 별명] [Image ID or 별명 or 별명:tag]

필자는 tempfolder라는 이미지 이름과 practice라는 tag를 적어줬다.
이렇게 tag를 적어두면 별명을 통해 이미지를 가져오려고 하는 경우 tag도 같이 반드시 써줘야 한다.

# 위와 같이 컨테이너를 생성할 때, 이미지 기입란에 tempfolder:practice 까지 같이 적어주었다.

# 컨테이너 내부 진입을 위해 exec 함수를 사용해주었고 ls 명령어를 통해 확인해본 결과
# tempfolder 폴더가 있는 것을 확인할 수 있었다.

(+)

tag를 준 이미지를 컨테이너화했을 때, 해당 컨테이너는

docker rm [container ID or 별명] ex) docker rm temp2 

로 별 문제 없이 삭제가 된다.

하지만 이미지를 삭제할 때는 이미지 별명만 기입하면 삭제가 되지 않는다

# 컨테이너가 실행중일 때는(Up 11 minutes 확인) 컨테이너가 삭제가 되지 않는다.
# 당연히 stop 명령어를 통해 먼저 중지를 시켜준다.

# 그 후, rm 명령어를 통해 컨테이너를 삭제하면 된다.

# docker images 를 하면 tempfolder:practice의 이미지가 있는 것을 알 수 있다.
# 여기서 docker rmi(removeimage) 명령어를 사용하면 tag가 지정되어 있지 않기때문에 Error가 발생한다.
# Image ID를 통해 삭제한다면 태그를 신경 써 줄 필요가 없는 것으로 알고 있지만 
# 별명을 통해 삭제할 경우에는 tag 포함해서 삭제해야하는 것 주의하자.

0개의 댓글