도커 일곱째 백 (비공개 레지스트리)

분류의 A, 도커 레지스트리

레지스트리 고정 표시기는 거울 및 메타 데이터 계층 구조를, 거울을 들고 포함를 들어, 사용자는 자신의 레지스트리, 공식 허브 고정 표시기를 사용할 수 있습니다

  • 레지스트리 스폰서 : 타사 레지스트리, 고객 및 고정 표시기 커뮤니티를 사용하는

  • 거울 레지스트리 : 타사 레지스트리 만 고객이 사용할 수 있도록

  • 공급 업체 등록 : 게시자 도커 미러 공급 업체에서 제공하는 레지스트리

  • 개인 레지스트리 : 레지스트리 민간 기관에서 제공하는 방화벽 및 추가 보안 계층을

 

二, 부두 노동자 배포

고정 표시기 배포웨어 하우스는 또한 컨테이너에서 실행할 수있는, 개인 패키지 고정 표시기가 우리에게 제공합니다. 그러므로, 허브 고정 표시기에 반영된다. 그러나 고정 표시기 허브와 같은 고정 표시기 분배없이 웹 인터페이스, 이미지 검색, 웹 브라우징 등의 지원되지 않지만 자동으로 고정 표시기 허브의 거울을 구축 고정 표시기 파일의 사용을 지원하지 않습니다. 이 기능을 달성하기 위해, 당신은 항구를 사용할 수 있습니다

 

1 고정 표시기 분포 설치

  • 다운로드 더커 허브에 고정 표시기 배포 거울에 의해 우리는 또한 창고에 지속 미러링 된 데이터 네트워크 파일 시스템을 사용하여, 그것을 위해 스토리지 볼륨을 제공, 컨테이너가 중지되면, 데이터 기능을 삭제됩니다 있기 때문에, 컨테이너에서 실행 만들려면

  • 냠 설치, 고정 표시기 배포 설치 패키지 엑스트라 얌웨어 하우스를 직접 설치할 수 있습니다

     

 

2, 냠 고정 표시기 배포 설치

2.1 설치

[root@centos7-node2 ~]# yum info docker-distribution
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: mirror.bit.edu.cn
 * updates: mirror.bit.edu.cn
Installed Packages
Name        : docker-distribution
Arch        : x86_64 Version : 2.6.2 Release : 2.git48294d9.el7 Size : 12 M Repo : installed From repo : extras Summary : Docker toolset to pack, ship, store, and deliver content URL : https://github.com/docker/distribution License : ASL 2.0 Description : Docker toolset to pack, ship, store, and deliver content [root@centos7-node2 ~]# yum install docker-distribution [root@centos7-node2 ~]# rpm -ql docker-distribution /etc/docker-distribution/registry/config.yml /usr/bin/registry /usr/lib/systemd/system/docker-distribution.service /usr/share/doc/docker-distribution-2.6.2 /usr/share/doc/docker-distribution-2.6.2/AUTHORS /usr/share/doc/docker-distribution-2.6.2/CONTRIBUTING.md /usr/share/doc/docker-distribution-2.6.2/LICENSE /usr/share/doc/docker-distribution-2.6.2/MAINTAINERS /usr/share/doc/docker-distribution-2.6.2/README.md /var/lib/registry [root@centos7-node2 ~]# service docker-distribution start Redirecting to /bin/systemctl start docker-distribution.service [root@centos7-node2 ~]# netstat -tlunp |grep 5000 tcp6 0 0 :::5000 :::* LISTEN 2912/registry
 

2.2 구성

기본 구성 파일, 자신의 요구 변화에 따라

[root@centos7-node2 ~]# vim /etc/docker-distribution/registry/config.yml
version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        layerinfo: inmemory
    filesystem:
        rootdirectory: /var/lib/registry
http:
    addr: :5000
 

 

3 미러 업로드 고정 표시기 분포

3.1, 미러링 및 업로드

[root@bogon ~]# docker tag httpd:1.1 centos7-node2.local:5000/httpd:1.1
[root@bogon ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE centos7-node2.local:5000/httpd 1.1 bbffcf779dd4 2 weeks ago 264MB httpd 1.1 bbffcf779dd4 2 weeks ago 264MB nginx stable ecc98fc2f376 5 weeks ago 109MB [root@bogon ~]# docker pull centos7-node2.local:5000/httpd:1.1 Error response from daemon: Get https://centos7-node2.local:5000/v2/: dial tcp 192.168.31.187:5000: connect: no route to host [root@bogon ~]# vim /etc/docker/daemon.json "insecure-registries": ["centos7-node2.local:5000"] [root@bogon ~]# service docker restart Redirecting to /bin/systemctl restart docker.service [root@bogon ~]# docker push centos7-node2.local:5000/httpd:1.1 The push refers to repository [centos7-node2.local:5000/httpd] ddcb568d3d1e: Pushed da6517724f67: Pushed 1.1: digest: sha256:e40c5748459eb28eb7cb39eb35f863abcd6b1aa1f341f1f8e999a27537d34bb5 size: 741
 

창고는 개인 http 프로토콜 인 경우 HTTPS 및 레지스트리의 기본을 사용하여 # 도커 클라이언트 통신, 우리는 고정 표시기 클라이언트 구성 파일을 변경해야

3.2 고정 표시기 분포 확인

[root@centos7-node2 ~]# ll /var/lib/registry/docker/registry/v2/repositories/httpd/_layers/sha256/
total 0
drwxr-xr-x. 2 root root 18 Nov 20 17:15 bbffcf779dd42e070d52a4661dcd3eaba2bed898bed8bbfe41768506f063ad32
drwxr-xr-x. 2 root root 18 Nov 20 17:15 f06537d9e799fdeca094e95d56295b96359d188988b5d78353f716de5856b5b1
drwxr-xr-x. 2 root root 18 Nov 20 17:15 f9f73d801f0558b085ffa505240a065319269c4cefbe9c2e60103d58761edfa8
 

3.3 그냥 고정 표시기 클라이언트 이미지를 삭제하고 검색

[root@bogon ~]# docker image rm centos7-node2.local:5000/httpd:1.1
Untagged: centos7-node2.local:5000/httpd:1.1
Untagged: centos7-node2.local:5000/httpd@sha256:e40c5748459eb28eb7cb39eb35f863abcd6b1aa1f341f1f8e999a27537d34bb5
[root@bogon ~]# [root@bogon ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE httpd 1.1 bbffcf779dd4 2 weeks ago 264MB nginx stable ecc98fc2f376 5 weeks ago 109MB [root@bogon ~]# docker pull centos7-node2.local:5000/httpd:1.1 1.1: Pulling from httpd Digest: sha256:e40c5748459eb28eb7cb39eb35f863abcd6b1aa1f341f1f8e999a27537d34bb5 Status: Downloaded newer image for centos7-node2.local:5000/httpd:1.1 [root@bogon ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE centos7-node2.local:5000/httpd 1.1 bbffcf779dd4 2 weeks ago 264MB httpd 1.1 bbffcf779dd4 2 weeks ago 264MB nginx stable ecc98fc2f376 5 weeks ago 109MB
 

 

셋째, 항구는 무엇인가

구글, IBM, 마이크로 소프트 공동 설립 CNCF에 의해 항구 (기본 클라우드 기반 컴퓨팅), 전문 타사 유지 보수 조직은 다른 프로젝트를 K8S. 그것은 단지 항구 (개인웨어 하우스 서버 소프트웨어) 프로젝트에 참가 등 포함 프로젝트 K8S, 프로 메테우스를 유지합니다. 항구는 이제 엔터프라이즈 급웨어 하우스 애플리케이션이다. 보조 개발 프로젝트에 만든 고정 표시기 분배에 기초 VM웨어는 웹 인터페이스를 포함, 별도의 프로그램을 많이 추가. 그래서, 우리는 완전한 지역 개인 창고 항구를 구축 할 수 있습니다.

프로젝트 하버는 오픈 소스 신뢰할 수있는 클라우드 네이티브 레지스트리 프로젝트 저장, 표지판, ADN 스캔 콘텐츠입니다.

하버는 일반적으로 보안, ID 및 관리 등 사용자가 필요로하는 기능을 추가하여 오픈 소스 도커 배포를 확장

하버는 인스턴스간에 사용자 관리, 액세스 제어, 활동 모니터링 및 복제와 같은 고급 기능을 지원합니다

 

1, 항구 기능

  • 멀티 테넌시 (multi-tenancy) 지원, 항구는 많은 사용자가 자신의 등록은 창고에 와서 관리 할 수 ​​있습니다 그

  • 보안에 대한 지원, 위험 분석

  •  지원 감사 로그

  • 역할 기반 액세스 제어

  • 여러 항구와 지원 복제

  • 확장 가능한 API를, UI 그래픽 인터페이스

  • 국제, 현재 영어와 중국어 지원

 

2, 항구 설치

공식 항구 설치를 단순화하기 위해, 항구는 항구 MySQL의에 의존하기 때문에, 다른 많은 스토리지 시스템을 레디 스, 컨테이너에서 실행되는 응용 프로그램을 만들었다. 그래서 여러 컨테이너를 함께 작업하는 것이 필요하다. 따라서 배포시의 항구를 VM웨어와 도구가 고정 표시기를 구성의 독립 변수 세트를 사용할 필요가 사용

다운로드 : HTTPS : //github.com/goharbor/harbor/releases

설치 설명서 : https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

 

[root@centos7-node2 src]# wget  
[root@centos7-node2 src]# tar -zxvf harbor-offline-installer-v1.5.4.tgz -C /usr/local/ [root@centos7-node2 src]# cd /usr/local/harbor/ [root@centos7-node2 harbor]# sed -i 's/hostname = reg.mydomain.com/hostname = centos7-node2.local/g' ./harbor.cfg [root@centos7-node2 harbor]# yum install docker-compose [root@centos7-node2 harbor]# yum install epel-release [root@centos7-node2 harbor]# yum install docker-compose [root@centos7-node2 harbor]# ./install.sh ?.----Harbor has been installed and started successfully.---- Now you should be able to visit the admin portal at http://centos7-node2.local. For more details, please visit https://github.com/vmware/harbor . [root@centos7-node2 harbor]# docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2ecc079867c6 vmware/nginx-photon:v1.5.4 "nginx -g 'daemon of?? 14 seconds ago Up 12 seconds (health: starting) 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp nginx a1b51d6d296a vmware/harbor-jobservice:v1.5.4 "/harbor/start.sh" 14 seconds ago Up 12 seconds harbor-jobservice 0ffb3f2a442e vmware/harbor-ui:v1.5.4 "/harbor/start.sh" 16 seconds ago Up 14 seconds (health: starting) harbor-ui 1c5e3590ac25 vmware/registry-photon:v2.6.2-v1.5.4 "/entrypoint.sh serv?? 19 seconds ago Up 16 seconds (health: starting) 5000/tcp registry fd09682ac89a vmware/harbor-adminserver:v1.5.4 "/harbor/start.sh" 19 seconds ago Up 16 seconds (health: starting) harbor-adminserver 054710b41aa2 vmware/harbor-db:v1.5.4 "/usr/local/bin/dock?? 19 seconds ago Up 16 seconds (health: starting) 3306/tcp harbor-db c03daf7e3bb1 vmware/redis-photon:v1.5.4 "docker-entrypoint.s?? 19 seconds ago Up 17 seconds 6379/tcp redis b1fcf0c916a1 vmware/harbor-log:v1.5.4 "/bin/sh -c /usr/loc?? 22 seconds ago Up 18 seconds (health: starting) 127.0.0.1:1514->10514/tcp harbor-log [root@centos7-node2 harbor]#
 

성공적인 설치 후 팔 개 컨테이너 항구를 시작합니다.

참고 : 인해 그렇지 않으면 설치되지 않습니다, 그래서 방화벽 서비스를 열려면 네트워크가 NAT입니다 항구 할 수 있습니다.

웹 인터페이스의 마지막 성공적인 설치

의 image.png

 

항구 웹 인터페이스를 사용하여 3,

3.1, 새로운 프로젝트를 생성

의 image.png

 

3.2, 어떤 거울이없는, 새로 만든 프로젝트를 클릭

의 image.png

 

고정 표시기 클라이언트를 사용하여 3.3, 미러링 및 업로드

[root@bogon ~]# docker tag centos7-node2.local:5000/httpd:1.1 centos7-node2.local/development/httpd:1.2
[root@bogon ~]# docker tag centos7-node2.local:5000/httpd:1.1 centos7-node2.local/development/httpd:1.3 [root@bogon ~]# docker tag centos7-node2.local:5000/httpd:1.1 centos7-node2.local/development/httpd:1.4 [root@bogon ~]# docker login centos7-node2.local Username: gouyacai Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. [root@bogon ~]# docker push centos7-node2.local/development/httpd:1.2 The push refers to repository [centos7-node2.local/development/httpd] ddcb568d3d1e: Pushed da6517724f67: Pushed 1.2: digest: sha256:e40c5748459eb28eb7cb39eb35f863abcd6b1aa1f341f1f8e999a27537d34bb5 size: 741 [root@bogon ~]# docker push centos7-node2.local/development/httpd:1.3 The push refers to repository [centos7-node2.local/development/httpd] ddcb568d3d1e: Layer already exists da6517724f67: Layer already exists 1.3: digest: sha256:e40c5748459eb28eb7cb39eb35f863abcd6b1aa1f341f1f8e999a27537d34bb5 size: 741 [root@bogon ~]# docker push centos7-node2.local/development/httpd:1.4 The push refers to repository [centos7-node2.local/development/httpd] ddcb568d3d1e: Layer already exists da6517724f67: Layer already exists 1.4: digest: sha256:e40c5748459eb28eb7cb39eb35f863abcd6b1aa1f341f1f8e999a27537d34bb5 size: 741
 

의 image.png

 

3.4 항구에 미러에서 클라이언트 고정 표시기를 가져옵니다

[root@bogon ~]# docker image rm centos7-node2.local/development/httpd:1.2
Untagged: centos7-node2.local/development/httpd:1.2
[root@bogon ~]# docker image rm centos7-node2.local/development/httpd:1.3 Untagged: centos7-node2.local/development/httpd:1.3 [root@bogon ~]# docker image rm centos7-node2.local/development/httpd:1.4 Untagged: centos7-node2.local/development/httpd:1.4 Untagged: centos7-node2.local/development/httpd@sha256:e40c5748459eb28eb7cb39eb35f863abcd6b1aa1f341f1f8e999a27537d34bb5 [root@bogon ~]# [root@bogon ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE centos7-node2.local:5000/httpd 1.1 bbffcf779dd4 2 weeks ago 264MB httpd 1.1 bbffcf779dd4 2 weeks ago 264MB nginx stable ecc98fc2f376 5 weeks ago 109MB centos 6.6 4e1ad2ce7f78 5 weeks ago 203MB redis 4-alpine 05097a3a0549 6 weeks ago 30MB [root@bogon ~]# docker pull centos7-node2.local/development/httpd:1.2 1.2: Pulling from development/httpd Digest: sha256:e40c5748459eb28eb7cb39eb35f863abcd6b1aa1f341f1f8e999a27537d34bb5 Status: Downloaded newer image for centos7-node2.local/development/httpd:1.2 [root@bogon ~]# docker pull centos7-node2.local/development/httpd:1.3 1.3: Pulling from development/httpd Digest: sha256:e40c5748459eb28eb7cb39eb35f863abcd6b1aa1f341f1f8e999a27537d34bb5 Status: Downloaded newer image for centos7-node2.local/development/httpd:1.3 [root@bogon ~]# docker pull centos7-node2.local/development/httpd:1.4 1.4: Pulling from development/httpd Digest: sha256:e40c5748459eb28eb7cb39eb35f863abcd6b1aa1f341f1f8e999a27537d34bb5 Status: Downloaded newer image for centos7-node2.local/development/httpd:1.4 [root@bogon ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE httpd 1.1 bbffcf779dd4 2 weeks ago 264MB centos7-node2.local/development/httpd 1.2 bbffcf779dd4 2 weeks ago 264MB centos7-node2.local/development/httpd 1.3 bbffcf779dd4 2 weeks ago 264MB centos7-node2.local/development/httpd 1.4 bbffcf779dd4 2 weeks ago 264MB

 

 

추천

출처www.cnblogs.com/baomaggie/p/11622765.html