CentOS上Docker更新操作指南
docker save -o /path/to/backup/image.tar imagename
docker export -o /path/to/backup/container.tar containername
docker cp containername:/path/to/data /local/path/to/backup
。sudo systemctl stop docker
。docker --version
。彻底移除旧版本Docker及相关组件,避免残留文件冲突:
sudo yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
若需清理旧数据(如无保留需求),可执行:sudo rm -rf /var/lib/docker
(此操作会删除所有容器、镜像及卷数据,请谨慎使用)。
安装Docker所需的依赖工具,确保后续安装流程顺利:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
其中,yum-utils
提供仓库管理工具,device-mapper-persistent-data
和lvm2
是Docker存储驱动的依赖。
添加Docker官方仓库,获取最新版本的安装包:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
此步骤会将Docker的官方仓库添加到系统YUM源中,后续可通过yum
命令直接安装最新版本。
yum list docker-ce --showduplicates | sort -r
输出示例:docker-ce.x86_64 24.0.7-1.el7 docker-ce-stable
(其中24.0.7
为版本号)。sudo yum install -y docker-ce docker-ce-cli containerd.io
若需安装特定版本(如24.0.7
),可将命令替换为:sudo yum install -y docker-ce-24.0.7 docker-ce-cli-24.0.7 containerd.io
(版本号需替换为实际需要的版本,可从第二步列出的版本中选择)。sudo systemctl start docker
sudo systemctl enable docker
```。
docker --version
输出应显示最新版本号(如Docker version 24.0.7, build afdd53b
)。docker run hello-world
若输出“Hello from Docker!”,则说明更新成功。若需简化操作,可使用官方或社区提供的脚本自动完成更新流程:
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
update_docker.sh
),写入以下内容:#!/bin/bash
sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
LATEST_VERSION=$(yum list docker-ce --showduplicates | sort -r | head -n 1 | awk '{print $2}')
echo "Installing Docker CE version: $LATEST_VERSION"
sudo yum install -y docker-ce-$LATEST_VERSION docker-ce-cli-$LATEST_VERSION containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world
赋予脚本执行权限并运行:chmod +x update_docker.sh && ./update_docker.sh
```。