Docker 創建本地鏡像倉庫


docker 安裝:https://www.cnblogs.com/jhxxb/p/11410816.html

 

安裝倉庫服務

配置 https 權限支持

修改 docker 配置文件:/etc/docker/daemon.json,增加內容 "insecure-registries": ["10.74.2.71:5000"]

{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com", "https://hub-mirror.c.163.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "insecure-registries": ["10.74.2.71:5000"]
}

重啟服務

systemctl daemon-reload && systemctl restart docker

 

在本地創建一個鏡像倉庫服務

docker run -d --name registry \
--restart=always \
-v /mnt/registry:/var/lib/registry \
-p 5000:5000 \
registry

--restart always:隨 docker 開機自啟動

-v /mnt/registry:/var/lib/registry:自定義鏡像存放路徑

--privileged=true:讓 container 內的 root 擁有真正的 root 權限

-e REGISTRY_STORAGE_DELETE_ENABLED=true:開啟刪除鏡像的功能

編輯配置

https://github.com/distribution/distribution/blob/main/docs/configuration.md

docker exec -it registry vi etc/docker/registry/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]
    Access-Control-Allow-Origin: ['*']
    Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
    Access-Control-Expose-Headers: ['Docker-Content-Digest']
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3


docker restart registry

刪除不會實際刪除鏡像文件,需要手動清理

https://docs.docker.com/registry/garbage-collection/

docker exec -it registry sh
registry garbage-collect /etc/docker/registry/config.yml
du -sch /var/lib/registry

 

基本使用

拷貝一個鏡像,並重命名(用於測試下一步的上傳)

docker tag 28dzdaf856cb 11.71.91.51:5000/openjdk:alpine

 

推送鏡像到本地鏡像倉庫

docker push 11.71.91.51:5000/openjdk:alpine

 

拉取本地倉庫中的鏡像

docker pull 11.71.91.51:5000/openjdk:alpine

 

查看(API)

https://github.com/distribution/distribution/blob/main/docs/spec/api.md

查看本地鏡像倉庫的鏡像

curl http://11.71.91.51:5000/v2/_catalog

查看本地鏡像倉庫鏡像的 tag

curl http://11.71.91.51:5000/v2/openjdk/tags/list

 

三方 UI 界面

https://hub.docker.com/r/joxit/docker-registry-ui

https://github.com/Joxit/docker-registry-ui

docker run -d --name registry-ui \
--restart=always \
-e REGISTRY_URL=http://10.74.2.71:5000 \
-e DELETE_IMAGES=true \
-p 5001:80 \
joxit/docker-registry-ui

訪問服務器 5001 端口

 


https://hub.docker.com/_/registry

https://docs.docker.com/registry/

https://www.cnblogs.com/wswind/p/11854854.html

https://blog.csdn.net/xts_huangxin/article/details/51693890


免責聲明!

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



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