Docker版本升级
背景
在拉取镜像的时候报错 missing signature key
[root@VM-4-4-centos ~]# docker pull halohub/halo:2.8
Trying to pull repository docker.io/halohub/halo ...
missing signature key
耗费一段时间诊断为Docker version过低,当时版本为 1.13.1。
遂查阅了Docker版本升级的资料,参考官网:Install Docker Engine on CentOS | Docker Docs
卸载旧版本Docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
yum可能会提示你没有安装这些软件包,忽略即可
你的原有数据在卸载时不会被删除,默认存储位置 /var/lib/docker/
安装yum工具包,设置Docker存储库(此处使用aliyun镜像)
sudo yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker
安装latest版本
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安装指定版本
查询可用版本
yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:24.0.0-1.el8 docker-ce-stable
docker-ce.x86_64 3:23.0.6-1.el8 docker-ce-stable
<...>
安装指定版本Docker(将<VERSION_STRING>替换成指定version)
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
启动Docker容器
随意启动一个已有的容器即可
sudo systemctl start docker
sudo docker run nginx
如果启动容器报错 Error response from daemon: Unknown runtime specified docker-runc
原因:从不兼容的版本升级了Docker
解决方案:
grep -rl 'docker-runc' /var/lib/docker/containers/ | xargs sed -i 's/docker-runc/runc/g'
解释:在指定目录(/var/lib/docker/containers/
)下查找所有包含字符串 'docker-runc'
的文件,并将其中的所有匹配项替换为 'runc'
安装Docker-compose
这里选择手动安装,在线拉取很慢
官网选择版本 https://github.com/docker/compose/releases
选择相应版本,下载docker-compose-Linux-x86_64
更名为docker-compose
,上传并移动到 /usr/local/bin 目录下
添加执行权限
chmod +x /usr/local/bin/docker-compose
检查docker compose版本
docker-compose version
本文链接:
/archives/docker-upgrade
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
像柔风的个人博客!
喜欢就支持一下吧