Docker

Docker Registry 僅拉/推 443

  • August 14, 2021

我已經設置了一個 Docker Registry(埠 5000),然後可以通過反向代理(HAproxy)通過 https(埠 443)訪問網際網路。

我的反向代理沒有監聽埠 80(由於各種原因) - 只有 443。

但是,當我嘗試將圖像拉/推到系統資料庫時,我收到此錯誤:

> docker push dockerreg.mydomain.tld/foo/bar:tag
The push refers to repository [dockerreg.mydomain.tld/foo/bar]
67e5bc702bd3: Layer already exists
1ee6a18298af: Layer already exists
0d8d066a4449: Layer already exists
....
402111a9b517: Layer already exists
5be968ab3b04: Layer already exists
b8d33b7d28fe: Layer already exists
Patch http://dockerreg.mydomain.tld/v2/foo/bar/blobs/uploads/840a9fc2-5c10-4c0e-b674-82f76c3794a3?_state=vcTZPbOrQmhcKwilCyutNGwVpFjvWigJCApZHA834757Ik5hbWUiOiJmb3Rvd2V0dGVyL2NsZWFuIiwiVVVJRCI6Ijg0MGE5ZmMyLTVjMTAtNGMwZS1iNjc0LTgyZjc2YzM3OTRhMyIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAyMS0wOC0xNFQyMTozODo1Mi42MzgxNjY5NTdaIn0%3D:
dial tcp 1.2.3.4:80: i/o timeout

所以顯然它試圖通過 http/80 訪問系統資料庫

我可以使用 docker login 命令,https://dockerreg....但 docker pull/push 命令不能使用 https:// 執行

有沒有辦法在我的反向代理的埠 80 上訪問我的 docker 系統資料庫而無需 https-redirect?

您需要設置 httphost選項:https ://docs.docker.com/registry/configuration/#http

系統資料庫的外部可訪問地址的完全限定 URL。如果存在,則在創建生成的 URL 時使用它。否則,這些 URL 來自客戶端請求。

這可以在註入系統資料庫的配置文件中設置,也可以使用環境變數REGISTRY_HTTP_HOST.

引用自:https://serverfault.com/questions/1074583