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

詳解私有 Docker Registry 部署方案及用戶手冊

 更新時間:2026年04月29日 09:41:15   作者:憑X而動  
本文主要介紹了詳解私有 Docker Registry 部署方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

本文檔旨在幫助在 Ubuntu 18.04 系統(tǒng)上從零開始部署一個私有的 Docker Registry(鏡像倉庫),并提供詳細的使用說明。通過本文檔,您將完成以下任務:

  • 獲取當前 Ubuntu 系統(tǒng)信息
  • 安裝 Docker 引擎
  • 運行私有 Registry 容器
  • 配置 Docker 客戶端以使用 HTTP 私有倉庫
  • 測試推送和拉取鏡像
  • 多機訪問配置
  • 常用維護命令

1. 系統(tǒng)環(huán)境檢查

在開始之前,請確認您的 Ubuntu 系統(tǒng)版本。執(zhí)行以下命令查看發(fā)行版信息:

cat /etc/os-release

示例輸出:

NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
...

如果您的系統(tǒng)是 Ubuntu 18.04,則可以繼續(xù)下面的步驟。其他版本可能略有差異,但整體流程相似。

2. 安裝 Docker

Docker 是運行私有倉庫的基礎(chǔ)。我們將使用官方倉庫安裝最新版本的 Docker CE。

2.1 更新包索引并安裝依賴

sudo apt-get update
sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

2.2 添加 Docker 官方 GPG 密鑰

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

2.3 添加穩(wěn)定版 Docker 倉庫

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

2.4 安裝 Docker CE

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

2.5 啟動 Docker 并設(shè)置開機自啟

sudo systemctl start docker
sudo systemctl enable docker

2.6 (可選)將當前用戶加入 docker 組

為了避免每次使用 Docker 都需要 sudo,可以將當前用戶加入 docker 組:

sudo usermod -aG docker $USER

重要:執(zhí)行該命令后,需要重新登錄或者執(zhí)行 newgrp docker 使組權(quán)限生效。

3. 部署私有 Docker Registry

我們將使用 Docker 官方提供的 registry:2 鏡像來運行一個輕量級的私有倉庫。

3.1 創(chuàng)建數(shù)據(jù)存儲目錄

鏡像數(shù)據(jù)將持久化保存在宿主機的 /data/docker-registry 目錄下,請確保該目錄存在且 Docker 有讀寫權(quán)限:

sudo mkdir -p /data/docker-registry

3.2 運行 Registry 容器

執(zhí)行以下命令啟動 Registry 容器:

docker run -d \
  --name docker-registry \
  --restart=always \
  -p 5000:5000 \
  -v /data/docker-registry:/var/lib/registry \
  -e REGISTRY_STORAGE_DELETE_ENABLED=true \
  registry:2

參數(shù)說明:

  • -d:后臺運行容器
  • --name docker-registry:指定容器名稱
  • --restart=always:容器退出時自動重啟
  • -p 5000:5000:將宿主機的 5000 端口映射到容器的 5000 端口
  • -v /data/docker-registry:/var/lib/registry:掛載數(shù)據(jù)卷,將鏡像數(shù)據(jù)持久化到宿主機
  • -e REGISTRY_STORAGE_DELETE_ENABLED=true:啟用刪除鏡像的功能(可選)
  • registry:2:使用的鏡像名稱和標簽

執(zhí)行后,Docker 會自動拉取 registry:2 鏡像并啟動容器。如果看到類似以下輸出,則表示容器已成功啟動:

Unable to find image 'registry:2' locally
2: Pulling from library/registry
...
Digest: sha256:...
Status: Downloaded newer image for registry:2
95792afadf5365eeb296a670c3f7ee11b82df0580260686a50527441d1d1585a

3.3 驗證容器運行狀態(tài)

docker ps

應該能看到名為 docker-registry 的容器,狀態(tài)為 Up。同時可以通過 curl 測試 Registry API 是否正常:

curl http://localhost:5000/v2/

如果返回空 JSON {},說明 Registry 運行正常。

4. 配置 Docker 客戶端

Docker 默認要求倉庫使用 HTTPS 連接,而我們的私有倉庫僅提供 HTTP 服務。因此需要將倉庫地址添加到 Docker 的 insecure-registries 列表中。

4.1 編輯 Docker 配置文件

sudo vim /etc/docker/daemon.json

如果文件不存在,則新建。添加以下內(nèi)容:

{
  "insecure-registries": ["localhost:5000"]
}

注意:如果要從其他機器訪問此私有倉庫,請將 localhost 替換為該服務器的實際 IP 地址(例如 192.168.1.100:5000)。并且需要在每一臺需要訪問此倉庫的機器上都進行相同配置。

4.2 重啟 Docker 服務

sudo systemctl restart docker

4.3 重新啟動 Registry 容器

Docker 重啟后會停止所有容器,需要手動啟動 Registry 容器:

docker start docker-registry

5. 測試私有倉庫

5.1 拉取測試鏡像

docker pull hello-world

5.2 為鏡像打上倉庫地址標簽

docker tag hello-world localhost:5000/hello-world:test

5.3 推送鏡像到私有倉庫

docker push localhost:5000/hello-world:test

推送成功后,會顯示鏡像的 layer 上傳信息。

5.4 查看倉庫中的鏡像列表

curl http://localhost:5000/v2/_catalog

應輸出類似 {"repositories":["hello-world"]}。

5.5 從私有倉庫拉取鏡像

先刪除本地鏡像,模擬新環(huán)境:

docker rmi hello-world localhost:5000/hello-world:test

然后從私有倉庫拉取:

docker pull localhost:5000/hello-world:test

運行拉取的鏡像:

docker run --rm localhost:5000/hello-world:test

如果看到 Hello-World 的輸出,則整個流程成功。

6. 從其他機器訪問私有倉庫

6.1 確定服務器 IP 地址

在運行 Registry 的服務器上執(zhí)行:

ip addr show  # 或 ifconfig

找到內(nèi)網(wǎng) IP(如 192.168.1.100)或公網(wǎng) IP。

6.2 在客戶端機器上配置 insecure-registries

編輯客戶端的 /etc/docker/daemon.json,添加:

{
  "insecure-registries": ["服務器IP:5000"]
}

重啟客戶端 Docker:

sudo systemctl restart docker

6.3 推送鏡像到遠程倉庫

在客戶端機器上,為鏡像打標簽并推送:

docker tag hello-world 服務器IP:5000/hello-world:test
docker push 服務器IP:5000/hello-world:test

6.4 拉取鏡像

docker pull 服務器IP:5000/hello-world:test

7. 防火墻設(shè)置

如果服務器啟用了防火墻(如 ufw),需要開放 5000 端口:

sudo ufw allow 5000

8. 常用管理命令

查看容器狀態(tài)

docker ps -a | grep docker-registry

查看容器日志

docker logs docker-registry

實時跟蹤日志:docker logs -f docker-registry

停止/啟動容器

docker stop docker-registry
docker start docker-registry

查看存儲使用情況

du -sh /data/docker-registry

列出倉庫中的所有鏡像

curl http://localhost:5000/v2/_catalog

查看某個鏡像的所有標簽

curl http://localhost:5000/v2/<鏡像名>/tags/list

9. 常見問題

Q: 為什么推送鏡像時報錯http: server gave HTTP response to HTTPS client?

A: 因為沒有將倉庫地址添加到 insecure-registries,請按照第 4 節(jié)配置并重啟 Docker。

Q: 如何刪除私有倉庫中的鏡像?

A: Registry 默認不支持通過 API 直接刪除鏡像,需要先啟用刪除功能(已在啟動命令中通過 -e REGISTRY_STORAGE_DELETE_ENABLED=true 啟用),然后通過 Docker Registry API 進行刪除,操作較復雜。建議使用 GC(垃圾回收)功能清理未使用的 blob。

Q: 鏡像存儲位置空間不足怎么辦?

A: 可以掛載更大的磁盤到 /data/docker-registry,或者定期清理無用鏡像。清理后需要手動執(zhí)行垃圾回收:docker exec docker-registry registry garbage-collect /etc/docker/registry/config.yml

Q: 如何為私有倉庫啟用 HTTPS?

A: 生產(chǎn)環(huán)境強烈建議啟用 HTTPS??梢酝ㄟ^配置 Registry 使用 SSL 證書實現(xiàn),具體步驟請參考 Docker Registry 官方文檔

10. 總結(jié)

至此,您已經(jīng)成功在 Ubuntu 18.04 上部署了私有的 Docker Registry,并掌握了基本的使用方法。該私有倉庫可以用于團隊內(nèi)部共享鏡像,節(jié)省公網(wǎng)帶寬,并提升鏡像拉取速度。更多相關(guān)私有 Docker Registry 部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker 常見問題解決

    Docker 常見問題解決

    這篇文章主要介紹了如何解決Docker 常見問題,幫助大家更好的理解和使用docker容器,感興趣的朋友可以了解下
    2020-09-09
  • 一步步教你用docker部署postgreSQL數(shù)據(jù)庫

    一步步教你用docker部署postgreSQL數(shù)據(jù)庫

    這篇文章主要給大家介紹了關(guān)于如何使用docker部署postgreSQL數(shù)據(jù)庫的相關(guān)資料,PostgreSQL是一款功能豐富的關(guān)系型數(shù)據(jù)庫,類似于MySQL,它也是受歡迎程度非常高的,需要的朋友可以參考下
    2023-11-11
  • docker Dockerfile文件制作自己的鏡像的方法

    docker Dockerfile文件制作自己的鏡像的方法

    這篇文章主要介紹了docker Dockerfile文件制作自己的鏡像的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 在Docker中使用Redis的步驟詳解

    在Docker中使用Redis的步驟詳解

    這篇文章主要給大家介紹了關(guān)于如何在Docker中使用Redis的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-08-08
  • docker單機安裝Higress的踩坑及解決方式

    docker單機安裝Higress的踩坑及解決方式

    本文詳細介紹了如何在Docker單機上安裝Higress,并分享了在安裝過程中遇到的問題及解決方法,Higress是一個集成了流量網(wǎng)關(guān)、微服務網(wǎng)關(guān)和安全網(wǎng)關(guān)的高集成網(wǎng)關(guān),在安裝過程中,作者遇到了無法訪問的問題,并通過卸載和重裝Docker及相關(guān)文件解決了問題
    2026-03-03
  • docker目錄和本地目錄互通的實現(xiàn)

    docker目錄和本地目錄互通的實現(xiàn)

    本文介紹了如何實現(xiàn)Docker目錄和本地目錄互通,通過這種方式,可以輕松地在Docker容器和本地文件系統(tǒng)之間共享數(shù)據(jù),感興趣的可以了解一下
    2023-08-08
  • docker 搭建Mysql集群的方法示例

    docker 搭建Mysql集群的方法示例

    這篇文章主要介紹了docker 搭建Mysql集群的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • docker容器無法訪問外網(wǎng),但是宿主機卻可以的問題

    docker容器無法訪問外網(wǎng),但是宿主機卻可以的問題

    這篇文章主要介紹了docker容器無法訪問外網(wǎng),但是宿主機卻可以的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 解決docker的tls(ssl)證書過期問題

    解決docker的tls(ssl)證書過期問題

    這篇文章主要介紹了解決docker的tls(ssl)證書過期問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • docker之更新jar問題

    docker之更新jar問題

    這篇文章主要介紹了docker之更新jar問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

江油市| 当雄县| 孙吴县| 彰化市| 开封市| 和硕县| 阿巴嘎旗| 无棣县| 正定县| 叶城县| 秦皇岛市| 盐山县| 钦州市| 聊城市| 庆城县| 红安县| 板桥市| 策勒县| 尉犁县| 新安县| 仪征市| 诸城市| 长阳| 昌吉市| 滦平县| 长汀县| 荔浦县| 丘北县| 漳浦县| 临湘市| 江永县| 广宁县| 航空| 青铜峡市| 黄山市| 桓台县| 宜春市| 盘锦市| 孟州市| 若尔盖县| 察雅县|