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/