[Docker] 도커 이미지

공혁준·2022년 5월 3일
0

Docker

목록 보기
5/9
post-thumbnail

📌 도커 이미지에 대해 다룹니다.

도커 이미지

도커는 기본적으로 도커 허브(Docker Hub) 라는 중앙 이미지 저장소에서 이미지를 내려받는다. 도커가 공식적으로 제공하는 이미지 저장소로서, 이미지를 쉽게 공유할 수 있다.

도커 허브에서 공식적으로 제공하는 이미지는 공식(Official) 라벨이 있다. 공식 라벨이 없는 이미지는 제대로 동작하지 않을 수 있으니 사용할 때 주의가 필요하다.

https://hub.docker.com/

도커 이미지 생성

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

도커 이미지를 생성하는 명령어입니다.

docker commit \
-a "joon" -m "my first commit" \
some_container \
commit_test:first

-a 옵션은 author를 뜻하며, 이미지의 작성자를 나타내는 메타데이터를 이미지에 포함시킨다. -m 옵션은 커밋 메시지를 뜻한다. 위 명령어는 some_container 컨테이너를 first 태그를 가진 commit_test 라는 이름의 이미지를 생성한다.

이미지 구조

도커 이미지는 레이어 구조로 되어 있다.
some_container 의 레이어가 Layer A, Layer B, Layer C의 구조로 이루어졌다고 하면 commit_test 에서 변경된 사항들은 Layer D, Layer E 등으로 추가가 되는 방식이다.

docker history commit_test:first

이러한 이미지의 레이어 구조는 docker history 명령을 통해 쉽게 확인할 수 있다.

docker rmi commit_test:first

docker rmi 명령어를 사용하여 이미지를 삭제할 수 있다. 이미지를 사용 중인 컨테이너가 존재하면 해당 이미지를 삭제 할 수 없는데, 이럴 경우 컨테이너를 stop 명령어로 중지 시킨 뒤 이미지를 삭제한다.

docker image prune

위 명령어를 사용하면 사용 중이지 않은 이미지를 한꺼번에 삭제할 수 있다.

이미지 추출

도커 이미지를 별도로 저장하거나 옮겨야 하는 경우 이미지를 단일 바이너리 파일로 저장해야 할 때 이미지 추출 방식을 사용한다.

docker save -o ubuntu.tar ubuntu:14.04

-o 옵션으로 추출될 파일명을 입력한다.

docker load -i ubuntu.tar

추출된 이미지는 load 명령어로 도커에 다시 로드한다.

save, load 와 비슷하게 사용할 수 있는 명령어로 export, import 명령어가 있는데, export 명령어는 save와 달리 컨테이너 커맨드와 같은 컨테이너의 설정 정보를 저장하지는 않는다.

docker export -o ubuntu.tar some_container
docker import ubuntu.tar my_image:0.0

이미지 배포

  1. 도커 허브 저장소

    • docker push, docker pull 명령어로 매우 간단하게 배포
    • 결제를 하지 않으면 비공개(Private) 저장소의 수에 제한이 있다는 단점
  2. 도커 사설 레지스트리 (Docker Private Registry)

    • 사용자가 직접 만드는 이미지 저장소
    • 직접 관리해야 하기 때문에 도커 허브보다는 사용법이 까다로움

도커 허브 저장소

docker login

위 명령어를 사용하여 도커 허브 계정으로 로그인한다.

docker push repository_name:0.0

docker push 명령어를 사용하면 도커 허브 저장소의 repository_name 레포지토리에 이미지가 배포되고 Tags 항목에서 0.0 이미지를 확인할 수 있다.

docker pull repository_name:0.0

위 명령어로 도커 허브 저장소에 있는 이미지를 내려받을 수 있다.

profile
몰입을 즐기는 개발자입니다.

0개의 댓글