Why docker registry?
Info |
---|
다음과 같은 경우 레지스트리를 사용해야합니다.
|
요구사항
Info |
---|
레지스트리는 Docker 엔진 버전 1.6.0 이상 과 호환됩니다 . |
Registry 이미지 검색
...
Info | ||
---|---|---|
| ||
Registry 정보
Info |
---|
저장소 자체는 드라이버에 위임됩니다. 기본 저장소 드라이버는 개발 또는 소규모 배포에 적합한 로컬 posix 파일 시스템입니다. S3, Microsoft Azure, OpenStack Swift 및 Aliyun OSS와 같은 추가 클라우드 기반 스토리지 드라이버도 지원됩니다. 다른 스토리지 백엔드를 사용하려는 사람들은 스토리지 API를 구현하는 자체 드라이버를 작성하여 이를 수행 할 수 있습니다 . 호스팅 된 이미지에 대한 액세스를 보호하는 것이 가장 중요하기 때문에 레지스트리는 기본적으로 TLS 및 기본 인증을 지원합니다. 레지스트리 GitHub 저장소에는 고급 인증 및 권한 부여 방법에 대한 추가 정보가 들어 있습니다. 이러한 방식으로 레지스트리를 확장하기 위해서는 대규모 또는 일반 배포 만 필요합니다. 마지막으로, 레지스트리에는 강력한 통지 시스템이 있으며, 활동에 대한 응답으로 webhooks를 호출하며, 광범위한 로깅 및보고 기능을 제공합니다. 메트릭을 수집하려는 대규모 설치에 주로 유용합니다. |
사용 사례
Info |
---|
자신의 레지스트리를 운영하는 것은 CI / CD 시스템을 통합하고 보완하는 훌륭한 솔루션입니다. 일반적인 워크 플로에서 소스 개정 관리 시스템에 대한 커밋은 CI 시스템에서 빌드를 트리거합니다. 그러면 빌드가 성공적으로 수행되면 새 이미지가 레지스트리로 전송됩니다. 그런 다음 레지스트리에서 알림을 받으면 준비 환경에서 배포를 트리거하거나 다른 시스템에 새 이미지를 사용할 수 있음을 알립니다. 대규모 시스템 클러스터에 새 이미지를 신속하게 배포하려는 경우에도 필수 구성 요소입니다. 마지막으로 고립 된 네트워크 내에 이미지를 배포하는 가장 좋은 방법입니다. |
운영 요구사항
Info |
---|
이미지를 밀고 당기는 것과 관련하여 Docker에 대해 잘 알고 있어야합니다. 데몬과 cli의 차이점을 이해하고 최소한 네트워킹에 대한 기본 개념을 파악해야합니다. 또한 레지스트리를 시작하는 것은 매우 쉽지만 프로덕션 환경에서 운영하려면 다른 서비스와 마찬가지로 운영 기술이 필요합니다. 시스템 가용성 및 확장 성, 로깅 및 로그 처리, 시스템 모니터링 및 보안에 익숙해야합니다. http 및 전체 네트워크 통신에 대한 철저한 이해와 golang에 대한 지식은 고급 작업이나 해킹에 유용합니다. |
Registry 사용자 정의
Info |
---|
|
외부에서 접근 가능한 레지스트리 실행
Code Block |
---|
[root@k8s-worker01 ~]# docker run -d -p 5000:5000 --restart always --name registry registry:2
Unable to find image 'registry:2' locally
Trying to pull repository docker.io/library/registry ...
2: Pulling from docker.io/library/registry
c87736221ed0: Pull complete
1cc8e0bb44df: Pull complete
54d33bcb37f5: Pull complete
e8afc091c171: Pull complete
b4541f6d3db6: Pull complete
Digest: sha256:3b00e5438ebd8835bcfa7bf5246445a6b57b9a50473e89c02ecc8e575be3ebb5
Status: Downloaded newer image for docker.io/registry:2
cfbef4ebde24a03fbcc544b93e2f182258bbda004c268458ee6efb6267d75739
[root@k8s-worker01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfbef4ebde24 registry:2 "/entrypoint.sh /e..." 13 seconds ago Up 11 seconds 0.0.0.0:5000->5000/tcp registry |
Code Block |
[root@k8s-worker01 ~]# mkdir certs [root@k8s-worker01 ~]# [root@k8s-worker01 ~]# openssl req \ > -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \ > -x509 -days 365 -out certs/domain.crt Generating a 4096 bit RSA private key ...................................................++ ........................................................................++ writing new private key to 'certs/domain.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:kr State or Province Name (full name) []:seoul Locality Name (eg, city) [Default City]:seoul Organization Name (eg, company) [Default Company Ltd]:sptek Organizational Unit Name (eg, section) []:engops Common Name (eg, your name or your server's hostname) []:registry.thesanse.com Email Address []:sooabia22@sptek.co.kr [root@k8s-worker01 ~]# cd certs [root@k8s-worker01 certs]# ls domain.crt domain.key [root@k8s-worker01 certs]# ls domain.crt domain.key [root@k8s-worker01 certs]# |
Info |
---|
|