低版本Docker升级高版本Docker的详细教程及成功避坑

  • Post category:Linux

1. Docker升级前的准备工作

在升级Docker之前,应该先备份数据和已安装的Docker镜像。可以使用以下命令备份容器数据和镜像文件:

  • 备份容器数据
$ docker ps -a #查看运行中和已停止的容器
$ docker export <container-id> > backup.tar #备份容器数据
  • 备份镜像文件
$ docker save -o <image name>.tar <image id> #备份镜像

完成备份后,卸载旧版本Docker。

2. 安装新版本Docker

  • 添加Docker软件源到系统中
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 更新软件包
$ sudo apt-get update
  • 安装Docker
$ sudo apt-get install docker-ce docker-ce-cli containerd.io -y

检查Docker是否安装成功

$ docker --version

3. 恢复备份

  • 恢复容器数据
$ docker load -i backup.tar
  • 恢复镜像文件
$ docker load -i <image name>.tar

示例一:从Docker 1.0.0升级到Docker 2.0.0

  1. 备份旧版本数据和镜像
$ docker ps -a
$ docker export <container-id> > backup.tar
$ docker save -o <image name>.tar <image id>
  1. 卸载旧版本Docker
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
  1. 安装Docker 2.0.0
$ sudo apt-get update
$ sudo apt-get install docker-ce=2.0.0~ce~debian
  1. 恢复旧版本数据和镜像文件
$ docker load -i backup.tar
$ docker load -i <image name>.tar

示例二:从Docker 18.03升级到Docker 19.03

  1. 备份旧版本数据和镜像
$ docker ps -a
$ docker export <container-id> > backup.tar
$ docker save -o <image name>.tar <image id>
  1. 卸载旧版本Docker
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
  1. 安装Docker 19.03
$ sudo apt-get update
$ sudo apt-get install docker-ce=5:19.03.0~3-0~debian-stretch docker-ce-cli=5:19.03.0~3-0~debian-stretch containerd.io
  1. 恢复旧版本数据和镜像文件
$ docker load -i backup.tar
$ docker load -i <image name>.tar

注意:在升级Docker之前,请确保所有的容器都已经停止。在升级过程中,也请根据实际情况选择Docker的稳定版本,避免出现安装不成功、容器不可用等问题。