如何搭建docker私有鏡像倉庫


設置登錄鑒權操作搭建參考:

https://blog.csdn.net/shida_csdn/article/details/78435971

參考指南:https://blog.51cto.com/ganbing/2080140

服務端機器 主機名為registry):docker私有倉庫服務器,運行registry容器;
節點機器 主機名為node):普通的docker服務器,在這台服務器上可以上傳和下載鏡像;

1. 服務端下載鏡像registry

docker pull registry

2. 生成登錄的用戶名和密碼

docker run --entrypoint htpasswd docker.io/registry:latest -Bbn hy 000000  >> /data/docker-registry/auth/htpasswd 

3. 節設置配置文件,啟用刪除鏡像功能(也可以不啟用,看業務需要,修改 storage - delete - enable 為 false 即可)


# mkdir -p /opt/registry-var/config

# vim /opt/registry-var/config/config.yml

version: 0.1

log:

  fields:

    service: registry

storage:

  delete:

    enabled: true

  cache:

    blobdescriptor: inmemory

  filesystem:

    rootdirectory: /var/lib/registry

http:

  addr: :5000

  headers:

    X-Content-Type-Options: [nosniff]

health:

  storagedriver:

    enabled: true

    interval: 10s

threshold: 3

4. 啟動registry鏡像服務

docker run -d -p 5000:5000 --restart=always  --name=registry\

  -v /data/docker-registry/config/:/etc/docker/registry/ \

  -v /data/docker-registry/auth/:/auth/ \

  -e "REGISTRY_AUTH=htpasswd" \

  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \

  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \

  -v /data/docker-registry/:/var/lib/registry/ \

docker.io/registry:latest

5. 開啟節點的http形式訪問私有倉庫

vim /etc/docker/daemon.json

{

    "log-driver": "json-file",

    "registry-mirrors":["55.18.67.171:5000"],

    "insecure-registries":["55.18.67.171:5000"]

}

# systemctl daemon-reload

# systemctl restart docker

6. 上傳和下載鏡像到私有倉庫

docker pull docker.io/hello-world

docker tag docker.io/hello-world:latest 55.18.67.171:5000/hello-word:latest

docker login 55.18.67.171:5000 -u hy -p 000000

docker push 55.18.67.171:5000/hello-word:latest

curl -u hy:000000  http://55.18.67.171:5000/v2/_catalog

7. 創建secret讓pod訪問不需要鑒權登錄

默認default命名空間使用的secret

kubectl create secret docker-registry 10.10.10.149  --docker-server=55.18.67.171:5000 --docker-username=hy --docker-password=000000 --docker-email=niewx@ruyi.ai

 

hy-uat命名空間使用的secret

kubectl create secret docker-registry 10.10.10.149  --docker-server=55.18.67.171:5000 –namespace=hy-uat --docker-username=hy --docker-password=000000 --docker-email=niewx@ruyi.ai

8. 列出所有鏡像

curl -u hy:000000  http://55.18.67.171:5000/v2/_catalog

9. 列出busybox鏡像有哪些tag

curl -u hy:000000  http://55.18.67.171:5000/v2/company-ner/tags/list


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM