银河麒麟在线升级新版本docker


卸载


 yum remove docker \
                  docker-ce \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  docker-runc* \
                  podman* -y 

重新安装
也可以使用如下方式卸载
rpm -e containerd.io docker-buildx-plugin docker-ce   docker-ce-cli  docker-compose-plugin


这个文档里面的卸载比较弱 不是很强.

安装原生Docker的仓库

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

修改银河麒麟下载CentOS8的镜像仓库

sed -i 's/$releasever/8/g' /etc/yum.repos.d/docker-ce.repo

yum clean all
yum makecache

展示 Docker 可使用的版本

yum list docker-ce --showduplicates | sort -r

然后安装最新的版本:
yum install docker-ce-24.0.7-1.el8

注意我这里出现了很多异常提示
package containerd.io-1.6.10-3.1.el8.aarch64 conflicts with runc provided by docker-runc-1.0.0.rc3-203.p01.ky10.aarch64

我这边采用卸载的方式进行处理. 注意需要考虑级联删除. 
rpm -e podman-1:0.10.1-8.ky10.aarch64
rpm -e docker-runc-1.0.0.rc3-203.p01.ky10.aarch64

也可以先下载下来  注意必须先别安装在下载. 安装了以来关系就没法做了. 
yum install docker-ce-24.0.7-1.el8 --downloadonly --downloaddir=/docker  -y 

下载到本地之后:
cd /docker
yum localinstall *.rpm
然后执行 
systemctl  enable --now docker

docker version # 查看版本

docker network inspect bridge 查看网络的地址信息. 

如果想修改子网的话 需要再docker 启动之前修改
/etc/docker/daemon.json 
增加
{

    "bip":"10.211.1.1/24"
}

注意最后一位必须是 1 如果是0 会启动失败.

验证方式
docker run hello-world 
出现结果即可. 

能够解决如下几个问题:
http: invalid Host header
以及 
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "bash": executable file not found in $PATH: unknown.
ERRO[0000] error waiting for container: