Docker 이미지 생성 및 저장하기

민선규·2023년 11월 13일

기타

목록 보기
9/16
post-thumbnail

1. Docker 개념 정리
2. Docker 명령어
3. Docker 통신하기
4. Dockerfile 작성하기
5. Docker Compose

Docker 이미지 생성

기존에 Docker 이미지를 생성하는 방법으로는 'dockerfile'이라는 스크립트 파일을 사용하여 생성할 수 있었습니다. 이 번에 새롭게 배울 방법은 컨테이너 자체를 이미지로 변경하는 방법입니다.

컨테이너가 존재하고 있는 상황에서 docker commit {컨테이너명} {이미지명} 명령어를 실행하면 됩니다.

Docker 이미지 저장

생성된 이미지를 보통 Docker Hub를 통해 관리를 하지만 Docker Hub를 사용하지 못하는 상황이 올 수도 있다. 그런 상황에서는 Docker 이미지를 파일로 저장하고 불러올 수 있어야 하는데 두 종류의 명령어를 지원하고 있다.

Save/Load

  • save : Docker 이미지를 tar 파일로 추출하는 명령어이다.
    ex). docker save {옵션} {tar 파일명} {이미지명}
  • load : 추출된 tar 파일을 이미지로 불러오는 명령어이다.
    ex). docker load {옵션} {tar 파일명}

Save/Load 실습

기존에 있는 Docker 이미지인 'test1234' 파일로 실습을 해보았다. 우선 이미지 목록에 'test1234' 파일을 확인할 수 있다.

docker save {옵션} {tar 파일명} {이미지명} 명령어를 실행해 test.tar 파일을 생성한 것을 확인할 수 있다.

해당 이미지를 삭제한 후에 docker load {옵션} {tar 파일명} 명령어를 실행해 'test1234' 이미지가 생성된 것을 확인할 수 있다.

Export/Import

  • export : Docker 이미지를 tar 파일로 추출하는 명령어이다.
    ex). docker export {컨테이너명/컨테이너ID} > {tar 파일명}
  • import : 추출된 tar 파일을 이미지로 불러오는 명령어이다.
    ex). docker import {tar 파일명} {이미지명}

Export/Import 실습

Export/Import 실습도 이어서 Docker 이미지인 'test1234' 파일로 진행하였다. 먼저 docker export {컨테이너명/컨테이너ID} > {tar 파일명} 명령어를 실행해 test2.tar 파일을 생성한 것을 확인할 수 있다.

docker import {tar 파일명} {이미지명} 명령어를 실행해 'test12345' 이미지가 생성된 것을 확인할 수 있다.

실습 후 알게된 점

Save/Load 방식으로 이미지를 tar로 변환하고 다시 이미지로 변환하는 과정에서 결과물은 기존 이미지의 이름과 ID과 동일한 것을 알 수 있다. 하지만 Export/Import 방식은 이미지로 변환하는 명령어에서 부터 이름을 새로 정의해야하는 것과 ID 또한 다르다는 것을 확인할 수 있다.

두 방식이 서로 tar파일 구성도 다르는 것을 확인할 수 있다.

Save/Load 방식

Export/Import 방식

두 방식의 구성이 다른 원인은 Save 방식은 기존 이미지 레이어를 변경하지 않고 그대로 tar파일로 변환하는 반면에 Export 방식은 기존 이미지 레이어들을 하나의 새로운 이미지로 통합하여 tar파일로 변환하기 때문이다.

Save/Load 방식

Export/Import 방식

또한 Export/Import 방식의 이미지를 아카이빙해서 만들어진 이미지이기 때문에 바로 실행을 하게 되면 에러가 발생한다. 그 원인은 설정과 환경변수가 초기화되기 때문인데 적절하게 설정을 하고 실행을 해야하는 과정이 필요하다.

참고 문서 및 링크

0개의 댓글