Post

[Docker] 05-Docker Image 공유

[Docker] 05-Docker Image 공유

도커 이미지 공유

로컬에서 생성한 도커 이미지를 도커 레지스트리(Docker Registry)에 업로드하여 공유하는 방법을 다룬다. 도커 허브(Docker Hub)를 기준으로 이미지 네이밍 규칙과 업로드 절차를 설명하며, 시맨틱 버저닝(Semantic Versioning)을 활용한 효율적인 태그 전략과 팀 내 표준 환경을 구축하기 위한 골든 이미지(Golden Image) 개념을 소개한다.

도커 레지스트리(도커 허브)

도커 이미지는 도커 레지스트리(Docker Registry)라고 불리는 원격 저장소에 업로드하여 어디서든 내려받을 수 있다. 가장 대표적인 공용 레지스트리는 도커 허브(Docker Hub)이다.

도커 허브에 이미지를 등록하기 위해서는 다음 3단계 과정을 거친다.

  1. 레지스트리에 로그인 : docker login --username "DOCKER_ID"
  2. 등록할 이미지에 규칙에 맞는 이름 부여 : docker image tag [ORIGIN_IMAGE_NAME] [DOCKER_ID]/[IAMGE_NAME:[VERSION]
  3. 레지스트리에 등록 : docker image push [DOCKER_ID]/[IMAGE_NAME]:[VERSION]

효율적인 이미지 태그 전략

이미지 태그는 소프트웨어의 버전을 명시하여 사용자가 원하는 환경을 정확히 선택할 수 있게 돕는다. 효율적인 관리를 위해 보통 시맨틱 버저닝(Semantic Versioning) 규칙인 Major.Minor.Patch 구조를 기본으로 사용한다.

  • Major (주 버전): API 변경 등 하위 호환성이 깨지는 완전히 다른 기능의 변화
  • Minor (부 버전): 기존 기능과 호환되면서 새로운 기능이 추가된 경우
  • Patch (수패치 버전): 기능 변화 없이 버그 수정만 이루어진 경우

도커에서는 하나의 이미지에 여러 개의 태그를 동시에 붙일 수 있다. 이를 활용해 사용자의 편의성을 높인다.

  • 1.2.3: 정확한 버전을 고정해서 써야 하는 경우 사용
  • 1.2: 1.2.x 버전 중 가장 최신 버전을 가리킴 (마이너 업데이트 자동 반영)
  • latest: 가장 최신의 안정화된 버전을 가리킴

골든 이미지

골든 이미지란 공식 베이스 이미지에 조직이 필요로 하는 공통 설정과 보안 패치를 미리 적용해 둔 ‘표준 베이스 이미지’를 말한다. 팀원들은 이 골든 이미지를 FROM으로 하여 애플리케이션을 개발한다.

골든 이미지의 장점

  • 안정성 확보: 보안 팀이나 인프라 팀에서 미리 검증하고 보안 패치를 완료한 이미지를 사용하므로 안전
  • 환경 일관성: 모든 팀원이 동일한 OS 설정, 인증서, 로케일(Locale), 시간대(Timezone) 환경에서 개발 가능
  • 업데이트 통제: 베이스 이미지의 태그를 latest가 아닌 구체적인 버전(예: 1.2.3)으로 고정하여 사용. 이를 통해 예기치 않은 업스트림 변경으로 인한 장애를 방지
This post is licensed under CC BY 4.0 by the author.