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

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

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

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

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

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

在開始之前,請確認(rè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 是運(yùn)行私有倉庫的基礎(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 啟動(dòng) Docker 并設(shè)置開機(jī)自啟

sudo systemctl start docker
sudo systemctl enable docker

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

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

sudo usermod -aG docker $USER

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

3. 部署私有 Docker Registry

我們將使用 Docker 官方提供的 registry:2 鏡像來運(yùn)行一個(gè)輕量級(jí)的私有倉庫。

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

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

sudo mkdir -p /data/docker-registry

3.2 運(yùn)行 Registry 容器

執(zhí)行以下命令啟動(dòng) 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:后臺(tái)運(yùn)行容器
  • --name docker-registry:指定容器名稱
  • --restart=always:容器退出時(shí)自動(dòng)重啟
  • -p 5000:5000:將宿主機(jī)的 5000 端口映射到容器的 5000 端口
  • -v /data/docker-registry:/var/lib/registry:掛載數(shù)據(jù)卷,將鏡像數(shù)據(jù)持久化到宿主機(jī)
  • -e REGISTRY_STORAGE_DELETE_ENABLED=true:啟用刪除鏡像的功能(可選)
  • registry:2:使用的鏡像名稱和標(biāo)簽

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

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

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

docker ps

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

curl http://localhost:5000/v2/

如果返回空 JSON {},說明 Registry 運(yùn)行正常。

4. 配置 Docker 客戶端

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

4.1 編輯 Docker 配置文件

sudo vim /etc/docker/daemon.json

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

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

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

4.2 重啟 Docker 服務(wù)

sudo systemctl restart docker

4.3 重新啟動(dòng) Registry 容器

Docker 重啟后會(huì)停止所有容器,需要手動(dòng)啟動(dòng) Registry 容器:

docker start docker-registry

5. 測試私有倉庫

5.1 拉取測試鏡像

docker pull hello-world

5.2 為鏡像打上倉庫地址標(biāo)簽

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

5.3 推送鏡像到私有倉庫

docker push localhost:5000/hello-world:test

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

5.4 查看倉庫中的鏡像列表

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

應(yīng)輸出類似 {"repositories":["hello-world"]}。

5.5 從私有倉庫拉取鏡像

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

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

然后從私有倉庫拉?。?/p>

docker pull localhost:5000/hello-world:test

運(yùn)行拉取的鏡像:

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

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

6. 從其他機(jī)器訪問私有倉庫

6.1 確定服務(wù)器 IP 地址

在運(yùn)行 Registry 的服務(wù)器上執(zhí)行:

ip addr show  # 或 ifconfig

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

6.2 在客戶端機(jī)器上配置 insecure-registries

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

{
  "insecure-registries": ["服務(wù)器IP:5000"]
}

重啟客戶端 Docker:

sudo systemctl restart docker

6.3 推送鏡像到遠(yuǎn)程倉庫

在客戶端機(jī)器上,為鏡像打標(biāo)簽并推送:

docker tag hello-world 服務(wù)器IP:5000/hello-world:test
docker push 服務(wù)器IP:5000/hello-world:test

6.4 拉取鏡像

docker pull 服務(wù)器IP:5000/hello-world:test

7. 防火墻設(shè)置

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

sudo ufw allow 5000

8. 常用管理命令

查看容器狀態(tài)

docker ps -a | grep docker-registry

查看容器日志

docker logs docker-registry

實(shí)時(shí)跟蹤日志:docker logs -f docker-registry

停止/啟動(dòng)容器

docker stop docker-registry
docker start docker-registry

查看存儲(chǔ)使用情況

du -sh /data/docker-registry

列出倉庫中的所有鏡像

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

查看某個(gè)鏡像的所有標(biāo)簽

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

9. 常見問題

Q: 為什么推送鏡像時(shí)報(bào)錯(cuò)http: server gave HTTP response to HTTPS client?

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

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

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

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

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

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

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

10. 總結(jié)

至此,您已經(jīng)成功在 Ubuntu 18.04 上部署了私有的 Docker Registry,并掌握了基本的使用方法。該私有倉庫可以用于團(tuán)隊(duì)內(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文件制作自己的鏡像的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • 在Docker中使用Redis的步驟詳解

    在Docker中使用Redis的步驟詳解

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

    docker單機(jī)安裝Higress的踩坑及解決方式

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

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

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

    docker 搭建Mysql集群的方法示例

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

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

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

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

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

    docker之更新jar問題

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

最新評(píng)論

八宿县| 灵台县| 鹤岗市| 宣化县| 忻州市| 玉屏| 卓尼县| 德江县| 太谷县| 和田县| 电白县| 林口县| 德庆县| 乌恰县| 孝义市| 新泰市| 巩留县| 漠河县| 高密市| 皮山县| 丰镇市| 嵊泗县| 昭通市| 隆化县| 农安县| 奉新县| 贵州省| 和硕县| 伽师县| 陕西省| 顺平县| 新闻| 绥中县| 南通市| 宝清县| 苏尼特左旗| 天气| 两当县| 棋牌| 日土县| 合作市|