![](/img/trans.png)
[英]docker push image to registry get error received unexpected HTTP status: 500 Internal Server Error
[英]Docker Windows Local Registry: received unexpected HTTP status: 500 Internal Server Error
我正在嘗試將 windows 容器的圖像推送到 Windows VM 上的“本地”存儲庫,它有自己的 IP 地址。
因此,當我在我的 VM 上創建注冊表時,我可以通過轉到 ipaddress:5000 來查看我本地機器上的存儲庫列表。
但是,當我嘗試將圖像推送到注冊表時,它會顯示要推送的層,但在底部顯示收到意外的 HTTP 狀態:500 內部服務器錯誤。
當我切換到 Linux 容器時,這不是問題。 我可以毫無問題地從注冊表中推送和拉取。
您需要通過在守護程序配置 JSON 文件中設置“ allow-nondistributable-artifacts
”選項來允許不可分發的工件。
對於 Linux:在/etc/docker/daemon.json
中使用上述選項創建或更新 docker daemon JSON 文件
對於 Windows:
將選項allow-nondistributable-artifacts
添加到 JSON Like 中:
{ "registry-mirrors": [], "insecure-registries": [], "debug": true, "experimental": true, "allow-nondistributable-artifacts": [ "localhost:5000" ] }
將localhost
替換為您自己的服務器名稱。
daemon.json
文件位於C:\ProgramData\Docker\config\daemon.json
注意:如果您有任何其他設置,只有allow-nondistributable-artifacts
是重要的/必需的。
這可能是因為您要推送圖像的遠程服務器(或本地服務器)上的錯誤。 在我的情況下,這是一個磁盤空間問題,作為 500 服務器錯誤拋出。 需要在推送圖像的服務器上檢查該問題。
除了少數圖像之外,您的所有圖像都已被推送,因為所有其他圖像都已被推送,而新的則失敗了。
對我來說,問題是我們的注冊表已滿。 我清空了它,它起作用了。
就我而言,我只是等了一會兒,然后再試一次。 500 個錯誤消失了。
如果注冊表前面有 nginx,nginx 有一個問題,即大文件的 PATCH 可能會拋出 500 Internal server error。 這是由於根分區上的磁盤空間不足引起的。
在這里查看如何修復它: https://stackoverflow.com/a/38873781/2032777
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.