Installation from binaries
创建这篇指南的目的是为那些希望在多样化环境中运行Docker的hackers。
在开始下面行动之前,你应该彻底检查一下已经打包的Docker 版本在你的发行版linux上是否可用。我们为多个发行版打包,并继续为更多的发行版打包。
Check runtime dependencies
要正确的运行,Docker需要在运行环境安装下面的软件:
- iptables version 1.4 or later
- Git version 1.7 or later
- procps (or similar provider of a “ps” executable)
- XZ Utils 4.9 or later
- a properly mounted cgroupfs hierarchy (having a single, all-encompassing “cgroup” mount point is not sufficient)
Check kernel dependencies
Docker在后台模式有特殊的内核需求。更多,在Installation检查你的发行版。
3.10以前的内核缺少Docker容器运行的一些功能。这些老的版本已知有很多致使数据丢失的bug,并且在一定的条件下频繁的崩溃。
建议使用3.10(或更新的维护版本)Linux内核的主要维护版本(3.x.y)。 使内核保持最新的版本将确保关键的内核错误得到修复。
警告: 安装定制的内核和呢荷包可能不被你的发行版供应商支持。在安装内核包前请联系你的供应商确保其支持Docker。
警告: 在一些发行版本上安装最新的内核可能还不够,可能其提供的包太旧和最新的内核冲突。
注意Docker有client模式,他可以运行在任何虚拟的Linux呢和上(它甚至可以运行在macOS!)。
Enable AppArmor and SELinux when possible
请使用AppArmor或者SELinux如果你的linux发行版支持两者任意一个。这可以提高系统的安全性并阻止一些漏洞。你的发行版的文档应该提供如何开启建议的安全程序的步骤。
一些linux发行版开启AppArmor或者SELinux但是没有运行在必需的内核版本(3.10 或 newer)。更新这些内核到3.10或更新的版本不足以运行Docker和容器。系统提供的AppArmor / SELinux用户空间实用程序版本与内核之间的不兼容性可能会阻止Docker运行,启动容器或导致容器出现意外行为。
Warning: If either of the security mechanisms is enabled, it should not be disabled to make Docker or its containers run. This will reduce security in that environment, lose support from the distribution’s vendor for the system, and might break regulations and security policies in heavily regulated environments.
Get the Docker Engine binaries
你可以下载最新版本或特别版本的二进制包。要获得一系列稳定版本的列表,查看 docker/docker
releases page。您可以通过将.md5和.sha 256分别附加到URL来获取MD5和SHA256。
Get the Linux binaries
使用下面的链接下载最新版本:
https://get.docker.com/builds/Linux/i386/docker-latest.tgz |
要下载指定版本使用下面的url规则:
https://get.docker.com/builds/Linux/i386/docker-<version>.tgz |
比如:
https://get.docker.com/builds/Linux/i386/docker-1.11.0.tgz |
注意 这些说明适用于Docker Engine 1.11及以上版本。 Engine 1.10和以下版本由一个二进制文件组成,这些版本的指令是不同的。 要安装1.10或更低版本,请按照中的说明进行操作1.10 documentation。
Install the Linux binaries
下载之后,把压缩包解压到你当前位置 docker
目录。
$ tar -xvzf docker-latest.tgz |
Engine需要安装这些二进制包到你主机的 $PATH
。例如安装这些二进制包到/usr/bin
:
$ mv docker/* /usr/bin/ |
注意: 如果你已经安装过Engine在你的主机上,在你安装之前确保已经停止Engine(
killall docker
)和安装二进制包到同样的位置。你可以通过dirname $(which docker)
命令查看当前Docker安装的位置。
Run the Engine daemon on Linux
你可以手动的开启Engine到后台模式使用:
$ sudo dockerd & |
GitHub仓库包含一些示例脚本,你可以通过进程管理器(upstart或者systemd)来控制守护进程。你可以在contrib directory找到这些脚本。
更多关于在守护进程模式下运行Engine,查阅 daemon command Engine命令行参考。
Get the macOS binary
macOS版二进制包晶晶是一个客户端。你不可以用它运行docker
守护进程。为macOS下载最新版本的,使用下面链接:
https://get.docker.com/builds/Darwin/x86_64/docker-latest.tgz |
要为macOS下载指定版本,使用下面的路径:
https://get.docker.com/builds/Darwin/x86_64/docker-<version>.tgz |
例如:
https://get.docker.com/builds/Darwin/x86_64/docker-1.11.0.tgz |
你可以通过双击下载的.tgz
压缩文件或者在命令行使用tar -xvzf docker-1.11.0.tgz
命令。客户端二进制包可以在任何位置执行。
Get the Windows binary
你只可以下载1.9.1
以上的Windows二进制包。此外32-bit (i386
)我二进制包紧紧是一个客户端,你不可以运行docker
守护进程。64-bit 二进制包 (x86_64
)既是客户端和守护进程。
使用下面的链接下载最新版Windows二进制包:
https://get.docker.com/builds/Windows/i386/docker-latest.zip |
使用下面的链接下载指定版本的Windows二进制包:
https://get.docker.com/builds/Windows/i386/docker-<version>.zip |
例如:
https://get.docker.com/builds/Windows/i386/docker-1.11.0.zip |
注意 这些指南是为了Engine 1.11 和更新版本。 未老版本的指南跟这略微不同。要安装 1.10 或以下版本查看下列指南 1.10 documentation。
Giving non-root access
docker
守护进程总是使用root用户运行,docker
守护进程绑定在一个Unix socket 来代替TCP端口。 默认情况下 Unix socket 属于 root
用户。因此,你可以通过sudo
来访问它。
为避免每次使用 docker
命令都要添加sudo
,创建一个叫做 docker
的Unix 用户组并使用它。当docker
守护进程启动,docker
用户组会分配Unix socket的读写权限。
如果你(或者你的Docker安装者)创建一个叫做docker
的用户组并添加了一些用户到这个用户组,然后docker
用户组会分配Unix socket的读写权限当守护进程运行的时候。docker
守护进程必须总是以root用户运行,但是如果你通过docker
用户组的用户运行一个docker
客户端时你不需要再所有的客户端命令前加sudo
。从Docker0.9.0开始你可以使用 -G
标志去指代一个替换组。
警告:
docker
组 (或通过-G
指定的组) 等同于root
; 详情查阅 Docker Daemon Attack Surface 。
Upgrade Docker Engine
要手动的在linux上更新你的Docker Engine,首先要关掉docker守护进程:
$ killall docker |
然后跟随 regular installation steps.
Next steps
继续 User Guide.