「Docker」- 安装、部署(CentOS、Debian、Ubuntu)

关于版本号的疑问

docker version number confusion: 17.06 vs 1.13?
Time-based release schedule

在一些旧的 Docker 文档中,经常会提到 Docker 1.x 版本,而另外一些文档是 Docker 17.x 版本,但是确没有 Docker 4.x……Docker 9.x …… Docker 16.x 等等版本。为什么会这个样子呢?

该笔记将记录:Docker 版本号的是如何变化的,以及相关问题的处理方法。

时间点:17.03.0-ce (2017-03-01)

从这个版本开始,Docker进入「月度发布」周期,并使用新的「YY.MM」版本控制方案来反映这一点。 提供两种渠道:「月度」和「季度」。

任何特定「月度版本」只会在下一个月度发布可用之前收到安全性和错误修正。

而「季度版本」在首次发布后的4个月内会收到安全性和错误修正。

另外Docker 17.03.0-ce版本包含1.13.1的错误修正,但没有主要功能添加,API版本保持不变,所以从Docker 1.13.1升级到17.03.0预计将是简单且低风险的。

关于版本选择

由于「季度版本」的支持时间更久,所以我们选用季度版本。季度版本的发版月份为 3、6、9、12 月,所以 Docker 版本号为 Docker x.03、Docker x.06、Docker x.09、Docker x.12 的格式,其中 x 代表主版本号。

on Debian GNU/Linux 10 (buster)

Install Docker Engine on Debian | Docker Documentation

#### 卸载旧版
systemctl stop docker.service # 18.09.1
apt-get remove docker.io runc

#### 添加仓库
echo 'Acquire::ForceIPv4 "true";' | tee /etc/apt/apt.conf.d/99-force-ipv4       # 禁用 IPv6 解析
apt-get update
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

#### 安装服务
apt-get install docker-ce docker-ce-cli containerd.io

#### 安装服务 for Debian 10

apt-get update
apt-cache madison docker-ce # 查看版本
apt-get install -y docker-ce=5:19.03.13~3-0~debian-buster \
    docker-ce-cli=5:19.03.13~3-0~debian-buster \
    containerd.io

#### 安装服务 for Debian 11
apt-get update 
apt-get install -y docker-ce=5:20.10.21~3-0~debian-bullseye                    \
    docker-ce-cli=5:20.10.21~3-0~debian-bullseye                               \
    containerd.io

on Ubuntu 18.04.4 LTS

Install Docker Engine on Ubuntu | Docker Documentation

Docker 19.03.12 on AMD64

# 移除旧版
apt-get remove docker docker-engine docker.io containerd runc

# 添加官方仓库
apt-get update \
    && apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common \
    && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \
    && apt-key fingerprint 0EBFCD88 \
    && add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 安装服务
apt-get update && apt-get install -y \
    docker-ce=5:19.03.12~3-0~ubuntu-bionic \
    docker-ce-cli=5:19.03.12~3-0~ubuntu-bionic \
    containerd.io

# 服务自动启动
systemctl start docker.service
systemctl enable docker.service
systemctl status docker.service

# 测试
docker run --rm hello-world

Docker 19.03.12 on ARM64

# 移除旧版
apt-get update && apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# 添加官方仓库
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
  "deb [arch=arm64 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

# 安装服务
apt-get update && apt-get install -y \
    docker-ce=5:19.03.12~3-0~ubuntu-bionic \
    docker-ce-cli=5:19.03.12~3-0~ubuntu-bionic \
    containerd.io

# 服务自动启动
systemctl start docker.service
systemctl enable docker.service
systemctl status docker.service

# 测试
docker run --rm hello-world

on Ubuntu 20.04.4 LTS

Install Docker Engine on Ubuntu | Docker Documentation

适用于 Ubuntu 21.04 版本。

# 移除旧版
apt-get remove docker docker-engine docker.io containerd runc

# 添加官方仓库 for AMD64
apt-get update \
    && apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common \
    && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \
    && apt-key fingerprint 0EBFCD88 \
    && add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 添加官方仓库 for ARM64
apt-get update \
    && apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common \
    && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \
    && apt-key fingerprint 0EBFCD88 \
    && add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 安装服务
apt-get update && apt-get install -y         \
    docker-ce=5:20.10.1~3-0~ubuntu-focal     \
    docker-ce-cli=5:20.10.1~3-0~ubuntu-focal containerd.io

# 服务自动启动
systemctl start docker.service
systemctl enable docker.service
systemctl status docker.service

# 测试
docker run --rm hello-world

on CentOS 7.x

# 01/21/2019 Get Docker CE for CentOS
适用于:CentOS 7.0,CentOS 7.3, CentOS 7.6.18.10 (AltArch)

# 第一步、删除旧版本,并安装依赖
yum remove -y docker docker-client docker-client-latest docker-common \
    docker-latest docker-latest-logrotate docker-logrotate docker-engine

yum install -y yum-utils device-mapper-persistent-data lvm2

# 第二步、添加仓库并安装 Docker 服务
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce                                                        # yum install -y docker-ce-18.09.0

# 第三步、启动 Docker 服务
systemctl start docker
systemctl enable docker

# 第四步、验证 Docker 服务正确安装
docker run --rm hello-world
docker -v

on Kylin 4.0.2

按照 Ubuntu 16.04 Xenial 安装:

deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu xenial stable

on Raspbian GNU/Linux 9.13 (stretch)

#### 卸载旧版 Docker 服务
apt-get remove docker.io runc

#### 安装仓库
apt-get update
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

#### 安装 Docker 服务
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io

on Kali Rolling

# 03/04/2019 在 Docker 官网上没有相应文档,毕竟这也不是个用于生产的发行版。而且就算 Kali 是 Debian 的衍生版,也不能用 Debian 的安装文档,因为有一个关键的地方是添加 Docker 官方源,这个地方是加不上去的。

所以只能直接从 Kali 仓库里中安装:

apt-get install docker.io

systemctl start docker.service
systemctl enable docker.service

docker run hello-world

附加说明

在 windows 下,官方提供了二进制安装包,但本质上:安装是通过 virtualbox 软件安装 linux 虚拟机 ,再在虚拟机上部署的。所以,相当于在 windows 上装虚拟机 再在虚拟机上安装 docker 服务。

参考文献

docker docs/About Docker CE