docker搭建私有倉庫

安裝必要的依賴:java

[root@docker ~]# yum -y install device-mapper-event-libsnode

[root@docker ~]# yum -y install docker-ionginx

獲取私有倉庫鏡像:docker

[root@docker ~]# docker pull registry:2.6apache

設定容許訪問docker私有倉庫的證書祕鑰,使用https訪問,安全一些:json

[root@docker ~]# mkdir -p registry/{certs,auth}vim

[root@docker ~]# cd registry/certs/centos

[root@docker certs]# openssl req -x509 -days 3650 -subj '/CN=reg.docker.com/' -nodes -newkey rsa:2048 -keyout registry.key -out registry.crttomcat

[root@docker certs]# cd /root/registry/auth/安全

運行docker私有倉庫一次,生成用戶名密碼:

 [root@docker auth]# docker run --entrypoint htpasswd registry:2.6 -Bbn docker docker123 >htpasswd

在物理機上建立鏡像存放的物理路徑:

 [root@docker ~]# mkdir -p /data/DockerRegistry/

 正式運行docker私有倉庫,搭載證書和鏡像存放的物理路徑:

[root@docker ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /etc/pki/registry/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /etc/pki/registry/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key -e REGISTRY_STORAGE_DELETE_ENABLED=true -v /home/DockerRegistry:/var/lib/registry registry:2.6

注:--restart=always最好不要使用

 建立私有倉庫的證書存放路徑:

[root@docker ~]# mkdir -p /etc/docker/certs.d/reg.docker.com:5000

 拷貝證書:

[root@docker ~]# cp /root/registry/certs/registry.crt /etc/docker/certs.d/reg.docker.com:5000

 修改客戶端hosts,確保能夠訪問到私有倉庫的地址:

[root@docker ~]# vim /etc/hosts

192.168.1.7 reg.docker.com

 

登陸:

[root@docker ~]# docker login reg.docker.com:5000

上傳:

[root@docker ~]# docker tag centos:java1.8 reg.docker.com:5000/java:1.8

[root@docker ~]# docker push reg.docker.com:5000/java:1.8

下載:

[root@docker ~]# docker pull reg.docker.com:5000/java:1.8

查看:

[root@docker ~]# curl -u docker:docker123 -X GET https://reg.docker.com:5000/v2/_catalog -k

{"repositories":["java"]}

[root@docker ~]# curl -u docker:docker123 -X GET https://reg.docker.com:5000/v2/java/tags/list -k

{"name":"java","tags":["1.8"]}

 

 

 

 

 

 

其餘主機訪問:

1.建立證書目錄(沒有此目錄本身建立,注意端口號)

mkdir -p /etc/docker/certs.d/docker-domain.ttcdw.com:5000

 

2.下載證書

scp -r root@10.0.0.251:/etc/nginx/ssl/registry/certs/registry.crt /etc/docker/certs.d/docker-domain.ttcdw.com\:5000/

 

3.域名解析,若是有DNS解析無需作此步驟(registry-server-ip=192.168.1.10)

echo 10.0.0.251 docker-domain.ttcdw.com >> /etc/hosts

 

私有庫查看都有哪些鏡像:

curl -k -u ttcdw:ttcdw_prod_images https://docker-domain.ttcdw.com:5000/v2/_catalog

 

私有庫查看某一鏡像都有哪些版本:

curl -k -u ttcdw:ttcdw_prod_images https://docker-domain.ttcdw.com:5000/v2/tomcat17u80_study/tags/list

 

私有庫刪除某一鏡像的某一版本:

curl -k -u ttcdw:ttcdw_prod_images  --header "Accept: application/vnd.docker.distribution.manifest.v2+json" -I -X GET https://docker-domain.ttcdw.com:5000/v2/tomcat17u80_study/manifests/v1.0.10

         用獲取到的Docker-Content-Digest: sha256:d7be2798303a994d4b4b11188dd7a6410e1cb86f8defffc30126c960c350ae6c

curl -k -u ttcdw:ttcdw_prod_images  --header "Accept: application/vnd.docker.distribution.manifest.v2+json" -I -X DELETE https://docker-domain.ttcdw.com:5000/v2/ttcdw_apache_pxgl/manifests/sha256:76d112d06df3b7f012244b7cea6bda62137419e2a3465f39a8286a922fe4ea41

 

 

 

 

 

 

docker exec -it registry /bin/sh

registry garbage-collect /etc/docker/registry/config.yml

相關文章
相關標籤/搜索