728x90

개요

 

이미지컨테이너이름(REPOSITORY)태그(TAG)를 지정하지 않았을 때 항상 이미지나 컨테이너의 목록을 조회하고, 자동으로 생성된 해당 ID를 수동으로 복사하여 사용했습니다.

 

잊어버리거나 입력하기 상당히 불편합니다. 도커에는 이를 해결할 수 있는 고유 옵션을 부여할 수 있는 기능이 있습니다.

 

본 글에서는 Docker에서 컨테이너와 이미지에 이름과 태그를 지정하는 방법과 필요성에 대해서 알아보겠습니다.

 

컨테이너에 이름 부여하기 : --name

docker run --help

 

위 명령어를 입력하면 여러 리스트가 출력되는데 아래와 같은 --name 옵션을 확인할 수 있습니다.


사용 방법

docker run --rm "부여할 이름" "이미지 ID"

 

--name 옵션을 사용하여 이미지를 빌드하면 간단히 컨테이너에 이름을 부여할 수 있습니다.

 

위와 같이 "goalsapp"으로 컨테이너에 이름을 부여하고, docker ps 명령어로 컨테이너 목록을 확인한다면 컨테이너를 만들 때 부여한 이름이 지정된 것을 확인할 수 있습니다.

장점

1. 가독성 향상

  • 컨테이너 이름을 통해 컨테이너의 역할과 용도를 쉽게 파악할 수 있어 가독성이 좋아집니다.
  • 긴 컨테이너 ID 대신 직관적인 이름을 사용할 수 있습니다.

2. 관리 용이성

 

  • 컨테이너 제어 명령어에서 컨테이너 ID 대신 짧은 이름을 사용할 수 있어 관리가 편리해집니다.
  • 스크립트나 자동화 툴에서도 이름 기반으로 컨테이너를 다루면 코드가 읽기 쉬워집니다.

 

이미지 태그의 구성 요소

 

이미지 태그는 nametag로 두 부분으로 구성됩니다.

  • name
    • 이름을 사용하여 이미지의 일반적인 이름을 설정할 수 있습니다.
    • 정확히 말하자면 여러 개의 특정화된 이미지 그룹을 만들 수 있습니다.
  • tag (option)
    • 이미지보다 특정화된 버전을 정의할 수 있습니다.

https://hub.docker.com/_/node

 

docker hub의 node페이지를 보면 위와 같이 많은 태그 리스트들이 있습니다. 여기있는 모두는 "node:" 뒤에 설정할 수 있는 태그들입니다.

 

이 태그들은 노드에 알려주거나, docker hub에 알려주는 태그사용할 수 있습니다.

 


 

예를 들어, 애플리케이션을 실행하려는 호스트가 Node 버전이 10이나 12만 지원한다는 것을 알고 있다면, 노드의 12버전을 사용하기 위해 버전을 지정할 수 있습니다.

 

이미지의 다른 버전이나 다른 구성이 있는 경우라면, 이름을 태그와 결합할 수 있습니다.

 

이름과 태그를 결합한다면 이미지에 특정화된 버전에 대한 "고유 식별자"를 가지게 됩니다.

물론 태그가 없다면 이름만으로도 이미 고유 식별자입니다.

 

이미지 태그에 태그 지정하기

이미지에 태그를 지정하는 방법은 크게 두 가지 있습니다.

1. 이미지 빌드 시 태그 지정

docker build -t myimage:1.0 .

 

Dockerfile로부터 이미지를 빌드할 때 -t 옵션 사용하여 태그를 지정할 수 있습니다. 이름만 지정하면 태그는 자동으로 latest로 설정됩니다.

 

태그는 단어(문자열)가 될 수 있고, 숫자도 가능합니다.

2. 기존 이미지에 태그 추가

docker tag myimage:1.0 myimage:latest

 

docker tag 명령어를 사용하여 이미 존재하는 이미지에 추가 태그를 지정할 수 있습니다. 위 경우 myimage:1.0 myimage:latest동일한 이미지를 가리키게 됩니다.

3. 태그를 포함한 이미지 Pull

docker pull myimage:1.0

 

레지스트리에서 이미지를 Pull할 때 태그를 명시할 수 있습니다. 태그를 명시하지 않으면 latest 태그의 이미지가 Pull됩니다.

4. 태그를 포함한 이미지 Push

docker push myimage:1.0

 

latest 태그 이미지를 Push하려면 명시적으로 latest 태그를 붙여야 합니다.


이처럼 도커 이미지에 태그를 지정하는 방법은 빌드 시점, 기존 이미지에 대한 태그 추가, Pull/Push 시 태그 명시 등 다양한 방식으로 가능합니다. 상황에 맞게 적절한 방법을 선택하여 이미지 태그를 활용할 수 있습니다.

 

이미지 태그의 장점

1. 버전 관리

 

  • 태그로 이미지의 버전을 명확히 구분
  • 다양한 버전의 이미지를 효과적으로 관리 가능

 

2. 버전 관리

  • 태그로 이미지의 용도, 버전, 상태 등을 쉽게 파악
  • 직관적인 태그를 통해 이미지를 빠르게 식별하고 관리

 

3. 버전 관리

 

  • 태그가 있어야 레지스트리에 이미지를 정확히 공유하고 배포 가능
  • 태그로 배포할 버전을 명확히 지정하여 배포 과정 간소화

 

4. 버전 관리

 

  • 문제 발생 시 이전 버전 태그로 신속한 롤백 가능
  • 태그를 활용하여 버전 간 전환을 매끄럽게 진행