在Debian上安装Docker Engine

预计阅读时间:10分钟

要在Debian上开始使用Docker Engine,请确保您 满足先决条件,然后 安装Docker

先决条件

操作系统要求

要安装Docker Engine,您需要以下Debian或Raspbian版本之一的64位版本:

  • Debian Bullseye 11(测试)
  • Debian Buster 10(稳定)
  • Raspbian Bullseye 11(测试)
  • Raspbian Buster 10(稳定)

Docker Engine在x86_64(或amd64armhf,和arm64体系结构上受支持。

卸载旧版本

泊坞窗的旧版本被称为dockerdocker.iodocker-engine。如果安装了这些,请卸载它们:

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

如果apt-get报告未安装这些软件包,则可以。

的内容(/var/lib/docker/包括图像,容器,卷和网络)被保留。Docker Engine软件包现在称为docker-ce

安装方式

您可以根据需要以不同的方式安装Docker Engine:

  • 大多数用户会 设置Docker的存储库并从中进行安装,以简化安装和升级任务。除了Raspbian以外,这是推荐的方法。

  • 一些用户下载并手动安装DEB软件包, 并完全手动管理升级。这在诸如在无法访问互联网的空白系统上安装Docker的情况下很有用。

  • 在测试和开发环境中,一些用户选择使用自动 便利脚本来安装Docker。目前,这是Raspbian的唯一方法。

使用存储库安装

在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。

Raspbian用户不能使用此方法!

对于Raspbian,尚不支持使用存储库进行安装。您必须改为使用便捷脚本

设置存储库

  1. 更新apt软件包索引并安装软件包以允许apt通过HTTPS使用存储库:

    $ sudo apt-get update
    
    $ sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
  2. 添加Docker的官方GPG密钥:

    $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
  3. 使用以下命令来设置稳定的存储库。要添加 夜间测试存储库,请在以下命令中的单词后面添加nightlytest(或两者)stable了解每晚测试频道

    注意:下面的lsb_release -cs子命令返回Debian发行版的名称,例如helium。有时,在诸如BunsenLabs Linux的发行版中,您可能需要更改$(lsb_release -cs) 为父Debian发行版。例如,如果您使用 BunsenLabs Linux Helium,则可以使用stretch。Docker对未经测试和不受支持的Debian发行版不提供任何保证。

    $ echo \
      "deb [arch=amd64 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
    
    $ echo \
      "deb [arch=armhf 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
    
    $ echo \
      "deb [arch=arm64 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引擎

此过程适用于Debian的上x86_64/ amd64armhfarm64,和Raspbian。

  1. 更新apt程序包索引,并安装最新版本的Docker Engine和容器化的容器,或转到下一步以安装特定版本:

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

    有多个Docker存储库吗?

    如果启用了多个Docker存储库,则在未在apt-get installor apt-get update命令中指定版本的情况下进行安装或更新将始终安装可能的最高版本,这可能不适合您的稳定性需求。

  2. 要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装:

    一种。列出您的仓库中可用的版本:

    $ apt-cache madison docker-ce
    
      docker-ce | 5:18.09.1~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/stable amd64 Packages
      docker-ce | 5:18.09.0~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/stable amd64 Packages
      docker-ce | 18.06.1~ce~3-0~debian        | https://download.docker.com/linux/debian stretch/stable amd64 Packages
      docker-ce | 18.06.0~ce~3-0~debian        | https://download.docker.com/linux/debian stretch/stable amd64 Packages
    

    b。使用第二列中的版本字符串安装特定版本,例如5:18.09.1~3-0~debian-stretch

    $ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
    
  3. 通过运行hello-world 映像来验证是否正确安装了Docker Engine 。

    $ sudo docker run hello-world
    

    此命令下载测试图像并在容器中运行它。容器运行时,它会打印参考消息并退出。

Docker Engine已安装并正在运行。该docker组已创建,但未添加任何用户。您需要使用sudo来运行Docker命令。继续进行Linux后安装,以允许非特权用户运行Docker命令以及其他可选配置步骤。

升级Docker引擎

要升级Docker Engine,请先运行sudo apt-get update,然后按照 安装说明进行操作,选择要安装的新版本。

从软件包安装

如果您不能使用Docker的存储库来安装Docker Engine,则可以下载.deb要发布的 文件并手动安装。每次要升级Docker时,都需要下载一个新文件。

  1. 转到https://download.docker.com/linux/debian/dists/,选择你的Debian版本,然后浏览pool/stable/,选择amd64armhfarm64,并下载.deb文件要安装多克尔引擎版本。

    注意:要安装夜间测试(预发布)软件包,stable请将上述URL中的单词更改为nightlytest了解每晚测试频道

  2. 安装Docker Engine,将下面的路径更改为您下载Docker软件包的路径。

    $ sudo dpkg -i /path/to/package.deb
    

    Docker守护程序会自动启动。

  3. 通过运行hello-world 映像来验证是否正确安装了Docker Engine 。

    $ sudo docker run hello-world
    

    此命令下载测试图像并在容器中运行它。容器运行时,它会打印参考消息并退出。

Docker Engine已安装并正在运行。该docker组已创建,但未添加任何用户。您需要使用sudo来运行Docker命令。继续执行Linux的安装后步骤,以允许非特权用户运行Docker命令以及其他可选配置步骤。

升级Docker引擎

要升级Docker Engine,请下载更新的软件包文件,然后重复 安装过程,指向新文件。

使用便捷脚本进行安装

Docker在get.docker.comtest.docker.com上提供了便利脚本,用于将Docker Engine-Community的边缘版本和测试版本快速且非交互地安装到开发环境中。脚本的源代码在 docker-install存储库中不建议在生产环境中使用这些脚本,并且在使用它们之前,您应该了解潜在的风险:

  • 脚本需要运行root或具有sudo特权。因此,在运行脚本之前,应仔细检查和审核脚本。
  • 这些脚本尝试检测Linux发行版和版本,并为您配置软件包管理系统。此外,脚本不允许您自定义任何安装参数。从Docker的角度或您自己组织的准则和标准的角度来看,这可能导致不支持的配置。
  • 这些脚本将安装软件包管理器的所有依赖项和建议,而无需进行确认。根据主机的当前配置,这可能会安装大量软件包。
  • 该脚本未提供用于指定要安装哪个版本的Docker的选项,而是安装了在“ edge”通道中发布的最新版本。
  • 如果已经使用其他机制在主机上安装了Docker,请不要使用便捷脚本。

本示例使用get.docker.com上的脚本在Linux上安装最新版本的Docker Engine-Community。要安装最新的测试版本,请改用test.docker.com。在下面的每个命令,取代每次出现gettest

警告

在本地运行它们之前,请务必检查从Internet下载的脚本。

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
<...>

如果您想以非root用户身份使用Docker,请参阅 Linux的安装后步骤

Docker Engine-社区已安装。它会自动在DEB基于发行版的系统上启动。在 RPM基于发行版的系统上,您需要使用相应的systemctlservice命令手动启动它 。如消息所示,默认情况下,非root用户不能运行Docker命令。

使用便捷脚本后升级Docker

如果使用便捷脚本安装了Docker,则应直接使用包管理器升级Docker。重新运行便利程序脚本没有任何好处,如果尝试重新添加已经添加到主机的存储库,则可能导致问题。

卸载Docker Engine

  1. 卸载Docker Engine,CLI和Containerd软件包:

    $ sudo apt-get purge docker-ce docker-ce-cli containerd.io
    
  2. 主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:

    $ sudo rm -rf /var/lib/docker
    $ sudo rm -rf /var/lib/containerd
    

您必须手动删除所有已编辑的配置文件。

下一步

需求apt安装debian安装卸载升级更新