Docker Bug
关于文章
今天在对服务器进行维护的时候,发现Docker一些有意思的Bug,我分享出来一些,大家如果遇到相同的Bug可以参考本文章。
全局配置文件有误,请检查Expecting value: line 1 column 1 (Char 0)
在2024/06/06,国内的镜像源基本都关闭了缓存服务,所以国内的ECS想要使用Docker拉取镜像就需要配置全局加速,我在配置毫秒镜像加速的时候就遇到这个问题。
其实这个问题很好解决,这是因为在配置Docker的时候daemon.json这个文件不存在或者该文件内是空文件。
- 解决方法:
打开daemon.json文件
vim /etc/docker/daemon.json在该文件内添加全局加速配置
{
"registry-mirrors": [
"这里填写加速站"
],
"log-opts": {
"max-size": "100m",
"max-file": "5"
}
}
client version 1.35 is too old. Minimum supported API version is 1.44, please upgrade your client to a newer version
这个错误的核心原因是:Docker 客户端使用的 API 版本(1.35)低于 Docker 守护进程(daemon)要求的最低版本(1.44),导致两者不兼容,无法正常通信。
这个问题是使用了错误的Docker守护进程,为了确保兼容性、安全性,建议直接将Docker和Docker守护进程都升级至最新版本。
- 解决方法(以 Debian11 举例):
卸载Docker
sudo apt-get remove docker docker-engine docker.io containerd runc添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg设置Docker仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null安装最新版Docker
sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io