본문 바로가기

가상 머신/Docker

[ VM / Docker ] Docker에서 Image를 관리하기 - 상세

반응형

Docker에서 이미지를 효율적으로 관리하는 방법은 여러 가지가 있습니다. 여기서는 이미지 검색, 다운로드, 태그, 삭제 및 클리닝 등 관리에 필요한 주요 작업을 설명하겠습니다.

1. Docker 이미지 관리 방법

  1. 이미지 검색 및 다운로드
    • Docker 이미지는 Docker Hub나 개인 레지스트리에서 다운로드할 수 있습니다.
    • 특정 이미지를 검색하려면:
      docker search [image_name]
    • 예를 들어, nginx 이미지를 검색하려면:
      docker search nginx
    • 이미지를 다운로드하려면 pull 명령을 사용합니다:
      docker pull [image_name]
    • 특정 버전을 지정하려면:
      docker pull nginx:1.21
    • nginx:1.21nginx 이미지의 1.21 버전을 다운로드합니다.
  2. 이미지 목록 확인
    • 로컬에 저장된 모든 Docker 이미지를 확인하려면:
      docker images
    • 이 명령어는 이미지 이름, 태그, 이미지 ID, 생성 시간 및 크기를 표시합니다.
  3. 이미지 태그 설정
    • 이미지에 태그를 설정하거나 변경하려면:
      docker tag [image_id_or_name:tag] [new_image_name:tag]
    • 예를 들어, nginx:latestmy-nginx:1.0으로 태그하려면:
      docker tag nginx:latest my-nginx:1.0
    • 태그를 통해 이미지를 버전 관리하고 식별할 수 있습니다.
  4. 이미지 삭제
    • 특정 이미지를 삭제하려면:
      docker rmi [image_id_or_name:tag]
    • 예를 들어, my-nginx:1.0 이미지를 삭제하려면:
      docker rmi my-nginx:1.0
    • 사용되지 않는 모든 이미지를 삭제하려면:
      docker image prune
    • -a 옵션을 추가하면 사용되지 않는 모든 이미지 (dangling 이미지뿐만 아니라 태그가 지정되지 않은 이미지도 포함)를 삭제할 수 있습니다:
      docker image prune -a
  5. 이미지 레이어 확인
    • 이미지의 레이어 구조를 확인하려면:
      docker history [image_name:tag]
    • 예를 들어, nginx:latest 이미지의 레이어를 확인하려면:
      docker history nginx:latest
    • 이 명령어는 이미지가 어떻게 구성되어 있는지, 각 레이어의 생성 명령어 및 크기를 보여줍니다.
  6. 이미지 크기 최적화
    • 이미지를 빌드할 때 크기를 줄이기 위해 Dockerfile을 최적화하는 것이 중요합니다.
    • 예를 들어, 다중 스테이지 빌드나 특정 파일만 복사하는 방법 등을 사용할 수 있습니다.
    • 이미지 크기를 줄이기 위해서는 Docker 이미지 최적화 가이드를 참고하세요.
  7. 이미지 백업 및 복원
    • 이미지를 파일로 저장(백업)하려면:
      docker save -o [output_file.tar] [image_name:tag]
    • 예를 들어, nginx:latest 이미지를 nginx_latest.tar 파일로 저장하려면:
      docker save -o nginx_latest.tar nginx:latest
    • 저장된 이미지를 복원하려면:
      docker load -i [input_file.tar]
    • 예를 들어, nginx_latest.tar 파일을 로드하려면:
      docker load -i nginx_latest.tar
  8. 이미지 정보 확인
    • 이미지의 세부 정보를 확인하려면:
      docker inspect [image_id_or_name:tag]
    • 예를 들어, nginx:latest 이미지의 세부 정보를 확인하려면:
      docker inspect nginx:latest
    • 이 명령어는 이미지의 메타데이터, 환경 변수, 레이어 정보 등을 JSON 형식으로 출력합니다.

2. 예제 명령어 정리

# 이미지 검색
docker search ubuntu

# 이미지 다운로드
docker pull ubuntu:20.04

# 이미지 목록 확인
docker images

# 이미지에 새로운 태그 설정
docker tag ubuntu:20.04 my-ubuntu:1.0

# 이미지 삭제
docker rmi my-ubuntu:1.0

# 사용되지 않는 모든 이미지 삭제
docker image prune -a

# 이미지의 레이어 구조 확인
docker history ubuntu:20.04

# 이미지 백업
docker save -o ubuntu_20.04.tar ubuntu:20.04

# 이미지 복원
docker load -i ubuntu_20.04.tar

# 이미지의 상세 정보 확인
docker inspect ubuntu:20.04

이런 다양한 명령어와 방법들을 통해 Docker 이미지를 효율적으로 관리할 수 있습니다.

반응형