2026年5月12日 星期二

在 Rancher Desktop(moby)設定 insecure registry

在 Rancher Desktop(moby)設定 insecure registry

最近在本機使用 Rancher Desktop pull 私有 registry image 時遇到:

http: server gave HTTP response to HTTPS client

原因是 registry 只有 HTTP,但 Docker 預設會用 HTTPS 連線。

我的環境是:

  • Rancher Desktop
  • Container Engine 選 dockerd (moby)

這種情況下,可以透過 provisioning script 自動寫入 daemon.json


設定方式

建立以下目錄:

C:\Users\matt\AppData\Local\rancher-desktop\provisioning

新增檔案:

insecure-registry.start

內容:

#!/bin/sh
cat > /etc/docker/daemon.json <<EOF
{
"insecure-registries": ["your-registry:25000"]
}
EOF

很重要:檔案要用 LF

這個 .start shell script 一定要是:

LF

不能是:

CRLF

不然 provisioning script 可能無法正常執行。

如果你用 Visual Studio Code

右下角可以切換:

CRLF → LF

重新啟動 Rancher Desktop

存檔後:

  1. 完全關閉 Rancher Desktop
  2. 重新開啟
  3. 等待 container engine 啟動完成

驗證設定

執行:

docker info | grep -A5 "Insecure"

看到類似:

Insecure Registries:
your-registry:25000
::1/128
127.0.0.0/8
Live Restore Enabled: false
Firewall Backend: iptables

代表設定成功。

之後就可以正常:

docker pull your-registry:25000/your-image

不用再遇到 HTTPS/HTTP mismatch 問題。