commit
426e6411d1
|
@ -28,3 +28,6 @@
|
|||
$ git push -f origin master
|
||||
```
|
||||
|
||||
## 排版规范
|
||||
|
||||
本开源书籍遵循 [中文排版指南](https://github.com/mzlogin/chinese-copywriting-guidelines) 规范。
|
||||
|
|
|
@ -33,7 +33,7 @@ Status: Downloaded newer image for ubuntu:14.04
|
|||
|
||||
在实验上面命令的时候,你可能会发现,你所看到的层 ID 以及 `sha256` 的摘要和这里的不一样。这是因为官方镜像是一直在维护的,有任何新的 bug,或者版本更新,都会进行修复再以原来的标签发布,这样可以确保任何使用这个标签的用户可以获得更安全、更稳定的镜像。
|
||||
|
||||
*如果从 Docker Hub 下载镜像非常缓慢,可以参照后面的章节配置加速器。*
|
||||
*如果从 Docker Hub 下载镜像非常缓慢,可以参照 [镜像加速器](/install/mirror.html) 一节配置加速器。*
|
||||
|
||||
### 运行
|
||||
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
# 安装 Docker
|
||||
|
||||
Docker 在 1.13 版本之后,从 2017 年的 3 月 1 号开始,版本命名规则变为如下:
|
||||
Docker 在 1.13 版本之后,从 2017 年的 3 月 1 日开始,版本命名规则变为如下:
|
||||
|
||||
| 项目 | 说明 |
|
||||
| -- | -- |
|
||||
| 版本格式 | YY.MM |
|
||||
| stable 版本 | 每个季度发行 |
|
||||
| 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 上的安装。
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
## CentOS 操作系统安装 Docker CE
|
||||
## CentOS 安装 Docker CE
|
||||
|
||||
### 系统要求
|
||||
### 准备工作
|
||||
|
||||
#### 系统要求
|
||||
|
||||
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 `overlay2` 存储层驱动)无法使用,并且部分功能可能不太稳定。
|
||||
|
||||
### 卸载旧版本
|
||||
#### 卸载旧版本
|
||||
|
||||
旧版本的 Docker 称为 `docker` 或者 `docker-engine`,使用以下命令卸载旧版本:
|
||||
|
||||
|
@ -14,33 +16,8 @@ $ sudo yum remove docker \
|
|||
docker-selinux \
|
||||
docker-engine
|
||||
```
|
||||
### 使用 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 源
|
||||
### 使用 yum 源 安装
|
||||
|
||||
执行以下命令安装依赖包:
|
||||
|
||||
|
@ -48,7 +25,9 @@ $ sudo sysctl -p
|
|||
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
|
||||
```
|
||||
|
||||
##### 国内源
|
||||
鉴于国内网络问题,强烈建议使用国内源,下面先介绍国内源的使用。
|
||||
|
||||
#### 国内源
|
||||
|
||||
执行下面的命令添加 `yum` 软件源:
|
||||
|
||||
|
@ -58,7 +37,9 @@ $ sudo yum-config-manager \
|
|||
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
|
||||
```
|
||||
|
||||
##### 官方源
|
||||
>以上命令会添加稳定版本的 Docker CE yum 源。从 Docker 17.06 开始,edge test 版本的 yum 源也会包含稳定版本的 Docker CE。
|
||||
|
||||
#### 官方源
|
||||
|
||||
```bash
|
||||
$ sudo yum-config-manager \
|
||||
|
@ -66,8 +47,6 @@ $ sudo yum-config-manager \
|
|||
https://download.docker.com/linux/centos/docker-ce.repo
|
||||
```
|
||||
|
||||
>以上命令会添加 稳定 版本的 Docker CE APT 镜像源 。从 Docker 17.06 开始,edge test 版本的 APT 镜像源也会包含稳定版本的 Docker CE
|
||||
|
||||
如果需要最新版本的 Docker CE 请使用以下命令:
|
||||
|
||||
```bash
|
||||
|
@ -125,6 +104,30 @@ $ sudo usermod -aG docker $USER
|
|||
|
||||
鉴于国内网络问题,后续拉取 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/)。
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
|
||||
Docker CE 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统:
|
||||
|
||||
* Debian 9 Stretch
|
||||
* Debian 8 Jessie
|
||||
* Debian 7 Wheezy
|
||||
* Stretch 9
|
||||
* Jessie 8 (LTS)
|
||||
* Wheezy 7.7 (LTS)
|
||||
|
||||
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/) 的内核。
|
||||
|
||||
### 使用 APT 源安装
|
||||
### 使用 APT 镜像源 安装
|
||||
|
||||
由于官方源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
|
||||
|
||||
|
@ -76,7 +76,7 @@ $ sudo add-apt-repository \
|
|||
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。
|
||||
|
||||
#### 官方源
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
## macOS 操作系统安装 Docker
|
||||
## macOS 安装 Docker
|
||||
|
||||
### 系统要求
|
||||
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
## 镜像加速器
|
||||
## 镜像加速器
|
||||
|
||||
国内访问 Docker Hub 有时会遇到困难,此时可以配置镜像加速器。Docker官方和国内很多云服务商都提供了加速器服务,例如:
|
||||
|
||||
* [Docker 官方提供的中国registry mirror](https://docs.docker.com/registry/recipes/mirror/#use-case-the-china-registry-mirror)
|
||||
* [阿里云加速器](https://cr.console.aliyun.com/#/accelerator)
|
||||
* [DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc)
|
||||
* [灵雀云加速器](http://docs.alauda.cn/feature/accelerator.html)
|
||||
|
||||
注册用户并且申请加速器,会获得如 `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就会重启并应用配置的镜像地址了。
|
||||
|
||||
如果你使用的是**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` 参数说明配置成功。
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作系统:
|
||||
|
||||
* Zesty 17.04
|
||||
* Ubuntu Xenial 16.04 (LTS)
|
||||
* Ubuntu Trusty 14.04 (LTS)
|
||||
* Xenial 16.04 (LTS)
|
||||
* Trusty 14.04 (LTS)
|
||||
|
||||
|
||||
Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。
|
||||
|
@ -23,7 +23,7 @@ $ sudo apt-get remove docker docker-engine docker.io
|
|||
|
||||
#### 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"
|
||||
```
|
||||
|
||||
>以上命令会添加 稳定 版本的 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。
|
||||
|
||||
#### 官方源
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
### 系统要求
|
||||
|
||||
Docker CE 支持 64 位版本的 Windows 10 Pro ,且必须开启 Hyper-V。
|
||||
Docker CE 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V。
|
||||
|
||||
### 安装
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
## 什么是 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 使用 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 技术比虚拟机技术更为轻便、快捷。
|
||||
|
||||
|
@ -13,3 +13,7 @@ Docker 在容器的基础上,进行了进一步的封装,从文件系统、
|
|||
![传统虚拟化](_images/virtualization.png)
|
||||
|
||||
![Docker](_images/docker.png)
|
||||
|
||||
|
||||
|
||||
[docker-soft]:https://en.wikipedia.org/wiki/Docker_(software)
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
### 一致的运行环境
|
||||
|
||||
开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 *“这段代码在我机器上没问题啊”* 这类问题。
|
||||
开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 *「这段代码在我机器上没问题啊」* 这类问题。
|
||||
|
||||
### 持续交付和部署
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ Kubernetes校验节点可用依赖于id。在当前的版本中,有两个接
|
|||
|
||||
### 容器组生命周期
|
||||
|
||||
通常来说,如果容器组被创建了就不会自动销毁,除非被某种行为出发,而触发此种情况可能是人为,或者复制控制器所为。唯一例外的是容器组由 succeeded状态成功退出,或者在一定时间内重试多次依然失败。
|
||||
通常来说,如果容器组被创建了就不会自动销毁,除非被某种行为触发,而触发此种情况可能是人为,或者复制控制器所为。唯一例外的是容器组由 succeeded状态成功退出,或者在一定时间内重试多次依然失败。
|
||||
|
||||
如果某个节点死掉或者不能连接,那么节点控制器将会标记其上的容器组的状态为 `failed`。
|
||||
|
||||
|
|
Loading…
Reference in New Issue