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

Docker Registry倉庫加密傳輸與登錄認證方式

 更新時間:2025年12月18日 15:21:23   作者:π大星星?  
本文詳細介紹了如何為Docker私有倉庫配置加密傳輸(TLS)和認證功能,包括生成自簽名證書、配置客戶端證書、添加認證文件和測試倉庫功能

本文詳細介紹了如何為 Docker 私有倉庫配置加密傳輸(TLS)和認證功能。通過生成自簽名證書、配置客戶端證書、添加認證文件和測試倉庫功能,確保了私有倉庫的安全性和可用性。

以下是實驗的整體流程,涵蓋從證書生成到客戶端訪問的全過程:

(1)證書生成

  • 使用 openssl 生成自簽名證書和私鑰。
  • 將證書和私鑰放置在服務器的指定目錄中。

(2)客戶端配置

  • 將服務器的證書復制到客戶端的可信證書目錄中。
  • 重啟 Docker 客戶端,使其信任服務器的證書。

(3)配置 Docker Registry

  • 啟動 Docker Registry 容器,掛載證書和私鑰文件。
  • 配置環(huán)境變量,啟用 SSL/TLS 和認證機制。

(4)客戶端登錄

  • 使用 docker login 登錄私有倉庫。
  • 提供用戶名和密碼,客戶端獲取令牌。

(5)鏡像操作

  • 客戶端通過 HTTPS 協(xié)議與服務器通信,推送或拉取鏡像。
  • 服務器驗證客戶端的令牌,決定是否允許操作。

一、生成認證 Key 和證書

mkdir /root/certs
echo "127.0.0.1 reg.admin.org">> /etc/hosts

生成自簽名證書

openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout certs/admin.org.key \
-addext "subjectAltName = DNS:reg.admin.org" \
-x509 -days 365 -out certs/admin.org.crt

注釋:

  • openssl req:用于生成證書請求。
  • -newkey rsa:4096:生成一個新的 RSA 密鑰,長度為 4096 位。
  • -nodes:不加密私鑰。
  • -sha256:使用 SHA256 算法簽名證書。
  • -keyout certs/admin.org.key:將生成的私鑰保存到指定路徑。
  • -addext "subjectAltName = DNS:reg.admin.org":為證書添加備用名稱(DNS 名稱),確??蛻舳丝梢酝ㄟ^該域名訪問。
  • -x509:生成自簽名證書。
  • -days 365:證書有效期為 365 天。
  • -out certs/admin.org.crt:將生成的證書保存到指定路徑。

輸入證書相關信息

You are about to be asked to enter information that will be incorporated  
into your certificate request.  
What you are about to enter is what is called a Distinguished Name or a DN.  
There are quite a few fields but you can leave some blank  
For some fields there will be a default value,  
If you enter '.', the field will be left blank.  
-----  
Country Name (2 letter code) [XX]: CN  
State or Province Name (full name) []: hunan  
Locality Name (eg, city) [Default City]: cs  
Organization Name (eg, company) [Default Company Ltd]: admin  
Organizational Unit Name (eg, section) []: docker  
Common Name (eg, your name or your server's hostname) []: reg.admin.org  
Email Address []: admin@admin.org  

注釋:

  • 這些信息將被嵌入到證書中,用于標識證書持有者。
  • Common Name 應與訪問倉庫的域名一致。

二、啟動 Docker Registry 倉庫

啟動私有倉庫

[root@docker ~]# docker run -d -p 443:443 --restart=always --name registry \
-v /opt/registry:/var/lib/registry \
-v /root/certs:/certs \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/admin.org.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/admin.org.key registry

注釋:

  • -d:后臺運行容器。
  • -p 443:443:將容器的 443 端口映射到宿主機的 443 端口。
  • --restart=always:容器在退出后自動重啟。
  • -v /opt/registry:/var/lib/registry:掛載存儲倉庫數(shù)據(jù)的卷。
  • -v /root/certs:/certs:掛載證書文件到容器內(nèi)部。
  • -e REGISTRY_HTTP_ADDR=0.0.0.0:443:指定倉庫監(jiān)聽的地址和端口。
  • -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/admin.org.crt:指定證書文件路徑。
  • -e REGISTRY_HTTP_TLS_KEY=/certs/admin.org.key:指定私鑰文件路徑。

測試推送鏡像(未配置客戶端證書)

[root@docker docker]# docker push reg.admin.org/busybox:latest

注釋:

由于客戶端未配置證書,推送失敗,提示證書未通過驗證。

三、為客戶端配置證書

創(chuàng)建客戶端證書目錄并復制證書

[root@docker docker]# mkdir /etc/docker/certs.d/reg.admin.org/ -p  
[root@docker docker]# cp /root/certs/admin.org.crt /etc/docker/certs.d/reg.admin.org/ca.crt

注釋:

  • mkdir:創(chuàng)建客戶端證書目錄。
  • cp:將服務器證書復制到客戶端證書目錄,客戶端會信任該證書。

重啟 Docker 服務

[root@docker docker]# systemctl restart docker

注釋:

重啟 Docker 服務以加載新的證書配置。

測試推送鏡像

[root@docker docker]# docker push reg.admin.org/busybox:latest

注釋:

配置完成后,推送成功。

四、測試倉庫功能

查詢倉庫中的鏡像

[root@docker docker]# curl -k https://reg.admin.org/v2/_catalog

注釋:

使用 curl 查詢倉庫中的鏡像列表。

-k:忽略證書驗證(僅用于測試)。

五、為倉庫添加認證功能

安裝認證工具

[root@docker docker]# dnf install httpd-tools -y

注釋:

安裝 httpd-tools 包,用于生成認證文件。

創(chuàng)建認證文件

[root@docker ~]# mkdir auth  
[root@docker ~]# htpasswd -Bc auth/htpasswd admin

注釋:

  • mkdir auth:創(chuàng)建存儲認證文件的目錄。
  • htpasswd -Bc auth/htpasswd admin:為用戶 admin 創(chuàng)建密碼文件。
  • -B:使用 bcrypt 加密方式。
  • -c:創(chuàng)建新的密碼文件。

啟動帶有認證功能的倉庫

[root@docker ~]# docker run -d -p 443:443 --restart=always --name registry \
-v /opt/registry:/var/lib/registry \
-v /root/certs:/certs \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/admin.org.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/admin.org.key \
-v /root/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
registry

注釋:

  • -v /root/auth:/auth:掛載認證文件到容器內(nèi)部。
  • -e REGISTRY_AUTH=htpasswd:啟用基于 htpasswd 的認證。
  • -e REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm:設置認證領域。
  • -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd:指定認證文件路徑。

六、測試認證功能

查詢倉庫鏡像(帶認證)

[root@docker ~]# curl -k https://reg.admin.org/v2/_catalog -u admin:admin

注釋:

使用用戶名和密碼查詢倉庫鏡像。

登錄私有倉庫

[root@docker ~]# docker login reg.admin.org

注釋:

  • 使用 docker login 登錄私有倉庫。
  • 輸入用戶名和密碼后,登錄成功。

測試未登錄情況下的推送和拉取

[root@docker ~]# docker push reg.admin.org/busybox

注釋:

未登錄時,推送失敗,提示缺少認證信息。

[root@docker-node2 ~]# docker pull reg.admin.org/busybox

注釋:

未登錄時,拉取失敗,提示缺少認證信息。

總結(jié)

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

相關文章

  • docker搭建tomcat運行環(huán)境的實現(xiàn)步驟

    docker搭建tomcat運行環(huán)境的實現(xiàn)步驟

    很多時候我們測試web系統(tǒng)需要一個tomcat運行環(huán)境,這時docker就派上用場了,本篇文章主要介紹了docker搭建tomcat運行環(huán)境的實現(xiàn)步驟,感興趣的可以了解一下
    2017-01-01
  • jenkins構建Docker 鏡像實例詳解

    jenkins構建Docker 鏡像實例詳解

    這篇文章主要介紹了 jenkins構建Docker 鏡像實例詳解的相關資料,需要的朋友可以參考下
    2017-04-04
  • Docker啟動gitlab后22端口被占用如何解決

    Docker啟動gitlab后22端口被占用如何解決

    本文主要介紹了Docker啟動gitlab后22端口被占用如何解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-11-11
  • Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器詳細介紹

    Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器詳細介紹

    這篇文章主要介紹了 Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器詳細介紹的相關資料,這里對Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器的感念及相關操作進行了介紹,需要的朋友可以參考下
    2016-11-11
  • docker compose管理docker服務的方法

    docker compose管理docker服務的方法

    DockerCompose通過一個配置文件管理多服務,支持啟動、停止、重啟等生命周期管理,依賴管理、資源隔離和自動重啟等關鍵能力,是單機多容器應用的首選管理工具,本文給大家介紹docker compose如何管理docker服務,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • docker和docker-compose離線安裝實踐

    docker和docker-compose離線安裝實踐

    文章介紹了如何在離線環(huán)境中安裝Docker和Docker Compose,包括下載、解壓、移動文件、啟動服務和驗證步驟
    2025-12-12
  • Docker?安裝Tomcat、實現(xiàn)Tomcat集群的詳細過程

    Docker?安裝Tomcat、實現(xiàn)Tomcat集群的詳細過程

    這篇文章主要介紹了Docker安裝Tomcat、實現(xiàn)Tomcat集群,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Docker容器搭建運行python的深度學習環(huán)境的方法

    Docker容器搭建運行python的深度學習環(huán)境的方法

    本文主要介紹了Docker容器搭建運行python的深度學習環(huán)境的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • docker部署mysql和nginx服務的示例詳解

    docker部署mysql和nginx服務的示例詳解

    這篇文章主要為大家詳細介紹了docker部署mysql和nginx服務的相關知識,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-04-04
  • docker容器中文亂碼的解決方法

    docker容器中文亂碼的解決方法

    Docker默認不支持中文,在docker中部署Java運行環(huán)境,查看日志時都是亂碼,下面這篇文章主要給大家介紹了關于docker容器中文亂碼的解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05

最新評論

清水河县| 潼关县| 广宁县| 墨竹工卡县| 双峰县| 清新县| 修水县| 丹阳市| 正镶白旗| 清水河县| 安顺市| 丹阳市| 冷水江市| 昆山市| 正安县| 左权县| 广宁县| 太保市| 吴川市| 隆林| 龙岩市| 且末县| 建宁县| 康定县| 赤水市| 沙坪坝区| 利辛县| 嵊泗县| 小金县| 望城县| 北票市| 尉犁县| 通山县| 怀柔区| 左贡县| 汨罗市| 衡水市| 安阳县| 府谷县| 武平县| 永顺县|