📌 도커 이미지에 대해 다룹니다.
도커는 기본적으로 도커 허브(Docker Hub) 라는 중앙 이미지 저장소에서 이미지를 내려받는다. 도커가 공식적으로 제공하는 이미지 저장소로서, 이미지를 쉽게 공유할 수 있다.
도커 허브에서 공식적으로 제공하는 이미지는 공식(Official) 라벨이 있다. 공식 라벨이 없는 이미지는 제대로 동작하지 않을 수 있으니 사용할 때 주의가 필요하다.
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
도커 허브 저장소
docker push
, docker pull
명령어로 매우 간단하게 배포도커 사설 레지스트리 (Docker Private Registry)
docker login
위 명령어를 사용하여 도커 허브 계정으로 로그인한다.
docker push repository_name:0.0
docker push
명령어를 사용하면 도커 허브 저장소의 repository_name
레포지토리에 이미지가 배포되고 Tags 항목에서 0.0
이미지를 확인할 수 있다.
docker pull repository_name:0.0
위 명령어로 도커 허브 저장소에 있는 이미지를 내려받을 수 있다.