官方文档:https://docs.docker.com/install/linux/docker-ce/debian

获取Debian的Docker CE


预计阅读时间: 12分钟

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

先决条件

Docker EE客户

Docker EE不支持Debian。有关不同Docker版本支持的操作系统和发行版的列表,请参阅 Docker变体

OS要求

要安装Docker CE,您需要这些Debian或Raspbian版本的64位版本:

  • Buster 10(仅适用于Docker CE 17.11 Edge)
  • 拉伸9(稳定)/拉斯比拉伸
  • Jessie 8(LTS)/ Raspbian Jessie
  • Wheezy 7.7(LTS)

Docker CE在Jessie和Stretch的x86_64(或amd64)和armhf架构上都受支持。

卸载旧版本

老版本的Docker被称为dockerdocker-engine。如果这些已安装,请将其卸载:


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


如果apt-get报告说没有安装这些软件包,那就行了。

/var/lib/docker/包括图像,容器,卷和网络的内容将被保留。现在调用Docker CE包docker-ce

Wheezy 7.7的额外步骤

  • 您至少需要Linux内核的3.10版本。Debian Wheezy随附3.2版本,因此您可能需要 更新内核。要检查你的内核版本:
$ uname -r

安装Docker CE

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

  • 大多数用户 设置Docker的存储库并从中进行安装,以便安装和升级任务。这是推荐的方法,除了Raspbian。
  • 有些用户下载DEB软件包并 手动安装,并完全手动管理升级。这对于在无法访问互联网的空隙系统上安装Docker等情况很有用。
  • 在测试和开发环境中,一些用户选择使用自动 便利脚本来安装Docker。这是目前Raspbian的唯一方法。

使用存储库进行安装

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

Raspbian用户不能使用这种方法!

对于Raspbian,尚未支持使用存储库进行安装。你必须改用便利的脚本

设置存储库
  1. 更新apt包裹索引:
$ sudo apt-get update
  1. 安装软件包以允许apt通过HTTPS使用存储库:
  • 杰西或更新
  • 喘息或年长
$ sudo apt-get install \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg2 \
     software-properties-common
  1. 添加Docker的官方GPG密钥:
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通过搜索指纹的最后8个字符,确认您现在拥有带指纹的密钥 。

$ sudo apt-key fingerprint 0EBFCD88

pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22
  1. 使用以下命令设置稳定的存储库。即使您想从边缘或测试存储库安装构建,也总是需要稳定的存储 库。要添加边缘或 测试存储库,请在下面的命令中添加单词或(或两者)后面的单词。edgeteststable

注意:下面的lsb_release -cs子命令返回您的Debian发行版的名称,例如jessie

  1. 要添加边缘存储库,请edgestable该命令的最后一行添加。
  • x86_64 / amd64
  • armhf
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
   $(lsb_release -cs) \
   stable"
  1. Wheezy only:Wheezy上的版本add-apt-repository添加了一个deb-src 不存在的存储库。你需要注释掉这个版本库或者运行apt-get update失败。编辑/etc/apt/sources.list。找到如下所示的行,并将其注释掉或删除它:
deb-src [arch=amd64] https://download.docker.com/linux/debian wheezy stable

保存并退出文件。

注意:从Docker 17.06开始,稳定版本也被推到边缘并测试版本库。

了解稳定和边缘频道

安装DOCKER CE

注意:此过程适用于Debian x86_64amd64,Debian ARM或Raspbian。

  1. 更新apt软件包索引。
$ sudo apt-get update
  1. 安装最新版本的Docker CE,或转到下一步安装特定版本。任何现有的Docker安装都会被替换。
$ sudo apt-get install docker-ce

有多个Docker存储库?

如果启用了多个Docker存储库,则安装或更新时如果未指定版本apt-get install或 apt-get update命令,则始终会安装尽可能高的版本,这可能不适合您的稳定性需求。

  1. 在生产系统上,您应该安装特定版本的Docker CE,而不是始终使用最新版本。此输出被截断。列出可用的版本:
$ apt-cache madison docker-ce

docker-ce | 17.12.0~ce-0~debian | https://download.docker.com/linux/debian jessie/stable amd64 Packages

列表的内容取决于启用了哪些存储库。选择一个特定的版本进行安装。第二列是版本字符串。第三列是存储库名称,它指示软件包来自哪个存储库并且通过扩展其稳定性级别。要安装特定版本,请将版本字符串附加到包名称,并用等号(=)将它们分开:

$ sudo apt-get install docker-ce=<VERSION_STRING>

Docker守护进程自动启动。

  1. 通过运行hello-world 映像验证是否正确安装了Docker CE 。
    x86_64:
$ sudo docker run hello-world

armhf:

$ sudo docker run armhf/hello-world

该命令下载测试图像并将其运行到容器中。当容器运行时,它会打印一条信息消息并退出。

Docker CE已安装并正在运行。该docker组已创建,但未添加用户。您需要使用sudo运行Docker命令。继续Linux postinstall以允许非特权用户运行Docker命令以及其他可选配置步骤。对于Raspbian,您可以选择 安装Raspbian的Docker Compose

升级DOCKER CE

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

从包中安装

如果你不能使用Docker的版本库来安装Docker CE,你可以下载 .deb你的版本文件并手动安装。每次要升级Docker时,都需要下载一个新文件。

  1. 转到https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/dists/选择您的Debian版本,浏览到pool/stable/,选择 amd64或者armhf,然后下载.deb您想要安装的Docker CE版本的文件。

注意:要安装边缘 软件包,stable请将URL中的单词更改 为edge。 了解稳定和边缘频道

  1. 安装Docker CE,将下面的路径更改为您下载Docker软件包的路径。
$ sudo dpkg -i /path/to/package.deb

Docker守护进程自动启动。

  1. 通过运行hello-world 映像验证是否正确安装了Docker CE 。
$ sudo docker run hello-world

该命令下载测试图像并将其运行到容器中。当容器运行时,它会打印一条信息消息并退出。

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

升级DOCKER CE

要升级Docker,请下载较新的软件包文件并重复 安装过程,指向新文件。

使用便捷脚本进行安装

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

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

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

警告:

在本地运行之前,始终检查从互联网上下载的脚本。


$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

<output truncated>

If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember to log out and back in for this to take effect!

WARNING: Adding a user to the "docker" group grants the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.


Docker CE已安装。它会自动启动DEB基于目录的分发。在 RPM基于分布的情况下,您需要使用适当systemctlservice命令手动启动它 。如消息所示,非root用户默认情况下不能运行Docker命令。

在使用便利脚本后升级DOCKER

如果您使用便捷脚本安装Docker,则应直接使用软件包管理器升级Docker。重新运行便捷脚本没有任何优势,如果它试图重新添加已添加到主机的存储库,则会产生问题。

为Raspbian安装Docker Compose

您可以使用pip以下方法安装Docker Compose :


$ sudo pip install docker-compose


Hypriot提供了docker-composeRaspbian 的静态二进制。它可能并不总是最新的,但如果空间有限,你可能会觉得它很有用。要使用它,首先按照Hypriot 关于设置存储库的 说明,然后运行以下命令:


sudo apt-get install docker-compose


卸载Docker CE

  1. 卸载Docker CE软件包:
$ sudo apt-get purge docker-ce
  1. 不会自动删除主机上的图像,容器,卷或自定义配置文件。删除所有图像,容器和卷:
$ sudo rm -rf /var/lib/docker

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