跳转至

在Linux上安装和升级Docker

Docker 官网快捷安装

使用 Docker 官方提供的 Docker Shell 脚本可以快速在不同的操作系统上自动安装最新版本的 Docker。

# 获取 get-docker.sh 脚本
curl -fsSL get.docker.com -o get-docker.sh

# 下载安装最新的 Docker,同时使用 Aliyun 提供软件源镜像提供软件包下载
sh get-docker.sh --mirror Aliyun

# 启动 docker 服务,并设置开机启动
systemctl start docker
systemctl enable docker

注意网络联通性

虽然可以通过 --mirror Aliyun 来选择 Aliyun 软件源 https://mirrors.aliyun.com/docker-ce 进行软件下载,但是获取 get-docker.sh 脚本本身还是需要访问 Docker 官网,请注意你的网络是否可达。

使用脚本需要注意什么?

该脚本:

  • 需要 root 或 sudo 权限运行
  • 尝试自动检测您的 Linux 发行版和版本,并为您配置软件包管理系统
  • 不允许自定义大多数安装参数
  • 不询问确认直接安装所有依赖项和建议项
  • 默认安装最新稳定版的 Docker CLI、Docker Engine、Docker Buildx、Docker Compose、containerd 和 runc。使用此脚本配置机器时,可能导致这些软件包发生意外的主版本升级。部署到生产系统前请务必在测试环境中验证升级
  • 不适用于升级现有 Docker 安装。使用脚本更新现有安装时,依赖项可能不会升级到预期版本,导致使用过时的版本

源代码位于 https://github.com/docker/docker-install/

RPM(YUM/DNF) 包安装

RPM包适合以下操作系统发行版本:

  • CentOS
  • Redhat
  • Fedora
  • 阿里云官方OS
  • 腾讯云官方OS
  • 华为云官方OS
  • 麒麟系统
  • UOS
  • openEuler
  • OpenCloudOS
  • openKylin
  • OpenAnolis

安装步骤

基于 Aliyun 的镜像中心进行安装,其他腾讯云、华为云等类似。

  • 1: 安装必要的一些系统工具
sudo yum install -y yum-utils
  • 2: 添加软件源信息

添加软件源配置会生成文件 /etc/yum.repos.d/docker-ce.repo

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 3: 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 4: 开启Docker服务
sudo service docker start
sudo systemctl start docker
  • 5: 设置开机启动docker
sudo service docker enable
sudo systemctl enable docker

安装指定版本的Docker

官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。

vim /etc/yum.repos.d/docker-ce.repo
   将[docker-ce-test]下方的enabled=0修改为enabled=1

安装指定版本的Docker-CE:

Step 1: 查找Docker-CE的版本:

yum list docker-ce.x86_64 --showduplicates | sort -r
   Loading mirror speeds from cached hostfile
   Loaded plugins: branch, fastestmirror, langpacks
   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
   Available Packages

Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)

sudo yum -y install docker-ce-[VERSION]

DEB(APT) 包安装

DEB包适合一下操作系统发行版本:

  • Ubuntu
  • Debian
  • 优麒麟UbuntuKylin

安装步骤

基于 Aliyun 的镜像中心进行安装,其他腾讯云、华为云等类似。

  • 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg apt-transport-https
  • 2: 信任 Docker 的 GPG 公钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
  • 3: 写入软件源信息
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 4: 安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装指定版本的Docker

安装指定版本的Docker-CE:

Step 1: 查找Docker-CE的版本:

apt-cache madison docker-ce
   docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
   docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages

Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1ce-0ubuntu-xenial)

sudo apt-get -y install docker-ce=[VERSION]

安装校验

通过执行 docker version 命令查看是否有正常返回判断是否安装成功

root@localhost:$ docker version
Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64
 Experimental: false

升级

升级前的准备工作

在进行Docker版本升级之前,必须做好以下准备工作:

  • 备份配置和数据:确保所有重要的Docker配置文件和容器数据都已备份,以防止升级过程中数据丢失。
  • 检查当前版本:使用docker --version命令查看当前Docker版本,并记录相关信息。
  • 检查依赖项:确保操作系统和其他依赖项(如Docker Compose、Docker Machine等)与目标Docker版本兼容。

升级步骤

以 deb 包的升级为例,rpm 包类似

  1. 卸载旧版本

    sudo apt-get remove docker docker-engine docker.io containerd runc
    

  2. 安装新版本

    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    

  3. 启动Docker服务

    sudo systemctl start docker
    

升级校验

参考“安装校验”

回滚方案

如果升级过程中出现问题,可以按照以下步骤回滚到之前的版本:

  1. 卸载当前版本

    sudo apt-get remove docker-ce docker-ce-cli containerd.io
    

  2. 安装旧版本

    sudo apt-get install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io
    

  3. 启动Docker服务

    sudo systemctl start docker