로컬 Docker 레지스트리 배포하기

DockerBeginner
지금 연습하기

소개

Docker 레지스트리는 Docker 이미지를 저장, 관리 및 배포할 수 있는 플랫폼입니다. Docker Hub 와 같은 클라우드 기반 레지스트리는 사용하기 편리하지만, 사용량 제한이나 보안 정책 등 몇 가지 제약이 따를 수 있습니다. 이번 챌린지에서는 로컬 Docker 레지스트리를 직접 구축해 봅니다. 이를 통해 Docker 이미지에 대한 제어권을 완전히 확보하고, 인터넷 연결이 없는 환경에서도 원활하게 작업할 수 있는 능력을 갖추게 될 것입니다.

이 콘텐츠는 챌린지 (Challenge) 입니다. 가이드가 제공되는 일반 실습 (Guided Lab) 과 달리, 정해진 단계를 따라가는 것이 아니라 스스로의 힘으로 과제를 해결해야 합니다. 챌린지는 다소 난이도가 있을 수 있습니다. 해결이 어렵다면 Labby 와 상담하거나 모범 답안을 확인해 보세요. 통계에 따르면 이 챌린지는 초급 수준이며, 99%의 통과율과 95%의 긍정적인 평가를 기록하고 있습니다.

Docker 레지스트리 설정하기

이번 단계에서는 로컬 Docker 레지스트리를 구축합니다. 이를 위해 Docker 에서 공식적으로 제공하는 registry 이미지를 활용할 것입니다.

목표

Docker 레지스트리를 성공적으로 설치하고 실행합니다.

결과 예시

Docker 레지스트리를 설정하는 과정은 다음과 같습니다:

  1. registry 이미지를 내려받습니다 (Pull).
Pulling Docker registry image
  1. 컨테이너 내부의 이미지가 삭제되지 않고 유지될 수 있도록 /home/labex 경로에 dockerregistry라는 디렉토리를 생성합니다.
Creating dockerregistry directory
  1. registry 이미지를 사용하여 my-registry라는 이름의 컨테이너를 실행합니다. 이때 포트를 연결하고, 방금 생성한 dockerregistry 디렉토리를 볼륨으로 마운트하여 데이터를 보존합니다.
Running Docker registry container
  1. curl 명령어를 사용하여 레지스트리가 정상적으로 작동하는지 확인합니다.
Verifying Docker registry availability

이 단계를 마치면 로컬 머신에서 작동하는 Docker 레지스트리 인스턴스를 갖게 됩니다.

✨ 솔루션 확인 및 연습

Docker 레지스트리에 이미지 푸시하기

이제 Docker 레지스트리가 준비되었으니 실제로 작동시켜 볼 차례입니다! 이번 단계에서는 샘플 Docker 이미지를 준비하여 로컬 레지스트리에 업로드 (Push) 해 보겠습니다.

목표

로컬 Docker 레지스트리에 이미지를 성공적으로 푸시합니다.

결과 예시

로컬 레지스트리에 이미지를 푸시하는 과정은 다음과 같습니다:

  1. Docker Hub 에서 hello-world 이미지를 내려받습니다.
Pulling hello-world image
  1. 로컬 레지스트리 주소를 포함하도록 hello-world 이미지에 새로운 태그를 생성합니다.
Tagging hello-world image
  1. 태그가 지정된 hello-world 이미지를 로컬 레지스트리로 푸시합니다.
Pushing image to local registry

이 단계를 마치면 로컬 Docker 레지스트리에 이미지가 성공적으로 저장됩니다.

✨ 솔루션 확인 및 연습

Docker 레지스트리에서 이미지 가져오기

Docker 레지스트리가 실행 중이며 샘플 이미지도 저장되어 있습니다. 이제 로컬 레지스트리에서 이미지를 다시 내려받는 (Pull) 방법을 시연해 보겠습니다.

목표

로컬 레지스트리로부터 이미지를 성공적으로 가져옵니다.

결과 예시

로컬 Docker 레지스트리에서 이미지를 가져오는 과정은 다음과 같습니다:

  1. docker rmi 명령어를 사용하여 로컬 레지스트리용으로 태그했던 기존 hello-world 이미지를 삭제합니다. (이미지가 없는 상태에서 가져오기 테스트를 하기 위함입니다.)
Removing hello-world Docker image
  1. 로컬 Docker 레지스트리에서 이미지를 내려받습니다.
Pulling Docker image locally
  1. 방금 내려받은 이미지를 사용하여 컨테이너를 실행합니다.
Running Docker container from image

이 단계를 마치면 로컬 레지스트리에서 이미지를 성공적으로 가져와 실행할 수 있게 됩니다.

✨ 솔루션 확인 및 연습

요약

이번 챌린지를 통해 로컬 Docker 레지스트리를 설정하고, 이미지를 푸시하고, 다시 가져오는 전 과정을 학습했습니다. 로컬 Docker 레지스트리를 활용하면 이미지 관리의 독립성을 확보하고 오프라인 환경에서도 효율적으로 개발할 수 있습니다. 챌린지 완수를 축하합니다!