신뢰 콘텐츠(Trusted content)

신뢰 콘텐츠(Trusted content)

Docker Hub의 신뢰 콘텐츠인 Docker Official Images, Docker Hardened Images, Verified Publisher 이미지, Docker-Sponsored Open Source Software 이미지를 소개해요.

출처: 문서

본문

Docker Hub의 신뢰 콘텐츠는 개발자가 사용하는 리소스의 신뢰성과 보안에 확신을 갖도록 설계된 고품질·안전한 이미지의 큐레이션된 선택을 제공해요. 이 이미지들은 안정적이고 정기적으로 업데이트되며 업계 모범 사례를 따르므로 애플리케이션을 빌드·배포하기 위한 강력한 기반이 돼요. Docker Hub의 신뢰 콘텐츠에는 Docker Official Images, Docker Hardened Images와 차트, Verified Publisher 이미지, Docker-Sponsored Open Source Software 이미지가 포함돼요.

Docker Official Images

Docker Official Images는 Docker Hub에서 호스팅되는 큐레이션된 Docker 저장소 집합이에요.

Docker는 프로젝트에서 Docker Official Images를 사용할 것을 권장해요. 이 이미지들은 명확한 문서가 있고, 모범 사례를 장려하며, 정기적으로 업데이트돼요. Docker Official Images는 대부분의 일반적인 사용 사례를 지원하므로 새로운 Docker 사용자에게 완벽해요. 고급 사용자는 더 전문화된 이미지 변형을 활용하고 Dockerfile 학습 과정의 일부로 Docker Official Images를 검토할 수 있어요.

[!NOTE]

Docker Official Images 사용은 Docker의 서비스 약관이 적용돼요.

이 이미지들은 대부분의 사용자의 출발점이 되는 필수 베이스 저장소를 제공해요.

여기에는 Ubuntu와 Alpine 같은 운영체제, Python과 Node 같은 프로그래밍 언어 런타임, memcached와 MySQL 같은 기타 필수 도구가 포함돼요.

이 이미지는 Docker Hub에서 가장 안전한 이미지 중 일부예요. Docker Official Images가 Docker Hub에서 가장 인기 있는 이미지 중 하나이므로 특히 중요해요. 일반적으로 Docker Official Images는 CVE가 포함된 패키지가 거의 없거나 전혀 없어요.

이 이미지들은 Dockerfile 모범 사례를 보여주며, 다른 Dockerfile 작성자에게 참조가 되는 명확한 문서를 제공해요.

이 프로그램의 일부인 이미지는 Docker Official Images에 속한 프로젝트를 쉽게 식별할 수 있는 특별한 배지를 Docker Hub에 가집니다.

지원되는 태그와 해당 Dockerfile 링크

각 Docker Official Image의 저장소 설명에는 Supported tags and respective Dockerfile links 섹션이 있으며, 해당 태그로 이미지를 만든 Dockerfile에 대한 링크와 함께 모든 현재 태그를 나열해요. 이 섹션의 목적은 어떤 이미지 변형이 사용 가능한지 보여주는 거예요.

같은 줄에 나열된 태그는 모두 동일한 기본 이미지를 가리켜요. 여러 태그가 같은 이미지를 가리킬 수 있어요. 예를 들어 ubuntu Docker Official Images 저장소에서 찍은 이전 스크린샷의 태그 24.04, noble-20240225, noble, devel은 모두 같은 이미지를 가리켜요.

Docker Official Image의 latest 태그는 종종 사용 편의성을 위해 최적화되며 개발·빌드 도구 같은 다양한 유용한 소프트웨어를 포함해요. 이미지를 latest로 태그하는 것은 이미지 유지관리자가 본질적으로 그 이미지를 기본값으로 사용하도록 제안하는 것이에요. 즉, 어떤 태그를 사용해야 할지 모르거나 기본 소프트웨어에 익숙하지 않다면 latest 이미지로 시작해야 해요. 소프트웨어와 이미지 변형에 대한 이해가 깊어지면 다른 이미지 변형이 요구에 더 잘 맞는다는 것을 알게 될 거예요.

슬림 이미지(Slim images)

Node.js, Python, Ruby 같은 많은 언어 스택에는 패키지가 더 적은 경량·프로덕션 준비 베이스 이미지를 제공하도록 설계된 slim 태그 변형이 있어요.

slim 이미지의 일반적인 소비 패턴은 멀티 스테이지 빌드의 최종 단계의 베이스 이미지로 사용하는 것이에요. 예를 들어 빌드의 첫 번째 단계에서 latest 변형으로 애플리케이션을 빌드한 다음, slim 변형을 기반으로 한 최종 단계에 애플리케이션을 복사해요. 다음은 예시 Dockerfile이에요.

FROM node:latest AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . ./
FROM node:slim
WORKDIR /app
COPY --from=build /app /app
CMD ["node", "app.js"]

Alpine 이미지

많은 Docker Official Images 저장소도 alpine 변형을 제공해요. 이 이미지는 Debian이나 Ubuntu가 아닌 Alpine Linux 배포판 위에 빌드돼요. Alpine Linux는 컨테이너 이미지의 작고 단순하며 안전한 베이스를 제공하는 데 초점을 맞추며, Docker Official Images의 alpine 변형은 일반적으로 필요한 패키지만 설치하는 것을 목표로 해요. 결과적으로 Docker Official Images alpine 변형은 일반적으로 slim 변형보다 훨씬 더 작아요.

주요 주의사항은 Alpine Linux가 glibc 대신 musl libc를 사용한다는 점이에요. 또한 이미지 크기를 최소화하기 위해 Alpine 기반 이미지에 Git이나 Bash 같은 도구가 기본 포함되는 경우가 드물어요. 프로그램의 libc 요구 수준이나 가정에 따라 누락된 라이브러리나 도구로 인해 문제가 발생할 수 있어요.

Alpine 이미지를 베이스로 사용할 때 프로그램을 Alpine Linux와 musl에 호환되게 만들기 위해 다음 옵션을 고려해요.

  • musl libc에 대해 프로그램 컴파일
  • glibc 라이브러리를 프로그램에 정적으로 연결
  • C 의존성을 완전히 피함(예: CGO 없이 Go 프로그램 빌드)
  • 필요한 소프트웨어를 Dockerfile에서 직접 추가

익숙하지 않다면 패키지 설치 예시는 Docker Hub의 alpine 이미지 설명을 참조해요.

코드네임(Codenames)

Toy Story 캐릭터처럼 보이는 단어(예: bookworm, bullseye, trixie)나 형용사(예: jammy, noble)가 있는 태그는 베이스 이미지로 사용하는 Linux 배포판의 코드네임을 나타내요. Debian 릴리스 코드네임은 Toy Story 캐릭터에 기반하며, Ubuntu는 "형용사 동물" 형태를 취해요. 예를 들어 Ubuntu 24.04의 코드네임은 "Noble Numbat"이에요.

Linux 배포판 표시는 많은 Docker Official Images가 여러 기본 배포판 버전 위에 빌드된 변형을 제공하기 때문에 유용해요(예: postgres:bookworm과 postgres:trixie).

기타 태그(Other tags)

Docker Official Images 태그는 여기서 설명한 것 외에 이미지 변형의 목적에 대한 다른 힌트를 포함할 수 있어요. 종종 이 태그 변형들은 Docker Official Images 저장소 문서에 설명돼 있어요. "How to use this image"와 "Image Variants" 섹션을 읽으면 이 변형을 사용하는 방법을 이해하는 데 도움이 돼요.

실패한 풀 문제 해결

Docker Official Images를 풀하는 데 실패하는 문제가 있다면 DOCKER_CONTENT_TRUST 환경 변수가 1로 설정되어 있는지 확인해요. Docker Content Trust는 폐지되고 있으며 해당 서비스는 풀에 더 이상 신뢰할 수 없어요. 풀 실패를 해결하려면 DOCKER_CONTENT_TRUST를 설정 해제해요. 자세한 내용은 Docker Content Trust (DCT)를 봐요.

Docker Hardened Images

Docker Hardened Images(DHI)는 Docker가 유지관리하는 최소화·안전·프로덕션 준비 컨테이너 베이스 및 애플리케이션 이미지예요. DHI에는 업스트림 소스에서 빌드해 Docker Hub에서 OCI 아티팩트로 게시된 Docker 제공 강화 Helm 차트도 포함돼요.

DHI는 취약점을 줄이고 컴플라이언스를 단순화하면서도 기존 Docker 워크플로에 거의 재도구 없이 들어맞도록 설계됐어요. Docker는 DHI 이미지에서 제로에 가까운 CVE를 유지하며, DHI 이미지와 차트에는 SBOM과 provenance attestation 같은 서명된 보안 메타데이터가 포함돼요.

이미지와 차트 저장소에는 Docker Hub에 특별한 배지가 있어 신뢰할 수 있는 DHI 콘텐츠를 쉽게 식별할 수 있어요.

사용 가능한 저장소를 탐색하려면 Docker Hardened Images 카탈로그를 봐요. 구현 안내는 Docker Hardened Images를 봐요.

Verified Publisher 이미지

Docker Verified Publisher 프로그램은 Docker가 검증한 상업 게시자의 고품질 이미지를 제공해요.

이 이미지는 개발 팀이 안전한 소프트웨어 공급망을 구축하도록 도와, 초기 단계에서 악성 콘텐츠 노출을 최소화해 나중에 시간과 돈을 절약하게 해줘요.

이 프로그램의 일부인 이미지는 Docker가 고품질 상업 게시자로 검증한 프로젝트를 사용자가 쉽게 식별할 수 있는 특별한 배지를 Docker Hub에 가집니다.

Docker-Sponsored Open Source Software 이미지

Docker-Sponsored Open Source Software(OSS) 프로그램은 Docker가 후원하는 오픈소스 프로젝트가 게시·유지관리하는 이미지를 제공해요.

이 프로그램의 일부인 이미지는 Docker가 신뢰할 수 있고 안전하며 활발한 오픈소스 프로젝트로 검증한 프로젝트를 사용자가 쉽게 식별할 수 있는 특별한 배지를 Docker Hub에 가집니다.

더 알아보기 (Learn more)