웨어 하우스 (저장소) 이미지를 저장하는 중앙 집중화 된 곳입니다.
개념은 혼란 등록 서버 (레지스트리)입니다. 창고 관리 서버가 실제로 특정 서버를 등록, 여러 각 서버에서 창고 및 여러 미러 다음 각 창고를 가질 수 있습니다. 이러한 측면에서, 창고는 특정 프로젝트 또는 디렉토리로 간주 될 수있다. 예를 들어, docker.sina.com.cn/centos:centos7 창고의 주소, docekr.sian.com.cn는 CentOS는 저장소 이름, 등록 서버 주소 창고 태그 (라벨) centos7.
공식 저장소 도커 허브
현재 공식 고정 표시기는 이미 거울의 1,500 개 이상의를 포함하는 공공 창고, 고정 표시기 허브를 유지합니다. 수요의 대부분은, 당신은 달성 할 수 도커 허브에 직접 이미지를 다운로드 할 수 있습니다.
개인 창고를 배포 :
1, 공식 레지스트리에 의해 미러링 개인 창고를 배포합니다 :
프로젝트 환경 :
두 호스트 (centos7) : docker01 : 172.16.1.30
docker02 : 172.16.1.40 **
docker01 :
(. 1) 컨테이너 기반 미러링 레지스트리를 실행 :[root@sqm-docker01 ~]# docker run -d --name registry --restart=always -p 5000:5000 -v /data/registry:/var/lib/registry registry:latest
参数说明:
#registry服务默认监听的是5000端口
-v = --volume 数据卷,进行一个挂载:宿主机:容器内
(2) 미러라는 이름의 개인 창고 :
## 개인 창고의 이름을 지정하지 않으면, 기본 공공 창고 (고정 표시기 허브)를 이동하는 것입니다, 그것은 이름 거울에 필요하다.
개인 창고 이미지 명명 규칙 : 호스트의 IP 주소 : 포트 번호 / XXXX (이름을 변경해야합니다)
예를 들어, nignx 거울로, nginx를 다운로드 거울 :[root@sqm-docker01 ~]# docker pull nginx
[root@sqm-docker01 ~]# docker tag nginx:latest 172.16.1.30:5000/nginx:latest
참고 : ID 번호가 동일하기 때문에, 또한 레이블과 이미지 이름의 이름을 따서 명명 (nginx를 최신) 이름 지정 후 : 당신이 미러링합니다.
소스 이미지 (의 nginx가 : 최신) 때 경우 삭제할 미러가 여전히 존재합니다 후라는 레이블의 삭제 때문이다.
(3) 고정 표시기 주 설정 파일을 수정 :[root@sqm-docker01 ~]# vim /usr/lib/systemd/system/docker.service
IP 주소와 포트 번호 지정 지역 창고 :
과정을 다시 넣고 고정 표시기 서비스를 다시 시작합니다 :
[root@sqm-docker01 ~]# systemctl daemon-reload
[root@sqm-docker01 ~]# systemctl restart docker
(4) 개인 창고에 로컬 미러 푸시 :[root@sqm-docker01 ~]# docker push 172.16.1.30:5000/nginx:latest
// 거울 개인 창고를 확인 :
[root@sqm-docker01 ~]# curl 172.16.1.30:5000/v2/_catalog
{"repositories":["nginx"]}
// 창고 미러 태그를 확인합니다 :
[root@sqm-docker01 ~]# curl 172.16.1.30:5000/v2/nginx/tags/list
{"name":"nginx","tags":["latest"]}
docker02 :
: 창고에서 미러 docker01 당기는 docker01 접속
(1)의 구성 파일이 고정 표시기 수정[root@sqm-docker02 ~]# vim /usr/lib/systemd/system/docker.service
다시 고정 표시기 서비스 :
[root@sqm-docker02 ~]# systemctl daemon-reload
[root@sqm-docker02 ~]# systemctl restart docker
(2) 개인 저장소에서 미러를 당긴 :
[root@sqm-docker02 ~]# docker pull 172.16.1.30:5000/nginx
#使用pull命令进行拉取
(3)의 nginx 서비스를 배포 :
[root@sqm-docker02 ~]# mkdir html
[root@sqm-docker02 ~]# echo "welcome to nginx web" > html/index.html
[root@sqm-docker02 ~]# docker run -itd --name nginx -p 80:80 -v /root/html:/usr/share/nginx/html 172.16.1.30:5000/nginx
액세스의 nginx 페이지 :
2, 배포 하버 (허블) 개인 창고 :
개인 창고의 레지스트리 관계자는 항구는 타사의 개인 창고된다.
(1) 다운로드 작성 :
설치 따라 달라 [root@sqm-docker01 ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
GitHub의 공식 웹 사이트에서 다운로드 :
:의 URL https://github.com/docker/compose/releases
[root@sqm-docker01 ~]# curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-
끝나면 uname -s -
끝나면 uname -m-o /usr/local/bin/docker-compose
[root@sqm-docker01 ~]# chmod +x /usr/local/bin/docker-compose
보기 작성 버전 :
[root@sqm-docker01 ~]# docker-compose -version
docker-compose version 1.24.0, build 0aa59064
(2) 설치 패키지를 다운로드하여 항구를 압축 해제 :
[root@sqm-docker01 ~]# tar zxf harbor-offline-installer-v1.7.4.tgz -C /usr/local/
[root@sqm-docker01 ~]# cd /usr/local/harbor/
글 항구 구성 파일 : [root@sqm-docker01 harbor]# vim harbor.cfg
스크립트 실행 :
[루트 @ SQM-docker01 항구] # ./install.sh를
사용자 관리, 비밀번호 : Harbor12345 (항구에서 구성 파일을 볼 수 있습니다) 사이트를 입력
URL의 : http://172.16.1.30를 [root@sqm-docker01 harbor]# vim harbor.cfg
다음과 같이 로그인 화면입니다 :
(3) 우리는 페이지에 새 항목을 만들 :
##修改docker配置文件:
[root@sqm-docker01 ~]# vim /usr/lib/systemd/system/docker.service
// 다시로드 고정 표시기 :
[root@sqm-docker01 ~]# systemctl daemon-reload
[root@sqm-docker01 ~]# systemctl restart docker
// 다시 시작 구성 :
참고 : 그냥 다시 시작 고정 표시기 서비스는, 그래서 우리는 모든 컨테이너를 다시 시작해야합니다 때문입니다.[root@sqm-docker01 harbor]# docker ps -a -q | xargs docker start
[root@sqm-docker01 harbor]# docker-compose stop
[root@sqm-docker01 harbor]# docker-compose start
(4) 항에 연결된 로컬 터미널 :[root@sqm-docker01 harbor]# docker login -u admin -p Harbor12345 172.16.1.30:80
(5) 개인 창고 항구 푸시있는 거울에 업로드해야합니다
예를 들어 #의 nginx를, 로컬 미러 명령 및웨어 하우스로 밀어 :[root@sqm-docker01 harbor]# docker tag nginx:latest 172.16.1.30:80/sunqiuming/nginx:latest
[root@sqm-docker01 harbor]# docker push 172.16.1.30:80/sunqiuming/nginx:latest
#push到刚才在网页上创建的项目
성공적인 푸시 후, 우리는 페이지에 표시되는 :
: docker02 하버 연결
: 수정, docker02하기 위해 고정 표시기의 docker01의 구성 파일을 복사 docker02입니다 더 이상 구성 파일을 입력하지하기 위해 (1).
#에게 무료 비밀 착륙 :[root@sqm-docker01 ~]# ssh-keygen
[root@sqm-docker01 ~]# ssh-copy-id 172.16.1.40
[root@sqm-docker01 ~]# scp /usr/lib/systemd/system/docker.service [email protected]:/usr/lib/systemd/system/docker.service
重启고정 표시기服务:
[루트 @ 평방 미터 - docker02 ~] # 개의 systemctl 데몬 - 재 장전
[루트 @ 평방 미터 - docker02 ~] # 개의 systemctl 다시 시작 고정 표시기
(2) 개인 항구의 창고에 연결 :
(3) 항에서 전용 창고 미러 당긴 : [root@sqm-docker02 ~]# docker pull 172.16.1.30:80/sunqiuming/nginx
# 포인트 바로 업로드 된 이미지웨어 하우스 당기는.
(4) 최종 화상에서의 nginx 기반 서비스 및 테스트 페이지 러닝[root@sqm-docker02 ~]# docker run -d --name nginx -p 80:80 172.16.1.30:80/sunqiuming/nginx:latest
개인 창고 배포가 완료되었습니다. . . . . . .
--------이 문서의 끝 지금까지 읽어 주셔서 감사합니다 --------