Merge pull request #199 from khs1994/master

Fix #186: Refine installation
This commit is contained in:
Baohua Yang 2017-09-05 22:00:31 +08:00 committed by GitHub
commit 426e6411d1
12 changed files with 64 additions and 66 deletions

View File

@ -28,3 +28,6 @@
$ git push -f origin master $ git push -f origin master
``` ```
## 排版规范
本开源书籍遵循 [中文排版指南](https://github.com/mzlogin/chinese-copywriting-guidelines) 规范。

View File

@ -33,7 +33,7 @@ Status: Downloaded newer image for ubuntu:14.04
在实验上面命令的时候,你可能会发现,你所看到的层 ID 以及 `sha256` 的摘要和这里的不一样。这是因为官方镜像是一直在维护的,有任何新的 bug或者版本更新都会进行修复再以原来的标签发布这样可以确保任何使用这个标签的用户可以获得更安全、更稳定的镜像。 在实验上面命令的时候,你可能会发现,你所看到的层 ID 以及 `sha256` 的摘要和这里的不一样。这是因为官方镜像是一直在维护的,有任何新的 bug或者版本更新都会进行修复再以原来的标签发布这样可以确保任何使用这个标签的用户可以获得更安全、更稳定的镜像。
*如果从 Docker Hub 下载镜像非常缓慢,可以参照后面的章节配置加速器。* *如果从 Docker Hub 下载镜像非常缓慢,可以参照 [镜像加速器](/install/mirror.html) 一节配置加速器。*
### 运行 ### 运行

View File

@ -1,16 +1,16 @@
# 安装 Docker # 安装 Docker
Docker 在 1.13 版本之后,从 2017 年的 3 月 1 开始,版本命名规则变为如下: Docker 在 1.13 版本之后,从 2017 年的 3 月 1 开始,版本命名规则变为如下:
| 项目 | 说明 | | 项目 | 说明 |
| -- | -- | | -- | -- |
| 版本格式 | YY.MM | | 版本格式 | YY.MM |
| stable 版本 | 每个季度发行 | | stable 版本 | 每个季度发行 |
| edge 版本 | 每个月发行 | | edge 版本 | 每个月发行 |
| 当前 CE 版本 | 17.07.0-ce | | 当前 Docker CE 版本 | 17.07.0 |
同时 Docker 划分为 CE 和 EE 。CE 版本即社区版免费支持周期三个月EE 即企业版,强调安全,付费使用。 同时 Docker 划分为 CE 和 EE。CE 版本即社区版免费支持周期三个月EE 即企业版,强调安全,付费使用。
Docker CE 每月发布一个 edge 版本(17.03, 17.04, 17.05...),每三个月发布一个 stable 版本(17.03, 17.06, 17.09...)Docker EE 和 stable 版本号保持一致,但每个版本提供一年维护。 Docker CE 每月发布一个 edge 版本 (17.03, 17.04, 17.05...),每三个月发布一个 stable 版本 (17.03, 17.06, 17.09...)Docker EE 和 stable 版本号保持一致,但每个版本提供一年维护。
官方网站上有各种环境下的 [安装指南](https://docs.docker.com/engine/installation/),这里主要介绍 Docker CE 在 Linux 、Windows 10 (PC) 和 macOS 上的安装。 官方网站上有各种环境下的 [安装指南](https://docs.docker.com/engine/installation/),这里主要介绍 Docker CE 在 Linux 、Windows 10 (PC) 和 macOS 上的安装。

View File

@ -1,10 +1,12 @@
## CentOS 操作系统安装 Docker CE ## CentOS 安装 Docker CE
### 系统要求 ### 准备工作
#### 系统要求
Docker CE 支持 64 位版本 CentOS 7并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 `overlay2` 存储层驱动)无法使用,并且部分功能可能不太稳定。 Docker CE 支持 64 位版本 CentOS 7并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 `overlay2` 存储层驱动)无法使用,并且部分功能可能不太稳定。
### 卸载旧版本 #### 卸载旧版本
旧版本的 Docker 称为 `docker` 或者 `docker-engine`,使用以下命令卸载旧版本: 旧版本的 Docker 称为 `docker` 或者 `docker-engine`,使用以下命令卸载旧版本:
@ -14,33 +16,8 @@ $ sudo yum remove docker \
docker-selinux \ docker-selinux \
docker-engine docker-engine
``` ```
### 使用 yum 源安装
#### 添加内核参数 ### 使用 yum 源 安装
默认配置下,在 CentOS 使用 Docker CE 可能会看到下面的这些警告信息:
```bash
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
```
添加内核配置参数以启用这些功能。
```bash
$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
```
然后重新加载 `sysctl.conf` 即可
```bash
$ sudo sysctl -p
```
#### 添加 yum 源
执行以下命令安装依赖包: 执行以下命令安装依赖包:
@ -48,7 +25,9 @@ $ sudo sysctl -p
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
``` ```
##### 国内源 鉴于国内网络问题,强烈建议使用国内源,下面先介绍国内源的使用。
#### 国内源
执行下面的命令添加 `yum` 软件源: 执行下面的命令添加 `yum` 软件源:
@ -58,7 +37,9 @@ $ sudo yum-config-manager \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
``` ```
##### 官方源 >以上命令会添加稳定版本的 Docker CE yum 源。从 Docker 17.06 开始edge test 版本的 yum 源也会包含稳定版本的 Docker CE。
#### 官方源
```bash ```bash
$ sudo yum-config-manager \ $ sudo yum-config-manager \
@ -66,8 +47,6 @@ $ sudo yum-config-manager \
https://download.docker.com/linux/centos/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
``` ```
>以上命令会添加 稳定 版本的 Docker CE APT 镜像源 。从 Docker 17.06 开始edge test 版本的 APT 镜像源也会包含稳定版本的 Docker CE
如果需要最新版本的 Docker CE 请使用以下命令: 如果需要最新版本的 Docker CE 请使用以下命令:
```bash ```bash
@ -125,6 +104,30 @@ $ sudo usermod -aG docker $USER
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 [国内镜像加速](/install/mirror.html)。 鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 [国内镜像加速](/install/mirror.html)。
### 添加内核参数
默认配置下,如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:
```bash
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
```
请添加内核配置参数以启用这些功能。
```bash
$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
```
然后重新加载 `sysctl.conf` 即可
```bash
$ sudo sysctl -p
```
### 参考文档 ### 参考文档
* [Docker 官方 CentOS 安装文档](https://docs.docker.com/engine/installation/linux/docker-ce/centos/)。 * [Docker 官方 CentOS 安装文档](https://docs.docker.com/engine/installation/linux/docker-ce/centos/)。

View File

@ -6,9 +6,9 @@
Docker CE 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统: Docker CE 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统:
* Debian 9 Stretch * Stretch 9
* Debian 8 Jessie * Jessie 8 (LTS)
* Debian 7 Wheezy * Wheezy 7.7 (LTS)
Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上(如[树莓派](https://www.raspberrypi.org/))。 Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上(如[树莓派](https://www.raspberrypi.org/))。
@ -25,7 +25,7 @@ $ sudo apt-get remove docker docker-engine docker.io
Debian 7 的内核默认为 3.2,为了满足 Docker CE 的需求,应该安装 [`backports`](https://backports.debian.org/Instructions/) 的内核。 Debian 7 的内核默认为 3.2,为了满足 Docker CE 的需求,应该安装 [`backports`](https://backports.debian.org/Instructions/) 的内核。
### 使用 APT 源安装 ### 使用 APT 镜像 安装
由于官方源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 由于官方源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
@ -76,7 +76,7 @@ $ sudo add-apt-repository \
stable" stable"
``` ```
>以上命令会添加 稳定 版本的 Docker CE APT 镜像源,如果需要最新版本的 Docker CE 请将 stable 改为 edge 或者 test 。从 Docker 17.06 开始edge test 版本的 APT 镜像源也会包含稳定版本的 Docker CE >以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要最新版本的 Docker CE 请将 stable 改为 edge 或者 test。从 Docker 17.06 开始edge test 版本的 APT 镜像源也会包含稳定版本的 Docker CE
#### 官方源 #### 官方源

View File

@ -1,4 +1,4 @@
## macOS 操作系统安装 Docker ## macOS 安装 Docker
### 系统要求 ### 系统要求

View File

@ -5,7 +5,6 @@
* [Docker 官方提供的中国registry mirror](https://docs.docker.com/registry/recipes/mirror/#use-case-the-china-registry-mirror) * [Docker 官方提供的中国registry mirror](https://docs.docker.com/registry/recipes/mirror/#use-case-the-china-registry-mirror)
* [阿里云加速器](https://cr.console.aliyun.com/#/accelerator) * [阿里云加速器](https://cr.console.aliyun.com/#/accelerator)
* [DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc) * [DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc)
* [灵雀云加速器](http://docs.alauda.cn/feature/accelerator.html)
注册用户并且申请加速器,会获得如 `https://jxus37ad.mirror.aliyuncs.com` 这样的地址。我们需要将其配置给 Docker 引擎。 注册用户并且申请加速器,会获得如 `https://jxus37ad.mirror.aliyuncs.com` 这样的地址。我们需要将其配置给 Docker 引擎。
@ -58,17 +57,6 @@ $ sudo systemctl restart docker
对于macOS的用户如果你使用的是**Docker for Mac**,那配置起来很简单。在任务栏点击应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中添加云服务商提供的加速器地址即可。修改完成之后点击`Apply & Restart`按钮Docker就会重启并应用配置的镜像地址了。 对于macOS的用户如果你使用的是**Docker for Mac**,那配置起来很简单。在任务栏点击应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中添加云服务商提供的加速器地址即可。修改完成之后点击`Apply & Restart`按钮Docker就会重启并应用配置的镜像地址了。
如果你使用的是**Docker Toolbox**。先看看你的系统版本如果是macOS 10.1以上的那么请改用Docker for Mac这个在性能上超过Docker Toolbox一大截具体可以看看官网的这篇文章[Docker for Mac vs. Docker Toolbox](https://docs.docker.com/docker-for-mac/docker-toolbox/)。如果系统版本没达到或者因为历史原因必须使用Docker Toolbox的话。
```bash
docker-machine ssh default
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile
exit
docker-machine restart default
```
关于Docker Toolbox配置的内容参考自DaoCloud的文档:[Docker 加速器](http://guide.daocloud.io/dcs/daocloud-9153151.html#docker-toolbox)
### 检查加速器是否生效 ### 检查加速器是否生效
Linux系统下配置完加速器需要检查是否生效在命令行执行 `ps -ef | grep dockerd`,如果从结果中看到了配置的 `--registry-mirror` 参数说明配置成功。 Linux系统下配置完加速器需要检查是否生效在命令行执行 `ps -ef | grep dockerd`,如果从结果中看到了配置的 `--registry-mirror` 参数说明配置成功。

View File

@ -7,8 +7,8 @@
Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作系统: Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作系统:
* Zesty 17.04 * Zesty 17.04
* Ubuntu Xenial 16.04 (LTS) * Xenial 16.04 (LTS)
* Ubuntu Trusty 14.04 (LTS) * Trusty 14.04 (LTS)
Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中LTSLong-Term-Support长期支持版本会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。 Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中LTSLong-Term-Support长期支持版本会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。
@ -23,7 +23,7 @@ $ sudo apt-get remove docker docker-engine docker.io
#### Ubuntu 14.04 可选内核模块 #### Ubuntu 14.04 可选内核模块
从 Ubuntu 14.04 开始,一部分内核模块移到了可选内核模块包(`linux-image-extra-*`),以减少内核软件包的体积。正常安装的系统应该会包含可选内核模块包,而一些裁剪后的系统可能会将其精简掉。`AUFS` 内核驱动属于可选内核模块的一部分,作为推荐的 Docker 存储层驱动,一般建议安装可选内核模块包以使用 `AUFS` 从 Ubuntu 14.04 开始,一部分内核模块移到了可选内核模块包 (`linux-image-extra-*`) ,以减少内核软件包的体积。正常安装的系统应该会包含可选内核模块包,而一些裁剪后的系统可能会将其精简掉。`AUFS` 内核驱动属于可选内核模块的一部分,作为推荐的 Docker 存储层驱动,一般建议安装可选内核模块包以使用 `AUFS`
如果系统没有安装可选内核模块的话,可以执行下面的命令来安装可选内核模块包: 如果系统没有安装可选内核模块的话,可以执行下面的命令来安装可选内核模块包:
@ -68,7 +68,7 @@ $ sudo add-apt-repository \
stable" stable"
``` ```
>以上命令会添加 稳定 版本的 Docker CE APT 镜像源,如果需要最新版本的 Docker CE 请将 stable 改为 edge 或者 test 。从 Docker 17.06 开始edge test 版本的 APT 镜像源也会包含稳定版本的 Docker >以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要最新版本的 Docker CE 请将 stable 改为 edge 或者 test。从 Docker 17.06 开始edge test 版本的 APT 镜像源也会包含稳定版本的 Docker
#### 官方源 #### 官方源

View File

@ -2,7 +2,7 @@
### 系统要求 ### 系统要求
Docker CE 支持 64 位版本的 Windows 10 Pro ,且必须开启 Hyper-V。 Docker CE 支持 64 位版本的 Windows 10 Pro且必须开启 Hyper-V。
### 安装 ### 安装

View File

@ -1,10 +1,10 @@
## 什么是 Docker ## 什么是 Docker
Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源](https://en.wikipedia.org/wiki/Docker_(software)),主要项目代码在 [GitHub](https://github.com/docker/docker) 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动[开放容器联盟](https://www.opencontainers.org/)。 Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源][docker-soft],主要项目代码在 [GitHub](https://github.com/docker/docker) 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 [开放容器联盟](https://www.opencontainers.org/)。
Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 3 万 6 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,[dotCloud 公司决定改名为 Docker](https://blog.docker.com/2013/10/dotcloud-is-becoming-docker-inc/)。Docker 最初是在 Ubuntu 12.04 上开发实现的Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持Google 也在其 PaaS 产品中广泛应用 Docker。 Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 3 万 6 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,[dotCloud 公司决定改名为 Docker](https://blog.docker.com/2013/10/dotcloud-is-becoming-docker-inc/)。Docker 最初是在 Ubuntu 12.04 上开发实现的Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持Google 也在其 PaaS 产品中广泛应用 Docker。
Docker 使用 Google 公司推出的 [Go 语言](https://golang.org/) 进行开发实现,基于 Linux 内核的 [cgroup](https://zh.wikipedia.org/wiki/Cgroups)[namespace](https://en.wikipedia.org/wiki/Linux_namespaces),以及 [AUFS](https://en.wikipedia.org/wiki/Aufs) 类的 [Union FS](https://en.wikipedia.org/wiki/Union_mount) 等技术,对进程进行封装隔离,属于[操作系统层面的虚拟化技术](https://en.wikipedia.org/wiki/Operating-system-level_virtualization)。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 [LXC](https://linuxcontainers.org/lxc/introduction/),从 0.7 以后开始去除 LXC转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 1.11 开始,则进一步演进为使用 [runC](http://runc.io/) 和 [containerd](https://containerd.tools/)。 Docker 使用 Google 公司推出的 [Go 语言](https://golang.org/) 进行开发实现,基于 Linux 内核的 [cgroup](https://zh.wikipedia.org/wiki/Cgroups)[namespace](https://en.wikipedia.org/wiki/Linux_namespaces),以及 [AUFS](https://en.wikipedia.org/wiki/Aufs) 类的 [Union FS](https://en.wikipedia.org/wiki/Union_mount) 等技术,对进程进行封装隔离,属于 [操作系统层面的虚拟化技术](https://en.wikipedia.org/wiki/Operating-system-level_virtualization)。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 [LXC](https://linuxcontainers.org/lxc/introduction/),从 0.7 以后开始去除 LXC转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 1.11 开始,则进一步演进为使用 [runC](http://runc.io/) 和 [containerd](https://containerd.tools/)。
Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。 Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。
@ -13,3 +13,7 @@ Docker 在容器的基础上,进行了进一步的封装,从文件系统、
![传统虚拟化](_images/virtualization.png) ![传统虚拟化](_images/virtualization.png)
![Docker](_images/docker.png) ![Docker](_images/docker.png)
[docker-soft]:https://en.wikipedia.org/wiki/Docker_(software)

View File

@ -12,7 +12,7 @@
### 一致的运行环境 ### 一致的运行环境
开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 *“这段代码在我机器上没问题啊”* 这类问题。 开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 *「这段代码在我机器上没问题啊」* 这类问题。
### 持续交付和部署 ### 持续交付和部署

View File

@ -126,7 +126,7 @@ Kubernetes校验节点可用依赖于id。在当前的版本中有两个接
### 容器组生命周期 ### 容器组生命周期
通常来说,如果容器组被创建了就不会自动销毁,除非被某种行为发,而触发此种情况可能是人为,或者复制控制器所为。唯一例外的是容器组由 succeeded状态成功退出或者在一定时间内重试多次依然失败。 通常来说,如果容器组被创建了就不会自动销毁,除非被某种行为发,而触发此种情况可能是人为,或者复制控制器所为。唯一例外的是容器组由 succeeded状态成功退出或者在一定时间内重试多次依然失败。
如果某个节点死掉或者不能连接,那么节点控制器将会标记其上的容器组的状态为 `failed` 如果某个节点死掉或者不能连接,那么节点控制器将会标记其上的容器组的状态为 `failed`