Docker
Docker Registry 僅拉/推 443
我已經設置了一個 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?
您需要設置 http
host
選項:https ://docs.docker.com/registry/configuration/#http系統資料庫的外部可訪問地址的完全限定 URL。如果存在,則在創建生成的 URL 時使用它。否則,這些 URL 來自客戶端請求。
這可以在註入系統資料庫的配置文件中設置,也可以使用環境變數
REGISTRY_HTTP_HOST
.