©
本文档使用
php.cn手册 发布
要开始在 Debian 上使用 Docker CE,请确保满足先决条件,然后安装 Docker。
Docker EE 不支持 Debian。有关不同 Docker 版本支持的操作系统和发行版的列表,请参阅 Docker 变体。
要安装 Docker CE,您需要这些 Debian 或 Raspbian 版本的64位版本:
Stretch (stable)
Jessie 8.0 (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
。
您至少需要 Linux 内核的3.10版本。Debian Wheezy 随附3.2版本,因此您可能需要更新内核。检查你的内核版本:$ uname -r
启用backports
存储库。请参阅Debian文档。
您可以根据您的需要以不同的方式安装Docker CE:
大多数用户设置 Docker 的存储库并从中进行安装,以便安装和升级任务。这是推荐的方法。
有些用户下载 DEB 软件包并手动安装,并完全手动管理升级。这对于在无法访问互联网的空隙系统上安装 Docker 等情况很有用。
在测试和开发环境中,有些用户选择使用自动便利脚本来使用存储库安装 Docker.Install。首次在新主机上安装Docker CE 之前,需要设置 Docker 存储库。之后,您可以从存储库安装并更新 Docker。设置存储库
更新apt
包裹索引:
$ sudo apt-get update
安装软件包以允许apt
通过HTTPS使用存储库: Jessie或Stretch:$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg2 \ software-properties-common Wheezy:$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ python-software-properties
添加Docker的官方GPG密钥:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
验证密钥ID是9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
。
$ sudo apt-key指纹0EBFCD88 pub 4096R / 0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker发布(CE deb)docker@docker.com sub 4096R / F273FCD8 2017-02-22
使用以下命令设置稳定的存储库。即使您想从边缘或测试存储库安装构建,也总是需要稳定的存储库。要添加边缘或测试存储库,请在下面的命令中添加单词或(或两者)后面的单词。 注:在下面的子命令返回的Debian发行版的名称,如。要还加了边库,添加后在命令的最后一行。 x86_64:$ sudo add-apt-repository \“deb arch = amd64edgeteststablelsb_release -csjessieedgestable
https://download.docker.com/linux/debian \ $(lsb_release -cs)\ stable“ armhf:$ echo”deb arch = armhf https://download.docker.com/linux/debian \ $(lsb_release - cs)stable“| \ sudo tee /etc/apt/sources.list.d/docker.list
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 开始,稳定版本也被推到边缘并测试版本库。
了解稳定和边缘频道。
注意:在Debian for 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.06.0〜ce-0〜debian | https://download.docker.com/linux/debian jessie / stable amd64软件包列表的内容取决于启用了哪些存储库。选择一个特定的版本进行安装。第二列是版本字符串。第三列是存储库名称,它指示软件包来自哪个存储库并且通过扩展其稳定性级别。要安装特定版本,请将版本字符串附加到包名称,并用等号(=
)将它们分开:$ 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 已安装并正在运行。您需要使用sudo
运行 Docker
命令。继续 Linux postinstall 以允许非特权用户运行 Docker 命令以及其他可选配置步骤。
要升级 Docker CE,请先运行sudo apt-get update
,然后按照安装说明进行操作,然后选择要安装的新版本。
注意:如果您使用推荐的
$ curl -sSL https://get.docker.com | sh
命令,则这不是必需的。
一旦你添加了Docker仓库/etc/apt/sources.list.d/
,你应该看看docker.list
你是否:
$ ls /etc/apt/sources.list.d/
该内容docker.list
应该是:
deb [arch=armhf] https://apt.dockerproject.org/repo raspbian-jessie main
如果你没有看到,在docker.list
,那么无论注释行了,或者rm
该docker.list
文件。
一旦你确认你有正确的存储库,你可以继续安装Docker。
更新apt
软件包索引。$ sudo apt-get update
安装最新版本的 Docker CE,或转到下一步安装特定版本。任何现有的 Docker CE 安装都将被替换。
使用此命令安装最新版本的 Docker:
$ sudo apt-get install docker-engine
注意:默认情况下,Raspbian上的Docker是Docker Community Edition。
注意:如果curl -sSL https://get.docker.com | sh
没有使用,docker将不会自动完成!你必须手动添加它。
通过运行hello-world
映像验证是否正确安装了Docker CE 。$ sudo docker运行hypriot / armhf-hello-world这个命令下载一个测试图像并在一个容器中运行它。当容器运行时,它会打印一条信息消息并退出。(可选)为Raspbian安装Docker Compose Hypriot为Raspbian 提供了一个静态二进制文件docker-compose
。要使用它,首先遵循Hypriot 关于设置存储库的说明,然后运行以下命令:sudo apt-get install从软件包中执行docker-composeInstall如果不能使用Docker的存储库来安装Docker CE,则可以下载.deb
文件以供发布,手动安装。每次要升级Docker时,都需要下载一个新文件。
转到https://download.docker.com/linux/debian/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 已安装并正在运行。您需要使用sudo
运行 Docker
命令。继续进行 Linux 的安装后步骤,以允许非特权用户运行Docker 命令以及其他可选配置步骤。
要升级 Docker,请下载较新的软件包文件并重复安装过程,指向新文件。
Docker 在 get.docker.com 和 test.docker.com上提供了便捷脚本,用于将 Docker CE 的稳定版和测试版快速且非交互地安装到开发环境中。脚本的源代码位于docker-install
存储库中。不建议在生产环境中使用这些脚本,并且在使用它们之前应了解其潜在风险:
脚本需要root
或sudo
权限才能运行。因此,在运行脚本之前,应仔细检查和审核脚本。
这些脚本会尝试检测您的 Linux 发行版和版本,并为您配置您的软件包管理系统。另外,这些脚本不允许您自定义任何安装参数。这可能会导致不支持的配置,无论是从 Docker 的角度还是从您自己的组织准则和标准。
这些脚本会安装包管理器的所有依赖关系和建议,而不要求确认。这可能会安装大量的包,具体取决于主机的当前配置。
如果 Docker 已经使用其他机制安装在主机上,请不要使用便捷脚本。
本示例使用 get.docker.com 上的脚本在 Linux 上安装 Docker CE 的最新稳定版本。要安装最新的测试版本,请改用test.docker.com。在下面的每个命令,取代每次出现get
用test
。
本节中的信息解释如何自定义 Docker 默认桥。这是一个bridge
网络名bridge
安装 Docker 时自动创建。
注意:通过 Docker 网络功能,您可以创建除默认网桥以外的用户定义网络。
默认情况下,Docker 服务器创建并配置主机系统的docker0
一个称为的网络接口docker0
,它是一个以太网桥设备。如果您在启动容器时未指定其他网络,则容器将连接到网桥,并且来自和去往容器的所有流量都会通过网桥流向 Docker 守护程序,
Docker 守护程序将代表容器处理路由。
Docker docker0
使用 IP 地址,网络掩码和 IP 分配范围进行配置。连接到默认网桥的容器在此范围内分配 IP 地址。某些默认设置适用于默认网桥,除非您另行指定。例如,默认的最大传输单元(MTU)或容器允许的最大数据包长度默认为1500字节。
您可以使用该dockerd
命令的标志来配置默认桥接网络的设置。但是,配置 Docker 守护进程的推荐方式是使用daemon.json
位于/etc/docker/
Linux上的文件。如果该文件不存在,请创建它。您可以指定一个或多个以下设置来配置默认桥接网络:
{ "bip": "192.168.1.5/24", "fixed-cidr": "10.20.0.0/16", "fixed-cidr-v6": "2001:db8::/64", "mtu": 1500, "default-gateway": "10.20.1.1", "default-gateway-v6": "2001:db8:abcd::89", "dns": ["10.20.1.2","10.20.1.3"]}
在对daemon.json
文件进行更改后重新启动 Docker 。
相同的选项作为标志显示dockerd
,并分别给出解释:
--bip=CIDR
:docker0
使用标准 CIDR 表示法为桥提供特定的IP地址和网络掩码。例如:192.168.1.5/24
。
--fixed-cidr=CIDR
并且--fixed-cidr-v6=CIDRv6
:docker0
使用标准的 CIDR 表示法来限制子网的IP范围。例如:172.16.1.0/28
。此范围必须是固定IP的IPv4范围10.20.0.0/16
,并且必须是网桥 IP 范围的子集(docker0
或使用set --bridge
)。例如,--fixed-cidr=192.168.1.0/25
对于您的容器,将从192.168.1.0/24
子网中包含的前半部分地址中选择 IP。
--mtu=BYTES
:覆盖最大数据包长度docker0
。
--default-gateway=Container default Gateway IPV4 address
和--default-gateway-v6=Container default gateway IPV6 address
:指定连接到docker0
网桥的容器的默认网关,默认网关控制它们在哪里路由流量。适用于使用--bip
和--fixed-cidr
标志设置的地址。例如,你可以配置--fixed-cidr=172.17.2.0/24
和default-gateway=172.17.1.1
。
--dns=[]
:要使用的 DNS 服务器。例如:--dns=172.17.2.10
。
一旦启动并运行了一个或多个容器,您可以docker0
通过brctl
在主机上运行命令并查看interfaces
输出的列来确认Docker 已将其正确连接到网桥。此示例显示了docker0
连接了两个容器的桥:
如果该brctl
命令未安装在您的 Docker 主机上,那么在
Ubuntu 上您应该可以运行sudo apt-get install bridge-utils
以安装它。