背景

在拉取镜像的时候报错 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

文章作者: 像柔风
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 像柔风的个人博客
Docker Linux
喜欢就支持一下吧