Docker - 사설 레지스트리
Docker 레지스트리 소개
안녕하세요, 미래의 Docker 마스터 여러분! 오늘은 Docker 레지스트리의 fascineting 세상으로 뛰어보겠습니다. 초보자라고 걱정하지 마세요; 단계별로 안내해드릴 테니까요. 수년간 수많은 학생들을 가르치면서 이렇게 했던 것처럼요. 여러분의 여정을 시작해보겠습니다!
Docker 레지스트리는 Docker 이미지의 도서관과도 같습니다. 이곳에서 이미지를 저장하고 관리하며 배포할 수 있습니다. 모든 즐겨찾는 책(또는 Docker 이미지)을 깨끗하게 정리하고 쉽게 찾을 수 있는 책장을 생각해보세요.
Docker 레지스트리의 종류
Docker 레지스트리는 두 가지 주요 유형이 있습니다:
- 공개 레지스트리(예: Docker Hub)
- 사설 레지스트리
오늘은 사설 레지스트리에 집중해보겠습니다. 그런데 왜 사설 레지스트리가 필요할까요? 비밀 레시피를 쓰고 있다고 상상해보세요. 그걸 공개 게시판에 올리고 싶지 않을 테죠? 그게 사설 레지스트리가 유용한 이유입니다!
사설 레지스트리 설정
이제 우리는 손을 dirt하고 사설 레지스트리를 설정해보겠습니다. 그렇게 어렵지 않습니다!
단계 1: 레지스트리 이미지 다운로드
먼저, Docker Hub에서 공식 레지스트리 이미지를 다운로드해야 합니다. 터미널을 열고 다음을 입력하세요:
docker pull registry:2
이 명령은 도서관에서 "registry" 책을 가져오도록 하는 것과 같습니다.
단계 2: 레지스트리 컨테이너 실행
이제 레지스트리를 실행해보겠습니다:
docker run -d -p 5000:5000 --name my-registry registry:2
이 명령을 해부해보면:
-
-d
: 컨테이너를 배후 모드(배경에서) 실행 -
-p 5000:5000
: 컨테이너의 포트 5000을 호스트의 포트 5000으로 매핑 -
--name my-registry
: 컨테이너에 친절한 이름을 부여 -
registry:2
: 사용할 이미지
축하드립니다! 이제 여러분의 기계에 사설 레지스트리가 실행 중입니다.
이미지를 사설 레지스트리에 푸시
이제 레지스트리가 있으니, 몇 가지 이미지를 넣어보겠습니다!
단계 1: 이미지 태그 지정
먼저, 이미지를 태그하여 레지스트리와 연결합니다:
docker tag my-image:latest localhost:5000/my-image:latest
이 작업은 도서에 특별 스티커를 붙여 레지스트리에 속한 것을 나타내는 것과 같습니다.
단계 2: 이미지 푸시
이제 이 이미지를 레지스트리에 푸시합니다:
docker push localhost:5000/my-image:latest
이제 여러분은 사설 도서관에 첫 책을 추가했습니다!
사설 레지스트리에서 이미지 풀기
사설 레지스트리에서 이미지를 사용하려면 다음과 같이 풀어보세요:
docker pull localhost:5000/my-image:latest
이렇게 간단합니다! 이제 사설 도서관에서 책을 찾아올 수 있습니다.
사설 레지스트리 보안
이제 사설 도서관에 누구나 접근할 수 없도록 보안을 추가해보겠습니다.
기본 인증 사용
기본 인증을 설정하는 방법은 다음과 같습니다:
- 비밀번호 파일 생성:
docker run --entrypoint htpasswd registry:2 -Bbn myuser mypassword > auth/htpasswd
- 인증된 레지스트리 실행:
docker run -d \
-p 5000:5000 \
--name secure-registry \
-v "$(pwd)"/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
registry:2
이제 레지스트리가 사용자 이름과 비밀번호로 보호됩니다!
유용한 Docker 레지스트리 명령어
다음 표는 유용한 명령어 목록입니다:
명령어 | 설명 |
---|---|
docker pull registry:2 |
레지스트리 이미지 다운로드 |
docker run -d -p 5000:5000 --name my-registry registry:2 |
레지스트리 컨테이너 실행 |
docker tag image:tag localhost:5000/image:tag |
이미지를 레지스트리에 태그 지정 |
docker push localhost:5000/image:tag |
이미지를 레지스트리에 푸시 |
docker pull localhost:5000/image:tag |
레지스트리에서 이미지 풀기 |
docker search localhost:5000/ |
레지스트리에서 검색 |
결론
이제 여러분은 자신만의 사설 Docker 레지스트리를 설정했습니다! 연습이 완벽을 이루는 길입니다. 두려워 말고 다양한 것을 시도해보세요. 새로운 것을 발견할 수 있을지도 모릅니다!
제가 가르치면서 보았던 것처럼, 학생들이 Docker 마스터로 성장했습니다. 인내와 끈기로 여러분도 그 길을 갈 수 있습니다. 계속 푸시( pun intended)하고 행복하게 Docker를 사용하세요!
Credits: Image by storyset