Binaries
这个指令集是为骇客们准备的,方便他们在各种环境中快速的体验Docker。
在继续下面的话题前,你应该检查一下,你的系统上是否已经拥有一个可用的打包版本。我们给很多的系统提供相应的打包文件,并且持续更新它们。
检查运行时依赖
要正常运行,docker需要安装如下软件:
- iptables 1.4(或更高)
- Git 1.7(或更高)
- procps (或 可以提供类似 “ps” 的软件)
- XZ Utils 4.9(或更高)
- 一个properly mounted cgroupfs 层次机构(having a single, all-encompassing “cgroup” mount point is not sufficient)
检测内核依赖
Docker 的 daemon 模式需要特定的内核特性。详情,检测你的系统参考安装指南。
一个 3.10 Linux 内核是Docker正常运行的最小要求。低于3.10版本的内核缺少一些运行容器特性。这些老版本中恶名昭昭的bug会导致数据的丢失和在特定的条件下频繁出现“恐慌”。
最小版本 3.10 (或更新被维护的版本)Linux 内核是被推荐的。保持内容在最新的小版本,可以规避很多来自内核bug。
警告:安装定制性的内核时,需要考虑你的系统供应商是否支持它。所以,在你安装定制化的之前,请先咨询一下你的系统供应商。
警告: 安装一个新的内核可能还不够,一些系统供应商提供的包太老或这个跟新的内核不兼容。
注意,Docker还有一个客户端模式,它几乎可以在任何Linux内核中(甚至可以在OS X 上构建)。
尽量启用AppArmor 和 SELinux
请使用 AppArmor 或 SELinux,如果你的Linux系统支持这两种功能。这将帮助我们提升系统的安全性和规避一些漏洞。你的系统文档会提供详细的设置,关于如何有效的运用安全的原理。
有些Linux系统默认开启 AppArmor 或 SELinux。但是,内核满足不了最小的需求(3.10或更高)。升级内核到 3.10 或更高,在这样的一个系统上,可能还不能够启动Docker和运行容器。系统提供用户空间工具与AppArmor/SELinux的版本不兼容,内核可能会阻止Docker 运行或启动容器,这样会导致容器出现一些诡异的行为。
警告:如果启用其中任何一个安全机制,不应该为了启动Docker或它(docker)的容器而关闭它。这样会降系统环境的安全性,失去系统供应商的支持,并且可能打破在严格的监管环境法规和安全政策。
获取Docker 二进制执行包
你可以下载任何一个最新的发行包或一个指定版本。下载完二级制文件后,你必须更改问价的执行权限。
在Linux和OS X上设置文件的可执行权限:
$ chmod +x docker
从GitHub上获取可用版本的列表,查看 docker/docker
发行页面。
注意:
1) 通过分别在URL上追加.md5 和 .sha256,你可以获得MD5 和 SHA256散列
2) 通过分别在URL上追加.tgz,你可以获得压缩过的二进制文件
获取 Linux 二进制文件
使用下面的URL可以下载Linux对应的最新版本:
https://get.docker.com/builds/Linux/i386/docker-latest
https://get.docker.com/builds/Linux/x86_64/docker-latest
使用下面的URL模式可以下载特定版本:
https://get.docker.com/builds/Linux/i386/docker-<version>
https://get.docker.com/builds/Linux/x86_64/docker-<version>
例如:
https://get.docker.com/builds/Linux/i386/docker-1.6.0
https://get.docker.com/builds/Linux/x86_64/docker-1.6.0
获取Mac OS X 二进制文件
Mac OS X 二进制只是一个客户端。你不能使用它去启动 docker
daemon。使用如下URL可以获得最新版本:
https://get.docker.com/builds/Darwin/i386/docker-latest
https://get.docker.com/builds/Darwin/x86_64/docker-latest
使用下面的URL模式,可以获得特定版本:
https://get.docker.com/builds/Darwin/i386/docker-<version>
https://get.docker.com/builds/Darwin/x86_64/docker-<version>
例如:
https://get.docker.com/builds/Darwin/i386/docker-1.6.0
https://get.docker.com/builds/Darwin/x86_64/docker-1.6.0
获取Windows二进制文件
你也可以下载 1.6.0
(或以上)的Windows客户端。此外,它只是一个客户端,你不能使用它启动 docker
daemon.。使用如下URL,可以获得最新的版本:
https://get.docker.com/builds/Windows/i386/docker-latest.exe
https://get.docker.com/builds/Windows/x86_64/docker-latest.exe
使用如下的URL模式,可以下载特定的版本:
https://get.docker.com/builds/Windows/i386/docker-<version>.exe
https://get.docker.com/builds/Windows/x86_64/docker-<version>.exe
例如:
https://get.docker.com/builds/Windows/i386/docker-1.6.0.exe
https://get.docker.com/builds/Windows/x86_64/docker-1.6.0.exe
启动 Docker daemon
# start the docker in daemon mode from the directory you unpacked
$ sudo ./docker daemon &
提供非根访问
docker
daemon 总是被根用户启动,并且 docker
daemon 绑定到一个Unix socket 替代一个TCP端口。默认情况下,Unix socket属于根用户,所以,你需呀使用 sudo
才能访问它。
如果你(或你的Docker安装者)创建一个命名为docker的 Unix组,并添往里添加用户,之后,当启动daemon时,docker
daemon 将Unix Socket的读/写权限分配给docker组。docker
daemon 必须且总是被根用户启动,但是,如果你以一个被添加进docker组用户去启动 docker
客户端,之后,所有的客户端命令你都不需要再追加 sudo
。
警告:docker组(或使用
-G
指定组)等同root;查看Docker Daemon 攻击面了解更多 。
升级
手动升级你的Docker,先杀死docker daemon:
$ killall docker
然后,按照常规的步骤进行安装。
运行你的第一个容器!
# check your docker version
$ sudo ./docker version
# run a container and open an interactive shell in the container
$ sudo ./docker run -i -t ubuntu /bin/bash
通过用户指南继续学习。