查询当前发行版本
nkvers
下载最新版本
卸载旧依赖
卸载已经安装的老版本
yum remove docker\
containerd.io \
docker-runc \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
docker-compose-plugin \
docker-buildx-plugin
YUM仓库设置
添加Docker官方仓库
yum install-y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
由于 Docker官方只托管CentOS RPM源,银河麒麟V10 SP3 可以等价CentOS 8,我们替换一下仓库配置
创建yum环境变量
echo"8"> /etc/yum/vars/centos_version
cat /etc/yum/vars/centos_version
替换Repo配置文件中的变量
sed-i's/$releasever/$centos_version/g' /etc/yum.repos.d/docker-ce.repo
cat /etc/yum.repos.d/docker-ce.repo
更新yum仓库
yum makecache
确定安装版本
安装 docker 官方的安装方法 [2] 需要安装
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
通过下面方式查询各软件的最细版本:
yum list docker-ce --showduplicates|sort-r
yum list docker-ce-cli --showduplicates|sort-r
yum list docker-buildx-plugin --showduplicates|sort-r
yum list docker-compose-plugin --showduplicates|sort-r
创建离线安装包存储目录
~/docker-rpm/
当前用户下的docker-rpm/
mkdir-p /root/docker-rpm/
下载RPM安装包
下载镜像到本地,不安装
yum install--downloadonly--downloaddir=/root/docker-rpm/ \
docker-ce-3:26.1.0-1.el8 \
docker-ce-cli-1:26.1.0-1.el8 \
docker-buildx-plugin-0.14.0-1.el8 \
docker-compose-plugin-2.6.0-3.el8
也可以直接忽略版本下载最新版本即可
yum install--downloadonly--downloaddir=/root/docker-rpm/ docker-ce docker-ce-cli docker-buildx-plugin docker-compose-plugin
检查下载内容:
ls-l /root/docker-rpm/
离线安装
卸载已经安装的老版本
yum remove docker\
containerd.io \
docker-runc \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
docker-compose-plugin \
docker-buildx-plugin
将下载的资源复制需要安装的服务器上,进入离线安装包目录中。
cd /root/docker-rpm
ls-l
离线安装所有依赖
rpm-Uvh--nodeps *.rpm
目前docker已经安装完成,但是未启动,查询docker版本,检查安装是否成功
docker-v
创建Docker数据存储路径。
mkdir-p /data/docker
ls-l /data/docker/
配置Docker数据存储路径,已经仓库镜像地址
cat> /etc/docker/daemon.json <<EOF
{
"data-root": "/data/docker",
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
cat /etc/docker/daemon.json
设置Docker开机自启动,并且启动docker
systemctl enabledocker
systemctl start docker
查看运行状态
systemctl status docker
故障解决
设置为Systemd运行模式
调整 /etc/docker/daemon.json 文件
vi /etc/docker/daemon.json
加入下面内容:
{"exec-opts":["native.cgroupdriver=systemd"]}
cat /etc/docker/daemon.json
重启Docker
systemctl restart docker
查看docker状态
docker info
配置containerd开启 CRI
如果您准备使用Kubernets 运行部分命令时可能会出现 validate service connection: validate CRI v1 image API for endpoin 的错误 [4]
请修改 /etc/containerd/config.toml 配置文件注释
disabled_plugins = ["cri"]
vi /etc/containerd/config.toml
重启containerd
systemctl restart containerd
systemctl status containerd
crictl 警告
1.28以后Kubernetes使用 containerd抽象了容器实现,并提供cri-tool操作容器。
crictl pods
在执行crictl命令时可能会触发下面错误
WARN[0000] runtime connect using default endpoints
出现该错误原因是因为dockerd.sock与containerd同时存在,需要手动指定crictl使用的端点为containerd.sock
cat<<EOF|sudotee /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF
crictl pods
参考文献
[1]. 博客园 . klvchen . 银河麒麟V10服务器版安装新版 Docker . 2023.3.3 . https://www.cnblogs.com/klvchen/p/17175673.html
[2]. docker . Install Docker Engine on CentOS . 2024.4 . https://docs.docker.com/engine/install/centos/
[3]. 博客园 . yanjieli . Linux-yum只下载不安装 2019.4 . https://www.cnblogs.com/yanjieli/p/10725360.html
[4]. 博客园 . K8S初始化报错:CRI v1 runtime API is not implemented for endpoint “unix:///var/run/containerd/containerd.sock” . Boom__Clap . 2023.7 . https://www.cnblogs.com/yourstars/p/17572125.html
[5]. CSDN . 记录解决containerd安装K8S出现“As the default settings are now deprecated, you should set the endpoint inste” . LEndorphin . 2022.10 . https://blog.csdn.net/weixin_50636665/article/details/127157337
版权归原作者 Cliven_ 所有, 如有侵权,请联系我们删除。