Rancher Desktop在国内使用的一些注意事项
现象和问题
由于某些原因,无法使用Docker Desktop了,寻找替代品时发现Rancher Desktop相对较好,进而下载安装。在配置国内镜像时,发现容器镜像下载各layer下载成功,但总会在最后一步失败,显示类似这样的错误:
- failed to do request: Get "https://registry-1.docker.io/v2/library/xxx/referrers/xxxxxx": dial tcp 31.13.95.38:443: i/o timeout
经查阅,是OCI v1.1的新规范,referrers API用于获取镜像签名、SBOM、漏洞报告等附加信息。在这个影响下,docker会强制回到registry-1.docker.io查询。
在经历了很多种尝试后,确认使用v1.20.1版本的Rancher Desktop是可以避免此问题的最新版本。再新的版本所使用的dockerd就会强制执行此验证了。
后续配置方法
以macos为例,在安装了Rancher Desktop v1.20.1后,编辑如下文件,配置dockerd。在重启Rancher Desktop后问题解决:
~/Library/Application\ Support/rancher-desktop/lima/_config/override.yaml:
provision:
- mode: system
script: |
#!/bin/sh
set -eux
mkdir -p /etc/docker
cat <<EOF >/etc/docker/daemon.json
{
"registry-mirrors": [
"https://你的国内镜像站点"
]
}
EOF
为了确保国内镜像仓库正常工作,可增加过个镜像站点。k3s的配置参考网站:Mirroring Private Registries | Rancher Desktop Docs。
重启Rancher Desktop后验证配置是否生效:
rdctl shell -- cat /etc/docker/daemon.json
(END)