官方文档: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被称为docker
或docker-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
- 启用
backports
存储库。请参阅 Debian文档。
安装Docker CE
您可以根据您的需要以不同的方式安装Docker CE:
- 大多数用户 设置Docker的存储库并从中进行安装,以便安装和升级任务。这是推荐的方法,除了Raspbian。
- 有些用户下载DEB软件包并 手动安装,并完全手动管理升级。这对于在无法访问互联网的空隙系统上安装Docker等情况很有用。
- 在测试和开发环境中,一些用户选择使用自动 便利脚本来安装Docker。这是目前Raspbian的唯一方法。
使用存储库进行安装
首次在新主机上安装Docker CE之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
Raspbian用户不能使用这种方法!
对于Raspbian,尚未支持使用存储库进行安装。你必须改用便利的脚本。
设置存储库
- 更新
apt
包裹索引:
$ sudo apt-get update
- 安装软件包以允许
apt
通过HTTPS使用存储库:
- 杰西或更新
- 喘息或年长
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
- 添加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
- 使用以下命令设置稳定的存储库。即使您想从边缘或测试存储库安装构建,也总是需要稳定的存储 库。要添加边缘或 测试存储库,请在下面的命令中添加单词或(或两者)后面的单词。
edge
test
stable
注意:下面的
lsb_release -cs
子命令返回您的Debian发行版的名称,例如jessie
。
- 要添加边缘存储库,请
edge
在stable
该命令的最后一行添加。
- 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"
- 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_64
/amd64
,Debian ARM或Raspbian。
- 更新
apt
软件包索引。
$ sudo apt-get update
- 安装最新版本的Docker CE,或转到下一步安装特定版本。任何现有的Docker安装都会被替换。
$ sudo apt-get install docker-ce
有多个Docker存储库?
如果启用了多个Docker存储库,则安装或更新时如果未指定版本
apt-get install
或apt-get update
命令,则始终会安装尽可能高的版本,这可能不适合您的稳定性需求。
- 在生产系统上,您应该安装特定版本的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守护进程自动启动。
- 通过运行
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时,都需要下载一个新文件。
- 转到
https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/dists/
选择您的Debian版本,浏览到pool/stable/
,选择amd64
或者armhf
,然后下载.deb
您想要安装的Docker CE版本的文件。
注意:要安装边缘 软件包,
stable
请将URL中的单词更改 为edge
。 了解稳定和边缘频道。
- 安装Docker CE,将下面的路径更改为您下载Docker软件包的路径。
$ sudo dpkg -i /path/to/package.deb
Docker守护进程自动启动。
- 通过运行
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存储库中。 不建议在生产环境中使用这些脚本,并且在使用它们之前应了解其潜在风险:
- 脚本需要
root
或sudo
权限才能运行。因此,在运行脚本之前,应仔细检查和审核脚本。 - 这些脚本会尝试检测您的Linux发行版和版本,并为您配置您的软件包管理系统。另外,这些脚本不允许您自定义任何安装参数。这可能会导致不支持的配置,无论是从Docker的角度还是从您自己的组织准则和标准。
- 这些脚本会安装包管理器的所有依赖关系和建议,而不要求确认。这可能会安装大量的包,具体取决于主机的当前配置。
- 该脚本不提供指定要安装哪个版本的Docker的选项,并安装在“边缘”通道中发布的最新版本。
- 如果Docker已经使用其他机制安装在主机上,请勿使用便捷脚本。
本示例使用get.docker.com上的脚本在Linux上安装Docker CE的最新版本。要安装最新的测试版本,请改用test.docker.com。在下面的每个命令,取代每次出现get
用test
。
警告:
在本地运行之前,始终检查从互联网上下载的脚本。
$ 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
基于分布的情况下,您需要使用适当systemctl
或service
命令手动启动它 。如消息所示,非root用户默认情况下不能运行Docker命令。
在使用便利脚本后升级DOCKER
如果您使用便捷脚本安装Docker,则应直接使用软件包管理器升级Docker。重新运行便捷脚本没有任何优势,如果它试图重新添加已添加到主机的存储库,则会产生问题。
为Raspbian安装Docker Compose
您可以使用pip
以下方法安装Docker Compose :
$ sudo pip install docker-compose
Hypriot提供了docker-compose
Raspbian 的静态二进制。它可能并不总是最新的,但如果空间有限,你可能会觉得它很有用。要使用它,首先按照Hypriot 关于设置存储库的 说明,然后运行以下命令:
sudo apt-get install docker-compose
卸载Docker CE
- 卸载Docker CE软件包:
$ sudo apt-get purge docker-ce
- 不会自动删除主机上的图像,容器,卷或自定义配置文件。删除所有图像,容器和卷:
$ sudo rm -rf /var/lib/docker
您必须手动删除任何已编辑的配置文件。