最近使用Docker的過程中,發現鏡像下載速度很慢,于是決定使用加速器。但是在配置加速器后,發現依然沒有起到作用,遇到了一些麻煩。以下是我遇到問題的過程和解決方法。
首先,我嘗試使用阿里云的加速器,根據官方文檔,只需要在/etc/docker/daemon.json文件中添加以下內容:
{
"registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}
我添加了這條命令,并重啟了docker服務,但是仍然沒有加速。在查找原因時,我發現了一條常見的錯誤信息:
failed to register layer: rename /var/lib/docker/tmp/xxx /var/lib/docker/overlay2/xxxxxxxxx: device or resource busy
這個錯誤信息實際上原因是Docker官方的一個bug,它會產生沖突,導致加速器不生效。解決方法很簡單,只需要在daemon.json文件中添加一個storage-driver參數即可:
{
"registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"],
"storage-driver": "overlay2"
}
添加了storage-driver參數之后,再次重啟docker服務,問題就解決了,加速器也生效了。
總結來說,Docker加速器不生效可能是由于多種原因造成的。以上例子是由于Docker官方的bug導致的。如果你遇到了相似的問題,可以先排查一下是否需要添加storage-driver參數。