부두 노동자 개인 창고 (레지스트리 및 항구)를 배포

웨어 하우스 (저장소) 이미지를 저장하는 중앙 집중화 된 곳입니다.
개념은 혼란 등록 서버 (레지스트리)입니다. 창고 관리 서버가 실제로 특정 서버를 등록, 여러 각 서버에서 창고 및 여러 미러 다음 각 창고를 가질 수 있습니다. 이러한 측면에서, 창고는 특정 프로젝트 또는 디렉토리로 간주 될 수있다. 예를 들어, 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
부두 노동자 개인 창고 (레지스트리 및 항구)를 배포

개인 창고 배포가 완료되었습니다. . . . . . .

--------이 문서의 끝 지금까지 읽어 주셔서 감사합니다 --------

추천

출처blog.51cto.com/13972012/2446357