最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker Registry以及Docker-Registry-UI部署過程

 更新時間:2026年03月18日 09:04:51   作者:憑X而動  
這篇文章主要介紹了Docker Registry以及Docker-Registry-UI部署過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

部署Docker Registry之前先部署Docker

參考Docker、Docker Compose部署

Docker-Registry-UI(Registry管理界面)github項目地址:https://github.com/Joxit/docker-registry-ui

一、下載鏡像并啟動

# 注意:V3和V2版本對應(yīng)的配置文件路徑不一致 
# 下載最新版本鏡像(目前是V3版本)
docker pull registry
# 下載V2版本鏡像(2.8.3版本)
docker pull registry:2

# 下載Registry管理界面鏡像(不需要界面則不需要下載該鏡像)
docker pull joxit/docker-registry-ui:main

# 創(chuàng)建數(shù)據(jù)目錄
mkdir /opt/registry/data

# 如果需要用戶名密碼訪問,需要執(zhí)行以下命令
# 安裝 apache2-utils 來獲取 htpasswd 工具
yum install httpd-tools
# 創(chuàng)建用戶名密碼目錄
mkdir /opt/registry/auth
# 創(chuàng)建用戶密碼文件,username和password替換實際的用戶名和密碼
htpasswd -Bbn username password > /opt/registry/auth/htpasswd

1.1 docker快速啟動

# 啟動registry
docker run -d -p 5000:5000 \
--name=registry \
--restart=always \
-v /opt/registry/data:/var/lib/registry \
# 如果開啟了用戶名和密碼訪問,需求如下配置
-v /opt/registry/auth:/auth \
# 啟用刪除功能(V3版本配置文件默認開啟,可以不需要配置;V2版本需要刪除功能就需要開啟,或者修改配置文件開啟)
-e REGISTRY_STORAGE_DELETE_ENABLED=true \
# 如果開啟了用戶名和密碼訪問,需求如下配置
-e REGISTRY_AUTH=htpasswd \
-e REGISTRY_AUTH_HTPASSWD_REALM='Registry Realm' \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
# 如果需要啟動Registry管理界面,需要如下配置
-e REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin='[http://192.168.1.114:5001]' \
-e REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods='[HEAD,GET,OPTIONS,DELETE]' \
-e REGISTRY_HTTP_HEADERS_Access-Control-Allow-Credentials='[true]' \
-e REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers='[Authorization,Accept,Cache-Control]' \
-e REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers='[Docker-Content-Digest]' \
registry

# 啟動Registry管理界面
docker run -d -p 5001:80 \
--name registry-ui \
--restart=always \
-e SINGLE_REGISTRY=true \
-e REGISTRY_TITLE='Docker Registry UI' \
-e REGISTRY_URL=http://192.168.1.114:5000 \
-e DELETE_IMAGES=true \
-e SHOW_CONTENT_DIGEST=true \
-e SHOW_CATALOG_NB_TAGS=true \
-e TAGLIST_PAGE_SIZE=100 \
-e CATALOG_ELEMENTS_LIMIT=1000 \
-e REGISTRY_SECURED=false \
joxit/docker-registry-ui:main

·SINGLE_REGISTRY=true # true:UI只連接一個Docker Registry;false:可以配置多個Registry
·REGISTRY_TITLE='Docker Registry UI' # UI標題
·REGISTRY_URL=http://192.168.1.114:5000 # Docker Registry 的地址
·DELETE_IMAGES=true # 允許用戶在UI中刪除鏡像
·SHOW_CONTENT_DIGEST=true # 在UI中顯示內(nèi)容摘要(digest)
·SHOW_CATALOG_NB_TAGS=true # 在UI中顯示每個鏡像的標簽數(shù)量
·TAGLIST_PAGE_SIZE=100 # 設(shè)置標簽列表的頁面大小為100,控制每頁顯示的標簽數(shù)量
·CATALOG_ELEMENTS_LIMIT=1000 # 設(shè)置目錄元素的限制為1000,控制在UI中顯示的最大元素數(shù)量
·REGISTRY_SECURED=false # false:Docker Registry不使用HTTPS;true:Registry使用HTTPS

1.2 docker-compose啟動

# 創(chuàng)建 docker-compose.yml
cd /opt/registry
vim docker-compose.yml
version: '3.8'
services:
  registry:
    image: registry
    container_name: registry
    restart: always
    ports:
      - "5000:5000"
    volumes:
      - /opt/registry/data:/var/lib/registry
      # 如果開啟了用戶名和密碼訪問,需求如下配置
      - /opt/registry/auth:/auth
    environment:
      # 啟用刪除功能(V3版本配置文件默認開啟,可以不需要配置;V2版本需要刪除功能就需要開啟,或者修改配置文件開啟)
      REGISTRY_STORAGE_DELETE_ENABLED: true
      # 如果開啟了用戶名和密碼訪問,需求如下配置
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: 'Registry Realm'
      REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
      # 如果需要啟動Registry管理界面,需要如下配置
      REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin: '[http://192.168.1.114:5001]'
      REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods: '[HEAD,GET,OPTIONS,DELETE]'
      REGISTRY_HTTP_HEADERS_Access-Control-Allow-Credentials: '[true]'
      REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers: '[Authorization,Accept,Cache-Control]'
      REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers: '[Docker-Content-Digest]'
  # Registry管理界面
  registry-ui:
    image: joxit/docker-registry-ui:main
    container_name: registry-ui
    restart: always
    ports:
      - 5001:80
    environment:
      # true:UI只連接一個Docker Registry;false:可以配置多個Registry
      - SINGLE_REGISTRY=true
      # UI標題
      - REGISTRY_TITLE=Docker Registry UI
      # Docker Registry 的地址
      - REGISTRY_URL=http://192.168.1.114:5000
      # 允許用戶在UI中刪除鏡像+
      - DELETE_IMAGES=true
      # 在UI中顯示內(nèi)容摘要(digest)
      - SHOW_CONTENT_DIGEST=true
      # 在UI中顯示每個鏡像的標簽數(shù)量
      - SHOW_CATALOG_NB_TAGS=true
      # 設(shè)置標簽列表的頁面大小為100,控制每頁顯示的標簽數(shù)量
      - TAGLIST_PAGE_SIZE=100
      # 設(shè)置目錄元素的限制為1000,控制在UI中顯示的最大元素數(shù)量
      - CATALOG_ELEMENTS_LIMIT=1000
      # false:Docker Registry不使用HTTPS;true:Registry使用HTTPS
      - REGISTRY_SECURED=false      

# 啟動服務(wù)
docker-compose up -d

二、查看registry版本

# 查看registry版本:docker exec -it <container-name> registry --version
docker exec -it registry registry --version
# V3版本輸出:registry github.com/distribution/distribution/v3 3.0.0
# V2版本輸出:registry github.com/docker/distribution 2.8.3

三、上傳鏡像到registry

vim /etc/docker/daemon.json
# 添加安全訪問權(quán)限
{
  "insecure-registries":["http://192.168.1.114:5000"]
}

# 重啟Docker
systemctl restart docker

# 登錄registry倉庫
docker login 192.168.1.114:5000

# docker下載nginx鏡像并上傳到registry
docker pull nginx
docker tag nginx:latest 192.168.1.114:5000/nginx:latest
docker push 192.168.1.114:5000/nginx:latest

# 查看 repository 列表
curl http://192.168.1.114:5000/v2/_catalog
# 需要用戶名密碼訪問使用如下命令
curl -u your-username:your-password http://192.168.1.114:5000/v2/_catalog

# 查看鏡像 tag 列表:http://ip:5000/v2/<image_name>/tags/list
curl http://192.168.1.114:5000/v2/nginx/tags/list
# 需要用戶名密碼訪問使用如下命令
curl -u your-username:your-password http://192.168.1.114:5000/v2/nginx/tags/list

四、刪除鏡像

注:通過Docker-Registry-UI頁面刪除鏡像,也需要手動進行垃圾回收釋放存儲空間

4.1 配置registry允許刪除鏡像

如果registry啟動時添加了環(huán)境變量:啟用刪除功能(REGISTRY_STORAGE_DELETE_ENABLED='true'),則忽略此步驟

# 查找配置文件
# V3版本配置文件路徑:/etc/distribution/config.yml
# V2版本配置文件路徑:/etc/docker/registry/config.yml
docker exec -it registry find / -name "config.yml"

# 進入容器內(nèi)部
docker exec -it registry /bin/sh

# V3版本
# 查看storage.delete.enabled: true是否配置(默認已配置)
cat /etc/distribution/config.yml
version: 0.1
log:
  level: debug
  fields:
    service: registry
    environment: development
storage:
    delete:
      enabled: true
    cache:
        blobdescriptor: inmemory
    filesystem:
        rootdirectory: /var/lib/registry
    tag:
      concurrencylimit: 5
http:
    addr: :5000
    debug:
        addr: :5001
        prometheus:
            enabled: true
            path: /metrics
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

# V2版本
# 添加storage.delete.enabled: true(默認未配置)
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]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

# 重啟registry容器
docker restart registry
# 如果使用docker compose啟動,則使用docker-compose restart重啟
#docker-compose restart

4.2 刪除鏡像

4.2.1 命令刪除

# 查詢要刪除鏡像tag:http://192.168.1.114:5000/v2/<image_name>/tags/list
curl http://192.168.1.114:5000/v2/nginx/tags/list

# 查詢鏡像的Digest:GET http://ip:5000/v2/<image_name>/manifests/<tag>
# 必須在 Header 中指定 Accept 為 v2 格式,否則可能獲取到錯誤的 Digest。
curl --header "Accept: application/vnd.docker.distribution.manifest.v2+json" -I -X GET http://192.168.1.114:5000/v2/nginx/manifests/latest
# 輸出如下:
HTTP/1.1 200 OK
Content-Length: 1778
Content-Type: application/vnd.docker.distribution.manifest.v2+json
Docker-Content-Digest: sha256:a6dd519f4cc2f69a8f049f35b56aec2e30b7ddfedee12976c9e289c07b421804
Docker-Distribution-Api-Version: registry/2.0
Etag: "sha256:a6dd519f4cc2f69a8f049f35b56aec2e30b7ddfedee12976c9e289c07b421804"
Date: Mon, 26 Jan 2026 17:24:49 GMT

# 調(diào)用registry接口刪除鏡像
curl -I -X DELETE http://192.168.1.114:5000/v2/nginx/manifests/sha256:a6dd519f4cc2f69a8f049f35b56aec2e30b7ddfedee12976c9e289c07b421804
# 輸出如下:
HTTP/1.1 202 Accepted
Docker-Distribution-Api-Version: registry/2.0
Date: Tue, 27 Jan 2026 09:35:07 GMT
Content-Length: 0

# 執(zhí)行垃圾回收,釋放存儲空間:docker exec -it <鏡像倉庫容器ID/名稱> /bin/registry garbage-collect <鏡像倉庫配置文件>
# V3版本
docker exec -it registry bin/registry garbage-collect /etc/distribution/config.yml
# V2版本
docker exec -it registry bin/registry garbage-collect /etc/docker/registry/config.yml

4.2.2 Registry管理界面刪除

# 執(zhí)行垃圾回收,釋放存儲空間:docker exec -it <鏡像倉庫容器ID/名稱> /bin/registry garbage-collect <鏡像倉庫配置文件>
# V3版本
docker exec -it registry bin/registry garbage-collect /etc/distribution/config.yml
# V2版本
docker exec -it registry bin/registry garbage-collect /etc/docker/registry/config.yml

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Ubuntu22.04 LTS安裝docker以及docker-compose實踐

    Ubuntu22.04 LTS安裝docker以及docker-compose實踐

    安裝Docker引擎需卸載舊版、更新apt、添加GPG密鑰、設(shè)置存儲庫并安裝,docker-compose通過GitHub下載,阿里云鏡像加速需在控制臺獲取加速地址并配置
    2025-08-08
  • Docker+Nginx單副本零停機發(fā)布實現(xiàn)并解決文件訪問 404

    Docker+Nginx單副本零停機發(fā)布實現(xiàn)并解決文件訪問 404

    本文提供了解決Docker容器文件隔離問題的方法,核心是Nginx和業(yè)務(wù)容器掛載相同的宿主機文件目錄,通過Nginx重寫規(guī)則去掉/api前綴匹配業(yè)務(wù)服務(wù)路徑,同時發(fā)布時流量同步切換到臨時副本,避免404和中斷問題
    2026-04-04
  • Docker如何實現(xiàn)容器間的安全通信方式

    Docker如何實現(xiàn)容器間的安全通信方式

    文章介紹了使用自定義網(wǎng)絡(luò)、網(wǎng)絡(luò)訪問控制、數(shù)據(jù)加密、認證與授權(quán)機制、安全更新與漏洞管理等方法來提升Docker容器的安全性
    2024-11-11
  • 清理docker磁盤空間的方法總結(jié)(附詳細講解)

    清理docker磁盤空間的方法總結(jié)(附詳細講解)

    docker?鏡像特別容易占空間,稍微不注意可能磁盤爆滿,所以本文給大家詳細介紹了如何清理?docker?磁盤空間,并通過代碼示例給大家講解的非常詳細,需要的朋友可以參考下
    2024-02-02
  • 一文講解如何查看一個docker鏡像有哪些版本

    一文講解如何查看一個docker鏡像有哪些版本

    這篇文章主要給大家介紹了關(guān)于如何查看一個docker鏡像有哪些版本的相關(guān)資料,文中通過圖文介紹的非常詳細,對大家學(xué)習(xí)或者使用docker具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-04-04
  • 如何使用Docker部署Go Web應(yīng)用的實現(xiàn)

    如何使用Docker部署Go Web應(yīng)用的實現(xiàn)

    這篇文章主要介紹了如何使用Docker部署Go Web應(yīng)用的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 基于Docker+Jenkins實現(xiàn)自動化部署的方法

    基于Docker+Jenkins實現(xiàn)自動化部署的方法

    這篇文章主要介紹了基于Docker+Jenkins實現(xiàn)自動化部署,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 使用Docker搭建ELK日志系統(tǒng)的方法示例

    使用Docker搭建ELK日志系統(tǒng)的方法示例

    這篇文章主要介紹了使用Docker搭建ELK日志系統(tǒng)的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 使用Docker安裝部署Jenkins教程分享

    使用Docker安裝部署Jenkins教程分享

    本文主要講述了如何通過Docker安裝Jenkins以及使用Jenkins部署項目的前置準備,包括配置JDK環(huán)境D配置Maven環(huán)境D使用Docker安裝Jenkins和創(chuàng)建Jenkins容器D安裝插件D創(chuàng)建管理員用戶D配置JDK和MavenD創(chuàng)建Pipeline構(gòu)建D等agesDsteps以及腳本式Pipeline等
    2026-04-04
  • docker刷新配置、修改默認驅(qū)動方式

    docker刷新配置、修改默認驅(qū)動方式

    這篇文章主要介紹了docker刷新配置、修改默認驅(qū)動方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論

五台县| 余姚市| 娄底市| 昭觉县| 贵溪市| 宝丰县| 潢川县| 宁陕县| 阳谷县| 威信县| 绥德县| 乌兰察布市| 南漳县| 宽城| 舒兰市| 潢川县| 瑞昌市| 舞钢市| 开平市| 新乡县| 达拉特旗| 历史| 东阿县| 托里县| 简阳市| 梅河口市| 合水县| 六枝特区| 桓台县| 和林格尔县| 涿州市| 莱芜市| 汽车| 扶余县| 肇州县| 伊川县| 普兰县| 保德县| 紫金县| 应城市| 贺州市|