From 1962354f5f4d07d56b91f5808f417da573825c54 Mon Sep 17 00:00:00 2001 From: Tao Wang Date: Tue, 20 Dec 2016 12:03:56 +1100 Subject: [PATCH 001/611] Add Homebrew Cask install method to install/mac.md Signed-off-by: Tao Wang --- install/mac.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/install/mac.md b/install/mac.md index df917754f..d8c474e55 100644 --- a/install/mac.md +++ b/install/mac.md @@ -4,13 +4,21 @@ [Docker for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS 10.10.3 Yosemite,或者 2010 年以后的 Mac 机型,准确说是带 [Intel MMU 虚拟化](https://en.wikipedia.org/wiki/X86_virtualization#Intel-VT-d)的,最低 4GB 内存。如果系统不满足需求,可以考虑安装 [Docker Toolbox](https://docs.docker.com/toolbox/overview/)。如果机器安装了 [VirtualBox](https://www.virtualbox.org/) 的话,VirtualBox 的版本不要低于 4.3.30。 -### 下载 +### 安装 -通过这个链接下载: +#### 使用 Homebrew 安装 -### 安装 +[Homebrew](http://brew.sh/) 的 [Cask](https://caskroom.github.io/) 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: + +```bash +brew cask install docker +``` + +#### 手动下载安装 + +如果需要手动下载,可以通过这个链接下载: -如同 macOS 其它软件一样,安装非常简单,双击下载的文件,然后将那只叫 [Moby](https://blog.docker.com/2013/10/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可(其间可能会询问系统密码)。 +如同 macOS 其它软件一样,安装也非常简单,双击下载的 `.dmg` 文件,然后将那只叫 [Moby](https://blog.docker.com/2013/10/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可(其间可能会询问系统密码)。 @@ -34,7 +42,7 @@ *在国内使用 Docker 的话,需要配置加速器,在菜单中点击 `Preferences...`,然后查看 `Advanced` 标签,在其中的 `Registry mirrors` 部分里可以点击加号来添加加速器地址。* - + 启动终端后,通过命令可以检查安装后的 Docker 版本。 From 8e3748cd8d8c7afd0c4d6a866495aaa8cc01431a Mon Sep 17 00:00:00 2001 From: yeasy Date: Tue, 20 Dec 2016 15:35:52 +0800 Subject: [PATCH 002/611] Updates Compose usage --- README.md | 13 +- SUMMARY.md | 3 +- compose/commands.md | 214 +++++++++++++------ compose/install.md | 161 ++++++++++++--- compose/intro.md | 24 ++- compose/yaml_file.md | 479 ++++++++++++++++++++++++++++++++----------- 6 files changed, 674 insertions(+), 220 deletions(-) diff --git a/README.md b/README.md index 53ea0b797..11d203a24 100644 --- a/README.md +++ b/README.md @@ -38,19 +38,23 @@ ## 主要版本历史 * 0.8.0: 2016-MM-DD + * 修正文字内容 * 根据最新版本修订安装使用 * 补充附录章节 * 0.7.0: 2016-06-12 + * 根据最新版本进行命令调整 * 修正若干文字描述 * 0.6.0: 2015-12-24 + * 补充 Machine 项目 * 修正若干 bug * 0.5.0: 2015-06-29 + * 添加 Compose 项目 * 添加 Machine 项目 * 添加 Swarm 项目 @@ -58,12 +62,14 @@ * 添加 Mesos 项目内容 * 0.4.0: 2015-05-08 + * 添加 Etcd 项目 * 添加 Fig 项目 * 添加 CoreOS 项目 * 添加 Kubernetes 项目 * 0.3.0: 2014-11-25 + * 完成仓库章节; * 重写安全章节; * 修正底层实现章节的架构、命名空间、控制组、文件系统、容器格式等内容; @@ -74,21 +80,23 @@ * 发布繁体版本分支:zh-Hant。 * 0.2.0: 2014-09-18 + * 对照官方文档重写介绍、基本概念、安装、镜像、容器、仓库、数据管理、网络等章节; * 添加底层实现章节; * 添加命令查询和资源链接章节; * 其它修正。 * 0.1.0: 2014-09-05 + * 添加基本内容; * 修正错别字和表达不通顺的地方。 - Docker 自身仍在快速发展中,生态环境也在蓬勃成长。源码开源托管在 Github 上,欢迎参与维护:[https:\/\/github.com\/yeasy\/docker\_practice](https://github.com/yeasy/docker_practice)。贡献者 [名单](https://github.com/yeasy/docker_practice/graphs/contributors)。 ## 参加步骤 * 在 GitHub 上 `fork` 到自己的仓库,如 `docker_user/docker_practice`,然后 `clone` 到本地,并设置用户信息。 + ``` $ git clone git@github.com:docker_user/docker_practice.git $ cd docker_practice @@ -97,6 +105,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。源码开 ``` * 修改代码后提交,并推送到自己的仓库。 + ``` $ #do some change on the content $ git commit -am "Fix issue #1: change helo to hello" @@ -104,6 +113,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。源码开 ``` * 在 GitHub 网站上提交 pull request。 + * 定期使用项目仓库内容更新自己仓库内容。 ``` $ git remote add upstream https://github.com/yeasy/docker_practice @@ -114,3 +124,4 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。源码开 ``` + diff --git a/SUMMARY.md b/SUMMARY.md index 4694c1f15..3c6969343 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -84,7 +84,7 @@ * [网络](underly/network.md) * [Docker Compose 项目](compose/README.md) * [简介](compose/intro.md) - * [安装](compose/install.md) + * [安装与卸载](compose/install.md) * [使用](compose/usage.md) * [命令说明](compose/commands.md) * [YAML 模板文件](compose/yaml_file.md) @@ -134,3 +134,4 @@ * [Node.js](appendix/repo/nodejs.md) * [附录三:Docker 命令查询](appendix/command/README.md) * [附录四:资源链接](appendix/resources/README.md) + diff --git a/compose/commands.md b/compose/commands.md index 2c9e5c829..e42de915e 100644 --- a/compose/commands.md +++ b/compose/commands.md @@ -1,142 +1,234 @@ ## Compose 命令说明 -大部分命令都可以运行在一个或多个服务上。如果没有特别的说明,命令则应用在项目所有的服务上。 +### 命令对象与格式 +对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器。如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响。 -执行 `docker-compose [COMMAND] --help` 查看具体某个命令的使用说明。 +执行 `docker-compose [COMMAND] --help` 或者 `docker-compose help [COMMAND]` 可以查看具体某个命令的使用格式。 -基本的使用格式是 -```bash -docker-compose [options] [COMMAND] [ARGS...] +Compose 命令的基本的使用格式是 + +```sh +docker-compose [-f=...] [options] [COMMAND] [ARGS...] ``` -## 选项 +### 命令选项 +* `-f, --file FILE` 指定使用的 Compose 模板文件,默认为 `docker-compose.yml`,可以多次指定。 +* `-p, --project-name NAME` 指定项目名称,默认将使用所在目录名称作为项目名。 +* `--x-networking` 使用 Docker 的可拔插网络后端特性(需要 Docker 1.9 及以后版本)。 +* `--x-network-driver DRIVER` 指定网络后端的驱动,默认为 `bridge`(需要 Docker 1.9 及以后版本)。 * `--verbose` 输出更多调试信息。 -* `--version` 打印版本并退出。 -* `-f, --file FILE` 使用特定的 compose 模板文件,默认为 `docker-compose.yml`。 -* `-p, --project-name NAME` 指定项目名称,默认使用目录名称。 +* `-v, --version` 打印版本并退出。 -## 命令 +### 命令使用说明 -### `build` +#### `build` +格式为 `docker-compose build [options] [SERVICE...]`。 -构建或重新构建服务。 +构建(重新构建)项目中的服务容器。 -服务一旦构建后,将会带上一个标记名,例如 web_db。 +服务容器一旦构建后,将会带上一个标记名,例如对于 web 项目中的一个 db 容器,可能是 web_db。 可以随时在项目目录下运行 `docker-compose build` 来重新构建服务。 -### `help` +选项包括: + +* `--force-rm` 删除构建过程中的临时容器。 +* `--no-cache` 构建镜像过程中不使用 cache(这将加长构建过程)。 +* `--pull` 始终尝试通过 pull 来获取更新版本的镜像。 + +#### `help` 获得一个命令的帮助。 -### `kill` +#### `kill` +格式为 `docker-compose kill [options] [SERVICE...]`。 + +通过发送 `SIGKILL` 信号来强制停止服务容器。 -通过发送 `SIGKILL` 信号来强制停止服务容器。支持通过参数来指定发送的信号,例如 -```bash +支持通过 `-s` 参数来指定发送的信号,例如通过如下指令发送 `SIGINT` 信号。 + +```sh $ docker-compose kill -s SIGINT ``` -### `logs` +#### `logs` +格式为 `docker-compose logs [options] [SERVICE...]`。 + +查看服务容器的输出。默认情况下,docker-compose 将对不同的服务输出使用不同的颜色来区分。可以通过 `--no-color` 来关闭颜色。 + +该命令在调试问题的时候十分有用。 + +#### `pause` +格式为 `docker-compose pause [SERVICE...]`。 + +暂停一个服务容器。 + +#### `port` +格式为 `docker-compose port [options] SERVICE PRIVATE_PORT`。 + +打印某个容器端口所映射的公共端口。 + +选项: + +* `--protocol=proto` 指定端口协议,tcp(默认值)或者 udp。 +* `--index=index` 如果同一服务存在多个容器,指定命令对象容器的序号(默认为 1)。 + +#### `ps` +格式为 `docker-compose ps [options] [SERVICE...]`。 + +列出项目中目前的所有容器。 + +选项: -查看服务的输出。 +* `-q` 只打印容器的 ID 信息。 -### `port` +#### `pull` +格式为 `docker-compose pull [options] [SERVICE...]`。 -打印绑定的公共端口。 +拉取服务依赖的镜像。 -### `ps` +选项: -列出所有容器。 +* `--ignore-pull-failures` 忽略拉取镜像过程中的错误。 -### `pull` +#### `restart` +格式为 `docker-compose restart [options] [SERVICE...]`。 -拉取服务镜像。 +重启项目中的服务。 -### `rm` +选项: -删除停止的服务容器。 +* `-t, --timeout TIMEOUT` 指定重启前停止容器的超时(默认为 10 秒)。 -### `run` +#### `rm` +格式为 `docker-compose rm [options] [SERVICE...]`。 -在一个服务上执行一个命令。 +删除所有(停止状态的)服务容器。推荐先执行 `docker-compose stop` 命令来停止容器。 + +选项: + +* `-f, --force` 强制直接删除,包括非停止状态的容器。一般尽量不要使用该选项。 +* `-v` 删除容器所挂载的数据卷。 + +#### `run` +格式为 `docker-compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]`。 + +在指定服务上执行一个命令。 例如: -``` +```sh $ docker-compose run ubuntu ping docker.com ``` -将会启动一个 ubuntu 服务,执行 `ping docker.com` 命令。 +将会启动一个 ubuntu 服务容器,并执行 `ping docker.com` 命令。 -默认情况下,所有关联的服务将会自动被启动,除非这些服务已经在运行中。 +默认情况下,如果存在关联,则所有关联的服务将会自动被启动,除非这些服务已经在运行中。 -该命令类似启动容器后运行指定的命令,相关卷、链接等等都将会按照期望创建。 +该命令类似启动容器后运行指定的命令,相关卷、链接等等都将会按照配置自动创建。 两个不同点: + * 给定命令将会覆盖原有的自动运行命令; * 不会自动创建端口,以避免冲突。 如果不希望自动启动关联的容器,可以使用 `--no-deps` 选项,例如 -``` +```sh $ docker-compose run --no-deps web python manage.py shell ``` 将不会启动 web 容器所关联的其它容器。 -### `scale` +选项: + +* `-d` 后台运行容器。 +* `--name NAME` 为容器指定一个名字。 +* `--entrypoint CMD` 覆盖默认的容器启动指令。 +* `-e KEY=VAL` 设置环境变量值,可多次使用选项来设置多个环境变量。 +* `-u, --user=""` 指定运行容器的用户名或者 uid。 +* `--no-deps` 不自动启动关联的服务容器。 +* `--rm` 运行命令后自动删除容器,`d` 模式下将忽略。 +* `-p, --publish=[]` 映射容器端口到本地主机。 +* `--service-ports` 配置服务端口并映射到本地主机。 +* `-T` 不分配伪 tty,意味着依赖 tty 的指令将无法运行。 -设置同一个服务运行的容器个数。 +#### `scale` +格式为 `docker-compose scale [options] [SERVICE=NUM...]`。 + +设置指定服务运行的容器个数。 通过 `service=num` 的参数来设置数量。例如: +```sh +$ docker-compose scale web=3 db=2 ``` -$ docker-compose scale web=2 worker=3 -``` -### `start` +将启动 3 个容器运行 web 服务,2 个容器运行 db 服务。 + +一般的,当指定数目多于该服务当前实际运行容器,将新创建并启动容器;反之,将停止容器。 + +选项: + +* `-t, --timeout TIMEOUT` 停止容器时候的超时(默认为 10 秒)。 + +#### `start` +格式为 `docker-compose start [SERVICE...]`。 + +启动已经存在的服务容器。 -启动一个已经存在的服务容器。 +#### `stop` +格式为 `docker-compose stop [options] [SERVICE...]`。 -### `stop` +停止已经处于运行状态的容器,但不删除它。通过 `docker-compose start` 可以再次启动这些容器。 -停止一个已经运行的容器,但不删除它。通过 `docker-compose start` 可以再次启动这些容器。 +选项: -### `up` +* `-t, --timeout TIMEOUT` 停止容器时候的超时(默认为 10 秒)。 -构建,(重新)创建,启动,链接一个服务相关的容器。 +#### `unpause` +格式为 `docker-compose unpause [SERVICE...]`。 -链接的服务都将会启动,除非他们已经运行。 +恢复处于暂停状态中的服务。 -默认情况, `docker-compose up` 将会整合所有容器的输出,并且退出时,所有容器将会停止。 +#### `up` +格式为 `docker-compose up [options] [SERVICE...]`。 -如果使用 `docker-compose up -d` ,将会在后台启动并运行所有的容器。 +该命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。 -默认情况,如果该服务的容器已经存在, `docker-compose up` 将会停止并尝试重新创建他们(保持使用 `volumes-from` 挂载的卷),以保证 `docker-compose.yml` 的修改生效。如果你不想容器被停止并重新创建,可以使用 `docker-compose up --no-recreate`。如果需要的话,这样将会启动已经停止的容器。 +链接的服务都将会被自动启动,除非已经处于运行状态。 -## 环境变量 +可以说,大部分时候都可以直接通过该命令来启动一个项目。 -环境变量可以用来配置 Compose 的行为。 +默认情况,`docker-compose up` 启动的容器都在前台,控制台将会同时打印所有容器的输出信息,可以很方便进行调试。 -以`DOCKER_`开头的变量和用来配置 Docker 命令行客户端的使用一样。如果使用 boot2docker , `$(boot2docker shellinit)` 将会设置它们为正确的值。 +当通过 `Ctrl-C` 停止命令时,所有容器将会停止。 -### `COMPOSE_PROJECT_NAME` +如果使用 `docker-compose up -d`,将会在后台启动并运行所有的容器。一般推荐生产环境下使用该选项。 -设置通过 Compose 启动的每一个容器前添加的项目名称,默认是当前工作目录的名字。 +默认情况,如果服务容器已经存在,`docker-compose up` 将会尝试停止容器,然后重新创建(保持使用 `volumes-from` 挂载的卷),以保证新启动的服务匹配 `docker-compose.yml` 文件的最新内容。如果用户不希望容器被停止并重新创建,可以使用 `docker-compose up --no-recreate`。这样将只会启动处于停止状态的容器,而忽略已经运行的服务。如果用户只想重新部署某个服务,可以使用 `docker-compose up --no-deps -d ` 来重新创建服务并后台停止旧服务,启动新服务,并不会影响到其所依赖的服务。 -### `COMPOSE_FILE` +选项: -设置要使用的 `docker-compose.yml` 的路径。默认路径是当前工作目录。 +* `-d` 在后台运行服务容器。 +* `--no-color` 不使用颜色来区分不同的服务的控制台输出。 +* `--no-deps` 不启动服务所链接的容器。 +* `--force-recreate` 强制重新创建容器,不能与 `--no-recreate` 同时使用。 +* `--no-recreate` 如果容器已经存在了,则不重新创建,不能与 `--force-recreate` 同时使用。 +* `--no-build` 不自动构建缺失的服务镜像。 +* `-t, --timeout TIMEOUT` 停止容器时候的超时(默认为 10 秒)。 -### `DOCKER_HOST` +#### `migrate-to-labels` +格式为 `docker-compose migrate-to-labels`。 -设置 Docker daemon 的地址。默认使用 `unix:///var/run/docker.sock`,与 Docker 客户端采用的默认值一致。 +重新创建容器,并添加 label。 -### `DOCKER_TLS_VERIFY` +主要用于升级 1.2 及更早版本中创建的容器,添加缺失的容器标签。 -如果设置不为空,则与 Docker daemon 交互通过 TLS 进行。 +实际上,最彻底的办法当然是删除项目,然后重新创建。 -### `DOCKER_CERT_PATH` +#### `version` +格式为 `docker-compose version`。 -配置 TLS 通信所需要的验证(`ca.pem`、`cert.pem` 和 `key.pem`)文件的路径,默认是 `~/.docker` 。 +打印版本信息。 \ No newline at end of file diff --git a/compose/install.md b/compose/install.md index 846b513c4..da2c9ff97 100644 --- a/compose/install.md +++ b/compose/install.md @@ -1,63 +1,164 @@ -## 安装 +## 安装与卸载 -安装 Compose 之前,要先安装 Docker,在此不再赘述。 +Compose 目前支持 Linux 和 Mac OS 平台,两者的安装过程大同小异。 + +安装 Compose 之前,要先安装 Docker(需要 Docker Engine 1.7.1+),请参考第一部分中章节,在此不再赘述。 + +Compose 可以通过 Python 的 pip 工具进行安装,可以直接下载编译好的二进制文件使用,甚至直接运行在 Docker 容器中。 + +前两种方式是传统方式,适合本地环境下安装使用;最后一种方式则不破坏系统环境,更适合云计算场景。 ### PIP 安装 -这种方式最为推荐。 +这种方式是将 Compose 当作一个 Python 应用来从 pip 源中安装。 + +执行安装命令: -执行命令。 -```bash +```sh $ sudo pip install -U docker-compose ``` +可以看到类似如下输出,说明安装成功。 +```sh +Collecting docker-compose + Downloading docker-compose-1.8.0.tar.gz (149kB): 149kB downloaded +... +Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress +``` + 安装成功后,可以查看 `docker-compose` 命令的用法。 -```bash +```sh $ docker-compose -h -Fast, isolated development environments using Docker. +Define and run multi-container applications with Docker. Usage: - docker-compose [options] [COMMAND] [ARGS...] + docker-compose [-f=...] [options] [COMMAND] [ARGS...] docker-compose -h|--help Options: - --verbose Show more output - --version Print version and exit -f, --file FILE Specify an alternate compose file (default: docker-compose.yml) -p, --project-name NAME Specify an alternate project name (default: directory name) + --x-networking (EXPERIMENTAL) Use new Docker networking functionality. + Requires Docker 1.9 or later. + --x-network-driver DRIVER (EXPERIMENTAL) Specify a network driver (default: "bridge"). + Requires Docker 1.9 or later. + --verbose Show more output + -v, --version Print version and exit Commands: - build Build or rebuild services - help Get help on a command - kill Kill containers - logs View output from containers - port Print the public port for a port binding - ps List containers - pull Pulls service images - rm Remove stopped containers - run Run a one-off command - scale Set number of containers for a service - start Start services - stop Stop services - restart Restart services - up Create and start containers + build Build or rebuild services + help Get help on a command + kill Kill containers + logs View output from containers + pause Pause services + port Print the public port for a port binding + ps List containers + pull Pulls service images + restart Restart services + rm Remove stopped containers + run Run a one-off command + scale Set number of containers for a service + start Start services + stop Stop services + unpause Unpause services + up Create and start containers + migrate-to-labels Recreate containers to add labels + version Show the Docker-Compose version information ``` 之后,可以添加 bash 补全命令。 -```bash -$ curl -L https://raw.githubusercontent.com/docker/compose/1.2.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose +```sh +$ curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose ``` ### 二进制包 -发布的二进制包可以在 [https://github.com/docker/compose/releases](https://github.com/docker/compose/releases) 找到。 +官方定义编译好二进制包,供大家使用。这些发布的二进制包可以在 [https://github.com/docker/compose/releases](https://github.com/docker/compose/releases) 页面找到。 -下载后直接放到执行路径即可。 +这些二进制文件,下载后直接放到执行路径下,并添加执行权限即可。 -例如,在常见的 Linux 平台上。 +例如,在 Linux 平台上。 ``` -$ sudo curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose +$ sudo curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose $ sudo chmod a+x /usr/local/bin/docker-compose ``` +可以使用 `docker-compose version` 命令来查看版本信息,以测试是否安装成功。 + +```sh +$ docker-compose version +docker-compose version 1.8.0, build 94f7016 +docker-py version: 1.9.0 +CPython version: 2.7.6 +OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014 +``` + +### 容器中执行 + +Compose 既然是一个 Python 应用,自然也可以直接用容器来执行它。 + +```sh +$ curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose +$ chmod +x /usr/local/bin/docker-compose +``` + +实际上,查看下载的 `run.sh` 脚本内容,如下 + +```sh +set -e + +VERSION="1.8.0" +IMAGE="docker/compose:$VERSION" + + +# Setup options for connecting to docker host +if [ -z "$DOCKER_HOST" ]; then + DOCKER_HOST="/var/run/docker.sock" +fi +if [ -S "$DOCKER_HOST" ]; then + DOCKER_ADDR="-v $DOCKER_HOST:$DOCKER_HOST -e DOCKER_HOST" +else + DOCKER_ADDR="-e DOCKER_HOST -e DOCKER_TLS_VERIFY -e DOCKER_CERT_PATH" +fi + + +# Setup volume mounts for compose config and context +if [ "$(pwd)" != '/' ]; then + VOLUMES="-v $(pwd):$(pwd)" +fi +if [ -n "$COMPOSE_FILE" ]; then + compose_dir=$(dirname $COMPOSE_FILE) +fi +# TODO: also check --file argument +if [ -n "$compose_dir" ]; then + VOLUMES="$VOLUMES -v $compose_dir:$compose_dir" +fi +if [ -n "$HOME" ]; then + VOLUMES="$VOLUMES -v $HOME:$HOME -v $HOME:/root" # mount $HOME in /root to share docker.config +fi + +# Only allocate tty if we detect one +if [ -t 1 ]; then + DOCKER_RUN_OPTIONS="-t" +fi +if [ -t 0 ]; then + DOCKER_RUN_OPTIONS="$DOCKER_RUN_OPTIONS -i" +fi + +exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w "$(pwd)" $IMAGE "$@" +``` + +可以看到,它其实是下载了 `docker/compose` 镜像并运行。 + +### 卸载 +如果是二进制包方式安装的,删除二进制文件即可。 + +```sh +$ sudo rm /usr/local/bin/docker-compose +``` + +如果是通过 python pip 工具安装的,则可以执行如下命令删除。 +```sh +$ sudo pip uninstall docker-compose +``` \ No newline at end of file diff --git a/compose/intro.md b/compose/intro.md index 0f9ce26aa..6321badf8 100644 --- a/compose/intro.md +++ b/compose/intro.md @@ -1,10 +1,22 @@ -## 简介 -Compose 项目目前在 [Github](https://github.com/docker/compose) 上进行维护,目前最新版本是 1.2.0。 +## Compose 简介 -Compose 定位是“defining and running complex applications with Docker”,前身是 Fig,兼容 Fig 的模板文件。 +![Docker Compose 项目](../_images/docker_compose.jpg) -Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 `project`,即项目),例如一个 Web 服务容器再加上后端的数据库服务容器等。 +Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟 OpenStack 中的 Heat 十分类似。 -![](../_images/docker_compose.jpg) +其代码目前在 [https://github.com/docker/compose](https://github.com/docker/compose) 上开源。 -该项目由 Python 编写,实际上调用了 Docker 提供的 API 来实现。 +Compose 定位是 “定义和运行多个 Docker 容器的应用(Defining and running multi-container Docker applications)”,其前身是开源项目 Fig,目前仍然兼容 Fig 格式的模板文件。 + +通过第一部分中的介绍,我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。 + +Compose 恰好满足了这样的需求。它允许用户通过一个单独的 `docker-compose.yml` 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。 + +Compose 中有两个重要的概念: + +* 服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 +* 项目(project):由一组关联的应用容器组成的一个完整业务单元,在 `docker-compose.yml` 文件中定义。 + +Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。 + +Compose 项目由 Python 编写,实现上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose 来进行编排管理。 diff --git a/compose/yaml_file.md b/compose/yaml_file.md index b58f5e76f..0e5bee24a 100644 --- a/compose/yaml_file.md +++ b/compose/yaml_file.md @@ -1,162 +1,206 @@ -## YAML 模板文件 +## Compose 模板文件 -默认的模板文件是 `docker-compose.yml`,其中定义的每个服务都必须通过 `image` 指令指定镜像或 `build` 指令(需要 Dockerfile)来自动构建。 +模板文件是使用 Compose 的核心,涉及到的指令关键字也比较多。但大家不用担心,这里面大部分指令跟 `docker run` 相关参数的含义都是类似的。 -其它大部分指令都跟 `docker run` 中的类似。 +默认的模板文件名称为 `docker-compose.yml`,格式为 YAML 格式。 -如果使用 `build` 指令,在 `Dockerfile` 中设置的选项(例如:`CMD`, `EXPOSE`, `VOLUME`, `ENV` 等) 将会自动被获取,无需在 `docker-compose.yml` 中再次设置。 +在旧版本(版本 1)中,其中每个顶级元素为服务名称,次级元素为服务容器的配置信息,例如 -### `image` +```yaml +webapp: + image: examples/web + ports: + - "80:80" + volumes: + - "/data" +``` -指定为镜像名称或镜像 ID。如果镜像在本地不存在,`Compose` 将会尝试拉去这个镜像。 +版本 2 扩展了 Compose 的语法,同时尽量保持跟版本 1 的兼容,除了可以声明网络和存储信息外,最大的不同一是添加了版本信息,另一个是需要将所有的服务放到 `services` 根下面。 -例如: -```bash -image: ubuntu -image: orchardup/postgresql -image: a4bc65fd +例如,上面例子改写为版本 2,内容为 + +```yaml +version: "2" +services: + webapp: + image: examples/web + ports: + - "80:80" + volumes: + - "/data" ``` + +注意每个服务都必须通过 `image` 指令指定镜像或 `build` 指令(需要 Dockerfile)等来自动构建生成镜像。 + +如果使用 `build` 指令,在 `Dockerfile` 中设置的选项(例如:`CMD`, `EXPOSE`, `VOLUME`, `ENV` 等) 将会自动被获取,无需在 `docker-compose.yml` 中再次设置。 + +下面分别介绍各个指令的用法。 + ### `build` -指定 `Dockerfile` 所在文件夹的路径。 `Compose` 将会利用它自动构建这个镜像,然后使用这个镜像。 +指定 `Dockerfile` 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。 `Compose` 将会利用它自动构建这个镜像,然后使用这个镜像。 ``` build: /path/to/build/dir ``` +### `cap_add, cap_drop` +指定容器的内核能力(capacity)分配。 + +例如,让容器拥有所有能力可以指定为: + +```yml +cap_add: + - ALL +``` + +去掉 NET_ADMIN 能力可以指定为: + +```yml +cap_drop: + - NET_ADMIN +``` + ### `command` 覆盖容器启动后默认执行的命令。 -```bash -command: bundle exec thin -p 3000 +```sh +command: echo "hello world" ``` -### `links` +### `cgroup_parent` +指定父 cgroup 组,意味着将继承该组的资源限制。 -链接到其它服务中的容器。使用服务名称(同时作为别名)或服务名称:服务别名 `(SERVICE:ALIAS)` 格式都可以。 +例如,创建了一个 cgroup 组名称为 `cgroups_1`。 -```bash -links: - - db - - db:database - - redis +```yml +cgroup_parent: cgroups_1 ``` -使用的别名将会自动在服务容器中的 `/etc/hosts` 里创建。例如: +### `container_name` +指定容器名称。默认将会使用 `项目名称_服务名称_序号` 这样的格式。 -```bash -172.17.2.186 db -172.17.2.186 database -172.17.2.187 redis +例如: +```yml +container_name: docker-web-container ``` -相应的环境变量也将被创建。 +需要注意,指定容器名称后,该服务将无法进行扩展(scale),因为 Docker 不允许多个容器具有相同的名称。 -### `external_links` -链接到 docker-compose.yml 外部的容器,甚至 并非 `Compose` 管理的容器。参数格式跟 `links` 类似。 +### `devices` +指定设备映射关系。 -``` -external_links: - - redis_1 - - project_db_1:mysql - - project_db_1:postgresql +例如: +```yml +devices: + - "/dev/ttyUSB1:/dev/ttyUSB0" ``` +### `dns` -### `ports` +自定义 DNS 服务器。可以是一个值,也可以是一个列表。 -暴露端口信息。 +```sh +dns: 8.8.8.8 +dns: + - 8.8.8.8 + - 9.9.9.9 +``` -使用宿主:容器 `(HOST:CONTAINER)`格式或者仅仅指定容器的端口(宿主将会随机选择端口)都可以。 +### `dns_search` -``` -ports: - - "3000" - - "8000:8000" - - "49100:22" - - "127.0.0.1:8001:8001" +配置 DNS 搜索域。可以是一个值,也可以是一个列表。 + +```sh +dns_search: example.com +dns_search: + - domain1.example.com + - domain2.example.com ``` -*注:当使用 `HOST:CONTAINER` 格式来映射端口时,如果你使用的容器端口小于 60 你可能会得到错误得结果,因为 `YAML` 将会解析 `xx:yy` 这种数字格式为 60 进制。所以建议采用字符串格式。* +### `dockerfile` +如果需要指定额外的编译镜像的 Dockefile 文件,可以通过该指令来指定。 +例如 +```yml +dockerfile: Dockerfile-alternate +``` -### `expose` +注意,该指令不能跟 `image` 同时使用,否则 Compose 将不知道根据哪个指令来生成最终的服务镜像。 -暴露端口,但不映射到宿主机,只被连接的服务访问。 +### `env_file` +从文件中获取环境变量,可以为单独的文件路径或列表。 -仅可以指定内部端口为参数 +如果通过 `docker-compose -f FILE` 方式来指定 Compose 模板文件,则 `env_file` 中变量的路径会基于模板文件路径。 -```bash -expose: - - "3000" - - "8000" -``` +如果有变量名称与 `environment` 指令冲突,则按照惯例,以后者为准。 -### `volumes` - -卷挂载路径设置。可以设置宿主机路径 (`HOST:CONTAINER`) 或加上访问模式 (`HOST:CONTAINER:ro`)。 +```sh +env_file: .env -```bash -volumes: - - /var/lib/mysql - - cache/:/tmp/cache - - ~/configs:/etc/configs/:ro +env_file: + - ./common.env + - ./apps/web.env + - /opt/secrets.env ``` -### `volumes_from` - -从另一个服务或容器挂载它的所有卷。 +环境变量文件中每一行必须符合格式,支持 `#` 开头的注释行。 -```bash -volumes_from: - - service_name - - container_name +```sh +# common.env: Set development environment +PROG_ENV=development ``` ### `environment` 设置环境变量。你可以使用数组或字典两种格式。 -只给定名称的变量会自动获取它在 Compose 主机上的值,可以用来防止泄露不必要的数据。 +只给定名称的变量会自动获取运行 Compose 主机上对应变量的值,可以用来防止泄露不必要的数据。 -``` +例如 +```yml environment: RACK_ENV: development SESSION_SECRET: +``` +或者 + +```yml environment: - RACK_ENV=development - SESSION_SECRET ``` -### `env_file` -从文件中获取环境变量,可以为单独的文件路径或列表。 +注意,如果变量名称或者值中用到 `true|false,yes|no` 等表达布尔含义的词汇,最好放到引号里,避免 YAML 自动解析某些内容为对应的布尔语义。 -如果通过 `docker-compose -f FILE` 指定了模板文件,则 `env_file` 中路径会基于模板文件路径。 +`http://yaml.org/type/bool.html` 中给出了这些特定词汇,包括 -如果有变量名称与 `environment` 指令冲突,则以后者为准。 +```sh + y|Y|yes|Yes|YES|n|N|no|No|NO +|true|True|TRUE|false|False|FALSE +|on|On|ON|off|Off|OFF +``` -```bash -env_file: .env +### `expose` -env_file: - - ./common.env - - ./apps/web.env - - /opt/secrets.env -``` +暴露端口,但不映射到宿主机,只被连接的服务访问。 -环境变量文件中每一行必须符合格式,支持 `#` 开头的注释行。 +仅可以指定内部端口为参数 -```bash -# common.env: Set Rails/Rack environment -RACK_ENV=development +```sh +expose: + - "3000" + - "8000" ``` ### `extends` -基于已有的服务进行扩展。例如我们已经有了一个 webapp 服务,模板文件为 `common.yml`。 -```bash +基于其它模板文件进行扩展。 + +例如我们已经有了一个 webapp 服务,定义一个基础模板文件为 `common.yml`。 +```sh # common.yml webapp: build: ./webapp @@ -165,8 +209,8 @@ webapp: - SEND_EMAILS=false ``` -编写一个新的 `development.yml` 文件,使用 `common.yml` 中的 webapp 服务进行扩展。 -```bash +再编写一个新的 `development.yml` 文件,使用 `common.yml` 中的 webapp 服务进行扩展。 +```sh # development.yml web: extends: @@ -181,14 +225,108 @@ web: db: image: postgres ``` -后者会自动继承 common.yml 中的 webapp 服务及相关环节变量。 +后者会自动继承 common.yml 中的 webapp 服务及环境变量定义。 + +使用 extends 需要注意: +* 要避免出现循环依赖,例如 `A 依赖 B,B 依赖 C,C 反过来依赖 A` 的情况。 +* extends 不会继承 links 和 volumes_from 中定义的容器和数据卷资源。 + +一般的,推荐在基础模板中只定义一些可以共享的镜像和环境变量,在扩展模板中具体指定应用变量、链接、数据卷等信息。 + +### `external_links` +链接到 docker-compose.yml 外部的容器,甚至 并非 `Compose` 管理的外部容器。参数格式跟 `links` 类似。 + +``` +external_links: + - redis_1 + - project_db_1:mysql + - project_db_1:postgresql +``` + +### `extra_hosts` +类似 Docker 中的 `--add-host` 参数,指定额外的 host 名称映射信息。 + +例如: +```yml +extra_hosts: + - "googledns:8.8.8.8" + - "dockerhub:52.1.157.61" +``` + +会在启动后的服务容器中 `/etc/hosts` 文件中添加如下两条条目。 +```sh +8.8.8.8 googledns +52.1.157.61 dockerhub +``` + +### `image` + +指定为镜像名称或镜像 ID。如果镜像在本地不存在,`Compose` 将会尝试拉去这个镜像。 + +例如: +```sh +image: ubuntu +image: orchardup/postgresql +image: a4bc65fd +``` + +### `labels` +为容器添加 Docker 元数据(metadata)信息。例如可以为容器添加辅助说明信息。 +```yml +labels: + com.startupteam.description: "webapp for a startup team" + com.startupteam.department: "devops department" + com.startupteam.release: "rc3 for v1.0" +``` + +### `links` + +链接到其它服务中的容器。使用服务名称(同时作为别名)或服务名称:服务别名 `(SERVICE:ALIAS)` 格式都可以。 + +```sh +links: + - db + - db:database + - redis +``` + +使用的别名将会自动在服务容器中的 `/etc/hosts` 里创建。例如: + +```sh +172.17.2.186 db +172.17.2.186 database +172.17.2.187 redis +``` + +被链接容器中相应的环境变量也将被创建。 + +### `log_driver` +类似 Docker 中的 `--log-driver` 参数,指定日志驱动类型。 + +目前支持三种日志驱动类型。 + +```yml +log_driver: "json-file" +log_driver: "syslog" +log_driver: "none" +``` + +### `log_opt` +日志驱动的相关参数。 + +例如 +```yml +log_driver: "syslog" +log_opt: + syslog-address: "tcp://192.168.0.42:123" +``` ### `net` 设置网络模式。使用和 `docker client` 的 `--net` 参数一样的值。 -```bash +```sh net: "bridge" net: "none" net: "container:[name or id]" @@ -196,64 +334,163 @@ net: "host" ``` ### `pid` -跟主机系统共享进程命名空间。打开该选项的容器可以相互通过进程 ID 来访问和操作。 +跟主机系统共享进程命名空间。打开该选项的容器之间,以及容器和宿主机系统之间可以通过进程 ID 来相互访问和操作。 -```bash +```sh pid: "host" ``` -### `dns` -配置 DNS 服务器。可以是一个值,也可以是一个列表。 +### `ports` -```bash -dns: 8.8.8.8 -dns: - - 8.8.8.8 - - 9.9.9.9 +暴露端口信息。 + +使用宿主:容器 `(HOST:CONTAINER)`格式,或者仅仅指定容器的端口(宿主将会随机选择端口)都可以。 + +``` +ports: + - "3000" + - "8000:8000" + - "49100:22" + - "127.0.0.1:8001:8001" ``` -### `cap_add, cap_drop` -添加或放弃容器的 Linux 能力(Capabiliity)。 -```bash -cap_add: - - ALL +*注意:当使用 `HOST:CONTAINER` 格式来映射端口时,如果你使用的容器端口小于 60 并且没放到引号里,可能会得到错误结果,因为 `YAML` 会自动解析 `xx:yy` 这种数字格式为 60 进制。为避免出现这种问题,建议数字串都采用引号包括起来的字符串格式。* -cap_drop: - - NET_ADMIN - - SYS_ADMIN +### `security_opt` + +指定容器模板标签(label)机制的默认属性(用户、角色、类型、级别等)。 + +例如配置标签的用户名和角色名。 +```yml +security_opt: + - label:user:USER + - label:role:ROLE ``` -### `dns_search` +### `ulimits` +指定容器的 ulimits 限制值。 -配置 DNS 搜索域。可以是一个值,也可以是一个列表。 +例如,指定最大进程数为 65535,指定文件句柄数为 20000(软限制,应用可以随时修改,不能超过硬限制) 和 40000(系统硬限制,只能 root 用户提高)。 -```bash -dns_search: example.com -dns_search: - - domain1.example.com - - domain2.example.com +```yml + ulimits: + nproc: 65535 + nofile: + soft: 20000 + hard: 40000 +``` + +### `volumes` + +数据卷所挂载路径设置。可以设置宿主机路径 (`HOST:CONTAINER`) 或加上访问模式 (`HOST:CONTAINER:ro`)。 + +该指令中路径支持相对路径。例如 + +```yml +volumes: + - /var/lib/mysql + - cache/:/tmp/cache + - ~/configs:/etc/configs/:ro ``` -### `working_dir, entrypoint, user, hostname, domainname, mem_limit, privileged, restart, stdin_open, tty, cpu_shares` +### `volumes_driver` +较新版本的 Docker 支持数据卷的插件驱动。 -这些都是和 `docker run` 支持的选项类似。 +用户可以先使用第三方驱动创建一个数据卷,然后使用名称来访问它。 +此时,可以通过 `volumes_driver` 来指定驱动。 + +```yml +volume_driver: mydriver +``` + +### `volumes_from` + +从另一个服务或容器挂载它的数据卷。 + +```sh +volumes_from: + - service_name + - container_name ``` + +### 其它指令 + +此外,还有包括 `cpu_shares, cpuset, domainname, entrypoint, hostname, ipc, mac_address, mem_limit, memswap_limit, privileged, read_only, restart, stdin_open, tty, user, working_dir` 等指令,基本跟 docker-run 中对应参数的功能一致。 + +例如,指定使用 cpu 核 0 和 核 1,只用 50% 的 CPU 资源: +```yml cpu_shares: 73 +cpuset: 0,1 +``` -working_dir: /code +指定服务容器启动后执行的命令。 +```yml entrypoint: /code/entrypoint.sh -user: postgresql +``` + +指定容器中运行应用的用户名。 +```yml +user: nginx +``` + +指定容器中工作目录。 +```yml +working_dir: /code +``` + +指定容器中搜索域名、主机名、mac 地址等。 +```yml +domainname: your_website.com +hostname: test +mac_address: 08-00-27-00-0C-0A +``` -hostname: foo -domainname: foo.com +指定容器中 +```yml +ipc: host +``` + +指定容器中内存和内存交换区限制都为 1G。 +```yml +mem_limit: 1g +memswap_limit: 1g +``` -mem_limit: 1000000000 +允许容器中运行一些特权命令。 +```yml privileged: true +``` +指定容器退出后的重启策略为始终重启。该命令对保持服务始终运行十分有效,在生产环境中推荐配置为 `always` 或者 `unless-stopped`。 +```yml restart: always +``` + +以只读模式挂载容器的 root 文件系统,意味着不能对容器内容进行修改。 +```yml +read_only: true +``` +打开标准输入,可以接受外部输入。 +```yml stdin_open: true +``` + +模拟一个假的远程控制台。 +```yml tty: true ``` + +### 读取环境变量 +从 1.5.0 版本开始,Compose 模板文件支持动态读取主机的系统环境变量。 + +例如,下面的 Compose 文件将从运行它的环境中读取变量 ${MONGO_VERSION} 的值,并写入执行的指令中。 + +```yml +db: + image: "mongo:${MONGO_VERSION}" +``` + +如果执行 `MONGO_VERSION=3.0 docker-compose up` 则会启动一个 `mongo:3.2` 镜像的容器;如果执行 `MONGO_VERSION=2.8 docker-compose up` 则会启动一个 `mongo:2.8` 镜像的容器。 \ No newline at end of file From 4911fba3e0941046908b370fe0ae0ac49889e1c3 Mon Sep 17 00:00:00 2001 From: yeasy Date: Tue, 20 Dec 2016 07:26:13 +0000 Subject: [PATCH 003/611] Track 2 files into repository. - untracked _images/docker_primer.png - removed docker_primer.png Auto commit by GitBook Editor --- docker_primer.png => _images/docker_primer.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename docker_primer.png => _images/docker_primer.png (100%) diff --git a/docker_primer.png b/_images/docker_primer.png similarity index 100% rename from docker_primer.png rename to _images/docker_primer.png From 67fe62b449b5d58be56808213f67704f3b3d29a9 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Tue, 20 Dec 2016 15:46:42 +0800 Subject: [PATCH 004/611] Update version number --- README.md | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 11d203a24..dd4641207 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # Docker — 从入门到实践 -0.7.6 +0.7.7 -[Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本,同时让应用的部署、测试和分发都变得前所未有的高效和轻松! +[Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本! 使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! -无论是应用开发者,运维人员,还是云计算从业人员,都有必要认识和掌握 Docker,以在有限的时间内做更多有意义的事。 +无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker,以在有限的时间内做更多有意义的事。 -本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍一些高级操作;第 10 章给出典型的应用场景和实践案例;11 ~ 13 章介绍关于 Docker 实现的相关细节技术。后续章节则分别介绍一些相关的热门开源项目。 +本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍一些高级操作;第 10 章给出典型的应用场景和实践案例;11、12 章介绍关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍一些相关的热门开源项目。 在线阅读:[GitBook](https://www.gitbook.io/book/yeasy/docker_practice) 或 [Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md)。 @@ -91,13 +91,13 @@ * 添加基本内容; * 修正错别字和表达不通顺的地方。 -Docker 自身仍在快速发展中,生态环境也在蓬勃成长。源码开源托管在 Github 上,欢迎参与维护:[https:\/\/github.com\/yeasy\/docker\_practice](https://github.com/yeasy/docker_practice)。贡献者 [名单](https://github.com/yeasy/docker_practice/graphs/contributors)。 +Docker 自身仍在快速发展中,生态环境也在蓬勃成长。源码开源托管在 Github 上,欢迎参与维护:[https://github.com/yeasy/docker_practice](https://github.com/yeasy/docker_practice)。贡献者 [名单](https://github.com/yeasy/docker_practice/graphs/contributors)。 ## 参加步骤 * 在 GitHub 上 `fork` 到自己的仓库,如 `docker_user/docker_practice`,然后 `clone` 到本地,并设置用户信息。 - ``` + ```sh $ git clone git@github.com:docker_user/docker_practice.git $ cd docker_practice $ git config user.name "yourname" @@ -106,7 +106,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。源码开 * 修改代码后提交,并推送到自己的仓库。 - ``` + ```sh $ #do some change on the content $ git commit -am "Fix issue #1: change helo to hello" $ git push @@ -115,13 +115,10 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。源码开 * 在 GitHub 网站上提交 pull request。 * 定期使用项目仓库内容更新自己仓库内容。 - ``` + ```sh $ git remote add upstream https://github.com/yeasy/docker_practice $ git fetch upstream $ git checkout master $ git rebase upstream/master $ git push -f origin master ``` - - - From 6448a627f6c4a9f0ca762951f390d3f9a571d310 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Tue, 20 Dec 2016 15:47:31 +0800 Subject: [PATCH 005/611] Fix figure path --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dd4641207..d5c31488a 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ * QQ 群 IX (已满):571502246 * QQ 群 X (可加):366203473 -![Docker 技术入门与实战](docker_primer.png) +![Docker 技术入门与实战](_images/docker_primer.png) 《[Docker 技术入门与实战](http://item.jd.com/11598400.html)》一书已经正式出版,包含大量第一手实战案例和更为深入的技术剖析,欢迎大家阅读使用并反馈建议。 From 93e2d43c4f69069803a42d0a41807a90265998a2 Mon Sep 17 00:00:00 2001 From: johannlai Date: Fri, 6 Jan 2017 15:44:31 +0800 Subject: [PATCH 006/611] =?UTF-8?q?=E4=BF=AE=E6=94=B9Web=E4=B8=BAweb?= =?UTF-8?q?=EF=BC=8C=E4=B8=8E=E7=9B=AE=E5=BD=95=E4=B8=AD=E7=9A=84=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- compose/usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/usage.md b/compose/usage.md index 86d2089b6..e2e9c3aa1 100644 --- a/compose/usage.md +++ b/compose/usage.md @@ -13,7 +13,7 @@ 创建一个 `compose-haproxy-web` 目录,作为项目工作目录,并在其中分别创建两个子目录:`haproxy` 和 `web`。 -### Web 子目录 +### web 子目录 这里用 Python 程序来提供一个简单的 HTTP 服务,打印出访问者的 IP 和 实际的本地 IP。 From b0bde1341c0f579e707ab156474f23c9cd624ef5 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Sun, 8 Jan 2017 22:48:29 +0800 Subject: [PATCH 007/611] release 0.8.0 --- README.md | 9 +++++++-- _images/donate.jpeg | Bin 0 -> 52500 bytes 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 _images/donate.jpeg diff --git a/README.md b/README.md index d5c31488a..ba3dc0458 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Docker — 从入门到实践 -0.7.7 +0.8.0 [Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本! 使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! @@ -37,7 +37,7 @@ ## 主要版本历史 -* 0.8.0: 2016-MM-DD +* 0.8.0: 2017-01-08 * 修正文字内容 * 根据最新版本修订安装使用 @@ -122,3 +122,8 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。源码开 $ git rebase upstream/master $ git push -f origin master ``` +## 鼓励项目 + +欢迎鼓励项目一杯 coffee~ + +![coffee](_images/donate.jpeg) diff --git a/_images/donate.jpeg b/_images/donate.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fe45797edcd7a284d4974822f135f4002247b73c GIT binary patch literal 52500 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 Date: Tue, 10 Jan 2017 22:30:02 +0800 Subject: [PATCH 008/611] a little spelling mistake --- mesos/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mesos/installation.md b/mesos/installation.md index a4e37b6e5..419170a1c 100644 --- a/mesos/installation.md +++ b/mesos/installation.md @@ -5,7 +5,7 @@ Marathon 是可以跟 Mesos 一起协作的一个 framework,用来运行持久 ### 安装 一共需要安装四种组件,mesos-master、marathon、zookeeper 需要安装到所有的主节点,mseos-slave 需要安装到从节点。 -mesos 利用 zookper 来进行主节点的同步,以及从节点发现主节点的过程。 +mesos 利用 zookeeper 来进行主节点的同步,以及从节点发现主节点的过程。 #### 源码编译 From 2ae37ecfa5bd04acce1c967517b1e790ce466603 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 11 Jan 2017 17:17:49 +0800 Subject: [PATCH 009/611] Add figure --- _images/donate.jpeg | Bin 52500 -> 56247 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/_images/donate.jpeg b/_images/donate.jpeg index fe45797edcd7a284d4974822f135f4002247b73c..6fcfa7ab99c330a21dd6bcd024ba2a61492750d9 100644 GIT binary patch delta 55634 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 delta 51857 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 literal 0 HcmV?d00001 diff --git a/cloud/_images/aliyun-logo.png b/cloud/_images/aliyun-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4700fec2d6bda0323656e09f145b43fc534f327f GIT binary patch literal 55842 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 M07*qoM6N<$f)lyJSpWb4 literal 0 HcmV?d00001 diff --git a/cloud/_images/aws-logo.jpg b/cloud/_images/aws-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..17273479317ed68879bed543af75759e504d5cfb GIT binary patch literal 11026 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 literal 0 HcmV?d00001 From abce07cda6952ea646c0e0c3281afe371f865d79 Mon Sep 17 00:00:00 2001 From: yeasy Date: Thu, 12 Jan 2017 15:59:11 +0800 Subject: [PATCH 012/611] Add cloud chapter --- SUMMARY.md | 9 +++++---- cloud/README.md | 5 +++++ cloud/alicloud.md | 10 ++++++++++ cloud/aws.md | 13 +++++++++++++ cloud/intro.md | 7 +++++++ cloud/qcloud.md | 12 ++++++++++++ cloud/summary.md | 12 ++++++++++++ container/README.md | 2 +- image/README.md | 2 +- install/README.md | 2 +- repository/README.md | 2 +- 11 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 cloud/README.md create mode 100644 cloud/alicloud.md create mode 100644 cloud/aws.md create mode 100644 cloud/intro.md create mode 100644 cloud/qcloud.md create mode 100644 cloud/summary.md diff --git a/SUMMARY.md b/SUMMARY.md index bd83f6396..e2a11990f 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -10,12 +10,12 @@ * [镜像](basic_concept/image.md) * [容器](basic_concept/container.md) * [仓库](basic_concept/repository.md) -* [安装](install/README.md) +* [安装 Docker](install/README.md) * [Ubuntu、Debian](install/ubuntu.md) * [CentOS](install/centos.md) * [macOS](install/mac.md) * [镜像加速器](install/mirror.md) -* [镜像](image/README.md) +* [使用镜像](image/README.md) * [获取镜像](image/pull.md) * [列出镜像](image/list.md) * [利用 commit 理解镜像构成](image/commit.md) @@ -37,14 +37,14 @@ * [其它制作镜像的方式](image/other.md) * [删除本地镜像](image/rmi.md) * [实现原理](image/internal.md) -* [容器](container/README.md) +* [操作容器](container/README.md) * [启动](container/run.md) * [守护态运行](container/daemon.md) * [终止](container/stop.md) * [进入容器](container/enter.md) * [导出和导入](container/import_export.md) * [删除](container/rm.md) -* [仓库](repository/README.md) +* [访问仓库](repository/README.md) * [Docker Hub](repository/dockerhub.md) * [私有仓库](repository/local_repo.md) * [配置文件](repository/config.md) @@ -142,3 +142,4 @@ * [Node.js](appendix/repo/nodejs.md) * [附录三:Docker 命令查询](appendix/command/README.md) * [附录四:资源链接](appendix/resources/README.md) + diff --git a/cloud/README.md b/cloud/README.md new file mode 100644 index 000000000..2fa6e02d1 --- /dev/null +++ b/cloud/README.md @@ -0,0 +1,5 @@ +# 容器与云计算 + +Docker 目前已经得到了众多公有云平台的支持,并成为除虚拟机之外的核心云业务。 + +除了 AWS、Google、Azure、Docker 官方云服务等,国内的各大公有云厂商,基本上都同时支持了虚拟机服务和容器服务,甚至还专门推出了容器云业务。 \ No newline at end of file diff --git a/cloud/alicloud.md b/cloud/alicloud.md new file mode 100644 index 000000000..53f29207e --- /dev/null +++ b/cloud/alicloud.md @@ -0,0 +1,10 @@ +## 阿里云 + +![阿里云](_images/aliyun-logo.png) + +阿里云创立于 2009 年,是中国较早的云计算平台。阿里云致力于提供安全、可靠的计算和数据处理能力。 + +阿里云的客户群体中,活跃着微博、知乎、魅族、锤子科技、小咖秀等一大批明星互联网公司。在天猫双 11 全球狂欢节等极富挑战的应用场景中,阿里云保持着良好的运行纪录。 + +阿里云容器服务提供了高性能、可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。 + diff --git a/cloud/aws.md b/cloud/aws.md new file mode 100644 index 000000000..614bdf0ef --- /dev/null +++ b/cloud/aws.md @@ -0,0 +1,13 @@ +## 亚马逊云 + +![AWS](_images/aws-logo.jpg) + +AWS,即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT 投入成本和维护成本。 + +自 2006 年初起,亚马逊 AWS 开始在云中为各种规模的公司提供技术服务平台。利用亚马逊 AWS,软件开发人员可以轻松购买计算、存储、数据库和其他基于 Internet 的服务来支持其应用程序。开发人员能够灵活选择任何开发平台或编程环境,以便于其尝试解决问题。由于开发人员只需按使用量付费,无需前期资本支出,亚马逊 AWS 是向最终用户交付计算资源、保存的数据和其他应用程序的一种经济划算的方式。 + +2015 年 AWS 正式发布了 EC2 容器服务(ECS)。ECS 的目的是让 Docker 容器变的更加简单,它提供了一个集群和编排的层,用来控制主机上的容器部署,以及部署之后的集群内的容器的生命周期管理。ECS 是诸如 Docker Swarm、Kubernetes、Mesos 等工具的替代,它们工作在同一个层,除了作为一个服务来提供。这些工具和 ECS 不同的地方在于,前者需要用户自己来部署和管理,而 ECS 是“作为服务”来提供的。 + + +![AWS 容器服务](_images/ECS.jpg) + diff --git a/cloud/intro.md b/cloud/intro.md new file mode 100644 index 000000000..b91187802 --- /dev/null +++ b/cloud/intro.md @@ -0,0 +1,7 @@ +## 简介 + +目前与容器相关的云计算主要分为两种类型。 + +一种是传统的 IaaS 服务商提供对容器相关的服务,包括镜像下载、容器托管等。 + +另一种是直接基于容器技术对外提供容器云服务,所谓 Container as a Service(CaaS)。 \ No newline at end of file diff --git a/cloud/qcloud.md b/cloud/qcloud.md new file mode 100644 index 000000000..014fab614 --- /dev/null +++ b/cloud/qcloud.md @@ -0,0 +1,12 @@ +## 腾讯云 + +![腾讯云](_images/qcloud-logo.jpg) + +腾讯云在架构方面经过多年积累,并且有着多年对海量互联网服务的经验。不管是社交、游戏还是其他领域,都有多年的成熟产品来提供产品服务。腾讯在云端完成重要部署,为开发者及企业提供云服务、云数据、云运营等整体一站式服务方案。 + +具体包括云服务器、云存储、云数据库和弹性 web 引擎等基础云服务;腾讯云分析(MTA)、腾讯云推送(信鸽)等腾讯整体大数据能力;以及 QQ互联、QQ 空间、微云、微社区等云端链接社交体系。这些正是腾讯云可以提供给这个行业的差异化优势,造就了可支持各种互联网使用场景的高品质的腾讯云技术平台。 + +2015 年 1 月 6 日,腾讯云正式宣布成支持 Docker Machine,并将自身定位于 Docker 基础设施的服务商。与此同时,在支持 Docker Machine前提下,腾讯云也推出了常用系统的标准版 Docker 镜像,方便用户创建容器。 + +*腾讯云已有用户或新用户都可以 [通过这里](http://partners.qcloud.com/invitation/25297829205816a19c316c6),在不做任何迁移的前提下,获得腾讯云服务的额外支持和大客户专享价格。* + diff --git a/cloud/summary.md b/cloud/summary.md new file mode 100644 index 000000000..4de755ee3 --- /dev/null +++ b/cloud/summary.md @@ -0,0 +1,12 @@ +## 本章小结 +本章介绍了公有云服务对 Docker 的积极支持,以及新出现的容器云平台。 + +事实上,Docker 技术的出现自身就极大推动了云计算行业的发展。 + +通过整合公有云的虚拟机和 Docker 方式,可能获得更多的好处,包括 + +* 更快速的持续交付和部署能力; +* 利用内核级虚拟化,对公有云中服务器资源进行更加高效地利用; +* 利用公有云和 Docker 的特性更加方便的迁移和扩展应用。 + +同时,容器将作为与虚拟机类似的业务直接提供给用户使用,极大的丰富了应用开发和部署的场景。 diff --git a/container/README.md b/container/README.md index 09c43bae4..5d571a9de 100644 --- a/container/README.md +++ b/container/README.md @@ -1,4 +1,4 @@ -# Docker 容器 +# 操作 Docker 容器 容器是 Docker 又一核心概念。 简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。 diff --git a/image/README.md b/image/README.md index 8115626ed..25054bf8f 100644 --- a/image/README.md +++ b/image/README.md @@ -1,4 +1,4 @@ -# Docker 镜像 +# 使用 Docker 镜像 在之前的介绍中,我们知道镜像是 Docker 的三大组件之一。 diff --git a/install/README.md b/install/README.md index 59b25bd5e..dcef75247 100644 --- a/install/README.md +++ b/install/README.md @@ -1,2 +1,2 @@ -# 安装 +# 安装 Docker 官方网站上有各种环境下的 [安装指南](https://docs.docker.com/installation/#installation),这里主要介绍下 Ubuntu、Debian 和 CentOS 系列的安装。 diff --git a/repository/README.md b/repository/README.md index 3d7ac44af..dd3d7be71 100644 --- a/repository/README.md +++ b/repository/README.md @@ -1,4 +1,4 @@ -# 仓库 +# 访问仓库 仓库(Repository)是集中存放镜像的地方。 From 9f9151580d88e81fd1d913bf04b21389bada6fed Mon Sep 17 00:00:00 2001 From: Kim Wu Date: Fri, 13 Jan 2017 14:21:35 +0800 Subject: [PATCH 013/611] =?UTF-8?q?=E6=94=B9=E6=AD=A3=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E9=94=99=E6=BC=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CMD ["nginx" "-g" "daemon off;"] -> CMD ["nginx", "-g", "daemon off;"] --- image/dockerfile/cmd.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/dockerfile/cmd.md b/image/dockerfile/cmd.md index 56c421ae4..120abc3ab 100644 --- a/image/dockerfile/cmd.md +++ b/image/dockerfile/cmd.md @@ -45,5 +45,5 @@ CMD service nginx start 正确的做法是直接执行 `nginx` 可执行文件,并且要求以前台形式运行。比如: ```Dockerfile -CMD ["nginx" "-g" "daemon off;"] +CMD ["nginx", "-g", "daemon off;"] ``` From 2376e1ea188bcdd138b6859def7a78851d0a36f7 Mon Sep 17 00:00:00 2001 From: qiuyin Date: Fri, 20 Jan 2017 18:10:20 +0900 Subject: [PATCH 014/611] Update volume.md --- data_management/volume.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/data_management/volume.md b/data_management/volume.md index 42542e0f0..0d26f33b3 100644 --- a/data_management/volume.md +++ b/data_management/volume.md @@ -46,14 +46,19 @@ $ docker inspect web ... ``` -在输出的内容中找到其中和数据卷相关的部分,可以看到所有的数据卷都是创建在主机的`/var/lib/docker/volumes/`下面的 +在输出的内容中找到其中和数据卷相关的部分,可以看到所有的数据卷都是创建在主机的`/mnt/sda1/var/lib/docker/volumes/....`下面了。 ``` -"Volumes": { - "/webapp": "/var/lib/docker/volumes/fac362...80535" -}, -"VolumesRW": { - "/webapp": true -} +"Mounts": [ + { + "Name": "b53ebd40054dae599faf7c9666acfe205c3e922fc3e8bc3f2fd178ed788f1c29", + "Source": "/mnt/sda1/var/lib/docker/volumes/b53ebd40054dae599faf7c9666acfe205c3e922fc3e8bc3f2fd178ed788f1c29/_data", + "Destination": "/webapp", + "Driver": "local", + "Mode": "", + "RW": true, + "Propagation": "" + } + ] ... ``` From 16247bb8c3b6bfa56eb757655cebdaa55746ba6a Mon Sep 17 00:00:00 2001 From: qiuyin Date: Sat, 21 Jan 2017 20:18:39 +0900 Subject: [PATCH 015/611] =?UTF-8?q?=E5=AF=B9=E6=9F=A5=E7=9C=8B=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=8D=B7=E7=9A=84=E5=85=B7=E4=BD=93=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=EF=BC=8C=E8=A1=A5=E5=85=85=E4=BA=86=E6=9C=80=E6=96=B0=E7=89=88?= =?UTF-8?q?=E7=9A=84=E5=86=85=E5=AE=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_management/volume.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/data_management/volume.md b/data_management/volume.md index 0d26f33b3..b8392476a 100644 --- a/data_management/volume.md +++ b/data_management/volume.md @@ -46,7 +46,17 @@ $ docker inspect web ... ``` -在输出的内容中找到其中和数据卷相关的部分,可以看到所有的数据卷都是创建在主机的`/mnt/sda1/var/lib/docker/volumes/....`下面了。 +在输出的内容中找到其中和数据卷相关的部分,可以看到所有的数据卷都是创建在主机的`/var/lib/docker/volumes/`下面的 +``` +"Volumes": { + "/webapp": "/var/lib/docker/volumes/fac362...80535" +}, +"VolumesRW": { + "/webapp": true +} +... +``` +注:从Docker 1.13.0起,数据卷配置在"Mounts"Key下面,可以看到所有的数据卷都是创建在主机的`/mnt/sda1/var/lib/docker/volumes/....`下面了。 ``` "Mounts": [ { From 1ab64b2775a8b977b76c2bd54903b45e3b111b83 Mon Sep 17 00:00:00 2001 From: qiuyin Date: Thu, 26 Jan 2017 11:10:42 +0900 Subject: [PATCH 016/611] Update volume.md --- data_management/volume.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_management/volume.md b/data_management/volume.md index b8392476a..6d44883ec 100644 --- a/data_management/volume.md +++ b/data_management/volume.md @@ -56,7 +56,7 @@ $ docker inspect web } ... ``` -注:从Docker 1.13.0起,数据卷配置在"Mounts"Key下面,可以看到所有的数据卷都是创建在主机的`/mnt/sda1/var/lib/docker/volumes/....`下面了。 +注:从Docker 1.8.0起,数据卷配置在"Mounts"Key下面,可以看到所有的数据卷都是创建在主机的`/mnt/sda1/var/lib/docker/volumes/....`下面了。 ``` "Mounts": [ { From 5bc5219fa23be1f203f2e3d28c5b99a62b06f8ab Mon Sep 17 00:00:00 2001 From: mzeht Date: Tue, 7 Feb 2017 21:59:32 +0800 Subject: [PATCH 017/611] =?UTF-8?q?appendix/repo/ubuntu.md=E8=AF=AD?= =?UTF-8?q?=E6=B3=95=E6=A0=BC=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appendix/repo/ubuntu.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/appendix/repo/ubuntu.md b/appendix/repo/ubuntu.md index 2253678db..46faddf69 100644 --- a/appendix/repo/ubuntu.md +++ b/appendix/repo/ubuntu.md @@ -3,7 +3,7 @@ ### 基本信息 [Ubuntu](https://en.wikipedia.org/wiki/Ubuntu) 是流行的 Linux 发行版,其自带软件版本往往较新一些。 -该仓库位于 https://hub.docker.com/_/ubuntu/,提供了 Ubuntu 从 12.04 ~ 16.10 各个版本的镜像。 +该仓库位于 https://hub.docker.com/_/ubuntu/ ,提供了 Ubuntu 从 12.04 ~ 16.10 各个版本的镜像。 ### 使用方法 默认会启动一个最小化的 Ubuntu 环境。 @@ -140,3 +140,5 @@ RUN sed -i 's/^#\s*\(deb.*universe\)$/\1/g' /etc/apt/sources.list # overwrite this with 'CMD []' in a dependent Dockerfile CMD ["/bin/bash"] ``` + + From 25178fd616df2abc71db9c5e91bade0c4f0e4bf8 Mon Sep 17 00:00:00 2001 From: mzeht Date: Tue, 7 Feb 2017 22:04:05 +0800 Subject: [PATCH 018/611] =?UTF-8?q?appendix/repo=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E4=B8=8B=E8=AF=AD=E6=B3=95=E6=A0=BC=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appendix/repo/centos.md | 4 +++- appendix/repo/mongodb.md | 5 +++-- appendix/repo/mysql.md | 4 +++- appendix/repo/nginx.md | 4 +++- appendix/repo/nodejs.md | 2 +- appendix/repo/redis.md | 4 +++- appendix/repo/wordpress.md | 5 +++-- 7 files changed, 19 insertions(+), 9 deletions(-) diff --git a/appendix/repo/centos.md b/appendix/repo/centos.md index 44db1ab44..a17b2f5f3 100644 --- a/appendix/repo/centos.md +++ b/appendix/repo/centos.md @@ -3,7 +3,7 @@ ### 基本信息 [CentOS](https://en.wikipedia.org/wiki/CentOS) 是流行的 Linux 发行版,其软件包大多跟 RedHat 系列保持一致。 -该仓库位于 https://hub.docker.com/_/centos/,提供了 CentOS 从 5 ~ 7 各个版本的镜像。 +该仓库位于 https://hub.docker.com/_/centos/ ,提供了 CentOS 从 5 ~ 7 各个版本的镜像。 ### 使用方法 默认会启动一个最小化的 CentOS 环境。 @@ -56,3 +56,5 @@ LABEL name="CentOS Base Image" \ CMD ["/bin/bash"] ``` + + diff --git a/appendix/repo/mongodb.md b/appendix/repo/mongodb.md index 3ee445291..47304e8d7 100644 --- a/appendix/repo/mongodb.md +++ b/appendix/repo/mongodb.md @@ -3,7 +3,7 @@ ### 基本信息 [MongoDB](https://en.wikipedia.org/wiki/MongoDB) 是开源的 NoSQL 数据库实现。 -该仓库位于 https://hub.docker.com/_/mongo/,提供了 MongoDB 2.x ~ 3.x 各个版本的镜像。 +该仓库位于 https://hub.docker.com/_/mongo/ ,提供了 MongoDB 2.x ~ 3.x 各个版本的镜像。 ### 使用方法 默认会在 `27017` 端口启动数据库。 @@ -260,4 +260,5 @@ ENTRYPOINT ["/entrypoint.sh"] EXPOSE 27017 CMD ["mongod"] -``` \ No newline at end of file +``` + diff --git a/appendix/repo/mysql.md b/appendix/repo/mysql.md index de5b6b4e0..58f22f36d 100644 --- a/appendix/repo/mysql.md +++ b/appendix/repo/mysql.md @@ -3,7 +3,7 @@ ### 基本信息 [MySQL](https://en.wikipedia.org/wiki/MySQL) 是开源的关系数据库实现。 -该仓库位于 https://hub.docker.com/_/mysql/,提供了 MySQL 各个版本的镜像,包括 5.6 系列、5.7 系列等。 +该仓库位于 https://hub.docker.com/_/mysql/ ,提供了 MySQL 各个版本的镜像,包括 5.6 系列、5.7 系列等。 ### 使用方法 默认会在 `3306` 端口启动数据库。 @@ -122,3 +122,5 @@ ENTRYPOINT ["/entrypoint.sh"] EXPOSE 3306 CMD ["mysqld", "--datadir=/var/lib/mysql", "--user=mysql"] ``` + + diff --git a/appendix/repo/nginx.md b/appendix/repo/nginx.md index ff889225e..62455d256 100644 --- a/appendix/repo/nginx.md +++ b/appendix/repo/nginx.md @@ -3,7 +3,7 @@ ### 基本信息 [Nginx](https://en.wikipedia.org/wiki/Nginx) 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。 -该仓库位于 https://hub.docker.com/_/nginx/,提供了 Nginx 1.0 ~ 1.11.x 各个版本的镜像。 +该仓库位于 https://hub.docker.com/_/nginx/ ,提供了 Nginx 1.0 ~ 1.11.x 各个版本的镜像。 ### 使用方法 下面的命令将作为一个静态页面服务器启动。 @@ -99,3 +99,5 @@ EXPOSE 80 443 CMD ["nginx", "-g", "daemon off;"] ``` + + diff --git a/appendix/repo/nodejs.md b/appendix/repo/nodejs.md index 55295a658..a2993b058 100644 --- a/appendix/repo/nodejs.md +++ b/appendix/repo/nodejs.md @@ -3,7 +3,7 @@ ### 基本信息 [Node.js](https://en.wikipedia.org/wiki/Node.js)是基于 JavaScript 的可扩展服务端和网络软件开发平台。 -该仓库位于 https://hub.docker.com/_/node/,提供了 Node.js 0.10 ~ 6.3.x 各个版本的镜像。 +该仓库位于 https://hub.docker.com/_/node/ ,提供了 Node.js 0.10 ~ 6.3.x 各个版本的镜像。 ### 使用方法 在项目中创建一个 Dockerfile。 diff --git a/appendix/repo/redis.md b/appendix/repo/redis.md index cadeefc09..a3771e628 100644 --- a/appendix/repo/redis.md +++ b/appendix/repo/redis.md @@ -3,7 +3,7 @@ ### 基本信息 [Redis](https://en.wikipedia.org/wiki/Redis) 是开源的内存 Key-Value 数据库实现。 -该仓库位于 https://hub.docker.com/_/redis/,提供了 Redis 3.x 各个版本的镜像。 +该仓库位于 https://hub.docker.com/_/redis/ ,提供了 Redis 3.x 各个版本的镜像。 ### 使用方法 默认会在 `6379` 端口启动数据库。 @@ -139,3 +139,5 @@ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD [ "redis-server" ] ``` + + diff --git a/appendix/repo/wordpress.md b/appendix/repo/wordpress.md index 1250db51e..1bad0ab39 100644 --- a/appendix/repo/wordpress.md +++ b/appendix/repo/wordpress.md @@ -3,7 +3,7 @@ ### 基本信息 [WordPress](https://en.wikipedia.org/wiki/WordPress) 是开源的 Blog 和内容管理系统框架,它基于 PhP 和 MySQL。 -该仓库位于 https://hub.docker.com/_/wordpress/,提供了 WordPress 4.x 版本的镜像。 +该仓库位于 https://hub.docker.com/_/wordpress/ ,提供了 WordPress 4.x 版本的镜像。 ### 使用方法 启动容器需要 MySQL 的支持,默认端口为 `80`。 @@ -114,4 +114,5 @@ COPY docker-entrypoint.sh /entrypoint.sh # grr, ENTRYPOINT resets CMD now ENTRYPOINT ["/entrypoint.sh"] CMD ["apache2-foreground"] -``` \ No newline at end of file +``` + From bcd5fa4e58fd680b41b9e237a162aadf30f9d94b Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Thu, 9 Feb 2017 09:36:05 +0800 Subject: [PATCH 019/611] Add version 2 release news --- README.md | 6 +++--- _images/docker_primer2.png | Bin 0 -> 1457638 bytes 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 _images/docker_primer2.png diff --git a/README.md b/README.md index f1c180a4f..a0337900c 100644 --- a/README.md +++ b/README.md @@ -33,12 +33,12 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。欢迎参 * QQ 群 X (可加):366203473 ## 进阶学习 -![Docker 技术入门与实战](_images/docker_primer.png) +![Docker 技术入门与实战](_images/docker_primer2.png) -《[Docker 技术入门与实战](http://item.jd.com/11598400.html)》一书已经正式出版,包含大量第一手实战案例和更为深入的技术剖析,欢迎大家阅读使用并反馈建议。 +《[Docker 技术入门与实战](http://item.jd.com/11598400.html)》第二版已经正式出版,针对第一版进行内容升级,欢迎大家阅读使用并反馈建议。 +* [京东图书](https://item.jd.com/12121728.html) * [China-Pub](http://product.china-pub.com/3770833) -* [京东图书](http://item.jd.com/11598400.html) * [当当图书](http://product.dangdang.com/23620853.html) * [亚马逊图书](http://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B00R5MYI7C/ref=lh_ni_t?ie=UTF8&psc=1&smid=A1AJ19PSB66TGU) diff --git a/_images/docker_primer2.png b/_images/docker_primer2.png new file mode 100644 index 0000000000000000000000000000000000000000..52c8c480dedce38cfdaf7e3c34eab9832b8031c4 GIT binary patch literal 1457638 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 uT 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 z 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

v`WwyRLll9OA`WIqtI$v8AswJ~UXW>AlAd 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]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

}B%)df;Ps}}8ExKkv3;s`4i{UCzG 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 z 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�q&rz*SiESjkNkMY#aA$mtxAZ4uRi>4?f`D} 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 F{{_(mzAXR% literal 0 HcmV?d00001 From 80a64ac0a4e7b37fd40cc5b048bc4fd8825d343f Mon Sep 17 00:00:00 2001 From: gerryke <25449006@qq.com> Date: Thu, 9 Feb 2017 17:12:26 +0800 Subject: [PATCH 020/611] =?UTF-8?q?=E4=BF=AE=E6=94=B9Entrypoint=E4=BB=8B?= =?UTF-8?q?=E7=BB=8D=E7=AB=A0=E8=8A=82=E4=B8=AD=E9=94=99=E5=88=AB=E5=AD=97?= =?UTF-8?q?=E2=80=9C=E8=BF=9C=E4=BA=86=E2=80=9D=E4=B8=BA=E2=80=9C=E5=8E=9F?= =?UTF-8?q?=E6=9D=A5=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image/dockerfile/entrypoint.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/dockerfile/entrypoint.md b/image/dockerfile/entrypoint.md index c652de7db..1dc7b70a2 100644 --- a/image/dockerfile/entrypoint.md +++ b/image/dockerfile/entrypoint.md @@ -38,7 +38,7 @@ $ docker run myip -i docker: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"-i\\\": executable file not found in $PATH\"\n". ``` -我们可以看到可执行文件找不到的报错,`executable file not found`。之前我们说过,跟在镜像名后面的是 `command`,运行时会替换 `CMD` 的默认值。因此这里的 `-i` 替换了远了的 `CMD`,而不是添加在原来的 `curl -s http://ip.cn` 后面。而 `-i` 根本不是命令,所以自然找不到。 +我们可以看到可执行文件找不到的报错,`executable file not found`。之前我们说过,跟在镜像名后面的是 `command`,运行时会替换 `CMD` 的默认值。因此这里的 `-i` 替换了原来的 `CMD`,而不是添加在原来的 `curl -s http://ip.cn` 后面。而 `-i` 根本不是命令,所以自然找不到。 那么如果我们希望加入 `-i` 这参数,我们就必须重新完整的输入这个命令: From ef6583229122b975380d22efd91c155ae36f12d3 Mon Sep 17 00:00:00 2001 From: Tao Wang Date: Thu, 16 Feb 2017 14:11:24 +1100 Subject: [PATCH 021/611] Fix basic concept chapter's typo, make it clearer Signed-off-by: Tao Wang --- basic_concept/repository.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basic_concept/repository.md b/basic_concept/repository.md index cdfb602a9..dfbfbc04a 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -4,7 +4,7 @@ 一个 **Docker Registry** 中可以包含多个**仓库**(Repository);每个仓库可以包含多个**标签**(Tag);每个标签对应一个镜像。 -一般而言,一个仓库包含的是同一个软件的不同版本的镜像,而标签则用于对应于软件的的不同版本。我们可以通过 `<仓库名>:<标签>` 的格式来指定具体是哪个版本的镜像。如果不给出标签,将以 `latest` 作为默认标签。 +通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 `<仓库名>:<标签>` 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 `latest` 作为默认标签。 以 [Ubuntu 镜像](https://hub.docker.com/_/ubuntu/) 为例,`ubuntu` 是仓库的名字,其内包含有不同的版本标签,如,`14.04`, `16.04`。我们可以通过 `ubuntu:14.04`,或者 `ubuntu:16.04` 来具体指定所需哪个版本的镜像。如果忽略了标签,比如 `ubuntu`,那将视为 `ubuntu:latest`。 From f4bb30b9f44ea6233c12514c8c9ca82251bbcfd0 Mon Sep 17 00:00:00 2001 From: Jason <374632897@qq.com> Date: Sat, 18 Feb 2017 14:35:44 +0800 Subject: [PATCH 022/611] =?UTF-8?q?=E8=87=B3=E4=BA=8E=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E7=BD=AE=E4=BA=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image/build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/build.md b/image/build.md index 8faf5a266..11a0aca7c 100644 --- a/image/build.md +++ b/image/build.md @@ -164,7 +164,7 @@ Sending build context to Docker daemon 2.048 kB 理解构建上下文对于镜像构建是很重要的,避免犯一些不应该的错误。比如有些初学者在发现 `COPY /opt/xxxx /app` 不工作后,于是干脆将 `Dockerfile` 放到了硬盘根目录去构建,结果发现 `docker build` 执行后,在发送一个几十 GB 的东西,极为缓慢而且很容易构建失败。那是因为这种做法是在让 `docker build` 打包整个硬盘,这显然是使用错误。 -一般来说,应该会将 `Dockerfile` 至于一个空目录下,或者项目根目录下。如果该目录下没有所需文件,那么应该把所需文件复制一份过来。如果目录下有些东西确实不希望构建时传给 Docker 引擎,那么可以用 `.gitignore` 一样的语法写一个 `.dockerignore`,该文件是用于剔除不需要作为上下文传递给 Docker 引擎的。 +一般来说,应该会将 `Dockerfile` 置于一个空目录下,或者项目根目录下。如果该目录下没有所需文件,那么应该把所需文件复制一份过来。如果目录下有些东西确实不希望构建时传给 Docker 引擎,那么可以用 `.gitignore` 一样的语法写一个 `.dockerignore`,该文件是用于剔除不需要作为上下文传递给 Docker 引擎的。 那么为什么会有人误以为 `.` 是指定 `Dockerfile` 所在目录呢?这是因为在默认情况下,如果不额外指定 `Dockerfile` 的话,会将上下文目录下的名为 `Dockerfile` 的文件作为 Dockerfile。 From aee43fea12b9edd71938ab680321e24216b6e18c Mon Sep 17 00:00:00 2001 From: Jason <374632897@qq.com> Date: Sat, 18 Feb 2017 21:02:39 +0800 Subject: [PATCH 023/611] =?UTF-8?q?=E6=98=AF=E7=94=A8=20->=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image/dockerfile/arg.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/dockerfile/arg.md b/image/dockerfile/arg.md index c203bd2ef..fb7be3d80 100644 --- a/image/dockerfile/arg.md +++ b/image/dockerfile/arg.md @@ -2,7 +2,7 @@ 格式:`ARG <参数名>[=<默认值>]` -构建参数和 `ENV` 的效果一样,都是设置环境变量。所不同的是,`ARG` 所设置的构建环境的环境变量,在将来容器运行时是不会存在这些环境变量的。但是不要因此就是用 `ARG` 保存密码之类的信息,因为 `docker history` 还是可以看到所有值的。 +构建参数和 `ENV` 的效果一样,都是设置环境变量。所不同的是,`ARG` 所设置的构建环境的环境变量,在将来容器运行时是不会存在这些环境变量的。但是不要因此就使用 `ARG` 保存密码之类的信息,因为 `docker history` 还是可以看到所有值的。 `Dockerfile` 中的 `ARG` 指令是定义参数名称,以及定义其默认值。该默认值可以在构建命令 `docker build` 中用 `--build-arg <参数名>=<值>` 来覆盖。 From 394b6622f923cb6e9e7065ebb87aed2a0fbf27b3 Mon Sep 17 00:00:00 2001 From: Jason <374632897@qq.com> Date: Sat, 18 Feb 2017 22:07:35 +0800 Subject: [PATCH 024/611] =?UTF-8?q?=E5=9C=A8=20->=20=E5=86=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image/other.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/other.md b/image/other.md index 24f4c1a88..248e60dca 100644 --- a/image/other.md +++ b/image/other.md @@ -38,7 +38,7 @@ f477a6e18e98 About a minute ago 214.9 MB ### `docker save` 和 `docker load` -Docker 还提供了 `docker load` 和 `docker save` 命令,用以将镜像保存为一个 `tar` 文件,然后传输到另一个位置上,在加载进来。这是在没有 Docker Registry 时的做法,现在已经不推荐,镜像迁移应该直接使用 Docker Registry,无论是直接使用 Docker Hub 还是使用内网私有 Registry 都可以。 +Docker 还提供了 `docker load` 和 `docker save` 命令,用以将镜像保存为一个 `tar` 文件,然后传输到另一个位置上,再加载进来。这是在没有 Docker Registry 时的做法,现在已经不推荐,镜像迁移应该直接使用 Docker Registry,无论是直接使用 Docker Hub 还是使用内网私有 Registry 都可以。 #### 保存镜像 From a503c0708cca537eb87295df18dc51b5b432aed3 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 22 Feb 2017 10:17:02 +0800 Subject: [PATCH 025/611] Update china-pub link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a0337900c..987b5f2b1 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。欢迎参 《[Docker 技术入门与实战](http://item.jd.com/11598400.html)》第二版已经正式出版,针对第一版进行内容升级,欢迎大家阅读使用并反馈建议。 * [京东图书](https://item.jd.com/12121728.html) -* [China-Pub](http://product.china-pub.com/3770833) +* [China-Pub](http://product.china-pub.com/5089907) * [当当图书](http://product.dangdang.com/23620853.html) * [亚马逊图书](http://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B00R5MYI7C/ref=lh_ni_t?ie=UTF8&psc=1&smid=A1AJ19PSB66TGU) From 34fc0e801ac6c9ae5ddc8144d703c91e9fd29c7c Mon Sep 17 00:00:00 2001 From: Howld <10z98@sina.cn> Date: Thu, 2 Mar 2017 19:58:32 +0800 Subject: [PATCH 026/611] #160 --- image/dockerfile/env.md | 2 +- image/other.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/image/dockerfile/env.md b/image/dockerfile/env.md index 6237d54aa..58108bdfb 100644 --- a/image/dockerfile/env.md +++ b/image/dockerfile/env.md @@ -5,7 +5,7 @@ * `ENV ` * `ENV = =...` -这个指令很简单,就是设置环境变量而已,无论是后面的其它指令,如 `RUN`,还是运行时的应用,都可以直接使用使用这里定义的环境变量。 +这个指令很简单,就是设置环境变量而已,无论是后面的其它指令,如 `RUN`,还是运行时的应用,都可以直接使用这里定义的环境变量。 ```Dockerfie ENV VERSION=1.0 DEBUG=on \ diff --git a/image/other.md b/image/other.md index 248e60dca..b5ca9d2ff 100644 --- a/image/other.md +++ b/image/other.md @@ -20,7 +20,7 @@ sha256:f477a6e18e989839d25223f301ef738b69621c4877600ae6467c4e5289822a79B/78.42 M 这条命令自动下载了 `ubuntu-14.04-x86_64-minimal.tar.gz` 文件,并且作为根文件系统展开导入,并保存为镜像 `openvz/ubuntu:14.04`。 -导入成功后,我们可以用 `docker ps` 看到这个导入的镜像: +导入成功后,我们可以用 `docker images` 看到这个导入的镜像: ```bash $ docker images openvz/ubuntu From d032b463e5bc3ddd0eef661f10ae8b906d397647 Mon Sep 17 00:00:00 2001 From: Rui Ma Date: Tue, 14 Mar 2017 17:06:48 +0800 Subject: [PATCH 027/611] Update workdir.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit workdir 可以自动帮忙建立目录 --- image/dockerfile/workdir.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/dockerfile/workdir.md b/image/dockerfile/workdir.md index 27fc7907f..243b1b686 100644 --- a/image/dockerfile/workdir.md +++ b/image/dockerfile/workdir.md @@ -2,7 +2,7 @@ 格式为 `WORKDIR <工作目录路径>`。 -使用 `WORKDIR` 指令可以来指定工作目录(或者称为当前目录),以后各层的当前目录就被改为指定的目录,该目录需要已经存在,`WORKDIR` 并不会帮你建立目录。 +使用 `WORKDIR` 指令可以来指定工作目录(或者称为当前目录),以后各层的当前目录就被改为指定的目录,如该目录不存在,`WORKDIR` 会帮你建立目录。 之前提到一些初学者常犯的错误是把 `Dockerfile` 等同于 Shell 脚本来书写,这种错误的理解还可能会导致出现下面这样的错误: From 33b152c18f1ffdfc321d7a0d6e3a98a98af721b6 Mon Sep 17 00:00:00 2001 From: shijinzhan Date: Wed, 15 Mar 2017 09:48:29 +0800 Subject: [PATCH 028/611] =?UTF-8?q?=E6=A0=87=E9=A2=98=E7=BB=86=E8=8A=82?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- container/run.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/container/run.md b/container/run.md index 45dea0840..4c9ea7999 100644 --- a/container/run.md +++ b/container/run.md @@ -1,9 +1,9 @@ -##启动容器 +## 启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 -###新建并启动 +### 新建并启动 所需要的命令主要为 `docker run`。 例如,下面的命令输出一个 “Hello World”,之后终止容器。 @@ -38,7 +38,7 @@ bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr * 执行用户指定的应用程序 * 执行完毕后容器被终止 -###启动已终止容器 +### 启动已终止容器 可以利用 `docker start` 命令,直接将一个已经终止的容器启动运行。 容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。除此之外,并没有其它的资源。可以在伪终端中利用 `ps` 或 `top` 来查看进程信息。 From 121c23e8f13a53a463696cf9fc0f9310be9a4b1e Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Tue, 21 Mar 2017 09:22:20 +0800 Subject: [PATCH 029/611] Add new book link --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 987b5f2b1..0fbe2cb61 100644 --- a/README.md +++ b/README.md @@ -35,12 +35,10 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。欢迎参 ## 进阶学习 ![Docker 技术入门与实战](_images/docker_primer2.png) -《[Docker 技术入门与实战](http://item.jd.com/11598400.html)》第二版已经正式出版,针对第一版进行内容升级,欢迎大家阅读使用并反馈建议。 +《[Docker 技术入门与实战](http://item.jd.com/12121728.html)》第二版已经正式出版,针对初版进行内容升级,欢迎大家阅读使用并反馈建议。 * [京东图书](https://item.jd.com/12121728.html) * [China-Pub](http://product.china-pub.com/5089907) -* [当当图书](http://product.dangdang.com/23620853.html) -* [亚马逊图书](http://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B00R5MYI7C/ref=lh_ni_t?ie=UTF8&psc=1&smid=A1AJ19PSB66TGU) ## 鼓励项目 From 293cd252710366ea7c47fd27be3880973de5e300 Mon Sep 17 00:00:00 2001 From: wg1j Date: Sat, 22 Apr 2017 00:27:44 +0800 Subject: [PATCH 030/611] Fixed url and add footnote to new Docker Store --- image/build.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/image/build.md b/image/build.md index 11a0aca7c..3e8bdf75c 100644 --- a/image/build.md +++ b/image/build.md @@ -27,8 +27,8 @@ RUN echo '

Hello, Docker!

' > /usr/share/nginx/html/index.html 所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。就像我们之前运行了一个 `nginx` 镜像的容器,再进行修改一样,基础镜像是必须指定的。而 `FROM` 就是指定**基础镜像**,因此一个 `Dockerfile` 中 `FROM` 是必备的指令,并且必须是第一条指令。 -在 Docker Hub () 上有非常多的高质量的官方镜像, -有可以直接拿来使用的服务类的镜像,如 [`nginx`](https://hub.docker.com/_/nginx/)、[`redis`](https://hub.docker.com/_/redis/)、[`mongo`](https://hub.docker.com/_/mongo/)、[`mysql`](https://hub.docker.com/_/mongo/)、[`httpd`](https://hub.docker.com/_/httpd/)、[`php`](https://hub.docker.com/_/php/)、[`tomcat`](https://hub.docker.com/_/tomcat/) 等; +在 [Docker Hub](https://hub.docker.com/explore/)[^1] 上有非常多的高质量的官方镜像, +有可以直接拿来使用的服务类的镜像,如 [`nginx`](https://hub.docker.com/_/nginx/)、[`redis`](https://hub.docker.com/_/redis/)、[`mongo`](https://hub.docker.com/_/mongo/)、[`mysql`](https://hub.docker.com/_/mysql/)、[`httpd`](https://hub.docker.com/_/httpd/)、[`php`](https://hub.docker.com/_/php/)、[`tomcat`](https://hub.docker.com/_/tomcat/) 等; 也有一些方便开发、构建、运行各种语言应用的镜像,如 [`node`](https://hub.docker.com/_/node/)、[`openjdk`](https://hub.docker.com/_/openjdk/)、[`python`](https://hub.docker.com/_/python/)、[`ruby`](https://hub.docker.com/_/ruby/)、[`golang`](https://hub.docker.com/_/golang/) 等。 可以在其中寻找一个最符合我们最终目标的镜像为基础镜像进行定制。 如果没有找到对应服务的镜像,官方镜像中还提供了一些更为基础的操作系统镜像,如 [`ubuntu`](https://hub.docker.com/_/ubuntu/)、[`debian`](https://hub.docker.com/_/debian/)、[`centos`](https://hub.docker.com/_/centos/)、[`fedora`](https://hub.docker.com/_/fedora/)、[`alpine`](https://hub.docker.com/_/alpine/) 等,这些操作系统的软件库为我们提供了更广阔的扩展空间。 @@ -220,3 +220,5 @@ $ docker build - < context.tar.gz ``` 如果发现标准输入的文件格式是 `gzip`、`bzip2` 以及 `xz` 的话,将会使其为上下文压缩包,直接将其展开,将里面视为上下文,并开始构建。 + +[^1]: [Docker Store](https://store.docker.com/)是发现公共Docker内容,镜像发布和发行软件的新地方 From 16ef5d63ba8f3a546100f082a8e2c78d429f2e07 Mon Sep 17 00:00:00 2001 From: Aleen Date: Mon, 24 Apr 2017 15:59:27 +0800 Subject: [PATCH 031/611] Adding a plugin named `page-treeview` --- book.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/book.json b/book.json index a776c7b74..e9e4ffe37 100644 --- a/book.json +++ b/book.json @@ -3,7 +3,8 @@ "author": "yeasy", "plugins": [ "image-captions", - "github-buttons" + "github-buttons", + "page-treeview" ], "pluginsConfig": { "image-captions": { @@ -19,6 +20,11 @@ "watch" ], "size": "small" - } + }, + "page-treeview": { + "copyright": "Copyright © yeasy", + "minHeaderCount": "2", + "minHeaderDeep": "2" + } } } From 0a0d4a015ea4f666d62416f40093be2693af1d9e Mon Sep 17 00:00:00 2001 From: happy wang Date: Thu, 27 Apr 2017 18:53:06 +0800 Subject: [PATCH 032/611] =?UTF-8?q?=E6=9B=B4=E6=96=B0mirror.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增macOS下配置加速器的方法 --- install/mirror.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/install/mirror.md b/install/mirror.md index e64885838..24f639532 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -53,6 +53,21 @@ $ sudo systemctl restart docker ``` 编辑完成,点击Apply保存后Docker服务会重新启动。 +### macOS + +对于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` 参数说明配置成功。 From 09d6c9f1a1e7e88ba61782a76a3b5e7958c82a8b Mon Sep 17 00:00:00 2001 From: Xingxian LI Date: Mon, 1 May 2017 16:34:54 +0200 Subject: [PATCH 033/611] improve nsenter example --- container/enter.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/container/enter.md b/container/enter.md index f55de0629..a9d3744a3 100644 --- a/container/enter.md +++ b/container/enter.md @@ -41,6 +41,11 @@ PID=$(docker inspect --format "{{ .State.Pid }}" ) ``` $ nsenter --target $PID --mount --uts --ipc --net --pid ``` +如果无法通过以上命令连接到这个容器,有可能是因为宿主的默认shell在容器中并不存在,比如zsh,可以使用如下命令显式地使用bash。 +``` +$ nsenter --target $pid --mount --uts --ipc --net --pid -- /usr/bin/env \ +--ignore-environment HOME=/root /bin/bash --login +``` 下面给出一个完整的例子。 ``` $ sudo docker run -idt ubuntu From 6faf2b7b0ebb74ce3d77f9229d0c40c4cc647fd1 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Tue, 2 May 2017 23:17:58 +0800 Subject: [PATCH 034/611] Update swarm and mesos chapter --- README.md | 2 +- SUMMARY.md | 28 +- mesos/README.md | 7 +- {_images => mesos/_images}/marathon.png | Bin mesos/_images/marathon_basic0.png | Bin 0 -> 27087 bytes .../_images}/mesos-architecture.png | Bin {_images => mesos/_images}/mesos.png | Bin mesos/architecture.md | 85 ++-- mesos/configuration.md | 260 ++++++++----- mesos/framework.md | 76 +++- mesos/installation.md | 366 ++++++++++++++---- mesos/intro.md | 20 +- mesos/monitor.md | 110 ++++++ mesos/summary.md | 7 + revision.md | 6 + swarm/README.md | 8 +- swarm/_images/docker_swarm.png | Bin 0 -> 124054 bytes swarm/_images/swarm.png | Bin 0 -> 105359 bytes swarm/filter.md | 158 ++++---- swarm/install.md | 90 ++++- swarm/intro.md | 18 +- swarm/scheduling.md | 120 +++--- swarm/servicebackend.md | 97 +++++ swarm/summary.md | 10 + swarm/usage.md | 269 +++++++------ 25 files changed, 1209 insertions(+), 528 deletions(-) rename {_images => mesos/_images}/marathon.png (100%) create mode 100644 mesos/_images/marathon_basic0.png rename {_images => mesos/_images}/mesos-architecture.png (100%) rename {_images => mesos/_images}/mesos.png (100%) create mode 100644 mesos/monitor.md create mode 100644 mesos/summary.md create mode 100644 swarm/_images/docker_swarm.png create mode 100644 swarm/_images/swarm.png create mode 100644 swarm/servicebackend.md create mode 100644 swarm/summary.md diff --git a/README.md b/README.md index 0fbe2cb61..ffbece6f0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Docker — 从入门到实践 -0.8.1 +0.8.2 [Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本! 使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! diff --git a/SUMMARY.md b/SUMMARY.md index e2a11990f..20a18d377 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -84,7 +84,7 @@ * [联合文件系统](underly/ufs.md) * [容器格式](underly/container_format.md) * [网络](underly/network.md) -* [Docker Compose 项目](compose/README.md) +* [Docker 三剑客之 Compose 项目](compose/README.md) * [简介](compose/intro.md) * [安装与卸载](compose/install.md) * [使用](compose/usage.md) @@ -93,16 +93,18 @@ * [实战 Django](compose/django.md) * [实战 Rails](compose/rails.md) * [实战 wordpress](compose/wordpress.md) -* [Docker Machine 项目](machine/README.md) +* [Docker 三剑客之 Machine 项目](machine/README.md) * [简介](machine/intro.md) * [安装](machine/install.md) * [使用](machine/usage.md) -* [Docker Swarm 项目](swarm/README.md) - * [简介](swarm/intro.md) - * [安装](swarm/install.md) - * [使用](swarm/usage.md) - * [调度器](swarm/scheduling.md) - * [过滤器](swarm/filter.md) +* [Docker 三剑客之 Docker Swarm](swarm/README.md) + * [Swarm 简介](swarm/intro.md) + * [安装 Swarm](swarm/install.md) + * [使用 Swarm](swarm/usage.md) + * [使用其它服务发现后端](swarm/servicebackend.md) + * [Swarm 中的调度器](swarm/scheduling.md) + * [Swarm 中的过滤器](swarm/filter.md) + * [本章小结](swarm/summary.md) * [Etcd 项目](etcd/README.md) * [简介](etcd/intro.md) * [安装](etcd/install.md) @@ -117,12 +119,14 @@ * [基本概念](kubernetes/concepts.md) * [kubectl 使用](kubernetes/kubectl.md) * [架构设计](kubernetes/design.md) -* [Mesos 项目](mesos/README.md) - * [简介](mesos/intro.md) +* [Mesos - 优秀的集群资源调度平台](mesos/README.md) + * [Mesos 简介](mesos/intro.md) * [安装与使用](mesos/installation.md) * [原理与架构](mesos/architecture.md) - * [配置项解析](mesos/configuration.md) - * [常见框架](mesos/framework.md) + * [Mesos 配置项解析](mesos/configuration.md) + * [日志与监控](mesos/monitor.md) + * [常见应用框架](mesos/framework.md) + * [本章小结](mesos/summary.md) * [容器与云计算](cloud/README.md) * [简介](cloud/intro.md) * [亚马逊云](cloud/aws.md) diff --git a/mesos/README.md b/mesos/README.md index 012b3e1c8..ec9b7f4e1 100644 --- a/mesos/README.md +++ b/mesos/README.md @@ -1 +1,6 @@ -# Mesos 项目 +# Mesos - 优秀的集群资源调度平台 +Mesos 项目是源自 UC Berkeley 的对集群资源进行抽象和管理的开源项目,类似于操作系统内核,用户可以使用它很容易地实现分布式应用的自动化调度。 + +同时,Mesos 自身也很好地结合和主持了 Docker 等相关容器技术,基于 Mesos 已有的大量应用框架,可以实现用户应用的快速上线。 + +本章将介绍 Mesos 项目的安装、使用、配置以及核心的原理知识。 \ No newline at end of file diff --git a/_images/marathon.png b/mesos/_images/marathon.png similarity index 100% rename from _images/marathon.png rename to mesos/_images/marathon.png diff --git a/mesos/_images/marathon_basic0.png b/mesos/_images/marathon_basic0.png new file mode 100644 index 0000000000000000000000000000000000000000..2b8f920a0605a322030c565002425ff75baf1051 GIT binary patch literal 27087 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。 + +基本调度过程如下: -#### 两层调度算法: -master 先调度一大块资源给某个 framework,framework 自己再实现内部的细粒度调度。 +* 首先,slave 节点会周期性汇报自己可用的资源给 master; +* 某个时候,master 收到应用框架发来的资源请求,根据调度策略,计算出来一个资源 offer 给 framework; +* framework 收到 offer 后可以决定要不要,如果接受的话,返回一个描述,说明自己希望如何使用和分配这些资源来运行某些任务(可以说明只希望使用部分资源,则多出来的会被 master 收回); +* 最后,master 则根据 framework 答复的具体分配情况发送给 slave,以使用 framework 的 executor 来按照分配的资源策略执行任务。 -调度机制支持插件。默认是 DRF。 +具体给出一个例子,某从节点向主节点汇报自己有 `<4 CPU, 8 GB Mem>` 的空闲资源,同时,主节点看到某个应用框架请求 `<3 CPU, 6 GB Mem>`,就创建一个 offer `` 把满足的资源发给应用框架。应用框架(的调度器)收到 offer 后觉得可以接受,就回复主节点,并告诉主节点希望运行两个任务:一个占用 `<1 CPU, 2 GB Mem>`,一个占用 一个占用 `<2 CPU, 4 GB Mem>`。主节点收到任务信息后分配任务到从节点上进行运行(实际上是应用框架的执行器来负责执行任务)。任务运行结束后资源可以被释放出来。 -#### 基本调度过程 -调度通过 offer 方式交互: +剩余的资源还可以继续分配给其他应用框架或任务。 -* master 提供一个 offer(一组资源) 给 framework; -* framework 可以决定要不要,如果接受的话,返回一个描述,说明自己希望如何使用和分配这些资源(可以说明只希望使用部分资源,则多出来的会被 master 收回); -* master 则根据 framework 的分配情况发送给 slave,以使用 framework 的 executor 来按照分配的资源策略执行任务。 +应用框架在收到 offer 后,如果 offer 不满足自己的偏好(例如希望继续使用上次的 slave 节点),则可以选择拒绝 offer,等待 master 发送新的 offer 过来。另外,可以通过过滤器机制来加快资源的分配过程。 #### 过滤器 -framework 可以通过过滤器机制告诉 master 它的资源偏好,比如希望分配过来的 offer 有哪个资源,或者至少有多少资源。 +framework 可以通过过滤器机制告诉 master 它的资源偏好,比如希望分配过来的 offer 有哪个资源,或者至少有多少资源等。 -主要是为了加速资源分配的交互过程。 +过滤器可以避免某些应用资源长期分配不到所需要的资源的情况,加速整个资源分配的交互过程。 #### 回收机制 -master 可以通过回收计算节点上的任务来动态调整长期任务和短期任务的分布。 +为了避免某些任务长期占用集群中资源,Mesos 也支持回收机制。 +主节点可以定期回收计算节点上的任务所占用的资源,可以动态调整长期任务和短期任务的分布。 ### HA -#### master -master 节点存在单点失效问题,所以肯定要上 HA,目前主要是使用 zookpeer 来热备份。 +从架构上看,最为核心的节点是 master 节点。除了使用 ZooKeeper 来解决单点失效问题之外,Mesos 的 master 节点自身还提供了很高的鲁棒性。 -同时 master 节点可以通过 slave 和 framework 发来的消息重建内部状态(具体能有多快呢?这里不使用数据库可能是避免引入复杂度。)。 +Mesos master 节点在重启后,可以动态通过 slave 和 framework 发来的消息重建内部状态,虽然可能导致一定的时延,但这避免了传统控制节点对数据库的依赖。 -#### framework 通知 -framework 中相关的失效,master 将发给它的 scheduler 来通知。 +当然,为了减少 master 节点的负载过大,在集群中 slave 节点数目较多的时候,要避免把各种通知的周期配置的过短。实践中,可以通过部署多个 Mesos 集群来保持单个集群的规模不要过大。 diff --git a/mesos/configuration.md b/mesos/configuration.md index 5b447d80c..bacec5daa 100644 --- a/mesos/configuration.md +++ b/mesos/configuration.md @@ -1,108 +1,172 @@ ## Mesos 配置项解析 -Mesos 的 [配置项](http://mesos.apache.org/documentation/latest/configuration/) 可以通过启动时候传递参数或者配置目录下文件的方式给出(推荐方式,一目了然)。 +Mesos 支持在运行时通过命令行参数形式提供的配置项。如果是通过系统服务方式启动,也支持以配置文件或环境变量方式给出。当然,实际上最终是提取为命令行参数传递给启动命令。 -分为三种类型:通用项(master 和 slave 都支持),只有 master 支持的,以及只有 slave 支持的。 +Mesos 的配置项分为三种类型:通用项(master 和 slave 都支持),只有 master 支持的,以及只有 slave 支持的。 +Mesos 配置项比较多,下面对一些重点配置进行描述。少数为必备项,意味着必须给出配置值;另外一些是可选配置,自己带有默认值。 ### 通用项 -* `--ip=VALUE` 监听的 IP 地址 -* `--firewall_rules=VALUE` endpoint 防火墙规则,`VALUE` 可以是 JSON 格式或者存有 JSON 格式的文件路径。 -* `--log_dir=VALUE` 日志文件路径,默认不存储日志到本地 -* `--logbufsecs=VALUE` buffer 多少秒的日志,然后写入本地 -* `--logging_level=VALUE` 日志记录的最低级别 -* `--port=VALUE` 监听的端口,master 默认是 5050,slave 默认是 5051。 +通用项数量不多,主要涉及到服务绑定地址和日志信息等,包括: + +* `--advertise_ip=VALUE` 可以通过该地址访问到服务,比如应用框架访问到 master 节点; +* `--advertise_port=VALUE` 可以通过该端口访问到服务; +* `--external_log_file=VALUE` 指定存储日志的外部文件,可通过 Web 界面查看; +* `--firewall_rules=VALUE` endpoint 防火墙规则,`VALUE` 可以是 JSON 格式或者存有 JSON 格式的文件路径; +* `--ip=VALUE` 服务绑定到的IP 地址,用来监听外面过来的请求; +* `--log_dir=VALUE` 日志文件路径,如果为空(默认值)则不存储日志到本地; +* `--logbufsecs=VALUE` buffer 多少秒的日志,然后写入本地; +* `--logging_level=VALUE` 日志记录的最低级别; +* `--port=VALUE` 绑定监听的端口,master 默认是 5050,slave 默认是 5051。 ### master 专属配置项 -* `--quorum=VALUE` 必备项,使用基于 replicated-Log 的注册表时,复制的个数 -* `--work_dir=VALUE` 必备项,注册表持久化信息存储位置 -* `--zk=VALUE` 必备项,zookeepr 的接口地址,支持多个地址,之间用逗号隔离,可以为文件路径 -* `--acls=VALUE` ACL 规则或所在文件 -* `--allocation_interval=VALUE` 执行 allocation 的间隔,默认为 1sec -* `--allocator=VALUE` 分配机制,默认为 HierarchicalDRF -* `--[no-]authenticate` 是否允许非认证过的 framework 注册 -* `--[no-]authenticate_slaves` 是否允许非认证过的 slaves 注册 -* `--authenticators=VALUE` 对 framework 或 salves 进行认证时的实现机制 -* `--cluster=VALUE` 集群别名 -* `--credentials=VALUE` 存储加密后凭证的文件的路径 -* `--external_log_file=VALUE` 采用外部的日志文件 -* `--framework_sorter=VALUE` 给定 framework 之间的资源分配策略 -* `--hooks=VALUE` master 中安装的 hook 模块 -* `--hostname=VALUE` master 节点使用的主机名,不配置则从系统中获取 -* `--[no-]log_auto_initialize` 是否自动初始化注册表需要的 replicated 日志 -* `--modules=VALUE` 要加载的模块,支持文件路径或者 JSON -* `--offer_timeout=VALUE` offer 撤销的超时 -* `--rate_limits=VALUE` framework 的速率限制,比如 qps -* `--recovery_slave_removal_limit=VALUE` 限制注册表恢复后可以移除或停止的 slave 数目,超出后 master 会失败,默认是 100% -* `--slave_removal_rate_limit=VALUE slave` 没有完成健康度检查时候被移除的速率上限,例如 1/10mins 代表每十分钟最多有一个 -* `--registry=VALUE` 注册表的持久化策略,默认为 `replicated_log`,还可以为 `in_memory` -* `--registry_fetch_timeout=VALUE` 访问注册表失败超时 -* `--registry_store_timeout=VALUE` 存储注册表失败超时 -* `--[no-]registry_strict` 是否按照注册表中持久化信息执行操作,默认为 false -* `--roles=VALUE` 集群中 framework 可以所属的分配角色 -* `--[no-]root_submissions` root 是否可以提交 framework,默认为 true -* `--slave_reregister_timeout=VALUE` 新的 lead master 节点选举出来后,多久之内所有的 slave 需要注册,超时的 salve 将被移除并关闭,默认为 10mins -* `--user_sorter=VALUE` 在用户之间分配资源的策略,默认为 drf -* `--webui_dir=VALUE` webui 实现的文件目录所在,默认为 `/usr/local/share/mesos/webui` -* `--weights=VALUE` 各个角色的权重 -* `--whitelist=VALUE` 文件路径,包括发送 offer 的 slave 名单,默认为 None -* `--zk_session_timeout=VALUE` session 超时,默认为 10secs -* `--max_executors_per_slave=VALUE` 配置了 `--with-network-isolator` 时可用,限制每个 slave 同时执行任务个数 +这些配置项是针对主节点上的 Mesos master 服务的,围绕高可用、注册信息、对应用框架的资源管理等。用户应该根据本地主节点资源情况来合理的配置这些选项。 + +用户可以通过 `mesos-master --help` 命令来获取所有支持的配置项信息。 + +必须指定的配置项有三个: + +* `--quorum=VALUE` 必备项,使用基于 replicated-Log 的注册表(即利用 ZooKeeper 实现 HA)时,参与投票时的最少节点个数; +* `--work_dir=VALUE` 必备项,注册表持久化信息存储位置; +* `--zk=VALUE` 如果主节点为 HA 模式,此为必备项,指定 ZooKeepr 的服务地址,支持多个地址,之间用逗号隔离,例如 `zk://username:password@host1:port1,host2:port2,.../path`。还可以为存有路径信息的文件路径。 + + +可选的配置项有: + +* `--acls=VALUE` ACL 规则或所在文件; +* `--allocation_interval=VALUE` 执行 allocation 的间隔,默认为 1sec; +* `--allocator=VALUE` 分配机制,默认为 HierarchicalDRF; +* `--[no-]authenticate` 是否允许非认证过的 framework 注册; +* `--[no-]authenticate_slaves` 是否允许非认证过的 slaves 注册; +* `--authenticators=VALUE` 对 framework 或 salves 进行认证时的实现机制; +* `--cluster=VALUE` 集群别名,显示在 Web 界面上供用户识别的; +* `--credentials=VALUE` 存储加密后凭证的文件的路径; +* `--external_log_file=VALUE` 采用外部的日志文件; +* `--framework_sorter=VALUE` 给定 framework 之间的资源分配策略; +* `--hooks=VALUE` master 中安装的 hook 模块; +* `--hostname=VALUE` master 节点使用的主机名,不配置则从系统中获取; +* `--[no-]log_auto_initialize` 是否自动初始化注册表需要的 replicated 日志; +* `--modules=VALUE` 要加载的模块,支持文件路径或者 JSON; +* `--offer_timeout=VALUE` offer 撤销的超时; +* `--rate_limits=VALUE` framework 的速率限制,即 query per second (qps); +* `--recovery_slave_removal_limit=VALUE` 限制注册表恢复后可以移除或停止的 slave 数目,超出后 master 会失败,默认是 100%; +* `--slave_removal_rate_limit=VALUE slave` 没有完成健康度检查时候被移除的速率上限,例如 1/10mins 代表每十分钟最多有一个; +* `--registry=VALUE` 注册表信息的持久化策略,默认为 `replicated_log` 存放本地,还可以为 `in_memory` 放在内存中; +* `--registry_fetch_timeout=VALUE` 访问注册表失败超时; +* `--registry_store_timeout=VALUE` 存储注册表失败超时; +* `--[no-]registry_strict` 是否按照注册表中持久化信息执行操作,默认为 false; +* `--roles=VALUE` 集群中 framework 可以所属的分配角色; +* `--[no-]root_submissions` root 是否可以提交 framework,默认为 true; +* `--slave_reregister_timeout=VALUE` 新的 lead master 节点选举出来后,多久之内所有的 slave 需要注册,超时的 salve 将被移除并关闭,默认为 10mins; +* `--user_sorter=VALUE` 在用户之间分配资源的策略,默认为 drf; +* `--webui_dir=VALUE` webui 实现的文件目录所在,默认为 `/usr/local/share/mesos/webui`; +* `--weights=VALUE` 各个角色的权重; +* `--whitelist=VALUE` 文件路径,包括发送 offer 的 slave 名单,默认为 None; +* `--zk_session_timeout=VALUE` session 超时,默认为 10secs; +* `--max_executors_per_slave=VALUE` 配置了 `--with-network-isolator` 时可用,限制每个 slave 同时执行任务个数。 + +下面给出一个由三个节点组成的 master 集群典型配置,工作目录指定为 `/tmp/mesos`,集群名称为 `mesos_cluster`。 + +```sh +mesos-master \ +--zk=zk://10.0.0.2:2181,10.0.0.3:2181,10.0.0.4:2181/mesos \ +--quorum=2 \ +--work_dir=/tmp/mesos \ +--cluster=mesos_cluster +``` + ### slave 专属配置项 -* `--master=VALUE` 必备项,master 所在地址,或 zookeeper 地址,或文件路径,可以是列表 -* `--attributes=VALUE` 机器属性 -* `--authenticatee=VALUE` 跟 master 进行认证时候的认证机制 -* `--[no-]cgroups_enable_cfs` 采用 CFS 进行带宽限制时候对 CPU 资源进行限制,默认为 false -* `--cgroups_hierarchy=VALUE` cgroups 的目录根位置,默认为 `/sys/fs/cgroup` -* `--[no-]cgroups_limit_swap` 限制内存和 swap,默认为 false,只限制内存 -* `--cgroups_root=VALUE` 根 cgroups 的名称,默认为 mesos -* `--container_disk_watch_interval=VALUE` 为容器进行硬盘配额查询的时间间隔 -* `--containerizer_path=VALUE` 采用外部隔离机制(`--isolation=external`)时候,外部容器机制执行文件路径 -* `--containerizers=VALUE` 可用的容器实现机制,包括 mesos、external、docker -* `--credential=VALUE` 加密后凭证,或者所在文件路径 -* `--default_container_image=VALUE` 采用外部容器机制时,任务缺省使用的镜像 -* `--default_container_info=VALUE` 容器信息的缺省值 -* `--default_role=VALUE` 资源缺省分配的角色 -* `--disk_watch_interval=VALUE` 硬盘使用情况的周期性检查间隔,默认为 1mins -* `--docker=VALUE` docker 执行文件的路径 -* `--docker_remove_delay=VALUE` 删除容器之前的等待时间,默认为 6hrs -* `--[no-]docker_kill_orphans` 清除孤儿容器,默认为 true -* `--docker_sock=VALUE` docker sock 地址,默认为 `/var/run/docker.sock` -* `--docker_mesos_image=VALUE` 运行 slave 的 docker 镜像,如果被配置,docker 会假定 slave 运行在一个 docker 容器里 -* `--docker_sandbox_directory=VALUE` sandbox 映射到容器里的哪个路径 -* `--docker_stop_timeout=VALUE` 停止实例后等待多久执行 kill 操作,默认为 0secs -* `--[no-]enforce_container_disk_quota` 是否启用容器配额限制,默认为 false -* `--executor_registration_timeout=VALUE` 执行应用最多可以等多久再注册到 slave,否则停止它,默认为 1mins -* `--executor_shutdown_grace_period=VALUE` 执行应用停止后,等待多久,默认为 5secs -* `--external_log_file=VALUE` 外部日志文件 -* `--frameworks_home=VALUE` 执行应用前添加的相对路径,默认为空 -* `--gc_delay=VALUE` 多久清理一次执行应用目录,默认为 1weeks -* `--gc_disk_headroom=VALUE` 调整计算最大执行应用目录年龄的硬盘留空量,默认为 0.1 -* `--hadoop_home=VALUE` hadoop 安装目录,默认为空,会自动查找 HADOOP_HOME 或者从系统路径中查找 -* `--hooks=VALUE` 安装在 master 中的 hook 模块列表 -* `--hostname=VALUE` slave 节点使用的主机名 -* `--isolation=VALUE` 隔离机制,例如 `posix/cpu,posix/mem`(默认)或者 `cgroups/cpu,cgroups/mem` -* `--launcher_dir=VALUE` mesos 可执行文件的路径,默认为 `/usr/local/lib/mesos` -* `--modules=VALUE` 要加载的模块,支持文件路径或者 JSON -* `--perf_duration=VALUE` perf 采样时长,必须小于 perf_interval,默认为 10secs -* `--perf_events=VALUE` perf 采样的事件 -* `--perf_interval=VALUE` perf 采样的时间间隔 -* `--recover=VALUE` 回复后是否重连上旧的执行应用 -* `--recovery_timeout=VALUE` slave 恢复时的超时,太久则所有相关的执行应用将自行退出,默认为 15mins -* `--registration_backoff_factor=VALUE` 跟 master 进行注册时候的重试时间间隔算法的因子,默认为 1secs,采用随机指数算法,最长 1mins -* `--resource_monitoring_interval=VALUE` 周期性监测执行应用资源使用情况的间隔,默认为 1secs -* `--resources=VALUE` 每个 slave 可用的资源 -* `--slave_subsystems=VALUE` slave 运行在哪些 cgroup 子系统中,包括 memory,cpuacct 等,缺省为空 -* `--[no-]strict` 是否认为所有错误都不可忽略,默认为 true -* `--[no-]switch_user` 用提交任务的用户身份来运行,默认为 true -* `--fetcher_cache_size=VALUE` fetcher 的 cache 大小,默认为 2 GB -* `--fetcher_cache_dir=VALUE` fetcher cache 文件存放目录,默认为 /tmp/mesos/fetch -* `--work_dir=VALUE` framework 的工作目录,默认为 /tmp/mesos - -下面的选项需要配置 `--with-network-isolator` 一起使用 -* `--ephemeral_ports_per_container=VALUE` 分配给一个容器的临时端口,默认为 1024 -* `--eth0_name=VALUE` public 网络的接口名称,如果不指定,根据主机路由进行猜测 -* `--lo_name=VALUE` loopback 网卡名称 -* `--egress_rate_limit_per_container=VALUE` 每个容器的 egress 流量限制速率 -* `--[no-]network_enable_socket_statistics` 是否采集每个容器的 socket 统计信息,默认为 false +slave 节点支持的配置项是最多的,因为它所完成的事情也最复杂。这些配置项既包括跟主节点打交道的一些参数,也包括对本地资源的配置,包括隔离机制、本地任务的资源限制等。 + +用户可以通过 `mesos-slave --help` 命令来获取所有支持的配置项信息。 + +必备项就一个: + +* `--master=VALUE` 必备项,master 所在地址,或对应 ZooKeeper 服务地址,或文件路径,可以是列表。 + +以下为可选配置项: + +* `--attributes=VALUE` 机器属性; +* `--authenticatee=VALUE` 跟 master 进行认证时候的认证机制; +* `--[no-]cgroups_enable_cfs` 采用 CFS 进行带宽限制时候对 CPU 资源进行限制,默认为 false; +* `--cgroups_hierarchy=VALUE` cgroups 的目录根位置,默认为 `/sys/fs/cgroup`; +* `--[no-]cgroups_limit_swap` 限制内存和 swap,默认为 false,只限制内存; +* `--cgroups_root=VALUE` 根 cgroups 的名称,默认为 mesos; +* `--container_disk_watch_interval=VALUE` 为容器进行硬盘配额查询的时间间隔; +* `--containerizer_path=VALUE` 采用外部隔离机制(`--isolation=external`)时候,外部容器机制执行文件路径; +* `--containerizers=VALUE` 可用的容器实现机制,包括 mesos、external、docker; +* `--credential=VALUE` 加密后凭证,或者所在文件路径; +* `--default_container_image=VALUE` 采用外部容器机制时,任务缺省使用的镜像; +* `--default_container_info=VALUE` 容器信息的缺省值; +* `--default_role=VALUE` 资源缺省分配的角色; +* `--disk_watch_interval=VALUE` 硬盘使用情况的周期性检查间隔,默认为 1mins; +* `--docker=VALUE` docker 执行文件的路径; +* `--docker_remove_delay=VALUE` 删除容器之前的等待时间,默认为 6hrs; +* `--[no-]docker_kill_orphans` 清除孤儿容器,默认为 true; +* `--docker_sock=VALUE` docker sock 地址,默认为 `/var/run/docker.sock`; +* `--docker_mesos_image=VALUE` 运行 slave 的 docker 镜像,如果被配置,docker 会假定 slave 运行在一个 docker 容器里; +* `--docker_sandbox_directory=VALUE` sandbox 映射到容器里的哪个路径; +* `--docker_stop_timeout=VALUE` 停止实例后等待多久执行 kill 操作,默认为 0secs; +* `--[no-]enforce_container_disk_quota` 是否启用容器配额限制,默认为 false; +* `--executor_registration_timeout=VALUE` 执行应用最多可以等多久再注册到 slave,否则停止它,默认为 1mins; +* `--executor_shutdown_grace_period=VALUE` 执行应用停止后,等待多久,默认为 5secs; +* `--external_log_file=VALUE` 外部日志文件; +* `--fetcher_cache_size=VALUE` fetcher 的 cache 大小,默认为 2 GB; +* `--fetcher_cache_dir=VALUE` fetcher cache 文件存放目录,默认为 /tmp/mesos/fetch; +* `--frameworks_home=VALUE` 执行应用前添加的相对路径,默认为空; +* `--gc_delay=VALUE` 多久清理一次执行应用目录,默认为 1weeks; +* `--gc_disk_headroom=VALUE` 调整计算最大执行应用目录年龄的硬盘留空量,默认为 0.1; +* `--hadoop_home=VALUE` hadoop 安装目录,默认为空,会自动查找 HADOOP_HOME 或者从系统路径中查找; +* `--hooks=VALUE` 安装在 master 中的 hook 模块列表; +* `--hostname=VALUE` slave 节点使用的主机名; +* `--isolation=VALUE` 隔离机制,例如 `posix/cpu,posix/mem`(默认)或者 `cgroups/cpu,cgroups/mem`、`external` 等; +* `--launcher_dir=VALUE` mesos 可执行文件的路径,默认为 `/usr/local/lib/mesos`; +* `--image_providers=VALUE` 支持的容器镜像机制,例如 'APPC,DOCKER'; +* `--oversubscribed_resources_interval=VALUE` slave 节点定期汇报超配资源状态的周期; +* `--modules=VALUE` 要加载的模块,支持文件路径或者 JSON; +* `--perf_duration=VALUE` perf 采样时长,必须小于 perf_interval,默认为 10secs; +* `--perf_events=VALUE` perf 采样的事件; +* `--perf_interval=VALUE` perf 采样的时间间隔; +* `--qos_controller=VALUE` 超配机制中保障 QoS 的控制器名; +* `--qos_correction_interval_min=VALUE` Qos 控制器纠正超配资源的最小间隔,默认为 0secs; +* `--recover=VALUE` 回复后是否重连旧的执行应用,reconnect(默认值)是重连,cleanup 清除旧的执行器并退出; +* `--recovery_timeout=VALUE` slave 恢复时的超时,太久则所有相关的执行应用将自行退出,默认为 15mins; +* `--registration_backoff_factor=VALUE` 跟 master 进行注册时候的重试时间间隔算法的因子,默认为 1secs,采用随机指数算法,最长 1mins; +* `--resource_monitoring_interval=VALUE` 周期性监测执行应用资源使用情况的间隔,默认为 1secs; +* `--resources=VALUE` 每个 slave 可用的资源,比如主机端口默认为 [31000, 32000]; +* `--[no-]revocable_cpu_low_priority` 运行在可撤销 CPU 上容器将拥有较低优先级,默认为 true。 +* `--slave_subsystems=VALUE` slave 运行在哪些 cgroup 子系统中,包括 memory,cpuacct 等,缺省为空; +* `--[no-]strict` 是否认为所有错误都不可忽略,默认为 true; +* `--[no-]switch_user` 用提交任务的用户身份来运行,默认为 true; +* `--work_dir=VALUE` framework 的工作目录,默认为 /tmp/mesos。 + +下面这些选项需要配置 `--with-network-isolator` 一起使用(编译时需要启用 ` --with-network-isolator` 参数)。 + +* `--ephemeral_ports_per_container=VALUE` 分配给一个容器的临时端口的最大数目,需要为 2 的整数幂(默认为 1024); +* `--eth0_name=VALUE` public 网络的接口名称,如果不指定,根据主机路由进行猜测; +* `--lo_name=VALUE` loopback 网卡名称; +* `--egress_rate_limit_per_container=VALUE` 每个容器的输出流量限制速率限制(采用 fq_codel 算法来限速),单位是字节每秒; +* `--[no-]-egress_unique_flow_per_container` 是否把不同容器的流量当作彼此不同的流,避免彼此影响(默认为 false); +* `--[no-]network_enable_socket_statistics` 是否采集每个容器的 socket 统计信息,默认为 false。 + +下面给出一个典型的 slave 配置,容器为 Docker,监听在 `10.0.0.10` 地址;节点上限制 16 个 CPU、64 GB 内存,容器的非临时端口范围指定为 [31000-32000],临时端口范围指定为 [32768-57344];每个容器临时端口最多为 512 个,并且外出流量限速为 50 MB/s。 + +```sh +mesos-slave \ +--master=zk://10.0.0.2:2181,10.0.0.3:2181,10.0.0.4:2181/mesos \ +--containerizers=docker \ +--ip=10.0.0.10 \ +--isolation=cgroups/cpu,cgroups/mem,network/port_mapping \ +--resources=cpus:16;mem:64000;ports:[31000-32000];ephemeral_ports:[32768-57344] \ +--ephemeral_ports_per_container=512 \ +--egress_rate_limit_per_container=50000KB \ +--egress_unique_flow_per_container +``` + +为了避免主机分配的临时端口跟我们指定的临时端口范围冲突,需要在主机节点上进行配置。 +```sh +$ echo "57345 61000" > /proc/sys/net/ipv4/ip_local_port_range +``` + +*注:非临时端口是 Mesos 分配给框架,绑定到任务使用的,端口号往往有明确意义;临时端口是系统分配的,往往不太关心具体端口号。* diff --git a/mesos/framework.md b/mesos/framework.md index 8418cd5f6..dde1e1170 100644 --- a/mesos/framework.md +++ b/mesos/framework.md @@ -1,25 +1,37 @@ -## Mesos 常见框架 +## 常见应用框架 -framework 是实际干活的,可以理解为 mesos 上跑的 `应用`,需要注册到 master 上。 +应用框架是实际干活的,可以理解为 Mesos 之上跑的 `应用`。应用框架注册到 Mesos master 服务上即可使用。 + +用户大部分时候,只需要跟应用框架打交道。因此,选择合适的应用框架十分关键。 + +Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 PaaS)、大数据处理、批量调度、数据存储。 + +随着 Mesos 自身的发展,越来越多的框架开始支持 Mesos,下面总结了目前常用的一些框架。 ### 长期运行的服务 -#### [Aurora](http://aurora.incubator.apache.org/) +#### [Aurora](http://aurora.incubator.apache.org) +项目维护地址在 http://aurora.incubator.apache.org。 + 利用 mesos 调度安排的任务,保证任务一直在运行。 提供 REST 接口,客户端和 webUI(8081 端口) #### [Marathon](https://github.com/mesosphere/marathon) -一个 PaaS 平台。 +项目维护地址在 https://github.com/mesosphere/marathon。 -保证任务一直在运行。如果停止了,会自动重启一个新的任务。 +一个私有 PaaS 平台,保证运行的应用不被中断。 + +如果任务停止了,会自动重启一个新的相同任务。 支持任务为任意 bash 命令,以及容器。 提供 REST 接口,客户端和 webUI(8080 端口) #### [Singularity](https://github.com/HubSpot/Singularity) -一个 PaaS 平台。 +项目维护地址在 https://github.com/HubSpot/Singularity。 + +一个私有 PaaS 平台。 调度器,运行长期的任务和一次性任务。 @@ -27,30 +39,70 @@ framework 是实际干活的,可以理解为 mesos 上跑的 `应用`,需要 ### 大数据处理 #### [Cray Chapel](https://github.com/nqn/mesos-chapel) +项目维护地址在 https://github.com/nqn/mesos-chapel。 + 支持 Chapel 并行编程语言的运行框架。 #### [Dpark](https://github.com/douban/dpark) +项目维护地址在 https://github.com/douban/dpark。 + Spark 的 Python 实现。 #### [Hadoop](https://github.com/mesos/hadoop) +项目维护地址在 https://github.com/mesos/hadoop。 + 经典的 map-reduce 模型的实现。 -#### [Spark](http://spark.incubator.apache.org/) +#### [Spark](http://spark.incubator.apache.org) +项目维护地址在 http://spark.incubator.apache.org。 + 跟 Hadoop 类似,但处理迭代类型任务会更好的使用内存做中间状态缓存,速度要快一些。 #### [Storm](https://github.com/mesosphere/storm-mesos) +项目维护地址在 https://github.com/mesosphere/storm-mesos。 + 分布式流计算,可以实时处理数据流。 ### 批量调度 #### [Chronos](https://github.com/airbnb/chronos) -Cron 的分布式实现,负责任务调度。 +项目维护地址在 https://github.com/airbnb/chronos。 + +Cron 的分布式实现,负责任务调度,支持容错。 #### [Jenkins](https://github.com/jenkinsci/mesos-plugin) -大名鼎鼎的 CI 引擎。使用 mesos-jenkins 插件,可以将 jenkins 的任务被 mesos 来动态调度执行。 +项目维护地址在 https://github.com/jenkinsci/mesos-plugin。 -#### [ElasticSearch](https://github.com/mesosphere/elasticsearch-mesos) -功能十分强大的分布式数据搜索引擎。 +大名鼎鼎的 CI 引擎。使用 mesos-jenkins 插件,可以将 jenkins 的任务被 Mesos 集群来动态调度执行。 + +#### JobServer +项目维护地址在 http://www.grandlogic.com/content/html_docs/jobserver.html。 + +基于 Java 的调度任务和数据处理引擎。 + +#### GoDocker +项目维护地址在 https://bitbucket.org/osallou/go-docker。 + +基于 Docker 容器的集群维护工具。提供用户接口,除了支持 Mesos,还支持 Kubernetes、Swarm 等。 ### 数据存储 #### [Cassandra](https://github.com/mesosphere/cassandra-mesos) -高性能分布式数据库。 +项目维护地址在 https://github.com/mesosphere/cassandra-mesos。 + +高性能的分布式数据库。可扩展性很好,支持高可用。 + +#### [ElasticSearch](https://github.com/mesosphere/elasticsearch-mesos) +项目维护地址在 https://github.com/mesosphere/elasticsearch-mesos。 + +功能十分强大的分布式数据搜索引擎。 + +一方面通过分布式集群实现可靠的数据库,一方面提供灵活的 API,对数据进行整合和分析。ElasticSearch + LogStash + Kibana 目前合成为 ELK 工具栈。 + +#### Hypertable +项目维护地址在 https://code.google.com/p/hypertable。 + +高性能的分布式数据库,支持结构化或者非结构化的数据存储。 + +#### Tachyon +项目维护地址在 http://tachyon-project.org/。 + +内存为中心的分布式存储系统,利用内存访问的高速提供高性能。 diff --git a/mesos/installation.md b/mesos/installation.md index 419170a1c..903ee2918 100644 --- a/mesos/installation.md +++ b/mesos/installation.md @@ -1,77 +1,116 @@ -## Mesos + Marathon 安装与使用 +## Mesos 安装与使用 +以 Mesos 结合 Marathon 应用框架为例,来看下如何快速搭建一套 Mesos 平台。 -Marathon 是可以跟 Mesos 一起协作的一个 framework,用来运行持久性的应用。 +Marathon 是可以跟 Mesos 一起协作的一个 framework,基于 Scala 实现,可以实现保持应用的持续运行。 + +另外,Mesos 默认利用 ZooKeeper 来进行多个主节点之间的选举,以及从节点发现主节点的过程。一般在生产环境中,需要启动多个 Mesos master 服务(推荐 3 或 5 个),并且推荐使用 supervisord 等进程管理器来自动保持服务的运行。 + +ZooKeeper 是一个分布式集群中信息同步的工具,通过自动在多个节点中选举 `leader`,保障多个节点之间的某些信息保持一致性。 ### 安装 -一共需要安装四种组件,mesos-master、marathon、zookeeper 需要安装到所有的主节点,mseos-slave 需要安装到从节点。 +安装主要需要 mesos、zookeeper 和 marathon 三个软件包。 + +Mesos 也采用了经典的主-从结构,一般包括若干主节点和大量从节点。其中,mesos master 服务和 zookeeper 需要部署到所有的主节点,mesos slave 服务需要部署到所有从节点。marathon 可以部署到主节点。 -mesos 利用 zookeeper 来进行主节点的同步,以及从节点发现主节点的过程。 +安装可以通过源码编译、软件源或者 Docker 镜像方式进行,下面分别进行介绍。 #### 源码编译 -下载源码 -```bash -git clone https://git-wip-us.apache.org/repos/asf/mesos.git +源码编译方式可以保障获取到最新版本,但编译过程比较费时间。 + +首先,从 apache.org 开源网站下载最新的源码。 + +```sh +$ git clone https://git-wip-us.apache.org/repos/asf/mesos.git ``` -安装依赖 +其中,主要代码在 `src` 目录下,应用框架代码在 `frameworks` 目录下,文档在 `docs` 目录下,`include ` 中包括了跟 Mesos 打交道使用的一些 API 定义头文件。 + +安装依赖,主要包括 Java 运行环境、Linux 上的自动编译环境等。 -```bash -#jdk-7 -sudo apt-get update && sudo apt-get install -y openjdk-7-jdk -#autotools -sudo apt-get install -y autoconf libtool -#Mesos dependencies. -sudo apt-get -y install build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev +```sh +$ sudo apt-get update +$ sudo apt-get install -y openjdk-8-jdk autoconf libtool \ +build-essential python-dev python-boto libcurl4-nss-dev \ +libsasl2-dev maven libapr1-dev libsvn-dev ``` -编译&安装 -```bash -$ cd mesos +后面就是常规 C++ 项目的方法,configure 之后利用 Makefile 进行编译和安装。 -# Bootstrap (Only required if building from git repository). +```sh +$ cd mesos $ ./bootstrap - $ mkdir build -$ cd build && ../configure +$ cd build && ../configure --with-network-isolator $ make -$ make check && make install +$ make check && sudo make install ``` -#### [软件源安装](https://mesosphere.com/downloads/) -以 ubuntu 系统为例。 +#### 软件源安装 -安装 Docker,不再赘述,可以参考 [这里](http://yeasy.gitbooks.io/docker_practice/content/install/index.html)。 +通过软件源方式进行安装相对会省时间,但往往不是最新版本。 -```bash -# Setup -sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF -DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]') -CODENAME=$(lsb_release -cs) +这里以 Ubuntu 系统为例,首先添加软件源地址。 -# Add the repository -echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \ - sudo tee /etc/apt/sources.list.d/mesosphere.list +```sh +$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF +$ DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]') +$ CODENAME=$(lsb_release -cs) +$ echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \ +sudo tee /etc/apt/sources.list.d/mesosphere.list +``` + +刷新本地软件仓库信息并安装 zookeeper、mesos、marathon 三个软件包。 -sudo apt-get -y update && sudo apt-get -y install zookeeper mesos marathon +```sh +$ sudo apt-get -y update && sudo apt-get -y install zookeeper mesos marathon ``` +注意,Marathon 最新版本需要 jdk 1.8+ 的支持。如果系统中有多个 Java 版本,需要检查配置默认的 JDK 版本符合要求。 + +```sh +$ sudo update-alternatives --config java +``` + +安装 Mesos 成功后,会在 `/usr/sbin/` 下面发现 `mesos-master` 和 `mesos-slave` 两个二进制文件,分别对应主节点上需要运行的管理服务和从节点上需要运行的任务服务。 + +用户可以手动运行二进制文件启动服务,也可以通过 `service` 命令来方便进行管理。 + +例如,在主节点上重启 Mesos 管理服务: + +```sh +$ sudo service mesos-master restart +``` + +通过 `service` 命令来管理,实际上是通过调用 `/usr/bin/mesos-init-wrapper` 脚本文件进行处理。 + #### [基于 Docker](https://github.com/sekka1/mesosphere-docker) -将基于如下镜像: + +需要如下三个镜像。 * ZooKeeper:https://registry.hub.docker.com/u/garland/zookeeper/ * Mesos:https://registry.hub.docker.com/u/garland/mesosphere-docker-mesos-master/ * Marathon:https://registry.hub.docker.com/u/garland/mesosphere-docker-marathon/ -其中 mesos-master 镜像将作为 master 和 slave 容器使用。 +其中 mesos-master 镜像在后面将分别作为 master 和 slave 角色进行使用。 -导出本地机器的地址到环境变量。 -```bash -HOST_IP=10.11.31.7 +首先,拉取三个镜像。 + +```sh +$ docker pull garland/zookeeper +$ docker pull garland/mesosphere-docker-mesos-master +$ docker pull garland/mesosphere-docker-marathon ``` -启动 Zookeepr 容器。 -```bash +导出主节点机器的地址到环境变量。 + +```sh +$ HOST_IP=10.0.0.2 +``` + +在主节点上启动 Zookeepr 容器。 + +```sh docker run -d \ -p 2181:2181 \ -p 2888:2888 \ @@ -79,8 +118,9 @@ docker run -d \ garland/zookeeper ``` -启动 Mesos Master 容器。 -```bash +在主节点上启动 Mesos Master 服务容器。 + +```sh docker run --net="host" \ -p 5050:5050 \ -e "MESOS_HOSTNAME=${HOST_IP}" \ @@ -95,16 +135,18 @@ docker run --net="host" \ garland/mesosphere-docker-mesos-master ``` -启动 Marathon。 -```bash +在主节点上启动 Marathon。 + +```sh docker run \ -d \ -p 8080:8080 \ garland/mesosphere-docker-marathon --master zk://${HOST_IP}:2181/mesos --zk zk://${HOST_IP}:2181/marathon ``` -启动 Mesos slave 容器。 -```bash +在从节点上启动 Mesos slave 容器。 + +```sh docker run -d \ --name mesos_slave_1 \ --entrypoint="mesos-slave" \ @@ -119,73 +161,227 @@ garland/mesosphere-docker-mesos-master:latest ### 配置说明 +下面以本地通过软件源方式安装为例,解释如何修改各个配置文件。 + #### ZooKeepr -ZooKeepr 是一个分布式应用的协调工具,用来管理多个 Master 节点的选举和冗余,监听在 2181 端口。 +ZooKeepr 是一个分布式应用的协调工具,用来管理多个主节点的选举和冗余,监听在 2181 端口。推荐至少布置三个主节点来被 ZooKeeper 维护。 + +配置文件默认都在 `/etc/zookeeper/conf/` 目录下。比较关键的配置文件有两个:`myid` 和 `zoo.cfg`。 -配置文件在 /etc/zookeeper/conf/ 目录下。 +myid 文件会记录加入 ZooKeeper 集群的节点的序号(1-255之间)。`/var/lib/zookeeper/myid` 文件其实也是软连接到了该文件。 -首先,要修改 myid,手动为每一个节点分配一个自己的 id(1-255之间)。 +比如配置某节点序号为 1,则需要在该节点上执行: -zoo.cfg 是主配置文件,主要修改如下的三行(如果你启动三个 zk 节点)。 -```bash -server.1=zookeeper1:2888:3888 -server.2=zookeeper2:2888:3888 -server.3=zookeeper3:2888:3888 +```sh +$ echo 1 | sudo dd of=/etc/zookeeper/conf/myid ``` -主机名需要自己替换,并在 /etc/hosts 中更新。 +节点序号在 ZooKeeper 集群中必须唯一,不能出现多个拥有相同序号的节点。 -第一个端口负责从节点连接到主节点的;第二个端口负责主节点的选举通信。 +另外,需要修改 zoo.cfg 文件,该文件是主配置文件,主要需要添加上加入 ZooKeeper 集群的机器的序号和对应监听地址。 -#### Mesos +例如,现在 ZooKeeper 集群中有三个节点,地址分别为 `10.0.0.2`、`10.0.0.3`、`10.0.0.4`,序号分别配置为 `2`、`3`、`4`。 + +则配置如下的三行: + +```sh +server.2=10.0.0.2:2888:3888 +server.3=10.0.0.3:2888:3888 +server.4=10.0.0.4:2888:3888 +``` + +其中第一个端口 2888 负责从节点连接到主节点的;第二个端口 3888 则负责主节点进行选举时候通信。 -Mesos 的默认配置目录分别为: +也可以用主机名形式,则需要各个节点 `/etc/hosts` 文件中都记录地址到主机名对应的映射关系。 -* /etc/mesos:共同的配置文件,最关键的是 zk 文件; -* /etc/mesos-master:主节点的配置,等价于启动 mesos-master 时候的默认选项; -* /etc/mesos-slave:从节点的配置,等价于启动 mesos-master 时候的默认选项。 +完成配置后,启动 ZooKeeper 服务。 -###### 主节点 -首先在所有节点上修改 /etc/mesos/zk,为 主节点的 zookeeper 地址列表,例如: -```bash -zk://ip1:2181,ip2:2181/mesos +```sh +$ sudo service zookeeper start ``` -创建 /etc/mesos-master/ip 文件,写入主节点监听的地址。 -还可以创建 /etc/mesos-master/cluster 文件,写入集群的别名。 +#### Mesos + +Mesos 的默认配置目录有三个: + +* /etc/mesos/:主节点和从节点都会读取的配置文件,最关键的是 zk 文件存放主节点的信息; +* /etc/mesos-master/:只有主节点会读取的配置,等价于启动 mesos-master 命令时候的默认选项; +* /etc/mesos-slave/:只有从节点会读取的配置,等价于启动 mesos-master 命令时候的默认选项。 + +最关键的是需要在所有节点上修改 `/etc/mesos/zk`,写入主节点集群的 ZooKeeper 地址列表,例如: -之后,启动服务: -```bash -sudo service mesos-master start +```sh +zk://10.0.0.2:2181,10.0.0.3:2181,10.0.0.4:2181/mesos ``` -更多选项可以参考[这里](http://open.mesosphere.com/reference/mesos-master/)。 -###### 从节点 +此外,`/etc/default/mesos`、`/etc/default/mesos-master`、`/etc/default/mesos-slave` 这三个文件中可以存放一些环境变量定义,Mesos 服务启动之前,会将这些环境变量导入进来作为启动参数。格式为 `MESOS_OPTION_NAME`。 + +下面分别说明在主节点和从节点上的配置。 + +##### 主节点 + +一般只需要关注 `/etc/mesos-master/` 目录下的文件。默认情况下目录下为空。 + +该目录下文件命名和内容需要跟 mesos-master 支持的命令行选项一一对应。可以通过 `mesos-master --help` 命令查看支持的选项。 + +例如某个文件 `key` 中内容为 `value`,则在 mesos-master 服务启动的时候,会自动添加参数 `--key=value` 给二进制命令。 -在从节点上,修改 /etc/mesos-slave/ip 文件,写入跟主节点通信的地址。 +例如,mesos-master 服务默认监听在 loopback 端口,即 `127.0.0.1:5050`,我们需要修改主节点监听的地址,则可以创建 /etc/mesos-master/ip 文件,在其中写入主节点监听的外部地址。 -之后,启动服务。 -```bash -sudo service mesos-slave start +为了正常启动 mesos-master 服务,还需要指定 `work_dir` 参数(表示应用框架的工作目录)的值,可以通过创建 /etc/mesos-master/work_dir 文件,在其中写入目录,例如 ` /var/lib/mesos`。工作目录下会生成一个 `replicated_log` 目录,会存有各种同步状态的持久化信息。 + +以及指定 quorum 参数的值,该参数用来表示 ZooKeeper 集群中要求最少参加表决的节点数目。一般设置为比 ZooKeeper 集群中节点个数的半数多一些(比如三个节点的话,可以配置为 `2`)。 + +此外,要修改 Mesos 集群的名称,可以创建 `/etc/mesos-master/cluster` 文件,在其中写入集群的别名,例如 `MesosCluster`。 + +总结下,建议在 `/etc/mesos-master` 目录下,配置至少四个参数文件:`ip`、`quorum`、`work_dir`、`cluster`。 + +修改配置之后,需要启动服务即可生效。 +```sh +$ sudo service mesos-master start ``` -更多选项可以参考[这里](http://open.mesosphere.com/reference/mesos-slave/)。 +更多选项可以参考后面的配置项解析章节。 + +主节点服务启动后,则可以在从节点上启动 mesos-slave 服务来加入主节点的管理。 + +##### 从节点 +一般只需要关注 `/etc/mesos-slave/` 目录下的文件。默认情况下目录下为空。 -此时,通过浏览器访问本地 5050 端口,可以看到节点信息。 +文件命名和内容也是跟主节点类似,对应二进制文件支持的命令行参数。 -![mesos](../_images/mesos.png) +建议在从节点上,创建 `/etc/mesos-slave/ip` 文件,在其中写入跟主节点通信的地址。 + +修改配置之后,也需要重新启动服务。 + +```sh +$ sudo service mesos-slave start +``` + +更多选项可以参考后面的配置项解析章节。 #### Marathon +Marathon 作为 Mesos 的一个应用框架,配置要更为简单,必需的配置项有 `--master` 和 `--zk`。 + +安装完成后,会在 /usr/bin 下多一个 marathon shell 脚本,为启动 marathon 时候执行的命令。 + +配置目录为 `/etc/marathon/conf`(需要手动创建),此外默认配置文件在 `/etc/default/marathon`。 + +我们手动创建配置目录,并添加配置项(文件命名和内容跟 Mesos 风格一致),让 Marathon 能连接到已创建的 Mesos 集群中。 + +```sh +$ sudo mkdir -p /etc/marathon/conf +$ sudo cp /etc/mesos/zk /etc/marathon/conf/master +``` + +同时,让 Marathon 也将自身的状态信息保存到 ZooKeeper 中。创建 `/etc/marathon/conf/zk` 文件,添加 ZooKeeper 地址和路径。 + +```sh +zk://10.0.0.2:2181,10.0.0.2:2181,10.0.0.2:2181/marathon +``` + 启动 marathon 服务。 -```bash -sudo service marathon start + +```sh +$ sudo service marathon start ``` -启动成功后,在 mesos 的 web界面的 frameworks 标签页下面将能看到名称为 marathon 的框架出现。 +### 访问 Mesos 图形界面 + +Mesos 自带了 Web 图形界面,可以方便用户查看集群状态。 + +用户在 Mesos 主节点服务和从节点服务都启动后,可以通过浏览器访问主节点 5050 端口,看到类似如下界面,已经有两个 slave 节点加入了。 + +![mesos 界面查看加入的 slave 节点](_images/mesos.png) -同时可以通过浏览器访问 8080 端口,看到 marathon 的管理界面。 +通过 Slaves 标签页能看到加入集群的从节点的信息。 -![marathon](../_images/marathon.png) +如果没有启动 Marathon 服务,在 Frameworks 标签页下将看不到任何内容。 + +### 访问 Marathon 图形界面 + +Marathon 服务启动成功后,在 Mesos 的 web 界面的 Frameworks 标签页下面将能看到名称为 marathon 的框架出现。 + +同时可以通过浏览器访问 8080 端口,看到 Marathon 自己的管理界面。 + +![marathon 图形管理界面](_images/marathon.png) 此时,可以通过界面或者 REST API 来创建一个应用,Marathon 会保持该应用的持续运行。 + +![marathon 查看任务支持的参数](_images/marathon_basic0.png) + +通过界面方式可以看到各任务支持的参数(包括资源、命令、环境变量、健康检查等),同时可以很容易地修改任务运行实例数进行扩展,非常适合进行测试。 + +如果要更自动化地使用 Marathon,则需要通过它的 REST API 进行操作。 + +一般的,启动新任务需要先创建一个定义模板(JSON 格式),然后发到指定的 API。 + +例如,示例任务 basic-0 的定义模板为: + +```json +{ + "id": "basic-0", + "cmd": "while [ true ] ; do echo 'Hello Marathon' ; sleep 5 ; done", + "cpus": 0.1, + "mem": 10.0, + "instances": 1 +} +``` + +该任务申请资源为 0.1 个单核 CPU 资源和 10 MB 的内存资源,具体命令为每隔五秒钟用 shell 打印一句 `Hello Marathon`。 + +可以通过如下命令发出 basic-0 任务到 Marathon 框架,框架会分配任务到某个满足条件的从节点上,成功会返回一个 json 对象,描述任务的详细信息。 + +```sh +$ curl -X POST http://marathon_host:8080/v2/apps -d @basic-0.json -H "Content-type: application/json" +{"id":"/basic-0","cmd":"while [ true ] ; do echo 'Hello Marathon' ; sleep 5 ; done","args":null,"user":null,"env":{},"instances":1,"cpus":0.1,"mem":10,"disk":0,"executor":"","constraints":[],"uris":[],"storeUrls":[],"ports":[0],"requirePorts":false,"backoffSeconds":1,"backoffFactor":1.15,"maxLaunchDelaySeconds":3600,"container":null,"healthChecks":[],"dependencies":[],"upgradeStrategy":{"minimumHealthCapacity":1,"maximumOverCapacity":1},"labels":{},"acceptedResourceRoles":null,"version":"2015-12-28T05:33:05.805Z","tasksStaged":0,"tasksRunning":0,"tasksHealthy":0,"tasksUnhealthy":0,"deployments":[{"id":"3ec3fbd5-11e4-479f-bd17-813d33e43e0c"}],"tasks":[]}% +``` + +Marathon 的更多 REST API 可以参考本地自带的文档:`http://marathon_host:8080/api-console/index.html`。 + +此时,如果运行任务的从节点出现故障,任务会自动在其它可用的从节点上启动。 + +此外,目前也已经支持基于 Docker 容器的任务。需要先在 Mesos slave 节点上为 slave 服务配置 `--containerizers=docker,mesos` 参数。 + +例如如下面的示例任务: + +```json +{ + "id": "basic-3", + "cmd": "python3 -m http.server 8080", + "cpus": 0.5, + "mem": 32.0, + "container": { + "type": "DOCKER", + "volumes": [], + "docker": { + "image": "python:3", + "network": "BRIDGE", + "portMappings": [ + { + "containerPort": 8080, + "hostPort": 31000, + "servicePort": 0, + "protocol": "tcp" + } + ], + "privileged": false, + "parameters": [], + "forcePullImage": true + } + } +} +``` + +该任务启动一个 `python:3` 容器,执行 `python3 -m http.server 8080` 命令,作为一个简单的 web 服务,实际端口会映射到宿主机的 31000 端口。 + +注意区分 hostPort 和 servicePort,前者代表任务映射到的本地可用端口(可用范围由 Mesos slave 汇报,默认为 31000 ~ 32000);后者作为服务管理的端口,可以被用作一些服务发行机制使用进行转发,在整个 Marathon 集群中是唯一的。 + +任务执行后,也可以在对应 slave 节点上通过 Docker 命令查看容器运行情况,容器将以 `mesos-SLAVE_ID` 开头。 + +```sh +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +1226b4ec8d7d python:3 "/bin/sh -c 'python3 " 3 days ago Up 3 days 0.0.0.0:10000->8080/tcp mesos-06db0fba-49dc-4d28-ad87-6c2d5a020866-S10.b581149e-2c43-46a2-b652-1a0bc10204b3 +``` diff --git a/mesos/intro.md b/mesos/intro.md index 4f400bf60..c243c7b8b 100644 --- a/mesos/intro.md +++ b/mesos/intro.md @@ -1,2 +1,20 @@ ## 简介 -Mesos 是一个集群资源的自动调度平台,Apache 开源项目,它的定位是要做数据中心操作系统的内核。目前由 Mesosphere 公司维护,更多信息可以自行查阅 [Mesos 项目地址](http://mesos.apache.org/)或 [Mesosphere](https://mesosphere.com)。 +Mesos 最初由 UC Berkeley 的 AMP 实验室于 2009 年发起,遵循 Apache 协议,目前已经成立了 Mesosphere 公司进行运营。Mesos 可以将整个数据中心的资源(包括 CPU、内存、存储、网络等)进行抽象和调度,使得多个应用同时运行在集群中分享资源,并无需关心资源的物理分布情况。 + +如果把数据中心中的集群资源看做一台服务器,那么 Mesos 要做的事情,其实就是今天操作系统内核的职责:抽象资源 + 调度任务。Mesos 项目是 Mesosphere 公司 Datacenter Operating System (DCOS) 产品的核心部件。 + +Mesos 项目主要由 C++ 语言编写,项目官方地址为 [http://mesos.apache.org](http://mesos.apache.org),代码仍在快速演化中,已经发布了正式版 1.0.0 版本。 + +Mesos 拥有许多引人注目的特性,包括: +* 支持数万个节点的大规模场景(Apple、Twitter、eBay 等公司实践); +* 支持多种应用框架,包括 Marathon、Singularity、Aurora 等; +* 支持 HA(基于 ZooKeeper 实现); +* 支持 Docker、LXC 等容器机制进行任务隔离; +* 提供了多个流行语言的 API,包括 Python、Java、C++ 等; +* 自带了简洁易用的 WebUI,方便用户直接进行操作。 + +值得注意的是,Mesos 自身只是一个资源抽象的平台,要使用它往往需要结合运行其上的分布式应用(在 Mesos 中被称作框架,framework),比如 Hadoop、Spark 等可以进行分布式计算的大数据处理应用;比如 Marathon 可以实现 PaaS,快速部署应用并自动保持运行;比如 ElasticSearch 可以索引海量数据,提供灵活的整合和查询能力…… + +大部分时候,用户只需要跟这些框架打交道即可,完全无需关心底下的资源调度情况,因为 Mesos 已经自动帮你实现了。这大大方便了上层应用的开发和运维。 + +当然,用户也可以基于 Mesos 打造自己的分布式应用框架。 diff --git a/mesos/monitor.md b/mesos/monitor.md new file mode 100644 index 000000000..641b38db0 --- /dev/null +++ b/mesos/monitor.md @@ -0,0 +1,110 @@ +## 日志与监控 + +Mesos 自身提供了强大的日志和监控功能,某些应用框架也提供了针对框架中任务的监控能力。通过这些接口,用户可以实时获知集群的各种状态。 + +### 日志配置 +日志文件默认在 `/var/log/mesos` 目录下,根据日志等级带有不同后缀。 + +用户可以通过日志来调试使用中碰到的问题。 + +一般的,推荐使用 `--log_dir` 选项来指定日志存放路径,并通过日志分析引擎来进行监控。 + + +### 监控 + +Mesos 提供了方便的监控接口,供用户查看集群中各个节点的状态。 + +#### 主节点 +通过 `http://MASTER_NODE:5050/metrics/snapshot` 地址可以获取到 Mesos 主节点的各种状态统计信息,包括资源(CPU、硬盘、内存)使用、系统状态、从节点、应用框架、任务状态等。 + +例如查看主节点 `10.0.0.2` 的状态信息,并用 jq 来解析返回的 json 对象。 + +```sh +$ curl -s http://10.0.0.2:5050/metrics/snapshot |jq . +{ + "system/mem_total_bytes": 4144713728, + "system/mem_free_bytes": 153071616, + "system/load_5min": 0.37, + "system/load_1min": 0.6, + "system/load_15min": 0.29, + "system/cpus_total": 4, + "registrar/state_store_ms/p9999": 45.4096616192, + "registrar/state_store_ms/p999": 45.399272192, + "registrar/state_store_ms/p99": 45.29537792, + "registrar/state_store_ms/p95": 44.8336256, + "registrar/state_store_ms/p90": 44.2564352, + "registrar/state_store_ms/p50": 34.362368, + ... + "master/recovery_slave_removals": 1, + "master/slave_registrations": 0, + "master/slave_removals": 0, + "master/slave_removals/reason_registered": 0, + "master/slave_removals/reason_unhealthy": 0, + "master/slave_removals/reason_unregistered": 0, + "master/slave_reregistrations": 2, + "master/slave_shutdowns_canceled": 0, + "master/slave_shutdowns_completed": 1, + "master/slave_shutdowns_scheduled": 1 +} +``` + +#### 从节点 + +通过 `http://SLAVE_NODE:5051/metrics/snapshot` 地址可以获取到 Mesos 从节点的各种状态统计信息,包括资源、系统状态、各种消息状态等。 + +例如查看从节点 `10.0.0.10` 的状态信息。 + +```sh +$ curl -s http://10.0.0.10:5051/metrics/snapshot |jq . +{ + "system/mem_total_bytes": 16827785216, + "system/mem_free_bytes": 3377315840, + "system/load_5min": 0.11, + "system/load_1min": 0.16, + "system/load_15min": 0.13, + "system/cpus_total": 8, + "slave/valid_status_updates": 11, + "slave/valid_framework_messages": 0, + "slave/uptime_secs": 954125.458927872, + "slave/tasks_starting": 0, + "slave/tasks_staging": 0, + "slave/tasks_running": 1, + "slave/tasks_lost": 0, + "slave/tasks_killed": 2, + "slave/tasks_finished": 0, + "slave/executors_preempted": 0, + "slave/executor_directory_max_allowed_age_secs": 403050.709525191, + "slave/disk_used": 0, + "slave/disk_total": 88929, + "slave/disk_revocable_used": 0, + "slave/disk_revocable_total": 0, + "slave/disk_revocable_percent": 0, + "slave/disk_percent": 0, + "containerizer/mesos/container_destroy_errors": 0, + "slave/container_launch_errors": 6, + "slave/cpus_percent": 0.025, + "slave/cpus_revocable_percent": 0, + "slave/cpus_revocable_total": 0, + "slave/cpus_revocable_used": 0, + "slave/cpus_total": 8, + "slave/cpus_used": 0.2, + "slave/executors_registering": 0, + "slave/executors_running": 1, + "slave/executors_terminated": 8, + "slave/executors_terminating": 0, + "slave/frameworks_active": 1, + "slave/invalid_framework_messages": 0, + "slave/invalid_status_updates": 0, + "slave/mem_percent": 0.00279552715654952, + "slave/mem_revocable_percent": 0, + "slave/mem_revocable_total": 0, + "slave/mem_revocable_used": 0, + "slave/mem_total": 15024, + "slave/mem_used": 42, + "slave/recovery_errors": 0, + "slave/registered": 1, + "slave/tasks_failed": 6 +} +``` + +另外,通过 `http://MASTER_NODE:5050/monitor/statistics.json` 地址可以看到该从节点上容器网络相关的统计数据,包括进出流量、丢包数、队列情况等。获取方法同上,在此不再演示。 \ No newline at end of file diff --git a/mesos/summary.md b/mesos/summary.md new file mode 100644 index 000000000..53d589162 --- /dev/null +++ b/mesos/summary.md @@ -0,0 +1,7 @@ +## 本章小结 + +本章讲解了 Mesos 的安装使用、基本原理和架构,以及支持 Mesos 的重要应用框架。Mesos 最初设计为资源调度器,然而其灵活的设计和对上层框架的优秀支持,使得它可以很好的支持大规模的分布式应用场景。结合 Docker,Mesos 可以很容易部署一套私有的容器云。 + +除了核心功能之外,Mesos 在设计上有许多值得借鉴之处,比如它清晰的定位、简洁的架构、细致的参数、高度容错的可靠,还有对限速、监控等的支持等。 + +Mesos 作为一套成熟的开源项目,可以很好的被应用和集成到生产环境中。但它的定位集中在资源调度,往往需要结合应用框架或二次开发。 \ No newline at end of file diff --git a/revision.md b/revision.md index fa1512dec..7f3259ea1 100644 --- a/revision.md +++ b/revision.md @@ -1,5 +1,11 @@ ## 主要修订记录 +* 0.9.0: 2017-XX-YY + + * 完善 Compose 项目 + * 更新 Swarm 项目 + * 更新 Mesos 项目 + * 0.8.0: 2017-01-08 * 修正文字内容 diff --git a/swarm/README.md b/swarm/README.md index 43f40d227..790c39da7 100644 --- a/swarm/README.md +++ b/swarm/README.md @@ -1,4 +1,6 @@ -# Docker Swarm 项目 -Docker Swarm 是 Docker 官方编排(Orchestration)项目之一,负责对 Docker 集群进行管理。 +# Docker 三剑客之 Docker Swarm +Docker Swarm 是 Docker 官方三剑客项目之一,提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。 -本章将介绍 Swarm 项目情况以及安装和使用。 +使用它,用户可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台。 + +本章将介绍 Swarm 项目的相关情况,以及如何进行安装和使用。最后还对 Swarm 的服务发现后端、调度器和过滤器等功能进行讲解。 diff --git a/swarm/_images/docker_swarm.png b/swarm/_images/docker_swarm.png new file mode 100644 index 0000000000000000000000000000000000000000..16319133525c86f5cd9d6b8196025bdce9022eb9 GIT binary patch literal 124054 zcmeFYg;!K<)HghUbV_$fN=r8gDj+E!-6`GOA|)l#taC$g|JU=qBIV)#B!@~-RY>(@`H2ERq2#K(uk zlDy-@`HVG(zQOP#J}f`#^YGoOf4=?SHrUqK!>?JX?eg=Sx(ReJ22QF1|2x4DoKjiZ zrz>Ftz5S~j+%ln9OfDb-j5#3z;FCWy)}O`({w^g$m%WoR5M)-x5iH)t=w`jN?^~j|;^&;F)mkb)r2!GdEv< z*qkVHkpY2LJ%T15IC<(QL&VWS93Or#A3gbCjQ!0M7GqtDFY^oZZFfQE+y${WufKn3 zo}b^`*qD3UD{EjjtP}WP(`^FQxp%k;l7Pc5S31_1LivnB<)2)ybdO#r7gA4r#r$Lr z-Aa&$H)21+X{Mj`Dw;RzvJ;D zl7AvsiID}$l@cp~t_OGx1_GV6I(PkH!$1l75Vktu{dg>WFaM1h6k@IT)fEIXe#OMC zHC!h>fB^!%`WDJw{gUdUi<}dTM%{%9?ZSqe3Vo7g>g|>#kj1hLp>{KUUj9**En=*i zhTW9sj|`0f_}zzyBo{pH?)Oc2k}mkSW*E6$Y;B>KPhJjU5ScM7L?M}f)@6*xAj=59 zX6RCQLKwqDKNLm$?wL}epu!7{&sy~F6==>R-H=5i4d1jRiVuSLKEfl~fyfW|GB7&9icxvVO{H?Q)dX=u3-<8t*5Bp|8Q1LQlM9>CI?gD(EWfs?I5t&{H!B zJYB#P#zgt_uAB8)Qi)PMOUu)nUUGB37m>OOoQ!`76Nq>S{G;T0g_#JW<@i{ezaT5t z6lhHmPQ96O(qP=>EX@*7pkz!MTClXQMHfxxq~{n6-^khM+2G%x+F&>{z{)X~aV@yk zTw~K1wtGvlNw6ufiDs3~_ws#yrp98)cde&_3Hq`X-y1Zl-bI!W33z6Tj)jpbDiv1z zNSUVmK=uJ6Rq{`~!jRzj(< zW?$G%ijOYQQz03(zGcRFNyqVQ{t>8T@a*qAC0Ehquiq=SMcszjmdgj zKRvbuMV${PgFS9pglDK=FH6nXe1I2wYx+G+YmDU2((j^j{BQYn>NL)it)fDLfN}A`TcgG%ERKEqW0IVdUv6C zF9+VT8nVjUB#fixY-`SIE*4`Ild4FHT~>1cv@fLk-ulYB)2a9k6xEw^XpqVV$A&;N8*?(7#=gp)qonqvz?Q(cdr5TM$a%an z8hx4|_j)&CF>SG>%<=3a>A=2=)LkAM-3fw;IsWwqqLJslwmF(v)ABZCHqGu~=TR}y zN*_nK)1j)abEk0POYqXK!)bM^S$fA>v7IC315~AW_+}K^n08H6^Ae**`P#+z6>=$zPt7dVCamO7K2z_)y^Nj zjQ!U9lH_H=$BK`eT@?%;1`obeFu=Cc#}mhG@xs-EcK-fGH`_9c=?TJN4UY`hiI9$W ziPEKuU{~?`dXU&A=*!f{U&y)H{E4;nOPeyT z@?w@)E@`G0y(6EbSo@2xuZdq=Wq&fLBsJLV*=$*Rjg(u3*FN+)#WeEJrl1em*L^8R z)#JiykS*HL(r24xN3XT9(y{IwiyjtDEz9K?I~=VWhI|puKF)hQBr}h|oqWmuULj!0tGsR(7b9RvFaJ;-_LCYTPyavFjI-{XX`4 ztj+Miedz3=k(w@#-tsTA+lU-0DU#^VmBbLTG?L&sHmJ`gRiyK9X9hI6zO<~j*>b{q z%6fNei7VFtFZE~IRvMlY?)*YM?y`3M;pNq92v6D=8>BU?L9RK!Q=+NOs(5I8Ok7&4 zKQ3>l4kle0{d4y^ z_0G|#Le^l3UT8XFoOJK4;$%r{w@nRf=}1}$o%Qj>r8mi*xI5IX#9 z0SP_dx93_zwhOx-r;}{XCSr3^asq?6Z=j}-9}WK77URoy_|C^I1RkqXuODN!#oNTk z4bPf9&T1i>L^@46nN?yYj(Z+^5)Vn!Y6Gp=t(le0hW5=ze(k^ftzo-Vxx(X%7wx{M zq>q1Raz!N<+t2-+VSTX6WzxkUH`e>{k=A){)}x9xwKkIrnZuX!a*L5O(gqLExnpRs z9oYNZ`6N^xh87++@sN0#fG>xdkdZJFfg7=(DX(J+nVMKAArGJ?$(lsnao_@O}@xPf-Qw@9wAV81mtNVSJ%|ci80(^`<$_U&dG4 z2%ryUd;D-ybE)~e_%4YeDe3VEO8Pn6f}aZl@J)IP1q~Gt$d4HW3JC*&ZXSW}yC9G! zF9@_}3Id6xgFs}?UrqYnfRN_96kom6@>w`owDF;yxxYF+9`(B99%&bbf~XuacLnQZ zLV$mSXKKjLKYdxkz*LjPz-0LJ1cS>%mOmX&XbuhP+SN{`sC^8v-tw*aiv6`brM~v_ z@q}k+;r!x!27g^^UE{c@bdM|btN;IMNh)O_c=|tA;!)8zjsJ5i=i}S|z4LU}3yb~r z|K2KqJTD>s-&=`J#sBY3h|T!FH^M-L{uyvh*=mL)f#|AHuQAw=9l-C-qkyY^%!S%W zI2!R^k8br9GgJ1JXQb*upmLPGP!jOlZ-h}ln-ROM|33#(;GPPS|K*l7eVvC&jB-qX z%_R&v55W@513o|@_P=vVjK5>ASxT<3ZJ862Y8(aqjK(E00gbW<8MY~_umevL$$^@J zc%o-CFaZ}|aXJf>Uow0(-`7+=g0sLJy?zEq$a{Z!f%|Sv>gvxCKRET`KJ=H29qa70 zfCLl{J^KZ&>y;hxjz-N!+zm|q-(TE}bge^HA^yt2r>XH2b_j-mN5K0fYze^AUA+7+ zaPWAz!T30!vydPe(iOC+=*xwyCl1fF$Hb`E&^1D+&3lr(g)12obknVcmsoKJpEL+b zsiFS<-Bg|)xTe?FW7}t2nBIKRl)p0}P|5Fq^%B|lxGxvtp{CiwLT-Bf$Ij0VSY{*PfyCSg@O`|`+l66l#K;R>Wai`w`5$Z z!E}II!RZ(5vAlAsaGli_KT6wXXdYMguE@p6Hv5SO_$frh^R=Hv?Qs`yZGW9 zFP_ybrB>}-kO2q3r2MiFaS$U@^JG^ljDJU5C{Kt?wejaV0#?{eacXiC@SrU;}u*|0@M}WJ6%fZy~zmz7jQHXWm2X6H)=GhLOsN5Q}Kkuky%b1XK;U zcd~4AWTU=wWV*h1(-sf`riIrKNq$FjhE1#$8gog$Srq#yTn_w!(}3ML7|#x><5RR; zWLh**LTndAA@XDT7tB*+Rs`5LZ%}Lq_i03%Tzzfc3s*LZghKp@U8r3!dD~nKR>8*M zX6CDwwRq000T1Rd)0bO9rd&1VGF4BpU+55W(ARfrhI;#-NC^{QS87T%c9MYULTsYn zKLt+q>F&FK5v1U}%^)PaE@Cd%lz=vFwp_ha$xCxxkUwh@myjpR`As5YP9psd{Vjtz zQkF?%BjgY%71=!+HLWhx1X=j%N8pFjl}QKlcFt{3q1Y%QuZY+X1vGJ~ADddvL23vS zoEA-zDw@oVZ0s~}uNj3)mWL5QBJv~r&ZD3tmfBC{bttsmAuDU^%He1AlGdkUyr#&x zlamy&HpGYJ{LeG;e$jouZxKRA$PqG~pWy1QYI3xosgVcT*`O1y=`p- zl2C9s8mF;i0Tw9w2Wp3mSZJt5D0cLvtiZ=Guxo`tQXe<_t?2RvcHHdu5dnfhZ>{i9m{iVg;medeXC; zm*!Z@9w};3sEI0Xkc6LdL`(;FZc>hOwf8+B9XtdR=wicj<^ocGl5+!VF?#ziiaj8n z7`zxwI89%5Q;wF*sa%}auO2Z(P%o1u40YqSolK;b@b1`i&?z5rQO={rY;I~*Q4ovx z%7gK*+H4T)%a_k?2uHo&i#Vd2S~T|T^~)8+&G1xL_iYj}^c&LeE#f#4de~ob&Lab< zfhK-@UIl*pSDF9btxhgqzHr$G#_)44nS~&~Pka>>a3r|m2p7eXK!;PMt8qdR@VCqR zUkJWuK^j0_X41y732qlWv0rdPO?4Bo6FYV^KY!112ouxAhbPWepYRE$07b&%)4!sr zSnw3A2cF$Ea#wBWb%M`2YzpCCruO8haF)ahJwUWn;4fEH%~$`G73hEG`z#v+jx17# zf2gU6F|9E%RK!rpP2-o?eqP@liu546612knO?He4Scl`gf90FTle)%ikrmWKl}5uY z_d_o3@z#Sf>LBn?_)8I^KG$q=9 zzdQMy;S?)8pEyOE04I`sL7FbFQ7uo(Gp;I;=?WJU-G}U&|Aghv&kRv%LH{<8NlG({ zWLP94kR%x2o5B2L;nvS&q4zTay!(rr$vQK&`Atz)_J1|s8;s0yOD0ui2V)H((M3#d zi!mDXb}I;v`5Op>8bPq#1Av(%vi$qV0zq!`cGgbx*mv#%?$x54ukotw?zyeoTazDr z^{(4!8^}^l=0=?B{8lyEb`@i(#Xr7~LwDJ`Pz<J;1&$iy~R_#hNSU z2O@OiiBej*-{1jUHE#9X5dd! zo>;F_ibmC`MV)GB30;&xBG?Pj5sAkKVi(^UA$_gXZ&JqC^(#`v5;!R@h)kJIsH z2i2j0HKiYWk(KbPb9D<(iEOWy^4f@B1`V15Fsa*EK`QLiJIVAsj!X-3v2)?#$r27S^G zchaA=D+UhIVn&Yp8fePZ$*+>-j8HBn*5}rXT((@3nyF~ja=F8t} zf94bP6n@pVGzownW>6&<(P;%!B? z8(hFzRr0Gs@9Nx8kLY7PBmPLz_xk$evokmCN<&3`eaiUtYV$rUkcNiFT#F}1X=&-7 zKY!G9brsl%f0UQU%Fu_bi;zczu8Uj;Nd1^(3+l|<*s%0ETtE$h9I{AC<}57ePfbmo z+}#%x7Cw!BMb2vqDzaS@!IO)`>#OBt=inF`8)Ft1&-(Zg84C+bK~3#gMP-4wUNrCV zrmr!z$%{x~xCyyi4%4bM~&|Ni4iH3s#IaE?wNQnG9xoK(kmTKbAk+U#k$ z{1s}yUJFoKoo|hC8Z^XK7&Mwggaicz9Tw`N_x9{$zZ1NE{n}xvEkm8{@5?cPvG&8c zMdj&UUK|ZgO$vbz1d57^*Y`nh5@=PdtywZMGA@pn^JM5{yu5_M(DAJYzcBbnOtmA45jI`E#kkW zdJ^`s!C}68JV$&tZq`?&ofA@bNShEDbbp(el++XTl#yK0PoO6P*WzMl@?w8B;bj=w zQ;a7qr-ry^-B~eFuQ;JjIss(65uu@7A#m!3Bkr|v`CO}ec_n&rB4;;3Ri)6{k=ON= zv^F*`Uj1NFqwdq=FLs?y*>*j9L3Gtd@^Az!)l}=I~W~q`R`jd?kt@ zV0%v~L&935kmUWVAAgq=pX9&8?%};&)6*OpRyeA;>#(2YPUSHfpDI++Yj$HcXmI#m zSsBk|&_IBLhF=vk+rPR61iPu5yE}!X-^J4R4aPUIE9G_L=A-E^m{`5Xrr z4FhgH;whznG}1oYZ&wS<=`gpEUo+P*AaHyttLpM!>AeuOK?*L!AAQ-JUy|%i8ZgXX zCvEyrykEjq_GwQaL!O==7dZ$@D~x6e!7H*gO=nrn)W--<_k#-rounuYjVaqej()Vu zea?FIgS5!jWe8Zf^6|sBDOc(Sr^VqG&wbs_AW3X8Zp-m(QUC3LrbgC#_mhdkjc6wH3_` z@(m%1Io7wJd?oiZdw5Ux^5lXzKHC>Zy8XeNTl8E+d3q-|}Bc`WRq#f8z zBt9B8jldZn7a%gf;8+CdT9~);6sFBV0J9vKb=WGMr#oASjL~cN<3C_~l7P;q*|pts z(c+q6J%aC*@#-xHy`Af(V4B;mEvx!00h3+do7kX-+JOcdN?Eh<9MS02uyeedj?}cY zI?EwK>#@wf2wbYUW_Q*y?TV=ks1aFzoTPvxEk2`s{KlL`!shjQf=%})Oyz8mnx1wZ zvMOkIWX#{B%r#cZU#EVHG=658MT##~NyU|hukYLO>wI_L8lv2;o;A51gqci>}0>TL^akNO&d1=dRS-^MRmUMl3X|j<`l(07zIgH#b zGySQc3bc&Uu*XRXkWHHZR%<*2P6#o9HQ+YVM5Zm>MCmM<^qxD97du_PsiqlJ9Z*o~ z+B~i2c_D!N>^1WS9!+nRQ%i1Q*sZ3PKCKRh?)z!*pXi=)qM~>{`VM6QWB;oIvzedo zM{~r}P_apQfwlgaEE$JNnV+n58M^k7G%Y&yC(upAQt$&&>{EBwF6GTEjx{nkq};Xd zs;R9PX{ASl#m=BjBEiTNo;~Vu9tUuwb^mOo-JA}22ijrd&HPRK3_+Wx31gWf zmA*<0l;KFe>AR&(ICxUC#`eldgO##w5qMj<%TVPvZ~4SOU#*<`Rj==uX={>M9-JVL zOT2jTK2iGqLeqL8cdR=cJ44W(G}UU?;c$d(I*((A-*$>gRs2w3Tx1Te0*v+kCDAt_pZh2H&b}hLTyILz8%9-|{UbZ+Jzf#EHxPsdc&1 zlJVr~c#3lKSBGb9d$}n&d$fMZ=L07_h7S_H`V%M`T+^lkNKgEZhJVCmstgA$mtKg@ zs;W9*jP&8W8`9S9!fY>nOFYcZAWX#1irqL8<=gb{}>dq9+*)ys!JmD^}|T1|Qk;@mlQwmIUN+HVE`417ztlL4S9 zdUe*WkM}TGb0D>V3y4uZp^s+JdhldYIg>ALa-G#Io%Y!(!KJ65z@OQtac{&$aG(s& zSMupuV;%AG}D=ZkV<$;1z>rK{%RZ&e@6Y;cziQ2CS(@$;L0^FkZ?5EbRCqER#j^|&64x|aK)=tuhD4{si(lXd6V?0WxrCYeVIEgi;;z!{d)D4vkdi z$56QwzxzLbwWifgl-P(JbUxUM;{{bk28rrPoNpP@`s_SExf5HebCZs@C9Eik`0A#B z=W_eH__U|WcyONeqQ#e!#@uZ4VOkuD1ufOdM;z(h)IYXWFd&Y7O;;oO+`qn}^~z;C z*mz|~cuTYSg5M>B9OZ8H%J+NH_aP)8VB;5wW2yTWJMS56k)*{xzddO(I@FIt5ow59 z-rj^Ju_k5&ov;LLW!U&!Ov>xE`Mh9eW)|ZY-{~b%+X%y#5;2`$>x;<{a$GQ*!F!M) zTxX>nJ7vx5Nk2^*8aq}qegN(5+W|C|X-=JP)-W}G9Y~0sytE$1s@`j#T<8EEq=+1vHxR=gYJ_3DIz(-mXMp9!Ffa7>G8Bt@$zo2 zy|{jnfmuKs!i)3MjpvUBPJtK-K z^ry~aHImclngPT(pu90?JHYR>HVK?y1Uv}k^!8p$M_XOTK!u6W=|#N&PM8bRaQqKK zZgG1S?LTYL@_Eb-|52`yU-#s*`X>;$qd1G|lPqU6H z?r|OrGUYzOUwPBc2e8DJ|CCPduIvgbp<%dKB9_vy??xf)db)>4qd9=)6&Lv*{E3Yk z)A>8Bb&u*=S0$V@#in{>XMOh0yU9lKZYcb#M4h6OMlpYSH*jI+0H%VVpRRfK< zQZ|{n#_cKM-aM}=-)e~&e@2XT3Mb+rbZvI=m#iUbPf|uvZp5~L@^TKWu9GdTPT4G5 z4u=TM2BJMXd6_tjuM`^+~6N#<;Ct$sYN-3Bm5~ ze9O7S8F;YWuVoCm`BSg;ywW79%qTzE?}2NZHX*aTZSXdo!iR;{XBKG&&Lz59Vq2Okcg?M^= zn5a2H>UuSN>?T{vo?AZKliGXPPtt~3xUf;+{6X;;v?9484W9Kt155}H{C|93asU;q zDWjnVZL+c#IvbDdSqY9k%9pwLRg#6-!;_j#gA6q~w{=7@@p$y?v| zxJp}Gy+>)0iF0JkB6!?j!FuV*lD<7}sjbm@I=6*iWM{>6hGXy6~YmSrl+$OUaZO4`3VE>QadBH?>duAVkp+kz~4S|CVUA2w}l2!qy zwda6D!e)D3#Y7#~Ptzs>a8EjV;VMwo#K2m@7O(R-)o9?I6+6eU#}$qFaXXB*INNO) zX@t9J1sNcGh5feZdD7r7Kr!X@rPNFi53iA@R(xZPM`FdCoR;=AB{g6?`S>wU5&Kn_=^E!W}B>moqu+~uC6aE$M99sY;BIEzT z#E~GS4=(xqw2(vJtz!Tz0sjRoLzterpIiu|QMzlUb=@rUl@}Sm)omj5q31EbvNCt! zHlm500i~eO=1WSBn(sVqDp%$}cB9EwKK_#Itjr=pj{&S@E5wT5dURzyL0Ws=qkFK1 zNc8Fxe|o@%M|?UT?zBhZmUoTAC8ZO5CI?jWcEu?0D2rv%h1_OQTOtgrY0KVZ<8jf0 zSv148y;QU(giKe#;bB-d#|(IIBej3h3f4^M^P|}D&ynONeEIlstX$qWB7(mEB(y1T zkwAS)ceS-X`yj{{dKq)PdfrrOk6}*BRNz64J}sa)G0Gyy6}Bkea58?d?Q8LuKbiPg zb?3^;($WRu*yy?z&3blFH{muw<9#uoBq%MN=epki;=^zH04cgqnGkih-XfJO-5PUL z03=*12DZ;@0`IP@Q#uD?DSB=%_b)5IM9s#T@!pi|W(Qm`$CC3W+RD?8@mIAEEk45W z-_T<=LOeeR^&URc(8D(HUZIkV&AUI*54wp{g1{N&@U^f5P<-@l(g2_%Ga2}2SBq{$ z5Mi?w!|HMG`r6e_@1)^W!|X32aKJem`?YH#j>ZM#Xsa&d?DkEkkXe_m(t*0V>Q8_B z{ly#NcHNR@ok6r!X@>@X&-Wf_w`a)cSSh1DhJ-40Yd%I3u^!#u4@f_}2)>=pyB&?r z%*`E#bv_1Gww=8Ne1yQ?cR^S4Hc;>7K=?Y{qsY!Zu)qPJ1qXI#2Htq%(uz zM{l^rHq)2pvJ+5dcghI?rrmuEYWa=Gvx3|w9nd5pHuBFWk?6VG%W7jqKC5rp2K#bS z;?49H15(Th=8Z<1$#VN1jeK8NrKE7FR@p#EjjQt7f>3x>$YP}Y5_BG6B6*|1=&jiP zp{hAzDX(KlX{sIiK9eZtN;Iowmv}FFk_j&dxVO@g#l301TCn#$8)7wR3j{P&xnc8J zh!vo!&8|;YD=N>U7~@x(w{tB3&2g~sE2gZfBNMh9Y;w%v$`^W2!>W-YLCmT(t-@o2 zf?fUjEd#aLsH^;0r+-lQQ$}=Hs&ze8mK%1BxwwI+HPCqU=n@S3mwIw`qQ4oxat^p& zFSq8Mge^k{#&570r0H~=NV$7TKxI^l4Crn^9`ztp;kkQzrrCt(yc zTt;fFnw@o+?|mWbjpajYq$O1(KHWGFnweaABCgK>mALndb?5qY-S>PQ- z6IA4Hr4hv8=6P{;H$Vft!L`lq+it+Z8=G>gf-cJ>;3qxkoE%(SR)0#~X=!VFUBl0A z0$%06`!V@pxpM_pXo@3Fk~V-6KXV8nihJYQKqjjZV&CB@8hkhDX<5JmD`NQ-J!Vk4 zrv_vy=9V@Q!j09iK`9Gy;tIPv$U48da(+~tXXRiJr-2nP@=~Ky7t7<6#pw$PJZV0F zYVPJ`jr}!xEudn*ErN&kWjUC@xGLeseQ9O>acRJYBb9o}5enEo9NOikQw56XoOxoN zcCuk_8zEz#Fp0=TT<9q%D10PnyH|Pt$2JqR|I1Xqy;GQGJnTLpnfAp~B}=HH@0%N7 zhK;2qK@jkVo*1*1ASfPQ>9ZB&6%?>%NnXH^O;*$1-_GizINvY1pGBQS zxTkkgWkoAqC=<0dr7I554(+m1k5oz)lJ|G8FZtf1eaX!olBetF(@cPlob{czIvUta z$<@N{M))(*H~zx+BETfNV3_p8n~lGKFuOXq0Q4BZs7 z7&dFIMs(Z#1b_Yd#l*^*1XO`~+i5m7whvy*hmgj`rg*?u5i)21J|87WO;y$U>R>+G zV@i>$(&BWj&ow;RCNEG(`nn5Wd8N$co_*CNJ@|g#1nN3KLri*= z^K2qQ8n1conHpirFTQ>(8C;HkZ3Ly9dX?>*p(TlE-57ggBv&?z0n} zBk5*g&)J`&P}jQOC8neRfV+LN#*fc;d_UV7XfPpl=U^Os4?bjLXGcixS7N&0ZA6|A zvF16DhV)wig#sbN%k}Dtj1s7%gCxpys+=yb2IzvbP44$}xUK>`S{DriFK6J(kN0!~ z)I=O#&SFg9AD15=U|f~^-y><)fNhpGov&zI8qV=v!UWINSY!x0)6UOxd5cw6R$4FA z+oD$xEOiD4=LTNs#Y;b2>vAjmo|S8Bh!LN1v@Egec<%B9dS zCs#Kf5@nq*9d4RD;9ii^_hUhbn99Sfn<4Mc(Te5fHu+DHR`B+b>QEAkgT4OOlD^P%l)wzy9|639MaI*SbtX9yG5ru zEuRJ86f<$jW04TZJ`zt0Q2HhC=jnAfCDwj{pz{8~t zKtBBry6$c!g2xXVmxI8yvnIhgK)Db;@*K_Jj|A!*?S)j9kfS-I!ST<`Ok#3!Z#XHTI{!hpHAHDdC>SDf?rc5o42 z8eTnf!{-n03wq0alvvz{wJYLvJnzyNqu?v(usl}6AHNwDC;>GV_UNfTQDDL;$`cR1 zmHa5K=O~=LKZ~9VzR^1X{^V1LyXXs=!10ips~WEa$DG)?=sB2KRB%$oV=OVS@*NY$fKw zH&`*9%Vg-m@igN4Gz*Jg5kb%fa1iwNiS!p1x^>nnG3{YtUG&She;XG#U6S+iCh`-c zhV^W6X4Vb??hzbAGUyMdQtHHPx>f7PoW1PeVUGyKeKqUUH8{4mD<3>zRjhVAl+}iI z&2sWxY6^fFvFn?ve@^v)3la~K$p`r28i5vC6@G-z!6vNvE?P%V+L_{$EO{7~%UxS! zJ!O-Xk3tRmP|5P>RYjKHpU@X7Ny*8?)C1oe8m>Zei=RJ#?f}52-nAFN9{9bFpkb9T zpx|u-h0pG^VSv^@*1ifc@k}LXM_kqUAO>_GJ}gzH_LaQLpR2V}s)HOgZ__%p>=psL ztE0nj_ou`2BH0P(|`?Sc%*C@dg#P3Nl3fQA_7$d8heD1iT+0ta#i zB%aq$^FFOBpY^Rwwu@txznlOL3WuFp7I$`z_;)+zwB>81+=sgfzqPFgr0Zs>e#GY8 z{O{)7V4e7^PY6Z2sP6hI&ALE3^VSc^mH^v|oDbyvhCO2DGPH12sgGSh{Fl8R%!Hl- z4IzV)HC0zHrqyf?=4zOjnO8;dx=g>|QVE>^(SdlNTAx$%htq`MlSAj=yAV(KCQtBc zq%_>DY+@C5he)k3G(oy?KR}Vxx6AA`9S99kBM})APK??AX{?q2tGuF#NMP=K#i4$0J%#G3&S7ss-O0 z10)&D4b=5eNM=^fL1?x;Xf6xU@~-=rCYHAwFBY3a$Cq&9+NB>cuNl=#6Sxt)#}Md?-EaZr!c5r82D$g1+ka%--aWj$ize<;{- z63*k{LkDDWAdt-))*}XctIdG4wsw~@b{`Xzc(`6Sn(E-fO?qqtaJv(M=dM-mOKrYf z+Sj>4j+8NEJV!vQ7&w}ZzXr~Z4RGKf&48X0df)+bnqfBr1#4?-*Md4+L`J_b$X#j6 zs11g9u!i`L>Y4h1k22nOGETC6%2zkS_QWOlMZaQmeW8f6n>W(TN;6jQPEOPf?&4NA zh3`|oE+T@LZk;xsym|nmgo&Vt)omhp-c1*N(C^(tqb3)I z=^~XF|HUHPvpYPR1Kq~)&t&p-PzAzhrg#F&qb-D?x7t zmD)t@x&IzX>Pqpvabj`mB;^C>9cLZpaSJ}(WkEqy)2AB9nHVo>nCM)+A z)RTwD%|pFrwv1=`I$vb6p8@KLYpS<$xk8~O^SFvaA=ng>R7Be~YD+XUF=jgY8|iRa zx@YJ1r^N}93r)2io#OwoOD4R9e}mveC!lwDr|K>t(?x1)fKxelx=&~vux&x>w;8A% zP@S%zM{+UJm68&%>QQUhyl%?0ExY^udC|ICb2`9Wr;EK+m{$RA&5w~}A20U#IPlotFyOSWps1+9C$B3EJt-w+rd(!%qpHpA_ZPRJugnNhT5ix7 zUt7!P=H^B&?!^g!4IK9DKNL?w)0<6qB%levV*Tll!^;m zs=wr3Zodua@V~s_G_1*$mVy&HPv|L(Wsa@5T5MRZsj7wI5wEx&U|dh*&v%Sw3hsYn z*aVtDzK9M&ttBP^UqBH(J3klQFRyFb`&qV-9addvoFo%-Zo>WFa0iQJC$Lxiq+I%c z9Oljd9_cHiKCkgT14z>lHd~^*!IRX4q5uqcC0MuM(&z+MmP42|hG948&jCW#N$X zh9KCOA>al9!gt^@Jt6|F1HfOpY6l>~5vrAIN&20;l~(%Yy+E z0jEIR@cCak0Dab2(qn%2tx@Zjg#+uhUY)NdaP>4bryVjTw#8RqBpli<2r^cEuolC! z1@KeXw0eI7Np*yuSvMgy0`Lps+1qD{3Wg(@0}6Lkjb9hBU+>=r4c| z`SY%~{lXoSYZd@j#A{E~$aP^@e&iu3_tLr(!ZCCr)0QKcUT5$&MbhlYv4RhFJ%Jmu z#8C_@Y9`PN^V3WVyofbE4Vu@gq56iGt_DnzCdG9kW}ESU{G+YjnW!5mk7ymLoCWpK zsIfWG_+m7Yv2-t@#GN|OLJnJ%((67jcQ(VGH0n89>b3Z#L6}TLb%JDWCx1N9VM+9rUz!f99nn z;jSVDcp5;6NQ;`z1LXC36+d{;$a^v6_o1SSisRq>I%YCs9|k}=iFaQ2@hr3*=Suo# za@pJZ_`ZCJWb$}B+kCT?mGxfESw)1}`fs@&)OR}v@ReA(mRN;_fl7LoqGP=K_X{Cd zdA#rBiOa`R^p#bGCvQ1?Habk)4qq29tSZz`?Yr6_qqQgDa?<~$y2o5`ytFflj-p8~I&5OIBO%L1yH9606$M-8sTp1ekyS(PC@!VFP5% z@1eU}7H}3#5_59K02^+>P65*eVK|C7w6)3&&&7-`A2lL3j-V#8@pRt32-&@Cn)d7R zH!TRKF+zf)iBO6>ZAzV^?!gjAp;fr@O(zR^ zL<_ap&bJ-3VTlUF5Lf+!hh5#LI3{l$g4(%%Ybaoz09B=OdjH}6IC$A%9UU=!ig>X>n=+nrK13#KPoH9hIJfED#9w7&715GvI=GaEV8_dALV*Z64m5b2yt0;$w{N!d z2KFx-ZUc@xAEi=KQqVc6fWb_J%Pvpjsg(tR{QeD=gh6|NPZ0$eg73r4wn4_%Z&rX_ zldZEt7%H$%qNYId4lU}kdy0H)(;XS7#~ze`Y8NZDqtGTyACL&b5R9ACB3HV6hu9JS z|H`OA184wA`pM5I)YO;XR@I#cr>jO+Zw8D*U-W!Wc_zkHlpi0ys@SbOq;xHW3$zaP zQtYF~X42XI9hOxd{#b+a@{+j-3{dhd(-YD@Co7~JDm;MfocSmTz=lQHzCTbUu7PSQ z0zkQb`vhQ(`T(yWM$mXV;d}s_9YbD4G+-0#Gt16_oI;pK^M~vGaqB?9+g`22pmON$bcF;MeurHz~vmkni}gd zN>XmaL8~;Qh!GO1N@sF3!02&aaJVaSahu4MH1t^w=aPbnZfE!K1mBEkHy#2$Yiz4y zZt#O|yx1Na0--{q z9Nf^l)MFQ-7Jd0O8>@hDU-E{|)O9@&&;SJq|Ay(Oyl0SXKt#YnZ!rsPXV1*21stk) z6L4|%L3qdp_GEHR4OUbXuR|^-(3L=dHs%_qn15%`=;YYofM^Z;eD}C5{b&ZXGRKbY zDx3q$dd{tu0Ggi-P|mSbGE!1EM7Q>$1`*!COWQAxHPzL@2xtUKX%}E}sZ@5{+V#iN zK-L1Mr|`;qzNXE#MIJn~vq|6XFd_&>V^bx>sWncCr@g)pk_!Mr7}^-1$ycE607LaU zFXRb)ZYD`P5JxrZ01UdG`}K1yZ+@@iq3uC(l zH5wuz$Ls_67Ssh;4gtS! zD5Q^pgx>~aU{FlsJz&BVe*b#yJ0|{F3|Q6G=Sna`aocSzo6a7NEufPOgD0J)D+(V?gda|hf_HGd$E^xWcrS`cx2Jlg7ExP z%U5T;rLqUd>gLJBjvmdQGYL8NsetXls>I5`*a5ZIzv!oyqGc4KhKu)ZReID^*=Wil zhbE*|Z7$vAg))SRc_*3;Y?TTiQ(!uV0E*puWNLbPXnb6C&b?mixj1DUVf3p^u3(_` z>w|bw!wFO}Lz#E)o<72YALZY^eH#Niy}LIA6d=(5E9*lR1M#$95GF|7et<%PXN|mF zM_&w70~8#uu`A2DV`#SH>K96CN@}W5tBKOSdyw(G?0|$5Jg&2x++L=!LDzC!EHEV8rz6s75wYbM7$6H;FYs zN{DXwreYqA1l%SAybK1N_W&3LfDOOR940=K1^ToC2R~>Qb7Mnz?gS~0dmBmdGS5R` zB<_1F6nU0=rRYPm;JWfN3sn-&SKjeAI4BXE|N4rEG&U2Q{fmca5Hs;1T+Xi_3coWAg}#& zC0eTZ#ouH@w@K}95)42@fK++sv`(Zcr!nlRKT8eW@hF; zM*|ZF#{$gY09=R*20xqmf#`rxMJNc2zd&&4J$iKtWc~4yx9LE|j#5SI3M7X_#Kcs` zP|3^R@#o{Yw-b3cVgL+VDS7I@97ZBgD%0kDvh{?upT_pxsgq$yp>%%GE7z1dD$I%z z#qO=x>%GS2iJ>JaKbXpGg-iu)Ap!1N3fy3^@z^!`sWTwDV2XfPTRAh}7k?akW>GoCu}BwgB-%T{B8+~ClvhyuayAaHi5oy8!vV}UbpM=b8Bze zajpjuT?uJJt*RpuL@!r8{+Vl?r^hIfZrq6YmmTr2hIl+VlqB+i`oR58Y7?~fmLpTS zhf613gd{97(g`WCiGL*XV)sF{<7X{_pIwO>+V}(@RRcAad1~)LQt~>je)+i&1TH8lz(Yw#OkDv4 z&-uq=SU@4zG_!T)>5?sjok?=55450`HA?tn&qw;e7je!6RN_%w8-; z*IM9+DrmyhNIpN~b#y&3ZU~}q!vK>VWe%S#a7p}HHWjLj8&0SPD_q$>ddS z#Kri#jB_r3>=q_SA3b_X|H>mEbM!UDu-EvrJ6~RD9fYD6TIqpU z4hpynuXyY4uDdHQ&V@exsYVC+r2dVofA{xkmYVLDk6_8NTMgPwHP@FfgnGQ7j?135 z!vX>~s*WN~y6WZmP{Cihch^?_U{BO}!bJC4x{){tpoMUo;vNz*?1LVw_RXtRgT>1y zfc9x0Zj;FWDkXBXKC%vYwvAJW%Q|*1zXgVSQF(Nm@QeKKNiBJ3)90sX`3#s%&K|q8 ze;yfvrU>^L`6W`ie`blY&fu9{{&wyr-Di7OqvhtPl3g^9)q@feRwax{x0# z*w0=+hg3Njv>=eI1wd9>PW~7e`XFkRfRe_vJDl6%7d|jqbZP4v{X|wgP_+$km~(v( z<-=0^MuA8OpnQUk#_`hv-H2X3<)$){GVe7)E2?`cjW|>}({lA3<}1^y6+` z`Qy&z{33Rk*B<01nR^A9cuEwz!b5mfuL`S!HqWOQ$ln+IQ*Z{gjUrs&0vZoC!-fR) zFEaG5tu`I?;5+U|>0@TwpmTpl&@Uhp&E*+;ypI4)ScO-_P@@l9Yt8x0>C z)k8$jeT_Aet^rGlorc++HcKB1wtZg;vnFyhAgCK&&+$>Av!po#n-b|d0(5}T$%LlQ zE4hb(f@IxQolq`pwC;^e{NEpPhqeUQkESAwH%i296!a@5W*Cspy8jy2`WvE+++W1E zSCLbmC!Hj;tW=Ikcm#7U16*d}EFpRO3))%o`bK|VoSd8}fz!|qddciJs!T*kxxsq% z0LOMRV-gI}vv&qRqS6yuSao(2!FOpiOnJq6z*S%F zp$R#LMZv+8tZ}{s(QZ^B*ZZ&!Bxt=G5U_W^vg9oymnH3?{rzxy+pw=6_+!L3$@`-Q z_W!Ow7t6N?&bw4dGQk6U{#HIBNJut~yH|*ECSN47IGV>rN>V%o_Xilc*H2-Ng-uOO z>p9p3kt6HRz*D-txdPyNH|QATfl1BM(h^CI9e5($S`PJDfFR>~H%JPM9}mK${;sVh zB__UPA~FMq^gb#|*Yf@X-6i-ZK0Z?-aUnLDpfh^}yw0F#6aWtiFdJ@dZOO^Y<3d zkz#8Y8>`sZFl%dTd$t;PEms3pK{BX>D+hyE01L+{P6AE7;DO6god`T2f7eaXqm z^#E`Hz`5maJV~V3eB(5)-Nwd-h=|Au+|)?g`S9@YS6?3;K_r*!h8hqu_x1NbrKb;@ zn9u@C<2@1i#=zjw3pY1@U=Fmfu&9K>WdO`1t*=i8)Jl4Kzkuj@`nwGw`0nCX4Q_Y` z+i!1!7w1kz|2WPMec^2FMH^{<-B)O5Zj^FV1I4_q>flkIx($D6;X|jXDw6rSVh;A9 zSqC=;qu(_JKrojQ|5_!#DcO$WSKsV^W)3My9AP*$@8>flz8~wV8occGype<+Aj2`hAc{@S_Z|feBOxm*8iv?CVsrye(dz0XDp7ZQtS}%S5#9dt z4cUQ~y{V0gioyaUb$K~%A+)@wd)fO8lsFPl{<={H-nF(TG}8opI9ulk&VIdgBIW;N z_wT*%`3r%_Hv+?PPj8R*5r!T%X-_t9ah-A(#{SRO9sl`4iq+_&{{?%?)!~(AFK+jy zg`)x}15}uzL_yUG55j2~L(~anU1qBY8xLDDJ_?;Y2xO1NBRd7%OX?!-uP)UgEG>Lhdjag`Om>Hf)~wI{RJ@9fTZj1R{*_@G}y0zetfsw6^0ZYuB@!I zcK^O2sF)f6$oHFX#_eAkQX+DEvIL*7S3&&mni*QZW6{M; zsDCjWV$>MDch71A8>x%9`VT5lzC$lpnCPeWcNUm>dtyHL@Y$wXtYdda6+*9~?~+#Q zPaq^&*j-4okh-%z{u?LHXZ8wyo(7p!m-Oi7V0)44fA0Fm|Q z%O|Hx_=%YJ#(n+t>0bL{MU7Bra3?LRZaH#Zu%By4q*qK;)76!QLb;L1{Q>DoxSb_X z?`=(%0;i&D)|pW&R8+F{ihJSCg1$Bv5?q9S;{q)#G!s#2KARH222vi+jrP0v?TVdh z+cQ%Wj7lx5Du59${&SS)?~&n_p%ILo3_DZGj9jy1=|X<+a!KwA?_zg%xKn;sf5cLn zSMtQ=g@hN{VLCUIh!Mm&l8mHxE(OnpeCuHl_%&BtTIzyFArO<4lw|B<0z@6@T&AdC z0^v(Dawh{&Rq*g1>QCT)0pFw2`u9_v3gaPw_X3>(8mM|?1s(w6E5&1WL*JJ=oi8-96jpD1X!lrkC@G2qosj8&l;43XLp+sC$9nA9 zCcByGSCn+n^9bmc>HW6DeWj!G1o_dC^gplFu*J%cNYDvwVHMk~juVj7>SLvRu>pL)u9~=FnsxMP5Oo+Mo9<#Et6q_8&PibgsM+-83nKaGA zHPIJP(Wg(*d13q{gduLFzeaTl81L4m<-Z*C(x}uuM{VF}+IV`jn)Y@#5oho0N?t`} z4bTa2q`eUg#UH)5ioqqfQMU68jO9pH66o@f&K6(LhNgV@00^FDw`Pv^Yv&w*IfRzk z9hAhj94|1o?63I(=!gqUzO{IMZGeGhPSPR z>`0pbJ16XEXsV31mXa4Y?HBNhyCADBxyn--R6D>{yFW*zCkAXavplw_`_s1~aG^FX z7nbqDn4fTmshHH^g%7>KkxZ3$uVRO(JmxxqaE|v&A)mX9493O91(=;P_5$v%zy)w~ zKJZ&cUn0o%`&YXE>5bb~Eti5{m2K4E zz=T%5SA@VoXZ>)Xu8Ld=KkmocM?Ph_!=tch)%EM-LT+0p6h;+M)OyxkCmsbhUu*9d zngq52xArxTIm(!o00}cX0*#?yb8})L=mL?N3xEcVfLYeVSdPMu`&4W zx}D~^H(_RQKfV)orIb}B@{Iq_Xv;*a^NNxGF{|j=Z0^CO`CZ7%ki5@Wl$cYWP%nx9 za(N+7#*xrFO5r$YHyms0W6xctR8IkQvcn4Jr8$7^WMpE=SHG2(ivFE{0$>~sK$!X> z@kcP0y4A^N0YK~(R-eFSRW4IxkRLp(OnrOY%ypMgJ!@?CxZmO!$2@xIXbF2VAV z?oV&6E3t$etVE`uz<72V@t6L_I=Yaq)(&NnX3%S z-V_B8!<3d5v24>ZW}wc1gHd^{^=!c$904$p0T@f9b{HT=)j;IpFq518(^BkW%aGdZ zfU1rtm0+&=5zC*04mjS?NyW!SZB>H@G3X_3GC-AnEdJlY4Zl~3{!4WNtJHR@sHpsz zAZzU3K*@y&{;wQ4JpoxP?u;dv`8P=ZM_WkxDaM^Umd@>cV0S7 z3%aW|+5fEbPPklG_>$}E(ThSq!l8STKSY;z0lnhT#0-5V2}Vui%|>G6`WUIO1n7WB z*53rM9u!Ee8S=T!R9k}e=s9VSyxCN}-jJ2tQoque!vC>%vf}JE0|V$GiR&LEclQ5% z@u{F1yv`%OA^w?Tm+{J7>9w1)#dR=#A&$MnvB|oS;!otv$!qrGLH5frbD)Vw+FOD8 zu@k_vNC8agnIHImjenE6tMN~)9UE)bSt{^w=5*r&kBkcpVqSz)fZY-2VO@Evd*#3JeMn zn#r%;E3+RkF7=8?BRAQTf19jz@k0lp(f8c~<7DNpQA0VE-N;2!Oyh{Xx&=d%FStq8 zXYDF1H%9YB%=4#aftei4Nwi4rvJRrDr#GG0sCAZGXL>i~B~~v>ap#8eq-vA;G(c$_ zUUsv){=E`7w@_p^V*oO=Y4G3u=ch{>+?_pFuD4FB;E26>QRfzG8R5J*1NPmyvY2ltzKXL|au*L_}U@ zA2r_5K6!e4z8&%;YH?a3cjR)|qYc@A#fu$2088kaE3r>EkXOXmEIa*^z3G zsMn51kiV@6a?5uAL(4WN+g|s2%LxDQW+%Hc!aL5CGy#LW``!o$CRqhi*)MKD0vsVu zt?K+%eAJ+{+r9+*P+uQy&%Si+LoBhcrJ+E4Zei5wm{sk`!XLZ_!gI7rnIWM68oTRiqo_4CRcAl)n5u00 z9)uoNYtQsZ%J06E&W`nDsC?GPLfs(B-L|pwMV2LFkX@uV1UBlJXmL7dLFD$_9`Bop z(hxp<^7mv?QinR~DV@=ZWT`@WdueJ?I1>%=r1~2jnnw&cXujps0UU&BHa{2+S?!hz zG$WiwilvVgtfje#^4jQP5JEf5r9Du}IS!J^TAZrnpZB`CoG3B7xgMOioclT?p-E_H zqCUT9B@LggBJm|63rURd&xd;ggfzM%&Ne$nIL(K3Wv3CFP)<50ww7E;#;w)!b zojj|5X-se~zT^Q{IsASpgdOrcUa=zh<`sKZ|CV<@t6gzXd11MP9K`5-)Rwo@@`E@y zKK5&FCo>lsJ%IvK6VlP+dLK;kG&0Xt4qs})jLklaeEP&x0$NGN*julR^n#=T>Yb>b zy9G@DM}ykQ$PJ16p9HU>2G$_n7388u&5_B1Er^4*M;w_XIfLfa*HCi}S#0FiqDbEo zw^#MYbh3}wn#HKwW%>HKI!@ejGDUmxF|KSS8!(_bH7mDJ3v!I#@22ISX+MjxM*OhG zVu!%!$ZMJBH2do2zv`(|)Wek9Kk^-tqYapbIPZJA%Fjz@gC~~NF%m>?3(Qi9Im)`) z;JLMqr}W&tA)rfzQx4}I<@5+Vc)b03_E~rTjbKS72P*V*%!Qn0XDhh%(iQPUY20LG zBTp|icEGak{2Jk9TX+zVOCtdhRbkWK?P%DV|4H1^yu?dR-Ze3S&aD&@I0C{l=$4LL zcN_Q|;sz|2oE!H&4e#%p-K#^h{7}2YR&Fx0g|H}K@d3)x5^)aU`!ymzURq(*gaf3~=1ULxBf#z(`OjePA#&!@4!g8>JbBZbcawb&uQ9xc zDj>eUr}coLLD7=WmOEe)qX@71G?{qGIcVO~b_Q3-ovqlVk#=^S+99lH(U>fp@5BXu7Di|2=%S17vDjt0J|N8Bilv?o2F{(@4rP?OALFu!7tCbsjabWnV($%qS2m+wAi*~u8jbVngUb(x?9 zzg;|}Z4`MnB*ueYfDeJi46hBap7}Bn%6>W_+d;Kx%BPI>SwNePH4j#0eetHKtdmMs zZc|9bKCUnI4d0TL6_gAXtxA`Zg-ZFt!JjmVk&K1eCS0)`0g65-rI>@DLt5mdl&adZCB~L7>BM#d9{O36f}sX%$K#g*z2SZoq^>8f zsZ}8D_V2r|)ev1~)wV-!J3-?f7W92*(9 z59Gza>sb81I&Z&t|Ia-Eb=PIvz8%^P_xZ0-@^MMFLPw7(^|QUr7k zVDFm;qfPI{NecyC-R{Z`bn?MD)W+Y*ZJbq?Hk8@TvJ(8P%XTLouc9bTwz4W1m6QxY zx#8&>R$_R@9{D$rq!(KB?UA~=k*cy$g52}WeS|w@#7+zms2Hj(huqC)T3caryvisN z7)g^vV8chG{--Z~CXQ!_>Qlptp7O%z$2*7@8mB|iQhYQPl&tdVF7EljVl$`BDc>tv z+unKU(a6=z1_D=|i9h`NyVt7;l6C8MPI!z zzxk31HSzE>ft*Uz_U$`3*H%bw9|}u7Nww#s%&^$)uh2SOKHJ(FKPo3s z;{rOI)5s_c|GH<~_oc4p)ga}e#S9ELN&h^?B4E$_ZeW-|fz?)C`4E2OB_jT6&YhBH zEE%L$9PaFd8M^QCRr6?ww6tZ@ug=}f*Txq6gE)T=Ll!0)= zRl7QM4P)syQ6R?ACFm>4$d`cEo=L6_tdDdccBjjf9!)t|SlI}>b&f9F95>8+ zigP6S`B#r?{2G#b#wh;56y581pr4kNAH72ME&9qn)hEjH51CTnkZf;mfr}#FY6Gw3 zH4sP&$4K=TA(jMiSc0E8I(#$xld52>_g1AcU&1|th%?_4nt|El9EbMY$J50eU9?mR zTS;xNYZpI8q{_76K%&D^N;>5*Tuv(I4#YZ1Y0&;Df*e=71e!=c=;q>@EC182(2Fu| zqU&YZ1uJc;%QK>bj5A!e=HQCwj%>f1%{Nt|82)#UG5>tmuv#G0hHXDUH*{DcLMM$#F~3KQo3UQfM_IIY@2mQEekwSJJ0O4PB+ zBW&75${}%(-r7qno6Tl$ptyu)Cfy0p+5AWUb;kY|9R#0f@KJpu#)sQ0^MZX+NovZ! z2aOr=SLHwd8J$S=eyGzk0sGf}!+WhTPdgv}Db+zlEkuo^s?)M3nUI<`CD2TS_yd2L zUOREp4RlDC^kG=vz;FkOLVxK#Wtncyz|Yh9uMZt7`ZK-7sCD6ezfT1yWOf`Ratk#_ zw$HqP>X!*Fd%E6=o?GRvNoP~+-;xt|R{otTqAbQjV2^1TzM7RTVfm_=y8RuDqwdKE zfvnsyE^I>%w6uYku;f0Jn4b0MH%~0J`CBdzc;a$}Qd?s9%sBZmVR=TA6L`<=&=~HC zf*ebbejuye4!(HP6qkwcl~jNCZjJEb-n-kRrwWP`T+Yc(>-U|mj2b=-MX_@bI#FEP zE~spMaj$@&)ssC6Ux{n_EO37gTY1~Jpw%1h&f-Db>#bGS38l1t0PUK1wvn5QlegbV zvjnYS>=XxyF?n>PktZ85ylOQ-D*$`#+>w<4kvsIc=qlC}LYyCfEToCa2oa+c26o{N z#sR?^FIo9!>Uy&y0Wjguap=N&gbBi0)v&MY2b@NAGWsRx>T)Zy+_d)A3d%53ZosaX3^yDDzmZqInTRK-Jt{_)&L zGZQ0}oki-misO3MhwZ!q>iTBHpLz(UFE!8;lP~t8`Pc2tCMVd=D6_#ZdTrP?2-j`Q zL>uNg#xzhLiucII(R8Ja)@`(hZ5x}PrA(3B6W z3$V07TkS-XmZn%yVHpTkw|2ClEQC4?s9c)#SuOFvv1aUhJDnOyC4EiG@S`VXP7u!} z4cwp9SX!xf&CXU)fxqRR6;xW_8&o;-wwE_{XL&1fMyio?qcz26l1b%*TUf<%vAcqm zS~g2QWiCMSq^7kYG$pXzuYxQs(uOqji#oYf-Y^wjL@37Z)(%L=3%^ig@&L|%>kX$j zqoY4g5dN~gO~J%j@jp^rQ%ma=7N%OZ!KVPCvrHlpS33b zcsTD-QT7%{5HV23j`a$^AlRq)-}fdS2koNpvGIKs`UM4AqmDWVNC^d2-A8s)J8YLH16IJ3h)pf_9*8zWAtO~cnnIrguu459 zUf5o(KX&yodNn|PKHuBy_4ng)B!m?c6#ffWRVvkQ?B+J|XsnOy@|w8i4x2i*SKcZ{ zH(I_4ka_pL-KA`Gv`w=Uy5D5zX_zhQrvsTAZh|z^F^{g*h{mCvyo}2h3+L{}(9qX} ztz9bDKWZ+|!GU23uTIN96sC4Nq3cRyGL9GhlRWZ%-PeOl8Lgss(z2p>f=H5)Qann3 zkG&U+O6f8Y#&iC;5lM&SI_0p=m}j!o$882!X9<7L>U^f_ks+%upWCW0_ECROb_w$~ zUv`2nU>SW*%Nl2`$= zvVH_OTP|!uq=WzwHzfOBnu(~Ott}^8)T7FxPXl-|H#au{g_qEm%m~8Ye&FJH%r8cw zY3R4+p^mk8c4H4ejvufL{;V69L*F`}{P zDxym-c+9#mCi7yAM|sC2ohmGnB9$iYRpcv3OU}7ZnGAdMME*Sv-6>oKa$&yQhhH$O zz2O`@<4NRir4ewUDl_q{`ZO-Ll}a5SMTcqqA5BzY`Sgr#)&@9$Q?gfJDJ87lLm(z+ zqWOQq+fjx`Wsz95*}u9Z?8tC9{!cj-m>&Mc`Q8F-tgXfqGvwnMW524 znug&B+Q8XiINvTFAUjCP7^j+p0oS~_eLPq5`iEl9XUXEYQ`Iik?mEYmNAv5UzQ`Pq59BwwtnWtR8eAnwaX)e zJ#2R%A*!HY^B|&6Zc|Tf6aP_C$a3XE2CQ&1Fb9_slT8f?sXUKcLrOn{`DE_J^WECJ zyqD_#s+a~nn?FOwc2zmdd!wRA>g($RE%lPS$MxO^5rn092;*m^)yU zxOOs*nDVkP=J6^ve&A*=p+wjL*&kc$cNZUq;(oNPVzGGnBV3DfckcOIvGE)=3CFmQ zwW_K|QpDwoh`*$xY;(Q1#SGK~FD8~ikgLT(EPI2_T3?`a$`QRHt3hL|2;GJmo8^5N z3`7y(i+KLD?!K3FJ$Pa9x@&kd+@xV1<>Jj#X#+vcoFi4vmvmP{6vmA^{ML=WZj(IZ&&ssH;Ppr%3kGmG*K`ak80y zC2p;TC=<7QuX=hLO^4=tHFVNYD{?Q6Kc>g{gKBx{ry`EA@?II3_$#45Xy18d zK@i!z{hT_{wmR8JR4`q&OAVVPYm47Yh)=jb#l6&!Da(Y} z$VMSay=$`JT>>T08SKw;eX7o6hKDa7dEML4O+ZVXbk`x<*K93Kcgu2T_-knQ;B^Pr zdyk1`_>W=L+`Uos56tos*k4?dN1F^eY_~(SrUWW1+HG_nhpm3N?~7m)o3ziumP*Xg zE^f}R&a8!bn9m5b20k<_j0a-;#2>%^$qS9_*!G)ya+|;RpB=8|9s*Z@x~8TgkpG37 z?jTM)nfSzY-QAx60$^uUgkhaNF=ZuB!rsq6X;4TI_1E#ik4qkZu`iNecy18JuT3G( z{|r^58DdPM2zvNy{PKv~l6C)tQ2f?ZNlf9eFl;(!I*`Z9AM?k47FV6MobIBMoM|T->D^A-oOmBD7ZMzkM-8VwV z${%)|^4xh$lT6g}UdUnfL4&u}?;I{C{(W7OR*79uMnwM0?3(gM*+<2B@rgC318NTx zhiU1Och595k~XI}X<&7D`Y*he>Vz5$9e~C~^!U8R0*@Cn|L`(OJYl|S&G~BXzQ@$z zV2Or5bfv>x(%%b8UPlWlT#szUW*Z{Qr83=Z2TTGkMMeX{e`oZVS_ zk_1#=vh#2MmWjZL>MK%qyUA034^AGio0L!u%IMWzKtjBvv7CbgE|9`Z&kI@bkk`to z;3niO9E`%tmdTbz4=!#fF~?fOTFPUbMA!Yxu-_2*KP?56V02$J#=2E;@y%9tQD&J z_$RTp=R9JYZgz|hAN(9?oSM4P6#E`g9Ng)ytlsM;*%EtjsB7=!`>caQntT$#GMou+ zs(Iv;u@cfUdIIOl(2N!5EySFHBu@X&A!^9h!^@J>E%ODDDc4tvc-3}O4m>L7|5G&)u39+8A z6{z~V)+O#azuVx0CxV+^5Htd}IS>GRkZg0|r{O!FEz1R?>Zn^`{RX3QcV%655^Nq@ z6BHZypk05M-Ry?uaTOx~V7>lLU<7-VORTYPO$a5p7wRCehO>nL4Fdy3ARK?Tq@D90YpX{SF(AGUDNv2j%zZ|M;Y68~_WDHhIO`*I{ z!+z(C{tmr-Pc=oEo~x^+G0eK>hbrM{KJp`^CYVl6b+zG34^5?*C~tPl4)%M-9qe=F zMeQFwkYTQtv zT3H$A>({R!Ka&tEEKtvSY;^R6wl+OTl+n`Ft)Gq_hnfYc(T-l^r9b1n`6$eW)}^z) zcBy!h|HTvbB#8>N3I9!JwCu)tay}W(zRTQ{3X+xlMDfhPxn_5f1(KjBqDXUD5SG zw~TLihi45&e4*VDe}}3H+JY9v4k@#uPr3Lc>$|1l6jF~d{#qnur_O3FoMo*Q3%#WY z0{3b5mn~Ohb9NFCd-vwK=kyu4;(neYL_uDcytU%~2 z*K0M#Mk6N=4wa&F-KIqIsA!sV8e7np;Ce z=l;)oN)^$EhZx4QYQxI1XLd*2qPE@HCFk=yQUiMoZwz~B*7jC1qGfA6X$IWM3HhJh zQq|aBdQ=+eIL_e;L5Z=Q?J=cHdvIvp_qr@uei=Y?Z9_v$K_+f_$bFYO^AOnlCMqwW znGv}4_OKqlAr4z7UMB>JZ~C=w{`Ab0Kn3ud zh}TUSvQW#XKbqE6qsuG)<+C?ry4tS|UM|5&C(ex1O-qEOuC4vr*q8&j{~(0;u8FK(K*b4cn2$k-C`i5_cyON!TTVd@8V$cJ3>*ow6mAd|vY)zdKd{_a z3&H&Gfi8O0XR9--!*|A=wtJ+;PT^wpAzFF@%vaBMe00xUyaJ6%94E)~z=-Kv2XE!u zELLcv@=iaw^SEYa{WsGe!Tn9%gWp3)RC&0Z0w*czJW7P0{XSJeUs@7M7()+p{o}}N z_B)Cl++_^(GpZUL_H4G3jVA)FZSf*zzfcAgOG=oF%X;=8Z(l$%dtRcMjdOJb$?-+? z&hx*;>9@0Ogh!?^eJjZeaA(kAyd5xsF!y}%iWw55!I zpEaE-p9ku19$rF1+CkEUe&{n^{mOF6F;VU)iJ9(R(GvZ(!W?F=ZzH+-)G->wb+ft? z3^~#474qLd2dz(~){|;^n`!ILLhqrB(~bpI7FIXKS#H+@h`T(0yvkghvp0@>Yz5)p zeQ(^pW~*hu(hOc{KU6TB-CP&ai?H?ha23eO9p>84VmI@>H8j>BnyIv`dmEaVkrO%| zxzrH(Tj;HYAJ<@2a)jWva^u&^(5Ot2YK>%=TgeZpl|OiZpiB#>W zeVA-+VN-d~_298eSjs(|POh68UNZhqp9)*=bWw{t)c%c$uIc|qW%-zg9Uo#P8C|>T zb>I4BUtVJPN;noyS?WIl7a9mfPBCz}KtZ|?fUo|BEWC5GFt=aT-dk z^X;#%^#;YBGL8}CL2#ZtEaTS1ltt~TpT%_r?1+t z2?2~Qg1ietilIJWd#3dex2j7V@KZZXY*xEnZesk~gvQ=J%#Tv-KNWDivaP16=vDq) z5XB!eJ$l-SK10dtYj7K=*L;P~7*Z=o-!8k%0h0 z#S9V=mtVhKw;OzDyMy{RtFy=whF_b(=S_;?dKu^2-*_l_iW!Gr9n#BI_^4yx+3FCSyY4{>?6K( zo`q6YLc;NE{TxPGc3k(pC`t|M-6l5+KG)@p^=E>&5+z!v0J?Q1E^4X{j=%3yj2C|4 zdBK3)!G)vrh1*(Ss5Ri8wYOKJAp^&F2f`gl5&GnBTYH5TY~cq^AN5{5R8!ZMZJ%@H z5Q1QpKN;JDyas}19r%&wigEqGY8QgX{K%U+Uq^F%W!8krv;sC8PU|5q8a>u;3k)mI zpXb|)VDe}rlS$gEsa|7Sd%rZkM|3ajQV%SpjU>(u@|`0sHG$9{QVNcrb((A^Z3P?` zq`+&lQZ3y)#lgE6fIk3;-pV*|n49}wKjWn%LQL#CqIH-bUR!|n>mz?5LcKR0zNx9&KD*!72 zv`YTh`*NzWH)%(eTz z2lt0sw+0yR4prqhz4+fDkUBKaISv*AzGG2a{ke-lwmPC+I!V@NbmFRKIcRxYXfD-E zzxp@&9QB1eto_*j|8g>%HGA%uejfvb{+D-cpSWK}`vV?>*DB}7U&8C+Nr9{2lkvzjOMT4aP`>x*agiSt`Hkbyc6$;U3Iyc1D3>STJub_evMZ8u zow?aQ{ihNf)XFX{GAlwH7)w0LCEMf#l>xXO;#VvNkIvK*vNJ{#2+UlJ*DMRp{??Zk z931s-nX3Z|)cn5^u|OYt*F;d;m6SvP6wINEdv-gIC#%%H0%m9B2B1a7I7w;AJ@i(}mWR_J zc;>jWUv}8o8ApfB-XI>Di#rHTy5WRA`>lf5Zslz4E2OAT%t}OHIzjOd&%$xHen+$& zERG-lW&%Sp_rD=o#OmGnnKgl4z5|Hj^NCP)=d&m)Ej0(~Uu-g-hAF|ri)TFhU#}{k z=@kBfyJxA9EFVl_4r}XE)iISs2R0)VpP|uOKmoK~PYsj&GtRq!;}l4Q=LjkOTqN)( zWPF>ald9C7dXEK2BHmpMM^CMDgde9g3^R^%(UO`SF9nAza0)NQ(`$69W&QNJCwHi> z4XdK-;dguaIh9Hj74e`G*R5cNh`?LiL1~IGmr8EHgQ2Sy}QpT(0BoVkC{ zn&f-(B{D$P9>%bAl92O}Xv#N-I!)e4I-#pN3KwxC`PM(H5qR}JU4P`*?jpyQ{iUKx z&nRBY*sje_m5-|RT??EM>Hp5iuopNZ@}r}U1J%n4&>_c%#Vr5Pb>~OO!pPnc zkN;o%2jOP0$tSsKD@i;G1EsTm)8tZ#t=aFz)0%Pz~fiC3X~GoJT>= z_~_MjpF`rvnjxMdW^vnQ%6p*HcE4%D#F~Ao!4v zTu0GgYCbhlp_Cw%C0?5J_i}m~Dd0GZO4yZ@T?p&<+7xw!-%2{S1z^}olpPOW@2^?$ znk&Fwo&~ljy{~6!9mxN$M7z_}$vuxEu3hn07UDzy@Vuo+ar`>I>VlD~>v42bI6j#4 zrg1H-p7Xk`a3N35M~_2`9&FAHwULcWwe*oXMAy1o{q})dC%!qxi50+4pd+H2LTW~f zZ42cUY_Y=nB1wRH9rT>V={r*Nl@n|E`C*LiKlP>=i-;cCc73d-@bG6%f%D+s<@|zkQMX}| zR2?<#xADCQhhFzy0WnG5Saq~Va>|Et#0mv}iqdf*zC{(EJS$c~a(!0{uroLAqzmy~3JmsSD` zok(qt8dIp{>jTfro?gGGk)OxcM8*q7(T|_YL zTwYa;jugpmeh+A~&y%Lq`r7?f=*(IXkoU7b>ttd~y`Aek@`pPV>4zr|g$MPkFr&{I zSllSN#%@}gYLm2yUm6x4M8p-K)UB$K#B$yh6&G9G#66XZ<@{S^kJ&=q6E9TxAQ=J! zzI+=?et=Q|#pIWW)AhTWv#Em*YwLb@cb9XndSj2r_ji_tc`~4Iq0`x_>>nut8(g(G zd|`Z$vA5#_Htl&B6a}DJ7gaH<@IsvM>SWJF;U^j!?!Oyt@9Ic z7tZ`%I2z?{V|73HOgdGU_Eu*>&b+r^EpztmhZ5B)4c?cgaA+05OVZ^=TmwOOLYc?r z$wy4Eo~j|f-7pcI0iBJ8M6EaE)+V zBxo>)ebq9T8|CR$GM9AN*)`-;)#P5o(=&$G-2Wi;fbJFV-nb><1G-TB($u%VFdCv> zeuYo3k$4T*vZUzuyBV#muM7L0bAf<|Mdg}Knz>Y~tMDgrDk;C2JthgW`Ct5jSKulg zh~hcCt0oUN2J{Ktre1z3_QL<8>Z^mI{-6I*Km<{g5^0d`?hquT<>>C_K)SmG0@cY8|XXZD*f4CWj8Rqu++}+1McAxvWzL?LrL%d|hR8k{vsv7-W znN4W*YDBe?WB?_YF-({Jb zmwl=Py?-ul9!VXsPAKs0Qvo&=HmR#p*miM*)>GeEnQ`>!_p~Eiu+|;l53eN@)RwKF z#ZymfU%4J{XdFISsMQ(8iGRzWzqb(@E7g;#O)wTa5@SE4J8j|vS6!az z<=d7pUf)-O6>gx}?(h@sxWHg1E5|uzBQ`qt+@glH?%Uap&gPK6*SuNcIhF(F>bP9` zdpz3er#OSt%6|PJL0kdXO_JoS|ICTg`l65KHDFlvuBWbCaCixN=x(Da$Gdhm-TSC& zCgPsutiRWfOFlvl4$9Ju^So+T&@Nq$IsdX@ZBLfhYWQbV(8+6Dw~i>W>7V?9sn^~K zMD#V_Z&Ql_#oJAEmIwyFz2rbVj7JW_T-rxL6&3F}+^-#VDC$Ybz}-B>>~@my=%rtx$Exvo3bq) z`>PC6_))e1*9bRW+`pLC!;;&&BUI{OwlgqEox){KP9J-IA4t_2EbpyPy zr#d}0*}SC761M3fNAse*?5_?@{4d~9+Y#2^uQ@q6Y33cRMox^1(h-`~B@6Bryx2># zcU_F*ds)R|C;bn;w?1xXG26qh)ip@j80FXXf2I);+AaKo?!oq%WV({SK3M z_*=QV;1FKFgz`6VaiQDs7%3FYY^6JGXWdX`M&F-s<03jdB0uyxSXsryznzXUNil=d zxv&}*G9i2Oi9r(AWl9(E`c`d!w{ z_muZ9R@PM~ZAxaQ{$C0;3hy7Ka^< zJ|JefHz*X^ZCMYWgUaM z+l^$KMLk7dQj-h8H1QwhXe344T(@17ycn-_@%>UTz;g8MY^IH0mVNG5N4!&tutF(L(7KcKgRSrt7Envu*f0VT7$~g|yRAcqe;>$BjykedmwtWx27xHk z;U3?gPfG1~GzqqWI&b<}dY*YhQ;K=V^FZ;{tPl7*VTb!cKc$z-e;N;hB0OT<#S0g|bulx_Wi}BtLtDp(Mv}$Tb&MjK!cWjItxqhu z5)o{{o-hmAyMIDVr0F2g|P35Ak|$F6V7Vy z#k%J3x&>HtQZyDfH-&J-d(Ttw?lJcYzF}#z>OYT*U4QkA#u{4+WL5PxQ1` zF$s-OW4;F!(Wc-qLm-zh&b5%XzU@a=4B5hu3cC`N%cOzS3KDWTA|UfyL%*3jok^UWaIOBH zt6KUdlzs6MQg<}fWVe1g(%jj5#w2{bUYGYQmyRZDU~D?pf&}Cr`Is+KDa8ta&)>~d z6*1(hY`@mkd=&P#w~c`Mn3(SfW7~NrqC?gaMY&c%AcH2J{nW3Wjq15K4Gj&yllgb@ z=Ril2E@Cvw=&g2|EEi5{>T@xA&R8MH+t36$;-2Q8J&KeLxl4ntbZdywmpW5fDI+Qtnky zD!a9QiKs+H>Jeb$ShaW`m5{Hpw6bj!bQHBY9p8VMrQoWZS_8>c8^H9BM^i&g7!%Iu zpf!2{U=?dh%!~}ictx5Dup}<@X9>tAs%o&ZNtI@ud;U_5KABa$9Dy?k7)b0jkD71^ ztlNp0$Js^qsCxfiSm?U{_qrc@1+y$nK-aMXQ`+4#?obx(=b*Fleg6Y?MMIpwOTsGV+92Zlgg zZ8w3nA&8eGYmPwK?La&}z#7YE;Xcy7o#=ab=f7z?^1 zNG;{jp#ob$0oD6(W*wetK=^!Yd!pp92T`|qy%-(+y8Afd=`XqcPdWi6^edLjf=LKh z|0&$vBz>t{upnZ#x;O#3L(=kCy;cdo7OL&r2LollR}j_~;hXbY!_CJIHVTHxqZYQy zo4v~GwS5LVS?$9T-*~a!jdHqv$OsuqIo`%Q%wvl<3W^DKOvN}1ByU`D7$2XNWr?Ty zW=!m5rWd2zV-Ek^V5h_u7Ahs<&dAz5uC0P4{;WxGW^U2v*9h;qbLi6ur~s10=kM?T(SRqameSevQ}bu z8kDBvaat=hI8`49TYQm{t}j;h+UjL(SE$+3UcbsZoE;+-nGkcckeoFEW@YNa2A6nZaibZ_R-pPijEy{B1gdrfjp4!y8%*rX}wQ5t) z=0WMj6eh_v)A>#RZB-#Q>HBym0FO3pD6y<-XKaf*bR~pwLDI-E8_cqkr(L#U#?zi7Tr4>nS|ZL#DeNV^4Un$?V-A8mTrW{S!#$yF5~qq?fWI zqQf|4a&CxoEjz!LS0C^I$Ro}r87K>U=6VFRB^I>i8I&@5ZsoX*j>YAvGA#4$nox9J z2W(#dve3~XYH4Yiuyz5~c}ic;FW&n+tgt?$0#K;1d{@wZA7vtf*4*HW&J(WhfzLm? z52&K-5FFXo*6G2g7t!3@4C|=As`IH9(HmiEMQ3CrmCN7WRHOZnABi0{|C%K80rsq? zYSgmb(rmm*0rdyvtM~2XR0$`a6SZfnc2onGE9oKWq(_x(}^=|c0AOjaH>v%x$jh2NI~${HPNf3)T@Co< zm60J0gqPPiLw24vYv9O<%##;^Hk`p;`*)3venjWEYx2&2xR&@nW4B6_`opp|oaeDv z;blZ;2zkVY{B7;_e-2=GW;JM*Q#Zcb`t|qb#SPL124nyh0#*Z_ z-c8xxvyk1+^b}88Gs2twfLbaeO}i~x9=2+2p9Hexf)ubADE#pMq=L?BU{+hq{mX4( z>Se)3QE}<|D>^x`*D5~^L@d3G{wn{Ns9=HxBCDDp@DoA7VxN}KP!b5mip4+Ey&1%R zZoYxuUHDvz7F{tK`&HB%VgWH{b7E@|Sw`ZX2J*G$Ef+5qPfy5u+F>TI0c+n+1X969 z6Q(0lKW=|XjsOnqC{`M{&N5In;iC26<81oP^EJ=(d)zPJ%|I~$Iq?2&VXeHuX9W|` zjX2TQ1mf~2S5y~%d12$S4x$G;EOE^iFmkd!23T_0^61iN31${<<0_|5tws+cGXj>39=VUeeG z4;NMnCFO69CJw~OruHqQIL9qOcwB8s$-hz_%)mm78~T;*PYz>c(_}W~4$I(MzSZb* zc#6>q%wBF5FU;=9sZx$Ktz_247bhgzTP(@?6KzY_QLID4zH-!gm>M6Xiqa@T6jEax zLwdeFYiG;N;~tn=IFQRMD}NttrswO}_|%y=kJ+Zn&*wM$V8XzeYt6~(p@*Ozl=*G? zMgdMy@vVp}OZ8Y7Rb^g_GUZ2OXia(Yhl*oWN-I)aQ#5ZR`CRfii)K zp!)ba)ZzVi)&4W?W?RX;sioO`4K|0{p){S@rks%b4pd96Ylt>W`XSi5 z@>_N8E|*my8H>Re_2Mi4_A2rS_0+`_^m8!tc4TPHJPH2^^E;saMz=S!55vjqn6Qm4 zPNB@$Z?HKbpi{F+C(WWvI8yf}X3Pfhj#sk6&WN(BxuqGF-}De7)RTlCR`~SOrTq94 z3kb4OED#@9|858_hzU3>JLqFQeU(8LQHD1UZtx+ODfY{OpwFk`S~1k*kK zqdn`KX{uKCP>yVNa>5pV0ZW}pCU&_?CK+nMtcrW^#30wQBDQb6>s2*C(mgBsn<9EY zE=v2HrPcd}8(B-Frf!_+ufAlt>@KCCTZ3?xrV;mo+x~X2b}&3utIEd76FywrUXXO` z`(QJ|;dzA{Uglb(|1k61{Dm#tg{bwfoM?B;t=+Pk+n(|Clo-#s8{nQ&0txk|pU~Mx z$A5irL;GIJh&9X{ne%&{k-_HNQ09D9_Ojes)kwd2#H8KH%0>Yvn9(4`27$jWo6(oD z!Y%kfYrdJnn3zVGkNg=+95irNvu8ULt3ZveKANV&T3zt=;`pc&GtINONQ=mpKut>S8<+m=c?mo>b2c(QU6(~?5d^V@fIddBQyP!X)YXqkGPEp zyB*_*9-BD3x^l3yi$T>p9Ejuk)*^2Ap=PqoXUH|Zn+RZ|^yby6=-*Pak;@i0=a22| zHnnMM>C+v@Rs1@*?p6{&ad{`(8Rp7~G)U1B#%tF7wp1VL@!NCn;iw z4x!ztOtbwE;^PvZysS*sOe}+S!@xYu)$)zZX*q(6vMwni2?Ga$@?Gm|x&bX|XxAy1 zqJT%AtuFT-ZLO?&79<&5e!LMl*}dQXNkkBnB=?v$`LX}2V+I@#*fMrY>gvMCZY#+) z02v>EYvmLa9Jsp^QpU}J!7V@6oOvY)3|)(A$iC@0HYV!}DcDGI;_d(y;36aY5Q}&R z0}^ibtX^|oUL3YV_5OC&Pp`z+lR(a%iP4NdnEcIsoNZCL6ebOH&crp6mp<8_Ra0^?59 zLeq99Gweh=AiM;mjBBPLQfOcBz|6!Qx0fxJ(s1^7>z&WQp~uTtz*;S4$L)3xDZaL= zi7F<5I<-03H4JY*u!`OXg!LA(=+X1*FjWF+6Fe)=IW3OcW4og_J^39euk9UxES~?y z{a?x)LavS~XVmQ|UQ9YI(GYG^`g_*8(n0n>4oE4sU;6Z~bDVpUEMB5_R44}&I_SBv zS5$$C5Va%Q4h>w*HB2uGaFubF8(GSBS8kt_?dE=`#O!c-D$hssd9K!H($kzJI1dbF z7CP=!@!m5bYhAO_!R8V5R$`r4ExZVQH)nM7jwPLWEXL6`uFPeb>R2=0m8qGAVPU~Z zj#Ma(tx=Z3j$l0AVS7MdD7bWTr`gf=xuew`xwfm{R(FQq(t=L;mN|H5H`tn_r&b+b z-5iw8$J5Cu9me8;E&A;%rBgb$;4uO;WmY7Qbyho`s(>BLSnldVk|tiAso-=Kgr9#tMh6yB{{Vt-5QtUNX;HOVCI1 zqBc1t<(G?|fWV-H-N-4>Upqc_(47WWjhI_(RxpK_X`zUH5Xk6u(6vQ8D-%lQq)5vx zpzeuR5*dQ~)Bz*c!;zU6BtSuz5)6)$DoUwP%^7Ke!ss?~L%voP3U3>7I~?01=DN#X zG7}4_1gH0?&Cp3`<8&pnxNlz1#j`rCb#?FwlWbXD7YxOceXz*nUGziX&Hr2|bAA4v z%hN0;ceU+~xF@V+wIrK%E?S2Lwq+h{9kX2T*WtpkY-=hw9`!%OS0 z`f>ZjDFg%BP%1d;VO-mG=KW^GCG}=NTKIWy0f=$OhJW<8B2NNUgbCB_$)#47S8oo? z*x55w=h^L5fEygu3l%GH6Ou`l^2Msqzgibs4Q);PRpvU?@NRI4`yZSU`yXmf3)q*_ zmou?DVn8jx&B(|AVqcZpAt}cNqb)kc;E-B&#hge`11xRL8!%QV&1g@$yP9~HAmSI)L6WD6)c zIXUyk={Zs`m2uxlD!*^G&74Y=pbVHw1@{I11Sh7BKWtx+qf(5V$)2W->6+)7@KLC8g(#kZTM?s5ZVzSzNHYNuQKEFuk z=ajX##{!55Ygprs*|N4xTpv|lo{9Hyq`?Xhu}378E?aIJuhQPqJU1D)aGZ=BRa<>8 z;?^l>B(G6&U8f}KX~En2a7I_XjzsGcV&7`45NQ!#!|Hpe&*wYbW9h@NBPwArhyv!p*-7r4U25@nTum&(JukO1->-!Cj%=<+Mu%{%V;wPgQA_qp3W&g-a;$nnEW^Vj~g8#G@ zyo@+c2ou&#=3*rO#(fbNzSMX;G7Q;Bx^pemTc|HaWzfh``H*j=pnDf{8Wh7SdLgtX z|G7AEzVHJ<6}VzE!d`vMsd&=cn55ityAG`LT2ko#Bvvld9IgpgmE?KLFYO@DlR=&) zqkrLiFYHnEZv4S;{c_yMy7p6!^ZAYHGv&^$Gp6m}>9zZBy#?`@u4T=QP9HUTA_BES z&?CZVEZpzGUa5dQbEdFkpfgA1N{nNUlAVPP1P-Z9TP|knJS%<#%n~^N1J2Ws;_pwi zGQP-!O9Z+#ukL#Ty7Rv#Cb(eQ`vCJba!QAbK`h{W6<2h9(2}v#vxR4_^P5_n0d)Gv%ulsvjX+tj+&qpA@DYV6}Eq1X;M*#ydgKk_&h%W6eEAM$JoQ~6E2d_ z<@gfdKT6!W(mpMt{jU0`t2<4TaCQ{*WjzUsYec{)!0$In`o5^UkWS57Qz5kSoZQgK z;4-52GLZRx-gaj{R~4#v^3bL2Fu9{>X};HgxVVFvLU5>@?`>128rCdfJR%c43LXdKncXN1HZhe@>oX3JqzpoAs;~+83rDxqH0pr~kX_NvMuM zo>KYwJ3zpuudNL!LDp;%*#&>5cIfPktD~bMNodGze>b;)v1P{Q1a!tBIDDten;2kI z!NhT}qZ8*l4QJ`~2>ykqn$VqkMxE$OCgAW)T^m+{`@QrJ$EeHXg@ZtfKb`({(66fO z4NhUNWsV*4Zvaoo2eG<{35Ru8CK=qkWSc=K3M6Q{(w~7cH#yi<^0iOP`&|Wv*`qf3 z6xOF-^qBG_*xuamT)L+G5|#^;C>R{uJ)ZSga9!N@Udyo8QY#I83&~m;T*FK;%`HAv z+i?N@w6eJ9)ZC;0^v&bf9sl3gt4q~7Ohh@M$zY^E0gE>u;pK;WxdrxQ0+D4Dg8z7BnpX#KEn zO>BdmS>29ECtv1QQ2W~ek<8IF@~n04LhMak;jVHznSzE;y^L_R`HBY|SHNln&ZI?5D-FG7DW=A`5yR2cwz7WFac`;>E_?`$vDt!1tH?gc1-x?lW zfIHbZVp}2uO6UBa)+!RH4NLx zd!T5z(t_eI-M;D1+ujj^{&G;i_~L9E38`g@A4iP~PY4?=+hudYV_*OpxLn*W-pjA1 zf?@*7E(()0S+@>*Pgg3(RfV#)#lsJM5kyyoUiMA7w?43jNPc9K3JtF6etHYYR(XYM9P*>4P1A)mkrV1 z%VOmfsjeyOF2d&~>A@epcKR1YT&PG64rEUY`Y`P0rn?NMOx&a+nt%tsy|mi{o>cn- zi|U7zlWt1Fml&Emdl$=NVnzg#+1!iQWxRTmKIzWHU%=Rzkp{0S)IrqAM+Ahe6&#hi z&{Z^wzTojQ_NOreKkt_7Ju2cq(sqw(mtS3-=>mn5Y%z#7P4VYR{a89d8r9=@&&$$V z`+o3~_MN=lsRgH9AG7c%PG-nz(J^&1Z3M z8Hd2qk z;h3yZ8eijhE*Q#r#|W9a3a3!^Wo{$tddOOR7}x9U%$0g3`)V0ovdaDTwdmwm$zB>7 zZNnf$(uEubI*BqT?a$ji8nvr6TtorF5)Gn|quK4CUY`+%9@s7Xj&QNvh`{SE+UT>>)uUc2u9Q)PD8?yzDhShX z8R|qF)F!GOmSzy$cpPQ={HgTeEN?jPPx^Z(%0C#(nOCz}r6Brl>dqgEEUY=DFfO_J zRcQDBvxIa2FEZY+;zOcu!e;U04xlT%xqWaz6MK}Lme%8-eu>{%#gt12l;?4M2_fE# zZeCcT=UCFq7@zdyKlkpGx+xr!m7u4pvEu@Mp7biv_g07X7b&;}AMGY^; z2Kk5v;}kxK14$aZ%#~@t*xfcFJcVE1ZxLSVDR^PK*c%GB3ssED278(1WC0n0b7VsI zI6d3ZvrM8=_2W7K1prd7Kz_L7i5xwXoY5oo%~u;`M(-pbx6H$yA-tHHL!FeXT2}7< z94NBrB2rSBE5Qk3>&`h6K&8jS{|OCR`F-*XDYF2(tRvcY7g06`_dD1^?}rIo>(&-u zywbKYhR)7RI&cc_3p4!7n4LSHKGOps_2+^`02xxFKOr_qpFD!{;Y{i8H=rs8>fvLmiPUB5Y?elSrDr8QdR=c8U6| zzl+O^G^6h>+DuNT|8jQrJf0JE$0dvHdHAl#;M*L{fE{%B!_|xCiv!`vq-r0PON?mr zuPe#om9nsn)i4U$&_YXlM=dW6F9;vcqz@7X%vSOTVoT*+@SC!6?}YunV;P~k>$+8- zai&Lv1`JP4b&B{sY{@{Pzm5Nnvw484?*4)0wQfHVvYEkTqZmN}^2Yx=^Y&hYH13(a zDpdxDr8dUBg_cNN7B{`}+pA-oM{dc&(=!whV)q7&4k6UT%2`P6On08CgGKSe?P3n+5Dn&7-E7|~2nVw5^TQV0 z$*@|E;VeY~s4HmhtlX1w;=-pCVaOnUqElN+jx%=zd-+u1%RBuN9w!r0|M{G@*P+PrbsTwcwL z#8Qiqw+vK#lH_;I>+I(CsB!7A3-#LC-)||L)+(KJUyCh2Nf{CPwn@FUyW4f?ldHyL zFPt@%N*7@T2Ahp!ZqVQ!S}PrwLBZZTv+P^)8AObX&p*CQKq`4+DpYk%wOCc0aCvCG zSv!o2n2WQ4tE$t(3hnbubewB8wk%uNxc+8d!p}n&;ltjLx@J!-h{<@IoHCO-eWFeF z;MfMJAyg_&OTtJ3N}B!M*tl_Yg5wkwr~34}wac7SN+B5<1YDkiKHCw`+3dcDd#ziz z9m6q|Do^>VJB{(jA6C|=$MeT)w)n0<{^<4ENO!_VDj&WUSLkwznORt%3A!z`$G-2m z0+{~Cz6v3r)M0*kptm>QlqOFTWj3p^-e_)NaeXsQwmEB&W#a3b2?#0LA_}#+LnL|(X!<1UM#0XM~M`Ovvs8K|NfA(zrBF3__TyDB_J=uBK zYZN2^BeaRIBG}q1p`}$L<#j-)6uQlVCuCSqRM<}a<^*6Mra~s~RH|uvUNv_eP3>%e zN{8x>i#ErQMyR^A%Z=d49>LZs%}IST*W;8;Deb?i&%sQQR|Mf7hR!tIxocCbTByn} zJ~t=MkwO(g`HGmY4N#hS)ajKM$S}SDk{PELl>jpMrUob6&nd?uuDjr zFr?LCoh{flY5arjD;WQ!9Nm-HO4y!4=Yn{s!bbN}?o*&mE=&s3E zvEAQ=r@YFMSxOd)dt{m?pSAaEL#1#-_!L)iMGcbSEw6Rw zYNNmi&BTyRk4}f?t5ZHmC1HRBZi>~612O9}!D)`g-`aq=2Y`~h{{8~7_7!LP`&1+Q z+U*?4#N$-cv~@lXR3Ss@i8AqcV#DzO+#=FUU&uA$`zANZk#)8zw9PjfDU5WW8fFa$eN5S_nFmJ>TQ939m{=N9yk& z&BTA1{TfCo7S8AL$FNM9y05k8+3%OU5h_Lp){{(#FdXE2kP8xPkuiRH{(CD7R zc3sw!FerT%X(4$o4PptPE4WetXgSK>TiEMjFELO44{o=)c?zq>m;DVvHdG@C9UcW> zvMh8VEJ+d5!Pq%H(YfS$6X>UwR>I0}&584?4Ip2DxUtgzzl%xoUJkDKbm6>lMNW-t zXlMurWjP|rx18F67&y)jKpUcmXz}V9e`BY@YQuZlcUc*E_*b0@s)EQ@z?N<4OkDvF zlf#Z>oGY>V5^Gu1iHlMJSN)FR$PWB=F$NK z`YF(<&IH(wFk-Eh!nh;d+VjiN#6C6+22KItfvY{C(*g|cMcQvGk(o*+3=B@CKa87G z0ep9>^eR@7M%~31%AL7ivALmhaZkTB||b!V%uKT}dBGW09PiW#Q}z>AQaF`Gy9> zlO%ajr!Bs+>P7>Knkh@@Y(tKp+Iagk+e;y4>AFYPS^qEVmt{sj`HR>4#4P(>Y9SfW z?d2vG_5?sL`pGqq(1;GF(YkoTX8UM5&{L|ln{W48ytTWzyq-LDxhin8u8vV3+>pEU`j`o8*Yc}Jd09lv6+ z@b@(|H&EpTJ`b&){Fnoqo(zj*1M;B{6&^R|4NAfiOxdg^j)Usj+X9p4h)9Z z<4`7N*ia)~2#NrvYt>8Z%X;?f4p&{uy_om+J@_5VV$gjpQqs~a)&}1}NQL|V406?i zaOJ2W!~(tHdC~-=gvQ?95xV^p8M43Urlcq{x=*qB%H*K>d8%|P8Us}EGT+U{rx881 z%xT3FyUxzeW3!WzZuVqpwRQ!nEb*VHwhy+cGlt?mQCV7nQ41_>27(Gc)6I(Q>J}WF z8vMOGOlD5#`)M4b_>&v(3VXN>E1BnjjeYHq)7ztTV(Ndkj;}&}yn8!ySVE|OUer8! z^4bA8YzN8Nx#n~k%kQh#VaubgDLaIiUkavO&?4MQps7EUBPho@;6U8Y)_LgzOhPE* zIsw`&M@vEWg-uO5kmSg(s{{j8Kh#UpMSM~}qG54xadmcH5#X$@rVF@4$QqHpNKPlV zaCT2N7N*o}#3IaMMo9HkrqrhQ#qJ~83U6D(J&Qm1D^M>6%-21^rWZ$ayV{OTVodFE z`9cHZ2fx(lE``K@9K_6^Jh9ozeg#+RhaEARt+0`QGjYa^RdmnCM&F2}9!o5Q!ca%5 zKIN;_)YZign^rJKN-%uXkw$9~p0C#ryeK2p9RZd@gk&^b#`KwP9c%+<8r66h-)B0t zj(eNd1<=P%*4_~h5FYi@&6jfYxqN^y*2qw;Rptlr#~HbmlK%z#8{d~#Y2CX&pL&zS z@a<+GBy|-gJ2Q z#6)5rpBCVNzbyJ(RynMO+Fu3bgIEByv3KT$Mf|>J&jCTXm5F1MZ!pUT|)(4 z^SsKH3;C$dAnn@&JaZHtOCi=HsvB>$;SHA$EsGNT1ao=)OeDn{t=Jp*jeOYv1qOL6 zS5oDdYr@lLkh!zZYOCf4ZvP*z5>d}13e^KvCYT(yaBf6kjb#1?9^{Em}dp^kTUb%~QL z*xugHYbwur2=EnXY9yGc54V+L+^#|A)6v#OIugQqY%0rTrj)gvN-M6+Os!*e4;*#G z)Y_&p`|!?_(ZZ>u!yW_CdGDD0zuUQs1VLv0@FxD$bZX@#&{kcq>>;(V+yWY(>_Xn5 zKqFNkqrDcq!p9>QNOH=ZypCv$wWKcq8rOUf^gw^v0$JP;;0X*6CXxnzBM=>cSbYbu z84I5CDzKq}pN6(OB`tF!WHW2EvfMXhoL0%fd<%EoI5zegV_9-|(^T7Xwm!b+w++vq9UQ~(jorc+zoHs;Cf~HSLd{-w9j-1l<->cNj|y%D4LlV?gz~v zy5I^s_*-d(W-C=g?w!E5U86&titT?$mKx5 z&gq?+t^UM}-Dv~Y0T;wPtjv&@%{x zn3so)sGVu?;w9p>%Z5T2O@^!4HYXfU$1*H z#^{eVl}^G@!aBbfBt*RNHa10mw=ABu``K4s%ou2wy#*h%N`i4sEKuJo_SJR z1md5$bF!vhUuT<~!lpKMxz9sYQh+c6dxqd96X3b*lS})ef~*+W1ya-zBM`?8u*TI7 zg_mZBnYPUy7yUe&y)cyQ>=;7In@p|NwbJ<`38 zIei<5hW!h~_Q7sZX?fPdf(S5n0YrXn9mGt%6%OzeMuM`zE)2&C+;7RMCU>tCE!tz? zbF6$bhfw#qt}ftMydSb(a=CR~lvhG!eNxvq@HolrfVapi`yUd(K?DRPFMK~uUS9;a zHGbM390LQpAm5RanmaoaKSIkFi{*JRnhZtY2j+V~B|RGkOOU5=8b6$|hV?fsoU@SL z-fb2m=X1DUv+N`W#Sd33*WPZ=*CaSIi2WV*aRxVr=z7tnTyQ164Cmsb$LZIKGVQfj z6_5%*Ct0mf4k1V>UneP@RWDHYEbk^XA=#DE>*8D||`(cGR4|24sP_?_$4F`;jEC zi5?Zh5x3uRacBP>O)4N_KCdx}P`0K*NyqJK?Eoi#)vO?SQLH z-G&v|hW2+H?fmS=#-c1$9W-zdVrvc_?=12J16xalqW(2nS32}H=C1j+6LGR3r=5Je zmgY^=9m&n!g<(iQIR{=U#3C`1mb35%Ry|4C{XRd-xHzjXPX)JI>Ij?VVS?bD9J`3< zfT7ombx>&WH3wa)FIf;K4#8Cc~vI>6+jDmYajE>9=^3cw!;p_LSmx{gZ?; zBkvQ=z5x2+RV*Ge*G9cy1kb#!^vq^V%;R`R{m$B3n#W`?$B*t!?C!V9UH8nrN^7dl zvA`JqoH5_is6)q~s}PVBJ+hWh(AVUatH0-0uv+6<9}lBX7m+pd3>Giwo%usBnS-o4 za`*nBmtMC=YCBoAEW}nM+JI$rZdSUmCCt=@h&d>&Z%uH!(Tuh4;#Cz%M*du*%!ani zCbSFVR|o}G7-E~cKsWIKQoE`RQs>SJI2Rix0!koi$JxZMX28M;7b2W>B@~5hp3Vm8n zms0-}SwP2W@6V`THHoYr(@5yQOY=XX2ke8wiC0TTXM_P=J9i^t)EJCO&(@@-6L;Bb z#$kF#xJrYY(Zu`PXPU!Me$eKu4yl|MDF2@sQS&r*%OkLyr;Y_v%r8jZZtPQ4G3RTa)Y#8UmT)VT zz+TcObU5HpRpBdktG=FFn3Y+6;U;F1D7xEwCyJ>s6V8Jdq3nKPqvx_eKPT`v?Bg(feC^2$s{yb`PEWH#UbeybUQuY*kr_Nd}nqeL90!Q>9+jHkU7r zQjHN-qdl7XH2LHmlJl8Z57MMAZH?QnHM+YYKh!02t2$F1{4~$TnThc(orA`Nl0!~* zou$4Y>35mQ8)uzdA92R1gu0=(a*+RXqOxyZLtBR6d9w5^p zFeAjc8Ax|OXP~rx?#LqQ$V$uQ;S4cIFB0G$9DFFElVU$_pl1j(2pwyt&yfg9l8}5N z5COF2YRp0MN+U*38m5T#1wK+vOO-&8dE@i^rbYfF3hC3xaUjHX7N21=?^_~hQf#PW zZMv%T;!>#k(#_i2s0>pc($rTE!o*DaoGcl5ckyrr8O#!)tnzfN3|yL!6vBhT!OtWk zp`J*mCTxNn(jMmDPX_s7{)_))0G84QJAj$29fp8|&O zE6h|x>bBVQxHv)&r7hwY66!x%!wj0==S9pv;0*e60bVYyYxY0Hv2cm(_N4BKT7J+{ zBaib97t(fOvld5-Ea51;_^654EFi((*)48w$(+fJv)_v8*i{RY%LT<~mPs($=j;8~ z8P?^uFTRICaK3LS3sAbb6Q;Gy+1jiE-=rc}>r!>(D zz@igsh{&nuhDfos_Mnlcas79q@n@q@J=JF7MmNT@!|Xr&pUgTG z0~1MmT|N{JQRPA?RRd&nOHm0(f6;$;h{OZE$I0fdb~}(NC8+XHwW0NNP3MEOQjn4f zU#l4FatQI8rcN(dN1wwyV1J#Cd6gQ%ueKNTg&2>yl3z~ncW7X<|oCq!<*kAL)4^klE z6(1V)ekGe~=!-pY{54QO%pvn6C4Qn?=?z}t^UcCpf*#ck3wlhF_hkvm#3CUK@Xj0y zGFpf+fXwyNk4zHfHU&>6coXesYRhB{;KzwP@)^mh`7nchfCB^z=8+8M-X zqL5FUbJ+#)Kin9NY*>}0MH^vZj$UL&I-)hM;yQ2htFyVTxJO-ns2iQsXpNPdj1@^8 zn`7{;GlYk~t6*xkP3>I6bcGH70Sk^otU`;45JoV$*0;k&-?iPM6PSJGZMS#fvzbrf zubRn6g8!M6;y<3<$NSCIM|l@BlJU|iJ)VIZ6K(&+ zW+IF){?t&$9`cxlVpMo-`5K}nA~gGl;!K5k7&G!1u24rEB#56$taB8Mhy5mu=rJhd zaZDduBUrxULMLHYPd2*<*$g+Q;X8t{Vkf_XI|5h;v7 zS_U%(+DADJOis4M+SzD2QF2}+#No&En{NMcBa64o)P`Xq4%_X?$mKWD5x3;?7~uJs ze(as@d1MQf5VO$-aFws3az2N_x ze#9PW5qT|u!~9)+nEX=%jg@ZCLkW()M!lh?*S0)kJxyPoin#Z6=QyZsaC&`yJxO?}T_Q|2b8e?10n%3vXwBq_d<}EA9-w*wc zI_6h!Le-g9h73(SlI1Ru`}8)oT6(M&4}3y0QXnZbE%7>iFu!-9j))}4%wD49*!4Sd z?F)Cd>kt#~a~(HOB;{V+U-IK&v^F_o51IaX9r;BdrxL1Te^lkn+BDB$dsX)0TtKnX zSiIL5)gB&JL%O?DLb^K+(%qfkLGQia81Em( z`T4N-+AHUr3&U@hHK&$XC6(ras3_SVp@(8*EL;9#x+84qj{51yH{mqB_f*5A=~gpba2Z(#dB3w zE-a~JmLvNR)`VXwv!4j69$r8t(5+?r60V|&$y~kKNx5qg}YFM z0fycyMGxKGSkc9hF$8GS31kukUI@*|Hw9y^0Rp!6sFdI=Q!2Te0^C_pVPa4E8U};da(mZ zqwj}%*=P&?U?x%jpl_fxd6Pr9jc(ic^ge)wz2;&Wb=`n^_+$ zODF~u){e`1IO04TWE(LDXA5tnJ)5m(a#HB?Bxn-{38b4@UNBNvuwPj0#X;KxC(i0KcN57JBl6+a_ap>Wm z|I#@V=3-(SZ^KLA*z@$%b~JN+DEdz;r2_rl-K8ukim)FfyJB1}ONcf>HLI+J&%(=-T7AIIUo`y)w=(7DEw=@`!3Iqr9;`O5^8 zYd%{i<~5WBlV<#ips33aBVN``wha1i=q!#d!x$D8hgfIB%(E3Gp-#t)lXy7y3Zs`a z`ZjRZCB0Di{?-IAeug-!?w?oMr0m!D6v6%b8WRF0nBRleg&Fiy03*q}gj2mBb;^~H zJomGaB6e2B7_`4c-#Z4L#3+U+6~nNGnP7gCGF9y~v3DbmHfA{w=M*M2G3|INC2Ufx zF>Ly|4muh$d+LbUOiar&u+FYSZDlTdRA;AOIl*oSWByz?+Zqb|Vw$3T{4K$dSWKRiG^zj#-=MtNoljtMe|{a*0JV*0=0qz zj+k&^+`4`wiG(>bMjBjm^?dx+3Pf(>=}Jrmpvmg)mkQ04;RtR%v>8UJdJc$1YfaaK zhs(-s53M(6*zwO9&V}$oj~g;D9QVty-0>T7YRD7r+=P& zsX=l4cm8bbP*4H`*KlXO4R4ZDDRKl=;+)x|lBEsYw)yJaE59HilS#-v(^ZLXQAL#T z82#)FL7^_CJaw2lV$nR=G@R{F+kV5A&8@(tSr_ep4kNkE7!z!{b0L^#@7D+WUpd8a z5ZDyDjTfb?z>{JqveiXprh3i!m>$3=TrQvORje*1SnG#L^=kiRt7@z{1Mj3H!SF3-gYOL5 zuGY2b%Pm!EYOFAE@;LH5_BNeoiORA8WPRdv~; zQDQ1V-E2`~G=;rz(fh7Sh_}FV4{0F9^X<(Zp9hz%zy@JtgAXr)@-!58O3k(}r^quN zy$fF;YofxS%Xa-)S9l027o!tfrE(TppO3k|5a~mU3%8TrZlLaA z0ZU$O!|KKuMoc)2K5~{R6Dwa%@XL9onOCfj-H--06L}~^+u^(r8M0C9(ii>C>7VC_ z{+CWw^E?ZkkpmJ<2(<9fI`0{x zsw`b5QZCc=$rty+Eu^bI6Rb6fOy_~w3OgRu^$N)`jIa;ZAG8?~zZO>bkoH``z420e zqdn2-(!{_IMQd6F*&0?P7{ACEQpcaj6hayD`wy0R)tRE)ONy)yfkRd@ix{(tezIyn z8MdOyifGs4NT%mGzI-Hc0oX-s*K%71>cp0HXF8JtC$AGDaBq{Rz=M@44H=j>$CoG& zMB_XYW5XaY4!T`>$~%^M9ioF_t-sr}{CH8xeIg1KJNVa3ZJGXc;OgzL-FfX z`%V)thjmGI25>$XW7E;VTt?RRLHehMc^~*281fKW)i^~3{Un;^7JS`r+Eft+xssA0 zzV6==-12s@{(CTUU0z~~e{ozb=R#+e>!JRf(eng8p+;W` zyuoMldJOGMCuBZC?V6@2UFq|<%%oi2 zXN-?X3lNKKh%~=2TD7gBVDvE&7)GQ{$f&@Mwud_)H-@$ONoTnMk@g!#qZW_XY)z67 zHg+$&YrbuVt!{{`HJ|7cOcl1}KBe4ejNqndw`D^*VuHDB1b6f)5y?06kvy#j&%Y6> zNunV|kyiqW;T|Yxvg_E?duqk3HtV8)nw;Za2I~(QkA);7D-85;Z1fkPnD$o_Et1Sf z)R328heOV4iP*$wC?=eZWf~p`Ra_vKL#9Cg)R->HBLnQkCHzt-5U)*TF zeP|~a8~l^crZMjsngMGSF_sYnpnkiLi{L7U?VCr}RXcWa4uQDlPh<53+KT;mB#d)F#Z-65 zL>@-yX2UlQI6N;4~ojgJ0(7}Gp(=JN^>U02+NM*I9%HTO z#sc8NHvLnUz9M4wxE>3VI`wDtuq9zE4wmw`GI;a+5l2Th(a6m{%RwiWnR-PwOJ2BB zCYTKIRUxw4&x<)$1EfaUX5iDoFpB=qIFdine}Iq_`F%l9s~Bk&DrZ70FJeCdT*0^g49o(P#POQza>sC@3~&6J3tOAf_+ z#q46{VZdtxQ`uhI`w9Z^#@Ciu9GK{igy_f#T`CCf*<=R>L%0JvUPSDO_KZmu#KmpWc+kpa(j8t*Zz6-ug5gm^YGcE!7UTt#eM#_T2 z=(cuAHOiBb;M&#iI>wI(#%D}tK469{(l%0ay7NaZXg#Pk)->@q`)U1I8}}AblTs5E z?JdBdsLHhbHa&)KN#~ODQEC{P3cX_K7NKlXIuU&PU#Pri%pPTVl60+1#H~aA=pOZC zIL= z5N`$`xciEn7^&*4r&0uAk`y$sbQP*$O5f1(A+?MUzi^6458Tp?=J8a8EB|bN)CVbl z4l7>VOjJr@kX%Z$pquj4e%8hCTk;SN2&;z*_+9XJ%5(olG6>ZPOp$FU0}gu!M^I!l z1PTTFx}4gQD|iLQ)L^-xi3e-HA*T{jLiI)~5!Y3CWX|X1hRLKBgR^MuJ?ZAAwq**} zaUJs+EeYG;cdq%S5<~si=Y4u94@a}pcq89zfR%ra%)0ba-m_NFlDb3NtMUBxWg`EO zN@4j_MY_g<;7J>F{`z1!!(iFwSewCZMs6x>E*sN z?A2Cj22K_R3w#;s#YXc7>&>RxZuP!vOvLKq;8eL8Wxl`Uo-dKWP{5*u`Z|t`E2cUS zBihzm{~O%010)!LS)*QAIS;M;F9grw{tdz46W7qt>jy7ropnTnx4+ET`_M4RJ!$^B zmyFybmP?Ip=s#r|(Fkm5|LHiXh7m+pj=1EwLtzx%z@$#!T&J85g)>mZ#sP}mbYh?x ze`hr#!ELt5QD+li;#7_JXJFd zDHni?DF*l$%*Xi)3x5{J&CpEztR4}XQ%G{r-{NWIQDrcE!IECjAA$cqy#2LMkMtGa zUFmOrS}pPqJO#dRpVlZa zmuki|a+}zTA6JGO0x@u;%}QyK(RM!HNzjK;YLtbmWg?Op zN5|BI)pwMn3*iQ21bJMWJ$cURh$%oqKee^Bzjo@8f>7Gz{_p=@)V9)(2(=Nc7i?%B z9wF?&y@$7<-Sl{>I#I6VLTssbLkfY(Fl693sMPLD@*jA#@_%le9+82S zGDB&T>w&nS6+X;+k!C)KL!3I`GYjzmyViS6jBM|$1(&h%qB?8_gzCc=Ber4-jjwuN zeLBF^@g_!V10r_b1j=4>w)_-%gAEfXl#W8ly;p8t!#LB;YtrUWGO4ZRf{%RV3((_b9$LMrZ!Xe zuc-pZmA>fhO$DV=?j;u$t_Lld>d#Z{b*Y%|ODT>$+u65ufDuZ|60Iz|KU1S$5*>Pe zRRC46hB>eTpyEvnr!5vM=f|xAbWHx1$%nE3xqOBMMSG8ucb>%>1ab_Oi!w3;7=6(> zybkUSvRgfINBPToR#+4*EI)Q333_B;^Gv=}W!2e8VyA_#RYcyb)ME9GD_yXEvPoNu z*FtL59AKFr8J`I@9;i2YR}jA=kcY4WLp3sUYDu~Nety*UUuygCkHJKq6n9;mj4{B@ z+J1%U6ifk;SWW3(9!)*8QKH7v%UuLWw`eoA0c>d^a;PO z-a9C>4~td%VB~y&jp&*0(v5^hXcJmBx*>iKgPM&8?2Lr8$pYOODzu8GaqjI#@mMDL zTtO(n1`uG@tKXhv_9-yqu$-~qC^32NV>=`Cm zNwmJ5tY7fPCvGeEf&MD!1qLy&U!3V*Ofu^i9-r{WFV@Ac^p|fno{+a13hqa<*e>2}5Ilhi(HaWbXj5wbRg&ZhO zTdP99-g2VYm<7fl(r4ZciC)tBUCpv}Ow|MwmeE8d|ApK7ym{C+$#g~4k zEOZVNA0H1E6}@xvg+4US z27_KjJ4XT36rF!G?LFOhSYOjmpU&Vt9+yEKnzjf2|B&t1vVW6S38s3Myc*+ynDbsN zWj1#9ZgpjmLGX@lKA#J!UwOv3!tKY@drOYU8x=FVV^i`=P=A&7De#pI05%znvr`Y9)_b>=?-F`zz+E zp1L$F831SIpTD1l#pxLnxaaxht7-X$adOF6niI9E{Q?gwuKj2BsAe;j5TMR5#Q^2j zo~bmL;U=fIuP?K&-P5dD>p)3$?+Z?SNP{ZIU(2MP=yslG8QuepeuND^#uCG!q%Tab zo5_9wtlrmh5EnXneUhj57AL;*UO+<9%~vl!Qopm-&gP^*`Tf2(#&VhDe{%o3;g888=`fF(_ZntdYCJB;&x?%dE_b#ADJq=8)qL@Bwmzbs zhD+Se*#s}qAYt28u27O}$z@sBJ~3$?@< z!_?)TG~%io+X+NLP~tEZArk|0?BtC21z4P19Nmr22kJ-7nTcDR^Kd{K~u*)K@-|Ma4c;(alYY&#PD12AUybrG3v zU7NjJqkDviCEJZel4`8&u_7|;nxStq+zigi>v%3dA?1<(V(l2Y3n=8j+=w5^6d3~U zcK*IIe(jpbdPRz~n#96i={|NoZcjc+`r^FuV(CcO@Z;!+<_A2jRm8izRGTG)~0K*KF>G3{6(@>52QVNY!P9{&Corh}aQU>%$SHsy| zV6zz~?oDIn8MA!X@YQ}--W=OkL^eU`PopVfEq(3{kJEWDg#&{Hl)R|_hcvM%2Qpyr z*G-=Lj|gU}#kX5VPFPpYI+K+sGy$+;x?D}2y zi9T3l-VeO?`8_7;|3QCQzrBwaedb&{k8#tT9eqXaJR`l!*MF#lIBGln;yoSvLhsYM zT!d?Q@s%=L!z@yJ6HfsC2I@?(^HFfc?e*E}4;?{#q0?JM{`{|1gQ4&xIU7tf(eu4G zQOXn={6yjr#Om`0x$WscU!%)p&7sl*sr&ai9b4K(?hgfil*KP7u9)f0dAIqUY;^_i zj4FOWs9RO7zzkg*_^x!GfVR8sOVm=LGt|g zb$`C;F(+#)((kE~|DkulV^nfSCo1O$kMf*^cXwVS#wnOkNi#kf8P@~I>YP9=}XM5&tsz` zk+G9&`F#wpFXwH?t>o2_2M$;VUa0|^LkzPBvajnZ7{!v!Ylov9e^y}iYzZcKmzDez zlJz*s&7$Kgnro*8{28PXfKSk;G{ww`1f7t%z)0T^wut zz&?KVZYJ-9$Kf+oE8GVc^f>$lfM*xVm1@ks4?g@3Wr?^3_wZolr}pv;|EVjw?P7-y zjRDC)d>qeIkQqv13h#%w+rlkYnlWv2q#V6d7h7G$g}dzRzNBO8wV6=*b_BDf@l3aT znb%bc+0}i@6Tie1&V6sz3cmCE)qN^(yXURjP(owqO7z48mcdsD~+)OZ>*{{L5@dkR>+#SWKWW zV(XeSt7y|7jI1Y8(D=))=xDju?OC|;lklncUQR*7?Pjd#n3di&gV8$o>Eo@?-DYQ$ zO>~JVRSsTiOT=`bq!S-CZ_SYL-GyG#~Pi+|>>gD=V=(?eUvt zJ~D*Hk{CPy{isOz(G08HGskp8Zn{x_w!klVj}ziGJ=WK~<$89kwwT(Up|Xgy%T4(+p&P~5Lu z)@6OwABB4(jzwNzBB_!}3r93Sd1ZxRHW4FjIR8Fyj;Z=kWr?F}WzFWhT)=KhH~)6Y zz4d36OGSRm2I88vMfQ_?e7do&?g4`*Dou;`1tAlKdi^A#0mOIa#8}Y$!~IjKQ0p{P zK|r2`I$Qy`a7PcMX0)rZPdTl;0cqJ=G^0~z07gJMl*x&Ey*4;JWoBlERM|!dCogKs z1MTfM_?%I$&NlsS(4T(2KA?6y(TWaAo_gYTUJ7>pLVun>FE`hDU8NQ2eq4LhgIIfX z@*6J|xw74nG4!1yl4KMh;$Da;Rx5ubHycYgyxbY(y?A$lXRnbt_C|{QUp3@1%E*8V zML2w8uR}IFFSpzQzjzY>A5K}@R_EQKbbrOxHw}MYC__)=7aSk!le7*jbl*OgRlO#t zhCQ}ncCS#dv={VgTvPO&X0~p-idtH|KO==N zXMu>+uD4{1nc|qwI)hheaUciU@<$S~S?;iSrw^{*em~B#+)@giE4l9Y*Zgtiv#NR9-*Ur^N#TDksvL3Qd zH$(mILcwAhS$E;2ok#bbSNW{WAqk*|TEAabotLXo#N37rv%PkR4XCphPaCg3pw3D3 z0NL$g-M2}{|N3I{LLE8??3jZv^-z4&>OPHP^!6Nx0w-%Sw^j|n%y9o3zvv>Q%fbSB z67PVeJNm#y`U3D{l+=HeMH9X3HInTLf@NOBUVS_<`z2hNZw#)!cvdA|Gj%KoKcoTa zl0H)$e&32|7CKf~A2gBKT#1z0qX_sT zG6_SA$&ZQ+Q-q?Y!L(@T>;67^Y|U5Kt1hJ;UBS72;htXBFoEjXK zf~0gnG;z%3b!ZDzgu-}M+?*!MmG)yQ@oB(0ny4~3noB{mWnNFCg5|inE0hf?xbrm! z-iT8f;|RjxX?As5nc}e+PLG+ZUuEM;oL5hq0N?FRFwMCjE6*grSp60{Jw~slaYg2E ztaYz#bN1^4Z~ST%aiwr@TCIxqrXUH*2@f?eF|b&L31FD9h7M0EnP?h5PSlf`7F2B5 zqy0k$7lNV-mT7>}eE;VG^|@zbZo{hFO6w?0TzSSsHJAWul;2e;UO$7E%W0dcB2!%) z2lKn2yS^#{C*3g-jIUd>h8#wh1B|P-nP54gA8{UDI30gC?<*f?Z4he09#`h|#6gZKO1ED;XhalG4f z`b=uD;ZFHew~wtv>)VZ@w28hxD>O7T?}Z9@5L_cP{WlYd|6e9DKB9+L!_LbefK&Oj z`n$)`#xJvW6pz~g$P-kYiL%JtIGNmrYU0D_fH2EWMMYYK))LlIO%KYaC z>&4Wk4uljW!TG=n=Hem_GcDr*c=}6xvTxKsa`JedNIQ->}gswcHc84BeNlDuaygfq=^78*C8r{2Pg@w07fC!(NXbfrQRTQ45lKG5kbL7>4X?q_ zL|bZk6NBZ|s$K3GVsrucN#QhdV7_VV#F|;)Z%bo}=_fv|A(S--VtboQ)f?4Bfra-i z=e0>@XcLZSR4qUD`Vf<|xfMK|M2r8h#~G`eGS`ucwcxZooQLj$8PcssJZnuJgb>?{ z>;k-CY?pE?g zt2mppoW5l%apLLvIT_0iN$h4fpkxid>tfyb0y}#SqF|BM=nqX1K0^WX21ZD{lXCo? z)I(y3H;a{hQE(CbE5?*u+xFA&+HS!it0VGeRM6sBIiA#Et=-%>rck1`vAN{3A)*)Ucg^kzk8XjUq86DDK`6e2L!FXMH+v0Cr z>ilm5ey+aFez^gxbPTaoOD_S!uKt27U<=67!)qvG@BR#RRHoQr#hGzy(|-fdm-2g2 zJ}WHM=vQLD9O8`fy^kO1xZ;cT-7wZ7ePm>Ea;;g!Ue>?VY-qb*y#jf%3Jcy&Rd>_u zbBEjnsbt!s98ZFp{!lMnwE^n=lLMrT^E*j@F|v+wI$Y5uHanP(r*9;V`$cFQ#ynh6 zbw3fw4fn@VZphf$nq5kjXB45fBDV6fcOJ8pt=X*Sht=9lOgS_h)e4!(>+SX%`eF-J zPAW`64F`j@jCJ~p=gyZMzXQJe9l<(=DhHUn^N8M`B`zOXX-yuh>=ZMyjLEeTXQq*- zr8`|!YO;X_jHb#Ia+6|`Fd&52Mw=|hAop2V#+w1ayCXJg(ikHYn{X3oEBD4><$;-{ zPMc?=q8Ft{uS>Ldzi)j+!BV}7)(ceuZ+Eb{4ISEiX#@JTe%#0*>}*1wpBA)%4M_Kf z^%p#8`UXxJ30-Dm2uqbJcTbn35Nj+j<;pH?r~4{0Pt}1+wM^c%t^Bjd2Qk zr|(b8;tM`u#)so@JzOSq(l<_i1tU|ELY02z1P2A26(AHt48AW&Cu~XQHwiI# zoR9aoGmqg_(F|P-^Ai)Ml4zjh(X_|iI#>M|UWF-5V`;^Hf}J5^6!ScPnTAbKNq8LW zlfc`mpbRdyrh@_yi9YG16ftpzwRs_X5BNPXzHAketc$)DzIKtmOlDnFciuZeoV+$< zQ5H!OeOY7&4*q&!_4(1$E9cYT{ zMtk>*;KU)Z^tAm=phix3SCl}@wzM(+2v1M|kq4OCN}=wN99(?QeZ-iT$ydl1bc3E@ z;z}P%!L8KXopU&Q-yL1t?e|%itbfw;~5*Me$wK z?*jQQD5eWz*c^^nJ=Ipk90FB@~(1*DwtbL z`1<*-v!2b2D57t}q|w68jup**qf328LHFGFSB;@3f@}MO@570A7?>8U4wmq~^u8XB zt=V-sHMAdBGL@}l`Wa<>re?p>CCch+_g2arR6S9gd3YfGZI1H(cP0jI=Dg_;R3%6g zRj!t2b7KJWH)jtPPZ>=#G0@wdeR^owg>QFtZf*$DL0J-9__6IMg*X1aAVx7*^pBk-bs3J@6Jq z`zM@YIlw0_qvsyCsqdANtxek%RG+gL#MjJIRx#?XbJNqMWLe(6=PinIB4xIOKs=zU z+HOQ+3ojBy!rQE`5;|2@oE}A~&W#U4rL4Fyh9d_U-AE{Da*_r|(~*_V*nPJS5-(2@ zJJZZ?UXZejdKMxfF=35G++!^8u^@m>W`99LHmRh*5fgw%&{sr9A#bW!t5~k8+AA$P ztHZOTM$@Y+6lOGyg;iBHOdEK7d~CfY)HNAjiIGq!w$~+!s%!Q1;nR-kz^A!XvczxaSS~T%&(o2h*6TSPyO|#k$QM`4Z?hf0|IT)-NHqGR z$qK=<`XiSH7XllMJOPc6WNR+MBPtZ%;nKw`n@ZEHSEnE+w%S*|?ghC5J>Nj%tQRYi z=jG0j&SxvN2I-zDDlfQ2=iAbSho#2q%W{y+W5Ih4d_boHY9a*;&a~5+XK-?Zm4qBC zG;&{MpGOKIqWeCW>U4KMz*qaqzk?<`KC_Rd5$I&6W#vX1-n}ZNbJ{!Pg4uAhaeL}N zCSFp^WDpPoIMZV88Ugm>q#1mtgW`pZ35Ck-2|{GFA#B4gS0>KhPBaD+E#<)wg;;H6 z_}bf}oXtblb!CzEd8G`7cU?<0|pydP2SSEWe}M$%$b}6f zP{w94wB7^Vx-+!MjPNoX#o5LmpkrJUX$LhZ-^~QlOaY@M!93|UVpIuE3E>EWyi({7 zyDCZFZk}t^!-+z#_EiIQld41Y>^hRIuY5-e5cLHjK9&cV7|tGG$n3ERHU7y{1H+jn z^K5`7FMp&ZhGaGskNLEa+v)P~a0d1+=M@-X4ZoJKa?(3}Zb05X?^E5o_Vii&a#1qh z7DJoq8Dgyb!rbV0DOfpFZ9z{r-ZM7u{ayBDBYDAlK*wS~C>-n4dyS=v{dUi%$=Him zv(t{vt&)S+*v_$bw}YDwIoD~g59B#825w9Fjd1@keiV3z zArbmrOyYxGT8&&o@?wVPsc@(0nDwBozZj1RZ`SVS5BR~aHzOH>ZmzU;B3YN=5Qyu! zkt`G#2uHDv>u%dRZ=y}?T>nA5`8+HdoUAl6=`=*Sdm%3oxBN13M#8*qx7An=$~ii7 zz#x+C^BCaVOx2IG44#S6KG64xTT0F{xZE&XaDUA5xVaIaqN>*@v8(h&&Mft zc$zF!;qv6-r^bj$A!7hS@gnXA;VM{mW_S!})fO@w2zEzl_$!bSpwC_FPIDb2M?#`Ak(YWR zgMKHxmoOyZYDg_!mKX1rZe|fMU@^?+b`>y|7&Q2PqS1Ef;c~sz`BAG7yNN|pAUX|e zEF>c(Vz5HGMc*DUTTnT=PMkmD@tZZc2kB^s`IPUPaD6W?cBdfCHrHZPO&|>rmM(Yl zr>}@?4T<`r`fpa2{GXn1ww~kih4tvclm@HAtTji$p`)330T873zh!R*mXAMmQQXhH z`M%$xGT^@m>{mzE5kt;P0P!0Re05a!s)==)kxCX#Hl0a64;X4$z5Y5@eVG!RxND0g zP39br#o;Kp%6EQyzG`l(N?p|mbdiB^Y9WeggF#rJfhvp8AA;UQ_rHeei4kL9 z@yB7338n*xs>rq_E=`kBSv$oa=eW!K9t`J%&&h1c**8{Y^T~8kK4Mjwl7w<@@~OGP zRQ^P&EW)&g2MvprU}Z!}nlbhg090^)pFjg~*&$7YT6c~4!sPSm-A&mi%Uu@2v6s}` z|6l-ngq~Es@9i8HxGZtl%q&1+(aAWTGcCg;W`1X(jLmaz2dQP zdX}f%;u@2Or6p_MEM0jzNx0Pe$Wt!9n##mDHoM95{UDxKf`-6i?jY`I`#ZLGXJGA~ z@v_ggH`lEtuuV!GHg83rWaz)be4#K4b3o9*RICji&kZZm-4OsPS}kIHLI-m9re5p5TRmVD-;$~HAo!kI7Pv% zbw$y*r;B&yqyi0gUpE8cKi_VBv({-$YFK-e-_htn#FcQskIF#&MJpkWFLimIPNtU& z-B!1MxmqnEsQCN9Vw&YQY!8O=23G@ywFNC+BvzRn&CG(t^a_42dX|j+qJX@5}r5Iz)PAWFcI}L>UjCkj1Zz498Lt&Z;j; zgPA8R8Ar{P7v44s z+U5PYpRZqAa0d+6V51HAxFufL-;{#Fax5x8X=r}@SnYmpl#oUq&o%3p8+sZ@`VCOF z%VUxTWP-&CRTpyNix+XF(OU{iF4k0BZsB&e){-AiH7WC3w<~)d!}aQTKS8GgiGbVF zn7qk)0qz9ibVvU{xSKNNOY~?wkhzeg>j2p+Kz=M?B}k=CSFWnpP{SS{Vou_! z^zJ7n4RNi_nPUD=MC3pIA?LdZc)6@)fRhdwyX7S|zjT9-h!MS|YAj9`#+DrSepQ_eOasD^nnd6D6y|MPOFW6cfUw??lxmV^LB}X{(ggQC~qO${6C}O z_T%g9n(S-{e<^ihUy5%-$YSzJPs@{;gDCBKk2nk_HPW;{i};K%e<`N~A?fv2^S*}7 zciajly&fQc*AK|_5&?){a$n;)bBzOL8i+siPY$AeFj;PFy%PxvT$Gn1OYFBiC7YR$ zXsQ4jC`18lgLXDe^8~OGMBBqOq}j_ul_)-IOBMXYKys=!a>&&=7$GCDxryq%%%Mc< zhWN?3$jB0w0mu=B%ufS@uyAEbnfZjEO!#f_b(+TjZUY z$tEUbG+t^MZPu^@!Z3{UTA7BPEre5jDPQwB0hYt%&x>V4A#CSZEF6<_nq_*>fbRNv zKNPAn0bhA#e4ov{bUy-#<&|>tcE?ZepLGz?pN|A*D)f=M&i?$m2is;xB?z;;Ykphs zjlITx_5Xt-SRx4r0_5fZrIaGfrBzsT%i?_OfY`p2OIMoKCU$~<7TR>)j~6#8hu$^V1=_`xKS(xD2wm_8hufJC=P?~G=|N6&vqz)eyd)ZbQ0=%#S}3V+O5ZK$clxbQ zL=F3<`Es=%ys`(2M$9+VNX?6<3|<$|%i_3iQe0e|j}KoKT*IInhDfKaTE#Ds1sPU-qcItMw1krp|cVpIsh%>_mr*u55qWOnCB z7wz$q;4Ro|DfeCMd8SLddOYpt0$Fkq3goa=>i0 zW)|NG4Hkw@vmv+6#|HsHu>m1;+DtC;lG#p0U68jZZ932O(u31yDqG@9+>LHJzUc@p$wEcFKXzgRSg4VEB>&>iQ!kJZpXYjQ4wh1L49pEL(9vJh;FDckaX zs2DR2xu|MyI#VIoSs5%h4`7k%1QRPyvRiPCo{BEQe6N5nj=J|@h@QFvEV{Z0e`#f; zn`uCmH!PeoS1>8XdnBrwGu0nfVO!p;AWQ#NSZ|RvM(;mIy!a^5`CY}TirIUhd+2M| zxYCX5nh`B@`RG~N8t>=UrOT<6amUeK2OFI|F^JWV0nMc@iTGXLOeATf3r026cDA;T zZVugs=nL6=9-Nbyb^1fhUi;?q^$mK-InCEBlU9?x(J$m7kzbrvx1H-|Ax+Q5j~hX@ zC4k$E#1zXn@k0p|)&CG$)+D?hAzPr*0t2Dcg=lxZ#Vk+-5@nz(Zn_c0_`+6!26xZO z>K9XL=`k?HH55kiGPRot&DMUP>L%Fc#co~^UpfP*-#a|!hyG(h`_Hokf^86G#e9E% z|M+n60&&6oMxVo*`q$G$vsGP3S&!|C?D_~kkF?ZOh&@1oDi5Y03Ky#8r>Y$j_+hR0 zN@jru3WBHuq%za|1Cy>-fQ@(=Nnf-(kru0i2AbvE^2av5f#_uk(|)zq zB{)n`Y_@Wcb{daEr&Uul4_2V3U%;GjV#MN*6b?eJ(dc)%YYhg0hGu;bvaD6Yp;7+S zqJf%O;kR2qf}vYgU{rAe3g2G#G_BO}JppXN^>R&>F8cO^>FMxV!caq=*)QdcFI^3- z3S{cVZoKRVQJiDzHL-p~{w~9ro5ebv;$T(so=2LpqoIgU#lT=UP|t;#C!F=`S*Yk% z%`nUI{HL1%f1C@rw;oFf&p#6AHw6ejf;*lnj4;Sp!zKDys2;CJ2(VN>oS49mF2%!V z0kW?}@&ka@>T;&()>7^co6Q}W$p+Ztj0pnH#5jvauf6CgQ;^Io&ij)%`3wm6E=pdXbg(r@Z%ZKrJ(!h3ci#dA ze74=)w_o6aum6v$uMCLt3%;fiq?B$%y1N@mX%LXErMo)?l$P%9&ZWD%B$lPSQ_2N- zSN*;9|FnEs_PNi!Gk4CMIR`xLnv?#KwKEZN-tJ&%xbQkqc{JmX>lPp1zf_E-$lo*A z(Ic`aU|tQ1Z8GPpwy>2@+V5H`?5pD-7u>ys)6|o!E{5BRff%Ux)JK zy+;*2+(evQayuEr^;7q=@~>&X&pnkXJ54-oM3EG(v3RAt(Qb{N%&`zBkOB8g1h^ws zNvP&jn`OHkQD(VX7CgU7Zdj1?x!=Q&=&b^H+NP)DFY-{f1>T39ZcA0TEyu&TMPXPCg_FNM9a9w z3yn6J?L-^TlTenr*3$tuNuQd(<}NDPF{cXPkD1V6l{` z>T%t#x6yHmdOY6E&msjTXxSDkGluRxuJt?rvcD)5YG^LN#{kg!lz6POzCHXUVW+!H zio%K8!6@1Y2`K!bZD}7Th`Ss0J7p&Cwv7+RtkmfuWkp0+NWup(}2)z)*6u zpE#+`aYXwsNb$=vg_@tt;u3RW`( zZ9AZZr_71%%XB+=@%&Pfmcc0W+2jC4pdGi-gn)e@tI}>-_gdINZ|%1@-Av)?du`*- z+OXr|7{TX-4C;(3ImmE$ylDrNv&SC_b^y96+4%8ZeU-EQi+Pv*wN4LMb(fK;&E zd;`x${i>9CywQ!ZmV<1}VhOul)jT!!z>OSptWS#vc&DK3d>=Mn{v4eHRbO_1XvGB`-@ z<^>Jv=Sx~z9I3rI`d~kZ=)4xeGtLEN|DiP>BCv|I}s(AU}KHSQG_H-cOyk$z4H<+ zjQSCZC76eK<#}ab(yq&nCb=Ria<8qpt@%O+jN&};U2QM!=> zhXsQ0fKca9F@v4i0-2lZan_s75KQ*_(gK)epcT6E%gxEEvln%D+fM?#)jLd+=&I!@ zU5}9qc}k4BWC8!Dv+0}em*?2Ixw&U2LQ(i9Q7_&|gDUpDRCYY;=e^iz=9%WW_n z#(=Ti7*uwXSK*JtvBd27;O;QyN=Zy%UZUp_?(TPI^20nGn5B@WX-O++X|7eZ5u*r1 zVAn;o3Y++uQJJ+C35^}$$#9JAn1Gx`2f^>>C4rXCr_fY*y_zjd;WMtOZ#~Row-I66?sDPBpeWejEDSxdw&NN`zeK#Xg7mcFjxxTj znD_BK>(({kCaqx)B#ntA52<0HhSwKV!2;5bKTdD(Ycw)x4E4(c6qc=^vw-7nlYS7A zoNM3JRXPEayWJnB+b#9edH3v$(~@2wKh|3oCI9Yn1$5BK8t`6;Qq*(^t?Me7 zb^TYd1jGKn=d4Z$R79)O9C`BP)casD_mDPW-&`EwQ9Ox8q|x)mlp*W%{CR-^4D5_F z(tZ?Kac^T}Pz1bx?rS;k6|7EK1J8Yl96K?LF135T=Tn@u3ap(ctkh`pVYpWsw~i)v zy@U%o-{PSQt>I2{Btua6RHSL1?zt40ot4wlhlx-RDDqwkvaNwIF7ev!R>vk?)iYmr z>TWmO-_-jk{SxtK3&ckO+=Ey7dlo==K6`iNcRyTHxZL&ceZX3x&+pE??Kw*fTzTq> zJ+4B>GJ~NEzYd#|K)(ato{c?HCTJvoC8PA$fkf;V_hnJu!$5g?IgBjWIJh;meIuP= z{kz&``{s}i?Byq5gepL{o72GEXle>7Ty%4Yag+$MP<`}Q2D@rq?n9Qd|FuG|$(HK27enwGgDQs8u-bLZMmm33XN3aabzyTUO*uuPYcePM6Xv zz3;xFrNwDll*C+cRQ_ydU{g%BrcNkrUhz?E2+rScBHO-PwAJu_J2DM&te5Mh#$3<24L0#MAMu< zFw6GKc zS%d|Xl$hX$whKdy@_p`BPn)4G&w#Fz7T3EAk0#oZIij=WhdipI$#%z6{_nZ6t<>io5MdA_iM zHo=|{=8w3TtC+cXxt(q%ySd3F8ZE-q$A4S|6~K_Yx?{?)f_kT@E7JW(vlbs>qMh}j z$OR#I>U_iU!rKo$2#7J#VmaK4i8w2NMuOxX>Z%X$)3^Hpy$-lHIhg=)eM-V#@8!N_ zcNM^h2}yFQdwXQ7>#=d?q;6GKm0hkVnwsUj4%zf|u{BUCTsk^Tr|P=7dVob1{9c9n z>F24r4<|vR>#S4g8a# z_9^q}%lxmd1$9Onx!*9+1u3;+A$^%r8g#dX3mk)v^UJ}Fozfq9(ZqoVMUo7tqVUl} zE;7aj&KV@V_k2;AIG>Ql`;>~D1l|_=wJ9gjbZyv7%R~cl1vXuglLbi|ihlVDZ~81} zM>3FwT_E&EW*mR4_p!SxKI9*<#Vwgz(Fi-|`0;b%rnc&Iz-3%0++X;p`0WB_y0B1_ z>CS~UozjvR?$MF1S%8UFaN3RED_>3H$$rn2m{TwN=fzFG* zw}34Ndn*Y1F6ckE-lkR)&s*_lKf6o)9p^Q9`TUARBsE7&Mh3Y;tH%6fky+@r`{ioD z6tfmEk0;=6eW1zL+FzO}5IU>ApTDML;I&Buhe(ZZje1pd>mx@0IuVcn3#XKOLe0j! z@>>^;RSk9gww`%o>{Q(9b9<&+VLQz?8@s#GQ!<`;i_xqw5FHe~y(@D)%?gn(s#PcK zSS_{6xO+Y&OTsW<3!du&39;`KFu!JfJA}#ijI`kzTCx^YaFJ2lRCDT|?#{HnR;{R& zw98U10li|;Dlm4A{md-LQjU<;?L>P1>1{8tW3JralZ4US-0bpGRi@r|kU^>A)Plt2 zYS^-DZ7(z5gE}Gjx||-S(%_NC^j=BjQERjNTIo;79;p5ovroxAIA2MQnQ@GMWbGQM z2RK}gJbPR}1gAj!8b?Uk6F$%Ht7-5jUth_nv76J(_DM+atEi!$80wEQVy=EDZ9$-& z9#S41WK*fv72Mw4h2Jd3-b8q3dgt&X835PWWoSXKF*GP|Ar?fcyd5g}48Cp}8uMH; z&ebelQ2}dqzk`<9^X_LB6&y)@V=W+YF6$C*zu{hai(d$3MC0{!Liiglim#5+=ywDJ zquVpomXFZ7OcO>qlOpx2mY?sYf2=5AVj|VsZK19;v6^rA@d#s{Ew?=K?-y75(ZMTq z*M52=qRk$#x;Q0VFYp^-M9S@~a)VybA8!s^)>|*$XI=3>?(jN}9aQIclFg0YuV1eX zDoPqS@xy?vn@^KI;yl!KsQ;--t~CD@W_O(@L6~S^@C!tEOrGf$cubqOp|3r!%PhW? z`1}?rF+rV=?TqWI|Gta!NtNG;Wv?JYMQJ*B-we5h{%bRw2$iXMi)?x8o96!EZ#oZF zt#n9HaDoI#J#(9nAiQ&1&qap-se0@N+_iVb=WRI~7RuwNfh23VLT&aQGt13SYL6oJ z_BgC>x$Nf0zT`dMm1^v#$Xj?vGiziB&LDBLfa(ARm+xF%qVb|ft zhSAJqy+7|<@#Q=` z47Z+~x5M(CH3aPLD*L4`p2eN6-o(AF7YE2;!6j81cA7ZoWd*?TjAdv*gDaN9e@ATN z7s6#U{3DEwjZG`0y4`axw8ZOp^zlct+pRexsx(<|-Ecr$#4KkSNdVvAdsLJ!z0NS? zZ`ltm*+b2|we0%S&lP{Jy22GPwNfIb-if#GbKjUK8d>OmXU2vp?`qXwBKxk-8pq)y zcU;{`1<@e19@bz;rii z-)*`pMX<^!&5xTIYS&4pF1O;LtdQhBx_hu0E?MddO)#DyKRO@s?(64Mk<6@3uQj^^ z_k3l-+KZ5#&G3-oPx|*O1!`%fKR^qP`D<9Q!%$E#U_g;~?E~fa!b)eH1OF3ankm6A z#mxHwaN6)cdFEC+Qu+a(Y&W{x9Q3jS;yp_L#H029v;(_baLfaM@DYob6P(I7m+<#j zo1HJ_XURk7-QyLRV{c0I2U5#!2t*!bQNs`3Mg?9-Wpx4@YP0F>-rER4nQ=q)6TazV(XwUm$Hc+mo4QYvP zqR^pe1n1y3efuo!c)SZY3|hsshl~Y=U@Y&OfLi;(jaEKgR>BwZYl*>@U7(Y>>9ANR zn3nX+vV9uBv_PuBFg-0&qp#t(0+JuD4qUvc>k#>rwDKj#9~epk9#W#JOE|J^GQZ$v zb`+jZUWc@Lv9#sl1jcAX+P#@Qek@##6Z`in@~(e9NprmW5&InFmEwoZh;~a{&wnju z{=BlgB86+}c{DhT{Oj5mNt^0I?N2`IApMump!aO#v7mt+Co=yBV|&O6v(U?FLnDpr zy-Y}*j9)5<)<6QZTtH8*E}@iHwsLG6qHS6e47?YEY$Ei3IeTTm5tK8xY)q{+1jDfg z+P`hgg0Xk!i^f<6b<%M@hX_Wa(6txW(bb1odN=uJ)Qcq^q@&6!^psZphN!zgw>sPw zI=2_cT=;r0o^9_-JGvBf2CIhN2@7o?f?-)f*d)gy#wEv})!Y<+X`-^?oVEsB2--m9 z1JMQXh8ahskZmhJlq+v$lNQh0h{`8rWv;6~f*>TvzxyM+(W#vE9e51{C!vj&sSAII zE*^_-QG1We-0Ew-^8#MB>zTSj6ReGN()2>4-z!cebi~|A3pE>x9BC9JF=#)ol}Fmu z|D48)5C0P0#sj_M@^7KQDbL^lD8TS^lx$dMCZ%|P*1P>J^Jm^P=hoL7dLohd4mHj= zYQhjt;(>G|9;_>2C>WFp!)KksylsLhx*0klmgXuG$v<6o>PQUskHlBskqS1i8MWo6 z4AMV6OC=?mC)Ln_BC@Hd{rZYH7q}+S-4W*APO!hTtes{Hv+_x`OuUuQm2Vg!sTwnN z_=1-Lx##9e^4(k!qA=!#w|T65(~ZlSwfItUuqzT{($V^S{Zazr24^gyd5+>Z8YYLa z#YN;wqrcBqZrRw6PJ7HRfz8#W3RG{QMsLrnPQ#=f4}CXW&5dxyhb|L8cT#<3r_`I9)TVuEd&+00i5f^@vUb#VTT>@hi}dpLg<&1Y@2X92Pk z#C-|Q2$)0{eSVYC4DE{=2t4A%2;DdjO$lVpsY)Tdk5fu@Ki^+5;8Y}dC}$qWh@Z6z z&U>Xq&{3#I0WSyIgcN%#>$=}ZTDFpD7mq;|tLwFkxCO9!FjJ2uH-M_yJohKmT4JU8Jd;wyK^KA*Oz&k~V*U}7m)uf~@DjWtM z&xiM$5K!51Cxb%LF^l-QUkfph?dEy=#s0d_h4Il`QQ>^rdG~9nn^gbnJreKzrP6F3 zIKfwTf)oin;T_G*Zj)4bp3B-W*3Gs=Be~8^9fE%sPU*jt*kyQjg6!)yYf}BZ&goz!P7!H0qK-ODAtFf?KMe1E-2jDdNE~8t7BTkv3!+?g1=?} z(K&Cl=V_c&V&m-(sZT2I%yDstm+fZkx#eD|n^fDP*xeWVNZk7iBY5)cOS;Zz87K^c zuhBBAisn|4o9^=ZBkR>|O+c35#S<^o^mmQkhPk5B{NV?7naEF}Vv-yGi0}*}j>T8{ z4MCNDTpnYSV)k2X6bh3=ZWDrAKZ3M@u*;MeDt|*6_Pmq`3|A1{>c`Q_IBtufv0O`LP6iLZ%Ofl{HQh1V!!rthmk=Lmmg|ap z`3UkOI};l@RZUZ*NjfmT&CXqW4&6j1aixf>g89)-ww7JRGLeWQ!4|hxGt0re=cg`h zr&CjPT6Y*2GNq|}*M3=9Emr68V3`JVU?irr&b6ucVCZx~EV(EkMHa;w5%~ngzhU%~ z;{A&6jU?n3+~(TGsT*uo@OHmUZe~}bP6tM3$r{tn@3QL36q*zF?z_9JGrcBtwany= zjH&w+=iZ9~B}1X*!1M%=`4UX_gGwq&v$?|OR2vBRPi%)s{duI`+cE)u4~y?4XU}*U zc0;GIcT>LfjP48`;5i=AR+D@MY{2Yhu|RXcR}ZScV+(cnIB*;5_?SPNMPIU6{jNT` zQt8*`Pw-z5lQ=En6YvzJs|;u;@i?sUXReYbMI|F1HAaSiRC1yo12t?3<%<^eI0uVq zz4ioF&(%RCvW+?YXkDQKs_Y3z9xZGNsg|^AG$d$zblqCFCioj@7gz8g)DK0q3G_@$ z2pNJ<@U&092%@EvUuTPKiySRy)MS@uSFz-uA}IWNJ~_Lp`bTmokZB&M__F9gin}F;7qGf`hwLoc?UYd}tYzT=g8GcK>=K#0VjH zuVA^$t|x+mcrWX((B#^Ga>@64C^%=6$evrRC66Q2gf=v!+&^(! z*Y^W7y2Vsl$=oSn33+wptQcrLP~qDn32@6jc-^$vTIQhyp_uV=7d`V2LSs{!UOISV zZgq2nE*tC67LugDP(TT|ErPcFGv0?jEVNC=@hATFa6oNdT0R6H%i4NytcC9^%Tql3 zZnVHEi~kLguB>LFiqGtkiVBRE6xLTU2J~-yTn^zW^UuaJa6sH$w#I%)j_@#7zuM?PDhTu4#Q&1AchNtKd0~%fHh9rs13Q^$!4n(~(A4N2ix(31__ z%T_f482UolY4$6w+z_I1@B)tQP2WRaZW#$eEz_x4xld&~LW5 zAJNE0=6|D3Pk8c01L>2lve^xW#H5`tc4t!Gkt~+;ilfVWDu$18DLC=;EP+o#j(wZR zc~q~Clq}1_c@3qibiddyqebhgx)D1a^TN(>6VZY{V2VAaf(iw5oo<5s9xd&V24$|t zJ@=B3XLSnho-$;izOR4qljZ;H|9pn;16MoiE)$fWQq+|N;R88qyrZyL`QbOhi**{h zGgpukf;K8_wOBOyK7i8~m>#c0M{`^WT1{!*Fx8{%2JHoct%5)DVhFexX=ahe)kBEf z0l^Oj?xm5BA2)!LDp?}JL#WVsU-8_|1ce?AUWO(3nrZ3cF%5HujgV7=gf2V4(yEjr z!C_hADOsE8ZOt6lr)2MgXGZ4NXYJ2XKyDZNsJ0Pm_L`~@T+(|w#|+FatlttT1DyE zi80t)!-6r{;+hv9ikP0H*Pr_!6nO2XMCbXQ+Lo7)jlZMy`?7BrvcmyA-{l0OLjSi!UT2rI?E_iJNz(lQK zuik&dSSXJwhrhRjcaTw|?2R=>&Ao*sYmr+-XuT-; zOrzb7)xNLjT8UzFV(nUA010u?+NweQGSd}n_gN!K7>AZ1ukjZa4T+aXXi~xmJyU_1 zSsXNzy~#K|C4=)9yWvpbxyFK7(a}Ys{A+CSWtsV30|EZxS!_>?)%*E&>1IAhf4X** z_WH3~2$6_~nX@+>fEk0GAP4=DM%L#nWd9d*9bV=>o3eM3# zFM9UEcy?JG0lleLbas$Qo{Vx25Omymh<`kj^=L4e>yF#Cm#8_@n%72ObGtL314GAJ zpju-Pv`HwZ9twxFgPu9tlP?<u3UnwTmzh%8K*`H8Jj92^FYz7{}TE?L6| zzM@)2zsX>Wm|}k~i@z^!fFoh-NQw0|825_?+zL-G@b+?Bpt314*PYw@2Gx}^Y~fh} zY7uhblBp{cd_BuaU!AV7_s~yI?uS7A$@JA8UGN*1Uuq}~_<)ag(^!l?alY5?oGKcs z=wiAy4Nn<=h)h_JC|}DzB`VUo46=9cL3TiPMNL?Jg21(~%Xd|;hFgj`9)-5k3#pij>AKRA; z;A!v?!i_LN4EF3o76&U}Oq+eRUs0+pB4v8bORE5Rw+((~O`DgT|qoW{rE?YOVEIc7CTAh*Nf+)@)Rmb8MO*Jf5{9_U1EN35lGf4u{voh;c>pI*;DtS)kaM)?VQ zl$bYZmHk~M#RDN{DJ`}jABzZLZtob)^4O@-geK~^TYCj9`*w_b3fQA7EJ z@8>CZ+9d0zA;f8^NB{0i?CJh7Gle87qK!I5#A3S(p;yDetBC6>N!Ut-u=CJFxQ!Ek zr9zH}UKqC$Qbih8c^XmtEd0=Fc@;spEukI`>Yz~!Z3t4O{+CaN@Fxb6HHK)}V83di zqKTgD(>$|Anv&A^;QCn&WznE=`Wt9L8@`&48WBd%gv>!dGVqR&GohU@7*gWR^1&q% zR=aJtDM*`xPL$|xSQY#)tS*KldH4RIXfo+`MbHl$PVAb-78}oRqSNP*Yq#C#?VG!lOk${CZtUCKF+WM7-X%7OHut+x)Gd7lc zv!5wHE&WbBC8-AV%bfj0>+0q0cdTXNRH5||wIyc7890xUWC+1WFR%k6B>VA}ovvW2 z!@4$kl&As`p^ZM*i4{_md>dZu^+ii4lAKOa%}o?)!C&mk_q``l`Y=-!b$QdZDHQ&S zpxj;9)*xmbh*#mnc)AS3J$}h4=Y7oe>0SfB2xqI~?X`RbA^-D-G3hCaW;3e2f)aJ@ z&+>fJwn1r!BS1%o3#%=%<3>!Skq(SoH$fzm(b}iKCx77lpN2Job_wRLiJP07?_Q)K z+v|Yi6e<%?;3Ux#tvr2#dXtBkfl?elCryL%8XnJ*{kzO#iiIxtTE}2jdD@8r-(z|@ zfGNND+ezJ0uVeGY=Zk&+lVY$=X~4PaagGm8VDM}LJ)bKXfB#TCudzVrd`zK{JYkTp z3yV5BNb{--cHO8D_H{5~(SB^FZdn70uGYe?QcY;hRS1SZouvUzm0~1tNi?m2!+!cQ z({`ZfI)9{2k9K5uvLg5w1BhVek-8(Tv`E{U=AL@2lhi(IT&IRs?lv8{eb^es1W zNYQPx*yKY*dENUrIyMG?`N$Wu@sBTXJwQ8iC~_@5Ef7-0m{VXr>bpYB^ZjcR%#3D3 z#9jKQwY((KSE@YsToIW3!H3IM8e{<&-?uQ75E4yw2IuXHe>t8_J}rG9_C^GD1dt6lOR&b66|fTkTq5IOj;=HQRgQ#mgp z*Wq@U%~wRR11Fct<&JQqkiJ3+{uj_oiNHID*+eUrDEh5yX_Fa9gp> z<2aou`4_ND`L={mX`(6OpsqC<6@+s;n8~BtL>-AJ3{4sA5Cm=1q_qMy!MiCR4Qsn% zXCINV+gzK{Xw!`K1CicheDpL3_54E~#nBVVYP`hAc+dw_!9_XONAG-Y@T(=>G=@n9 zBvx99ox1QjerJNRYm@okRXCR5C)7R3SL*DoUi=+D$vd>jzMP$G>C%ezC;KZes25jq zrfVr2m0BgnWGY$RzDtZsl{Vh{5K%EU%FNT7aUhY8zH$O_n6+Y&ctl$ClY1!cYpgZF zIjhJa{z^T*TluH;ZQ}7CPcxGrzIA!cV?$9_CZd1pnWVrXnlyePvC|ET3k1{eNGCY^ ztvb>V5PNMc9n3rwTkVPLKEyf>gf4OH&(t9l%zzN0bro7nKt{;9zOK0MOAI9_5TY}F zle-aHTY|cx+HPx9+kZ&`tNc+|+ha{F)-(l9fNFt~Iw%nt%dDYBkB)0V3mLL9vBId$olBwNW=*dfy8QIXJY z(!B_>g6C0a2o{R*0=Kb+Uf-W}wSC`Kgdu8H&e`eswM{*il0Bc~IQ?5Jp_12iA`d!1r(Jk6dN2di-VaXe>9SY z6H7-CZ()GRYD(i+f<4pnxr@D1tEgYP;R!cqY6`>I+4DZQg3&2KXa+)c}7bNF-jx6im2VAK5%DqtgIEmPCH9$T}wPU$4 ze6P<@$D^a!B|Sd2wCuW3_2mY2v?^QHY{G0znJ>I=G(17j8>iJ&VXz2{Vo$P)F>~(k zpVi1;>^5~T2BMp~| zFS$Hpg;UVViVlrZW+Uym6#LnR6Mw^>g4OdsBT0Bu4mOuuJR56kli%2{pEiucnN-K+$4rmgEDfbsb8Ya)yy+17+bP`QF%IkuaJ?=M z1Au`=W-?WQO(2c1B(t{z^EvfyNQZ~jCo?SiW9dd?;#q~^(7htH3CE(m^Pq%wU0hY{ z6L#P#djh@az8}t{P{b}BHBE8(M<@tD=6GeZ!9mUW{3)0CL9mHCa|y=orIQb;_s(x zIst-E#VC*^_~X8&eeeRGluk0%S!?BO_~Na#EKEGtku=`T>X_>C?3rQ~nXHmz8YPyO z4XcXmvvDevwWV4Hp_FpUsWXH0827w<64c_R?B5xkJ@V$fqNz;$=V{^a@n5htBH@UO zWY%lJ3bc~R{6@;PpeUJDlV^ff>2LKW0CK$r3k|Po!5#7tb)_v$@PtGmD3so zRHC>RSmDO*^6%otn*4}THvYVS0jx5Rx3FPG=XOwO*mX*`(V7G4#MYDg@+#WyFqjZ) z1*IKGQq=Syq|9TK7+sS@n3E}%uF_~*-ZlLcm^4W7x8BJ7$h&AgWkqMQQsI+jw)ZH! zRaQhn8&PljWEALX1=~WV2Qm{b(3pp>|Hv?HgPm@5f;sE{iu?rJacA#x%T zI~H0xs57@7DMIW1PV;vI>9eUv;N(_XFY5Pnq}(A9P7U;={8{nkgc?y<5_H28FxP(A z^4|79oq9x&j5GP1$S!^|{N=CsB|=f-?QAA|B8i5VJr1wq zc733|^o-=Ha}4^LhqDR={&O~-ZYzm|p!FPe`Ud-Y(*tlOR#X-zHZ2=AuM3|4zV-GQ z%3>Es4kXt0C~|Y-2wE3(G2R+{l5{$Yf>dTS6n=@Z;rF!$0@OBsDV8q%4sSZ={`qUk=!D^EYSDiohWb5? znus}G(oU?=!>(x=feYPiFiakaBU~|~5Mjs%AD+b1``}UDG(Y-;u(>T$80~iNTQMfW zxQ0K*IA1;fIVrKTNu%wWObg%OzyJy?;+4?OuuHf%Xyq4)$gXeaPDFr=JruDC_(P&%j#lm`ifa zJPprj$e^oe)HpyG}yr!4-Sq)hN~r5sJBg4gB;ijtX1 zQit&9aiejD<@&c3#@M#L@ZDv}25uP$SulVdb9H`W7O8$(RrY;0hT-X4PtOswcBgj> zR$*&Yg6k%z&CA^vAG>KU*XsfE(Dh0FAL|o_`9ng-2Cw^C2;p@pNdVoqBMqmLXk^d|!bmNY^N?+Om zymjTVHG*vW$Tj{jmz3u`ZTWqRUl#B@c;4g^9!sOfot~d|Lzm-2)4EgqhKYqjhy?Bp zXCdvH`O2W*y*^1JoG4(>v5v`!+3(TR$jIYit{tR-ciO|yCHek8mShO+hlHT}X>QScL2g^RN(_o;7(>;& zZZzn`?YEMbD|lPM5%v`SoESWH<1&mMpa(BHbF>jyg(yt+lgOZ#OkJlHYS#rj2W^U~ zOhD!$^GC-7Qm!fkF~}m|!64mJT^XP=3?vc&F3i+A!rJ`)X_~3>wS!%Kgj_V_Ftsd^ z+)V&c-TVz*pwXK{G&7UVa+c0!{t*?RXH~-_RRt-#8nu*d=O)!0HDX*&LKaeWPmCB9 z{+yibf_T4<_9LZr|Jzdi==CnLMrAEcYcS9ECp88d(!piP=|ax|oH1!qc`DJ^KKa*z zFjtzKm&H~UzNQ3?7mDO?-zj1GdN-lV5&!=!N8Q0SL65NjIyyRxhN4is7{OC=p3in7 z2O)^FSs%S8E$0P2bWioz24fS(HLYXmJzk45&8742+?})1gq_+2y0io0Jb&c&nqy3~O}Dyzx$3TVj1#l1|8s zrAQ`I;rEx%U&bT9X{7eau)^E7Ki1?RWhr8R0($6$Qd*vg(}bj?gz$E}eI-G+^s|}w zBCvQt}zHy^xALQZ`a_(z=mcu~w;{4q0#i`r8WHOwNf)tW#%S0>N;)wA6 zzz^=M)$%OC8mx3uyd>Lb`wpb`(H4R#aI%yTk(Rr1FBGqMOO=tGzqL@J4QW0R6F)DN z+l|Rqn2jnZ<=glBARR@Mn)9*n?J3=d*A#I(xiE~G;VHT%cd4$NGdjr8jH+PXTthzu zo7?fj7|q7J_WM*O1~TzNPl6&-bB?RhNIG)v3`=qL&?LN|IFJ?xZg>oyrOhF^yu2(w z7ad}D3T$pwl^;d&e~J1+_Ftl&Mn8=E>dJs9Mo~gw^D10KKFta${eOT26Z1TRIl`(A zrHG329d&SG^in8fu*JvsnP^t)DpICVyp7o`+VMQ%bL9!CuT2carZ2pnxv9&9Ss9P} z)*NrUCN7{UbFxoOr3;)kp9mP=R2DQBx+?6?dB8tcxb$Lg?jW6EeBE~b86yWiv2$T?E`|}ZUc3`Ee z%LqfAWIAFNb}l#09IQBQ?Rirs_;nYL<0eXZex1#;pS6f03u!5I>{>7XJ0X){Ls&8p z&pDr8*yD#t*WFdZS5>i|typ18M8}poU6$|L6%UmCmz`qJ+F!7QR4cf2+!-i-C1O-P&M?neHA5Mr(J}#@MFoiZkkSFft{=6eJ#s7H!%hU6L zrpXPGUXtzs^5Y!vMvJW8Xn}7MV&Auqjki;r!-=O~J`huxwwEU3MpE=ie)c-!II+qwfCM z7(FK9^X~{9z(L#}Y~q67Sgxd-+}L0y7;1l*y_A$|VJ$v;=PEnme9Oo zx9^`-bxpGd^{Ta#WV7}M#XNF?~;vzB}>+3rbExFoC7`>fCQU28A zIluemq5GXr77@w04myh@*3ndLu7Z&SBHa>NuD50XW|od3;}@529I?NWcQ2I0;iKt3 zWV|{eZ#!GXYs{ib@p-KC^KbHj_QE{hAz{Yes;1*r~C`}P+N4^u$$A}R5a?V2=A5=Ex2{Lxnw5{`R6h15@qe8Xr2^6ng5&6YDp z{QJ7PlxYNCaf|ZR{+!AG8;LCS7ix|BVPsvoFhF;!Mg;D*dT?TU1O0U*3Kff zALl!&9%-YGJO_A{(Mh5&<8F+Pjg8^7*Nc^Xn)7Um2kU(gSwmrnmU!FKh zb@30uzGL~x}rN|y zI~F>IB+L5dFvQ9WPy&H>O6eK*p4jSIECPS_X~%!O4B;i7xJXp|oCox8o|%1_6sFFxg{8Y6Se_37%TrT` z^XOpStKIkam*a-NgNdhJNQeE-4W=LykBtkGJ_T0z1TVGijHMacWdWKZb^oXezzvk$desp^(RWx~snFM= z+D~AhDo2@i>S8ZZXo7C*`#T3_f*-=La!gP^zj2Se!ELv`XS%t7{Ck{LG<7;3*x_4(f+=)AyS7XNPEb^tPmy-e7)`pyys%cxmSgN40=8(Wpjn z1iQKHk2pT%^el;$j*bpteGYo9oIkCQ^>4nXe}IrXz1MLBBZ!zef|wj2o1Frep>CFvQ1l%Eid64Pu7Tj)W&~7h_ z>6hWTx@mY_y0Ic5*MuU8{M>}It^P1q%9x9G9L*>y9Cp~bUI}_x3r5)z0d4cQ?7rRcKd4?zCdZDnb0ZenwOKKFP~eSk!i_=(}+a{pxA-QCGw3s zI>@L4Fx+;Y(YJM(T}_lyq4M`fJvbo#_s(wuo8ViGoSaZ#%I?lQC7A})@gAz>j(r(T zXg-sh1!bxgBMOn!r*arGSxV9Dn1C=Qi4Bl)y?>2L7Dqn>KFpkm86&Q~G*oC`ot|A- zMNj+RH8eJ!{(6xUdh8=spjW? z%K2HbopMBNvC$DpS+_A_8;S=Oji}JU*r)K63&?_xK}lX-5ZJ!`jQQpFoe#MQxbI~r z6!KegtF~7VVcebKO~@}db8^u2b%ZcFgD{e(&mYa4|C4dxO~pdSs@ z5g1w6ML3qzwps^1EXY0{E<&)TG8h)x09-{uo;Yjp&{q^rdOB7r=GiH-c@Z3qo)|Y~ zA?Nv&JI_wAL%@mkgyaFq=z+-NJF>2=ofa!ciIAVd*5VAX$qw7GoGb8SRhxmykr#5eCA+cu$_<|dyU8zu`Q-OLr`^^v!sBSNw<@K58-X)_gD zY_uaju;a;PVy@V2Oo%n>?e>qjNXvDtg+k}&%i;{0n9u=>;cS*x@oMQmFXDfbY=UOl zW?oNa3lj%6u?hzsh_`}(&NE?JE4)cMt%Gc~5+X2Fg4T}n#S1@;ig6wS&(aJo`mSfM zV~DSk`z*?+Zq2YLH>_}tM;uMK?^uj%0`6f)I9tB-8 zo;Q?UwZ=~H$}cD6Fv~H5g$z>nU*O_Ni`kaG;ke8=tn{>6i#e)iQR_U4N`UjU?Uy;B4h%zrmS)vsKc||1)wmm*?J7#rLcNZ^M=*@G0`Y* zw=MDtk=p46_Gt+~_$CoQp~>`sG< zT$AOA_5HZBY;sb)$>5lxhFr!;Aa%467ptg!qndFeq}lz%W|8A2 zfK8*Yy2E`ik=BohuXh=9KhDZTV=3u(MszB!iD$$gclzbm(W{rPN5%85d$MeQJI>~{YizQPgPJF+-U}2w zWur0n3yY_ygi?WBZH6J~T02?VcMHbl1&t2nEZnE=ab@-5W*1^}7{S=VM$3)aK7_Jv zeL!yA<+kh3z#83wp(5pZ&GsLaunHtvgA*<+2VdqzN48{gdJ5~_T?f(*MI+~WfxY3j z3igg+Gi`HfNhgxT1$<;daS@XJ$)7U4f9+{Rfrj8Qg=%GN3_RA{+TFT;wUOFZUlcN= zdl+d5biWS58UX89uGLjTfcg3P!k_C&J*BE;|DL_Y1LOY=z-Mmg>B|yKv6}y1Onr4! zl;8I?-7rY^0Ma1cji92WG|~;y-Q7~s9ZE}wgtWxaAl*ZE49x%o@A&ciTkHK})|&t3 znfu&(?mp-2vv)}yTxR3Rb)rM@`AH~4*qb2`b_vvlO=o-Wo-;$IagD70$j&!heLJcP zg*S7l-t7#&R}{UVf>)~;KYf*D0X1re+JKtu2n|2OB^!?NjO%UB6r?B}?yE5ww(9tY zB0Nl$^vaiOGvG(k0<^2iZ}%x)SMcS20&>{Sg zt&GB+ZRK#TD?|+_vCl<=E4(sa=fim{Kcjw0+XD@_PJU-~QWb$w1An^_fQ`=v+lq(ZuDgH=KyH{## z=KpGK%RpGsJK}aD);aZ?^#BrqIudd~w$9>5TUGSA}{lf%YoZ(x0yPry$J~L_I ze`J(@s`!1~x=8Jaqhy0`xPI-^|JC(K%SUd?*_A>QtPQYuMy2g~w|l zMO(}Hn01dA`c*^&2RIb<(E={niLwu&o5NI6s(o4L>EL^E{oqFMMIjQg)*Fi5I6JE@ zUYTJA0aj#_5{(mC{cqnQ-#K87;@(f>m_*D4Upu ze&?v152M;p*jeC2EID6PziC^?lhO0Nw&Z!VN_&Nw&rY}%0=%Rjr?Iy#lAdNUZgSL= z2V;E~Pt{sFQk_`w-!xO(|Ft?gx)IP*LBK%q=~5M|#d?d;u4fNr5gWV@tlcQVd8Ib? zA!%<3{lW{s6vpQcvN9|7p^NHUJIuH>GFyLMP-aV|&;6jN@6ID0JJ>gCYF*DzDp-n`T1JPN)<+SJ(VbPPm;9x$(p< z$VfUakjC`D#tUKUQOy7tw%kL>b!ROBl8JRi=sO3f#KhyZLI#?*{J48Ww8_fCWqDgrXwSt zgW^ZHP>bLEY}m+}{`gB3@sTTa$+rRFvPU;PuF5Z=sz&M~yE|NN;F}&mfRjqP0ju`E z5zGJEM?QEhE(N4;N5)H?COdLZ@RN$+$oGuhf!wocVjQNetdsLoJ!dM62%??d z?;3Fwky{!5tg>@Cr}UuXrj(XNRmCGa_f+g5xFtc~R)N@9XKLR3wI&Q0=vkDURgcx* zo~&%~hn=g|e%5tV9F}s**88o*HvhLZ&9=5Q6Q+Q|XYU&@*z&sJ8Oe_+76>9Xg3^GW zH$jVcyL?5Py8;jiZ}n@5^ba!cQ!#yv;C2|NZKrmxGc7qE#({JwqHC_+G(J<2I*;=z z1h$ThTwPyT)k|tEMo3OOZVdy@V~i#zCxgx&;O17`&YN<|64x4%j~f7WRaHn{{F!=w z3sF$(S=Un7SXSOJ1sFdz^@*_P;pvt1p{L<5>wn^-$`d}4a%Vh(F5{JzL^}4~G z_wNH>8?R|P&gn&)+Xr>`I`h%<^gvs1XUbAZe?+mYZ`8t%3)9jdo3&qGoT}Tu{bHJY zhh6ZQt&d{saVIAIyp;XjbkhcT!0o)R_hx@OYZXn;?|Iq4~kNJmI69=t_Nv5T4W~#?w`x%Eji} zu@1n>$j5haW-vjWF5T(HZ_!AFOo~Vab-V64lRXbiQ;RSRmoEjMc^Sl#9xo}i&nseF zbgmzzMD~7CAt|50>Sk>M6) z-$@O<=w7~!MOatqf)d+fM(yIP;ZjfAuyBTDMp9#Ur!fMYpFOS4tETZbiqZ3ntjSX1 z!>l`Ph@~bM@U~N>p=7Q(o#^Z&9NR$fBmaD^ULUpg#KulrfOLFwD3{;K!^&mf2O94K zMoG7!q3yRO*CY#S6@M1#10KmyG3s0`ry!C2k*cH+nC0KNg-F#G#3UkGq!Muto{Uyw~IeLKn9wFNoHZe?rW>K)? zOM%{BekPXfdv=HI&Dh&|lt|jT1(4dFJ5t%%IHE4ex%XCn*yduX!defb%?*-kv-!Ac zCHtYC?mJsjO{b=fk)bi7zHTbRJ5TkO zNT5+S{Gfm@&pAIeMkV;&5zJK@B<#qw91rYex*Xdz)liFHx{gLiTE95fX^1!(+1=8e zoSGVa00;K?(y*jli`HreQ2mW0n+E<@bD03(GOphI*iv;zHVqiat3Kj=TbtbLWB2-eC&kQZc9s%@?KoMB{srCjEF`=9%UZ^-f7(I`|H*mtU?_IzYD;Y`1&a%4r^u%=oWx2#5GI6FN`Jxvvcx5=t$C_p+p?JbZp8u@joY(bu?K zBoq1Nd*-Em>+0fi57g{6zxbtV1)HT7vUa)Kx=1_W^Vmz_htPCBtJC)ycoXn8wVJd# zd*71Jr(d4w7OZb$gJLE`BbkA|8GKz3=Jr~-E*TP`T)T@Nv5w-K@_>E`N=j>M&KY8*nItF*S!JpISpZrUr!u&*hz zTOO>m>!Cl}5X(4lT!(e{Tn2Ra;E{l6_=CcGhUB7Y8~Q|y>udKF=-Knu`0~?h16zWi zIzE;4mV~vwmO{(T656@1{wp#~l(O7NI+D+in{FPJM#1Qc*@AIGU_V!tbV(X7t$_ck zI-9HiSi1|p0a*GHlQ9myU2%wOgEGR5shpZ#}m#Q{s7t_#T5{w%kA?pG3mg`dH? z*jYF@w$HWa)p^=827HuczM1OKH5Qv(mJng*`^KU>JPX7a`b0FzO<0jJH;04_N8{4x7# z;}6>VsQRhDEVGnn=T3!pr^T$6I%-yyiLd3R=ot13e*KW1J&FOqcbIkx8_=wy>b7`C z|06x$dN*9|w*e^s!cQPY+J79W1zS9HlGC{Gn$G*r)m=|M2mw#aU69s^z$Ag}?s_!v z#C5yh8(+N;Y~_r%V*_#eo|jH2iar48`mn^ShRJE*6 zNnPpI5YLqxR5qp2`phbbJ)a&-B(J}@4zjaY&OxP2#vddH%E~`dG)vP93YWaMwU6gZ za*V)(a@rY@S{)r~ml-?>SL8v(?3Kh2gpXEYTDKeKoo3pHa3(@^unsA^uid)@PYqaO zyQiukgV|qJCdKme*N}Z*w@%it7CM}Krua-!@4w|DD)#AIy^2K)#Ut#+mZh48WLjc_ z@^?E$vfSXN`#iSQo?*<4^25OAz|#7SpUjA5)zy~goBb)NsV75ILWs{Q|6AVGq<@Rs zmWLQmx&H<(Es-hdFZ$}$E4ji}ap=;A0j09<9x*g-sRn7qWfX|OHi#)r=Nad?@Ppmc zO@5@cLx`f!-UO?qitHO<^bgpypEI?N;`tl-KT{l0F8s2gwyzpvAjq{V*Hz$M3!b9@ zUru({{`j*^N|Y?`wrR;rM3lkg?z8u5n8@|yPX`M_&p*m&x0lHKqFt{zX zqIl=aj)IW$sdKV?u^Q2?a38PCTdEr#&c_QbavqTnyp|=pR%+;~s%g2jggDt79Lkd` zP4-Iclt#Wu#VWAWR|-I6+Jf~Wb(P&(Ldij!J;T0Zn>Sw4{)ByEV1LceCMbr>NC~gB zx5L42Zry9l@b-dTXz{swV|Z=Udk%$nB|phpH7pVm3*2?_*Z{v&7_TaDL27Eoda-nh z_$0Lr+=+!&oO<&(17F|x{?~cwYx~Ezs`K^~)C@|9i&Cj=zwx~iCsZxpg%zV=_ip_=l=M<9J`{KxX{?29M4M&~u-Y(vy( zc{dd=KT4sc&Wu#2n{c)k=kF$a@rkY0y*#tEc5mN$AKa;%zkVH2xA!87|0onSdT3O< zlQB%m?=8o3hOz`~5$?9A|AI13V@=$JoArArO*9)4UXJq&|6HYhPb;t`WBK$+NI=ho zR;q%fSa?$E;Z9PKqPS(}_Idj#zb*DhqM2@kjfBkl0Qec${Cwlfp<74un=w}G*p6vb zG|ss}rO?!mwI`|^Ew(w6PM~uh-Y;3rugt3)#|zrYkdf<&!fa_2>@nBt0Hp~T6*=@) z*nK(|&rXw!&p$o>6tblv8qK#Bh)P&WGyLb0Nu4MtE!O7bW+fPN7P}Dg+sDi2=XY9q zu+v)f%{M!ac9%VH%X5Uv<^tCIw0;0|=MgTNzc#%Sh@t<|O80MQJ3F}i^>13q@RoRe z06z8!FIo4&R}8!RE?V9Ds(2nVGL&Bsr<%m6ikR^2Z$J%{wd-!9nU#gZvS*6o!-q@j z&oiMu!0y}cMT&Jcy@JYl5?LB-z4>Q;VF~(fBsPl0`+Qt>>)!%b2f>c8SFB(^rH`{X zOf=q{J7$(Vmb*4`*q0bP8LEGB%o>=#%`x@KWg>ES+M=!M#6ug@Bpwv*7Z0c8aHgE) z-J7Pgx`LHP^1j=QWFIfIhYaA>WF{Wy7QaEwx!q9VyIp7yzE~h6w-3h#H?C@+OvG(2w+Y6oP3S6m2>1T&@U>XBTib=m}ae`(t4 z+>M5cUj+sl@7#|`056a}eyOnfs;x0pdmfpXY^2Ec;w5~r$6{6;vdZtk^q%FDJX0?1 zpEY^5wTSFPhQ&W}w!I_-)KzXxLQ`sOS#qvpoC)s7EtokTJpfFX}gEi6ck~d!p>7UeC_~YuVvKA`Sb5*N?YLO zUbk-0XT;J$-TzWt->1s|#S@iBg1f^tox7j&hGyeABCCO&d*`IWTQh~a28DGeJ+2{C z?>?&Gk>s|ufb?6#PB@yBKd`n@m z6W-XgZ^zzD&jrN7qE(SGgQp6gEjKPNb+3MJ+39x0X8m-WT1Xq1##&bM>U^$FVBD7G zr|QOxAp0nhX48;R?6Y(pO9od(N*>_(Au9cbrX{08avA=gEhUXkE9N<*kYa>-li3-| z{FaY~L%-D3nw(dx`0Tt8gRO4%$7D+Q-sDO4Id{9dl>FCAGyEURjB=;j=SEG_;;cv1 zf_PTEVOwdK?P5`*aBOB%ru)|9n5F*_l(&`CFj{a`6R?N=_z0S>ZM1}(w6%gr6^l&| zHh<>09-HgW@7;r+GAI0>T;?1O!J;P*_*kqL*xy*}&@kM8O|IbJUcYJ-v@b3HhGzs< zh_^4Xgt7U}Go~t==#nH_bN0TCJzYyzTg2O9QY@}5%W!hQEH3UxLHe4Ejr!3Qs4Xjw zNKO4!@f1ue!i7`e+1=~N_8L!zK;tHzx_~hDcUNZs$q}j4TUva$Eb?XUnO`KlI}Y-_ z$KY9aTW1tm{4Z0j`JdEBZikj;=8$=Ys5{%yTotnMX}h`?q?I|!^R;W}00l#8YEu;% z9~Gw;xK;doUseOJX7^lMOI0ID!K_!NNxN7rwju;z;DreQdonj92q&SFv@3F;9i#+A za%t+2pvdA!2N8x9*fZtoWfauiVu?Of_5_(s)Jqgi`o9n(U*In)lo8*dL+~LSUlSX+ z{;Rq@-F6Gi!z0|^5uyblLu5(hF!V?CU-quMnN}BPfzR1q;^T8;l=6&3={fF5_BL;r z_=J~CBmf__wJ-d=F+uDjemL+HU z@3VYbT7zECEQNiEMsf4VNIP!wu(pq!%iw(;d-`k}IVZRZ+e`DXPRN8YCSwj3jeY9$ zG|sCiKt6e|V_;SNqP%P+^GxQwK&8m-3_ixHlai9+^l;M5=dwK*?3Gd7K!di6 z1nk8jU`PKP?Bo5HC5CaXy#4&2aPWijOQ+toPkwOAy1!xl^y%^}z!_Jn^<0Z7RhGNR z3$RRh`T$@enGx)Pk{a|i9`GTyT$fPlwAe{#z9c7_FezZcZW8D@*lW+X;RB$qZ#+D` zA%jmFF*nY^0&p!m9ogO@3*Jp}%a~)3(2W<_&FFwa zyfbQD$RSuxdF}N7?WN^Fz~Fx>lQ-o?NMbj0n|pb_oPUQm#{k|Vn{7rg9HCVo^klXk zOcpd*n%Tu~tYhIS0UNdm=Dapf*QH>>9-I}C3^xyHO*$&~<8y=+-v=pg%MG>&?cn3J z>6csCL*O?b<=b2&ebl987~7v9z{U0pM*2kV>LWD`jXq*+{W>nd4hCFhml#6lZSi-_ z>e&A^haR+$TAUpvyAuMgUdBt@={(uhcAo zlB7X;j!%pL$qSsqw^ZhusUN0yd%a1G@TA#Nx4F7H@~D39X{O3X?`8V4Vbg!T+4gfg zmtX-R+Zuiv4h+0SMW9clLU@9|8$6AX+cp8r7Gy#lT!d#5ROYA>LA@+NmYxkl-z`B=r~FV`Ye$+3DTz9wIOiLbb1 zY)t8K9bIbuxM5-q94U;cgZHRm`0DS?=k{-0X+f%bDLZCwXXhL)aII!&h$lT+*K#q1 zeK%ronJJ3&`h|Np-dn_4`-Le4Du!n6OKWI#Z#Bbho@Rw#4ag@h78%jTt} zv7cz}_E}d~^lQBzY;D%|Oj+8ywss0jn{Z1Q-)6g`?Jgnxx9ttZ4`<4fP;Dum4@c&t4=g?v9eu78Z=n-~cfMn|XBc>Xti2hr3m3MV82r*WsQBXM3b) zGc4HE&nHz29vDH{)op2{Mn>eejy%@7ru{SPcX zUAo_F8dC?UD~p7OW0RUL3l3>S7g>)zxJPtb&Dq~IV8O{5}m77SSj3|{mD z$<$83H!7COFyDYHVmOg9N|i;9b{PP~3BR51Oldm;b<4U4{QqLwu+m(ART;OtjmS&5 zy&e3y4r1RkK6`Begs&U1-+SCs@xI+SLgu@=lu&XdsD3)fP0@@;Sg%7r+nMiz5t@An z4lP1msV`{4i@t+2^I z$CAxogV*i7J!DmVjXpk=6;KZ5>}cSnJ9F zcQM?N+lIlM7abIyByWAeao4xki4kUUO=Us^ZYcn&;%;Qfq?h(3JTbGc#sgKt)H z0Z#*nGy#6nrg`4lBh!^YV#YV0-mQuix#6SoK2JbcX!o8r_WCd#L>f#5eerkeQR)Bh zO6*cW@|BRt5cA}WA$he4KQkq*#i$CbSrkpq8?2F+x%q1!ym?}QRS=Qd*IdgXakx(B z?>M*b)RoUVVOu~ysqDiga*Ze z?@*?&|7W-1^*^!CK>P0Ahs|In#fDM{w zgiKOg37RA6PUCgS(9QXP5Tug02&eJj7Xk36&ZnU6s`~KKN1SbJsz@NRZN9KP) zi4s87AOu|hmH(JgK8^S7PsRFhmyqjRdi6S7k|e^l%SDVFOivQ?0x#0pAYCs2YA`PT znJMsoFK}og(x#C34>D~n4vKLms+MS!tZI-;)$8f0VrjawqzSPTl9}Lg4w6*jwHOcs`@wGSp4_`E z6fxz#%ZgPtax8Re^7+0NnSb0II9=|#F6OFtab@qVz&nMpsdJ`mci-_wmCE4Ot<1T? zJDDMLcM}N#gM`fiXhBn7Hc(cy*xtqM6*;aaj ze*p>E{jqIz>)Y{=zd#_+pD?3ch~(+I#&L7WHn6W{@oa0lSzJyO^VRZLr-vchW)-)e zDW_3l)Ysju>O^?g)2Vul>BP1_%_jkN4x-g#7Nt7lLe+`?1;GE=FiF zA7q$t1EifF%dHwr4=C;Qo3VoS@_caSS$8-25{i1Y8IqZ1D8HnHG!<>85aL;ER46Re zdI+44ld*&Sk|+Egdy5+B6Ulx}Jm*^DGPc%!`}jgdc9Mo-V&oQ{ps7OUC-VF1OP`e; z9Pp~qe-+~X4$pzYn9H+7({{%SI9$Q*}y6X7PB zCDbr~(CAj&ydmwn4htOaNx@zkJsmRJ*oDrK#MuMJutAr`E7tw46P%klTL5^Bi~-*v zN_9L@2s$87hzU#W*%WY)<{1{=ow-b-NtWd&fcf}K-Nhcaek7L}K>0VEFhH1J_xEYL z>=@u;tPUkqz9`p}o=-pwMoq}J(Q~(Y;IAZj4>GSXVeML(aJkvhYHJ{_DCzyu($Yem z8G5E-MADSn_dhJ*;o-4BsXVxBKg^vi4@o%ur$TM|AJ&Z~1lJPz7s62q9+V`{L=lP8H|(nD2mr zXv{etbXK{6cxG%=qQP@o`^Q24=g{Bt+@Fg~q1iuk0=9_=&dL7BXL!*MrFVK$3q2j{ z&3L@_?-+27*zMo4?cYv>JV-s}R#ZRA-JS%t9wACXdtAM%EcelVo-yo8cZURWsm<`q zILEhIqOIB<%LtQxsaVepT-ZS@+Xdq&u^IJaL!V8*ign| zk)`FK6l{4O7%&XC?ihztseU~>z$>#Wp5PAg8whgy(*V{b0L7xyPkT=RaR(JIa#R#f zDeMf=<+E}gZ8wXSqklL|QAE`mPQZg-mZsMKE8uoXqCYwmkaoZ=Us|`56w2Tl*V>Oa zx=B2P4BjA~!KFxP6s!mt-`t5W(7>&0kc0Wi{SMqb7MPJF&xEmuEHujF+e4=Ff>y*a7tNa#1Xqs@~5`aX=!YaZAn zwViLxbY&g8URTi(sVV*lV(+?Aa_E5WA;gmLWOc1QaD#v%aXaWXItR8a@vr^SA9qm0 zkuH9RvR7V7uvDTjqg*;ZiA;dcm5@l}F0ia^ZF|vvfK>KoYF1^h8>1T?&I04uQNw%J ze*q@UQa<&6iHozYYTZfGyE{=5s{L%Bbn8FzqmvwoupK4~~-&&bS` zZ~hKjX?d=}V$3vYOoDphBc-yaGv}Vsl`|(4@@{A-`gCmi0(t!t^v_@H@qe>45A#*s zrD#5Xbool^+!nE_;lkGg)I16IaWK73aQvC9FgjLb@6Au1IZ0RM8i@<+CdW^qNZEbWR#;4IJ7?JiR;@r+}7 zGpM0h9r5nDISP>POEBa$ii3|>0`%bzgx>m(=IHeN_yp0H*uJs95@&g(9Y%FG=uHag zg5Dy3)m9x2G}7s-v?9a?l4mL@vZPZ-*XAO z_er!=5@Fmr%4@GY1-MN6bi8=vWld{j&Uf0l?0aoBB$U@*oj1}+cQ0CUy(TwoC z11eSWA$G?mOO0pfma6mKV+_AdU`#^aD8qc;ajg17y1U&9afOIMw4ksqc(*<>>zLV==Cr7%vuk z$q8kD*|gTg7_oxf-KPO$2ufZdm`a?o)sAOtqoBzduf3x56;eNYfBrql@pFU(@KpS*3`iOOw`UTYg_m<<>pBOM>6w<+KS2- zpFN$cgjOm)Yv~hGFn&VE6(WeL5nI9bTT|1PCRxcew>5UC2sTOGo}gZ`d>_If*YR*$ zeqg^AtnG5uQb+dyp#(A4b-jTRt!6B&9Y4&^zPWy?j_xaJf5%34v*b=3C7`&v39Hvh zA*A8a*qozDWSiio6+*&GUdHus@cbfio_yC|GIioqJmsWmH3HMI^Bqgh2wtSYkd~S9 z_dP8G9!2@LbcScu&xZ?A{(dDO*hOSF(7|pr)tS;Yl`9ieMCxFEFvAR=96Uyhgaih* zrP((v{t}6_7MaxU5|xva6J<{SNeHkedfg)>4L_l8g;#eU9f6Y>yH2WdBiQjL_RWbc4^`x&Oi{2+mxK0uA-$S z7#e90a_|NAeKlF$JkQ!DCi+wEs^W4EU>2`OJSNN0zw%1i`S_ zhz`E8)CnOUUc5-0bLEEkxH>q^RqDbcX~=2s&2}Za7RRZVtoe zNejwcg_^+5M8U>U#w;IXvpwVF%_tXJ9gmk zgOIcY^q3tw;{IIV_=2M%IO13Q3ms9sI~batTX>hDD|<5xrq*uQ{DZ%yfUhQyKlP*D zt(h{baN0Ee-rHod_6Y5I_=@ULSZX|O3F#MKnIfdM&Rez4fFrHj z6#xnb+T+Z;5dO_;Fg3vH%=KBRbj^FF+VvT|Zz4Rl1eE*w>GyNoOZFO4(3%(e5ZO%S z6O1@T3Unp?5zz9W@=)iq>pKePzthP^@ZZAg$PL%*@E}pN^--0To_@;b6k*(P9QU;A zjBL&O*-W|36Hx*UP-H@=6n}NMB5))w+1#qYX4$YClU}aVK-OjRvCV_-vda&c4=VU! z`igZVH~#1vD$g+O#>PpXs5mu=-?MjVLWb64Pl$se&p_zaA=yorsc34v&S`S6e(8gl z_2i&SVpu~Nh88MQsTg6-hS{?G@U0Vu=5+A$mglCsV?PlvVq5TSu4l_0%$#a3tJNga zOn=u^;kbEoRMUNSnfRd;(`x5p#x~z+-%zii42$BBx_xczNXbgikD-%uaB4!=LrpL?tvIozYPu|8{^;EnT!>UOkc7YLL#5s@3it9$Prtp^>}pGy$X?$DsPk(-%&;dgugDD zX5}T1Iq{?zBPWF=^E{k<0E_ErVgLNOe%=VSWf*~*7Kd_rJN*fthpbZvg6?{V_7t8x zNavry`Q=JIKW6bd$2cn8s62CrL%3%KOf1WLLfln9Eeqp{?Q4B%LRk(mCfW9k6u^Et zn&pI@oZp6rJvcN@pZOvALovd>##BO~V~*m4$!ggr)Puen0EIuIr;;}Nbp14pdO7zO z9$qu`Y`XO|R_EO&w#R}=4e>-_3feLMgQAX z^7aR3s=zIEjr68q?6?7^QBs#)h2>!51zcM-%qR^F0@hp=e}=cRJG?mypMK0$F_2d= z(o}&IzR1xli;{ydwzv9*ow%cCwI?0B@ege)>Z))O8v#_<)9K+h3q)5`@e@D>F)m=B zmX#0gLYk8a7gHAmVCjG7HGPhX6ks=kE7QE@z^p6`bGZ>SH)=Y}dZSA)mxdfa%{lMd z$T7&yJvb4X{d~ja(0N0TQ2$$3&g|m=T;Gk^&@Y;Ek=s-A!9TAn@@}R>q-!_vLgWs?`FzMA|Q(LF)p5&w|u2JWeqomI!eNvr|C@JYz#pRj#`O9A0 z%g)f|o&DvK4IWtE;qvLP@9|rb&EIJtE3;OYV|@>x8*{Ze|%Wp=X11MH_2MZ4k33E^UjV~o?ZSR zW=vj`j5)mNw@NlZE=Eg#5s( z551&8a!8Me-621*=g$|XN%?H2_)bp@0dP!VOHuSHo2KKT9xU^Y@3cjI(aKyZse9>D zl;Gs)Z}H`jWBpLhaHoe?07wG+IHQ@~ouA~?0l(fA_=_IUE24J*$LbBThL%HsdXKY_ z7Ls9e(iFnnjEpYwj2!Nd@3qx5hlF42R=fXjcbm1W?$74~N;U!(o3ab400-*io^0MV zo$I&1XGo1qZrYj~Oi!(Zr5zkN5#X93!tuRB%=x2+z9;>6=UYSOyi`tW$j1Rwz8c($eyxkl>o$Bi zlTCOX^+{D7J(_I6;{oH9J>_qcP{iEzw1>Ri3)lGP{0FMQrQ*k}n{3vh;Ip~cq6aNC zy_SQ{E7xoiC6v5qFx52#0iLoLat7YXuR%IkrZ%+{6E(3r0nm1bsLXL`792g?u4rYhuv;)NNL@uD^&QYZWn2QC_bE^0 z?$M9{_i=M6CHwKQzTkm219}=M?hRc-pz>M|Zint>zxp{M7KHupLi)cY#6vW+9mkDd zF+s@>6o_#JvX>U~Q0|t#`ExZBTB479DK%B;iSpP_dyEJiQO^ig;KW9|I-c3=ML!WK zX>t@OTCULTbSkb3d``5Lu$GKb`-8}Cq=#Rq%e9Yt#ReR|CFp9 z_t&=N29CI+Gt8Orc!=JCr~cnYV;ewD5ZFU&-v8KF?~=`KRMk^&opsM4_5J*U`75gK z8`Ym|LzU40-sfIloet9%2!;vKQuy86I7!hc7f_0=kG zx_(XDP!>ub{a0lfrjy3Z@?Q}q>({aYoNm~!H7TCXYM!@;9vo>2qWQz^5h9+$U7PBXq*?HI9P9iYE@@gYjR8tT{2kC6;cP=d*ONpF54asnYHkbd#$ z8FoyAOc{Yx4Vwsp;B!ei@Z7Py*h2z$;SJFEFC@RCQ2g)4sJP>E(sp&IRp`vWFsBRj zcBXEsDsU;}*BT4IT#4_$wt&pq-twIl`r5GQ$rv!a7T!niWk^)qxb&&Bi%}f-&0k~}#`Q;F-XDIEHuak$$EX$%*A`?dxbK`YqUtg{V_U!dpJp z@cW_^M8%E!%QILXII{qGI+|{|c-&&Kubdpiio^`>U1(B*;|K)blb@v8M*aeAXPpmR zr(2g3QdaYcFAw;gh_)Obh(Hl;_1Ad~_N`~>oO<1D07;NuGjQ5%`Fh@HLQ~sdHmMB= z5dX%f@)z>`FGy7*R@+y{iNwnWOfsmq2(*Tk#K4N(DK%k&UAUVkGhC2wd{* zs(8o$V$8=c=d`f*#*F~=HQBWr0(5nC;ds<;vbeRNHX~<6JOT%t=M2hwn~>*UON|lU za4_G+?!D;Xl;P2h?S&gvw0g}WQL?D`=%OY&Kqr^dv!Gbm*4$2XkBZcoLxu(C#Y5Y2gq+nUzXC!@y=m6zF5xnSStrG zP^_Pb)tKCebqTEo%o})~?@2wkG6Lw3uF!s52Q$J^v@>fN(Tf*0)XhkwLh}Oz(I}|j z@S(CdyQ98f=1*H_1{X(_MxGO-D1m8|qcfF1zIj}mcKSaEY6U#t4K*ssd}N+W2I?cfT=GJED2P9+BorNH zxH-gcHb67niB1jL08tI3h0_f4scM}nJA=i4aNxE}?(5_98|tX$ZH(A}A>+0xkSTRQ zlCl-W87fT;X#z-=H?v5)#xRyjBng|V{cEnr(m^_Snzxk#a9FmR{62*M zUS3+)*8hjV`$xK4;0T;8^*b$DH`tS(^wIZA$nfqjRbJYREwpr0M%B&*leu>_4eM35 zI^uyOak%+Bl%#BKILKWSF(y8P=Dg;-nZVT&@LoT^(q=S~w|8rhjDZ1l_?tIGB*f|; z4c{6D&>2svYRAEi*W-h?gc%5(D-|i05xeF?k&E~!I~Pi9j47B(Y&Oq*qCkXK$A571 zLFWBm)U54D2(eIEI1gmYF7Z8t_x(azb2Fu&&Xyg|+|j=%AY|rt$Tjn_qPb|s+0<`& zEsr;jJI^*^X=Wp95p4@6RhPZS$*K32rkru=UB2mcQqIjTbNdg|ulYfpC1DU;lF{r{ zH?Wg%*p{?74H$Bbh9_=pga_?4@e-G;Z)g}YpIU&Y30Jj#2d4DysVM&3fooK28N$)> zSfeWeM7ZQ5`@LLd3-KMb-|-z6+~{`hCndX3kW6&0`YB2t_g<4I`y*DIGjhU-^VMyq zn=M=MwgPq4D5^%1s$GPIBYCmXSJeLrd6zH)6?0=*+}Y+=iLOYBItI3lyFciLNP?<^z_$ z&bI>INVxF$2O+N^a6DU5UxI(7IZ6d&-QPzHm_ar!ALN;m%sFD5gh%rpX!=ecV$GWU z@k#=px#?EiMQm;9QuV=6B`|$k(fD8~gbi+@-4^vjZOz4Y*l@Pr!z^etTOhPXGJopo zm*4X-j<~Rnv_k+L%u@u-k#;oetfcPqTIpQ}yzY{nF2`p;dpstgZXg4pHW% za-|Eoz>(JaIl4_0(~!>T%wgDnywou%#UKxa>Xa>oAQXE3D=|JWU}xh*?s3}_Hi0{ z^)MYch|xsV{_26oi$S(|F)75(6E;wW>+bI0l&LJliT1fMTzko>6pBtOhK=?5G%J4= zv+PI6?V4AxV~NVnb3Q)wWtxyYtg&d{SuVi=eqttA<5@Q^fXqwu)M^o>f0YLtOiYp;{( z6|pkK(Y%O24{3-oS-Xt9T!Dwu7lBK#)qvP-o!x+(9f*#dik?JeT^J9Y#)~#V>Pfi2 zzdw63{0BN3g2lbt-`IEeue2V2M)7>UYKL}xGVD2W)Vk^3JpIYJE;4CDT&Pw- zj~w>Y>C}lJlr^C6)gQ2B*vu_+$a3*iA16Iw*wwH zAGA5Y72VPf4-Y%z5au7OkFe3}FC?$5_}R6)oeE^MCm|BKpUASA5pWzUE6Z4M(^YiG zaIK>y9fU2{f<8REVeAS!uw)t`k=43ru^P3z5m$71r`~6waiF&&0uN$Ov^FxqDpC_8 zBNj1Fp$Dsu+%KD!!|gp5QlCQ6KdSC~3@D4>+lvb&W6CqpB|Ee0=zYJR;>HoDf%wod z1406Xqy>WbRhJRi(^4+`X8p%P|sLvPvSCQ=aSsD)h{G;!#NZHb&f|C z{<^$~%W4(Sjz0}FfAIII`>Y&hRV^AM09K+)(Hrfwdd!w7#QRpp%mBYdb|S>2nzaf* z%Q{uNh|>VC)zekOgtoLoGd(i$Y(=&=qN)FnrRxr-`v2m%M&Y8AkzIYsmc2(RvP*VW zcJ{iiO$x~>$)>Urx<*}_i*oI~@4fckdyn6ne$UhM^oRO*?{m)Uyw2-1Ap8C-|G0Y7 z2D13M;GltY=rH$M7~EzSg=&DE?=fA>Gga z7|M$Hk|?t$^Cry;7sh8?1!3MIb>m!H;oz7V>uQ3+@xO8ICqf}0onx_C9=Hd`QgtJ7 z^R~%r=LZ%ScIz;^0IUsJ7=J@~u!4=9aTF zLYBiY^3hk~vIrK0oU(?AY>m%;Bg>Uad?Of*Y+x*$2Y5xIEe|7FTVMH^P*!*!0;v24 zcbfotoU$TQkFrdQW$KRz&*z^C%{O05T>Q0GfB@dn+5yAkzT^+US=xnPAtca;5jVO5 zT1CuN^9+T%R`+egP8a2l?w0tjC_mjdnSsGfL-Y%c(roD*r%#ZAPC7+ajqisT(XaEI z?!Sb=C~~?qxeUY1>41^;ux_Mo5?1$$dX6@ak=dI_w1_r8Ki$u@=}Ir$e6A}N@OW@h zTlL{X%k8h1*#*ybf>01puUD;`fMWa?6x9>1k6GNW$8&?du{2uiUzr-yLf-xR=lG}P zU{zW1G|b3#y)?rOBZru)K(BvYhlRQI@*+O!;Kg&}I45)RHjmj%sZI=>f|6c^Ya<=* zZ!X32obH&<`R}q>3qBaV4~}fLEQ>56%#th0yxh*J>1cdQqi*PZ2m_TNQW2&h8fyOW zN$#SY8C9M~a`F;agj536`^Vo4f1>91Lnhg-#axRLF2{et9)g}Gc3RGLQnYxRZ~k&b z6nLvyee}Ia`*Mi_af=I?5D33=JCkvvZ`JBQ!HN1Ij+1WcR|Q znbl%~&0oiN#;RotsE2sF+kldRXo%JFAi>0DVqy*m{?vnKj(#-BvnorbH3>U9VCttg zC-#pwyw!U1ZuEru6g17r!@fnQVqf?`ncvmfvf_xNacycLeo5q*G>FT(`M_4yQ>84s^>nDt@pGR>lpqmXlq`CM(JZj zh3N!w0}-w&)_q2YTm-u|XQfJ`Rq>K&L?LA)qxRw7A4KBCZoMD4BGo=A-+sXUp?(=3 zUGfAov77jYfLX0k325HH$Wg3x9i&31(q*p9RE}iEzkX<;ow~bh`7^N7 zarXt~`~v|7X4z%=&jB*Ui%5WMWJs-*XUe1*4&ikzGO>fxm1JV^YN-rBU-^mn4wzJi zf`Wo9-+2x3ddAK(FU}F7io3T{#!-?;hT$8q5M^FJ8Q0q^(ms5}t=T){-^2oI=MEFUnyTn>QM3tjJUt-T7`C)&Vsi$REH3UE2eip}W zAd&LC<2si;b$`K0@BQRp<--PY(p4e{O?6Ix{ys8tq5Hi~DKy?>yxsGYA=_#dBk1qf}2#AW04Dx z29LD9uMbxsJpH3plB{VxGoM@BO_Ee-SH+eBf-9B^iZ^)<9N1Z8 z1MuzV)d|erkKrWNlR3m!V#2!rBhwwKZ=a>exhmt!;3sKue}By9j#oTF1pMThq!x-Y3czS;bQVxO=%IQDLIq5VqprN z=zdoKYjyoWQsdpYabp9};*q&FZaf42bPv6x7>^6 z)etO5gqBHcf^=419{~ zsLX-Uqnj5u^I?->Y4BbfZ~L61FMP_&F5^iLwR(?FC+k6V%(BVR#O!k&6M3(JxRsmj zmg@#w6l-k~tf1q~ROPIrENt#xUurc2TT;t19Qf4Hg2Ylx7?-{ARQ=WtKXtXP_7?g* z%PnEHUnnv4JyT*T1|6r}&lF^9Eb)6FzWTf~rTTQxNG(|~KEjrkqHa@WPu%i~J#CeG zwAv~EUd|@(3WbRMpxe;ZkmjrA&^2L8Ew=)ART7--j@$@`M2f%Z%0t@2k=@%%SNm`_?~b3qAUhU+g|7#J`F85{#LrhYDk$sS75eV zO?kK%H*X*|RLDpMH{W5lkXZRcCO*@Ax^Vr?(v9cOgRCUvjX z4x8J=cS=$&?~{Z9z1YKTqKVRZ6YJjT`RjQGBthfrjq}^rqMGRLza-2}bt47fy)+=1 zGC1717UQy-ox45JM}3v@m^!d>&AQs;JCElO5{vadT@yY!e<2zDw$Fsg(bN}=hd>Tq2x$x!u@Nj9CY}oF=Oc!J1cIdu+W&Ys1@w{mNhyz+2 zf(t`&Xv#J)l%3@*&YvF*)s;`YCL7)Qnn0k0*SD*24J5-ePWFQ@8ArN3WcpyPeEj^m zUI>%BAD`s-OTAxJBA;F<<(rr!StDev+E;$e?8j`h?hTasOw{PqslIS6 zANa`3f6z#Er9#Ji@l(~9Wk)ipZo5yyp|+{@h#qw^^XIs@#%AOFmuMNvSxP0wwpdwN z#xGo?A|eyRosYvJE4+zyZtg~|WrP`Y$B|_izKe%7K0Q1wAoo}#6Ip&$F`s4rXGtY+ zVA|AoRfIxfCYGhfF|5#MYoMA=ug>(XMa6vkTzSrSM}+{r@IhVoc~{8Q;emd%k5SK*iexq4-4B0*=8YZX9sfE-^&35J5Hgq zo~B(ptqu_TBrG$rSz#JIK&LXOxH>A*UtrW+nQdAMaJYix?6-T0b_Y}l=hH*iKbjID<3`*Jl4t@MHPY@3vc*s4rcn{z47B|rlB_utI3>*Dwa8tVWNxHdv(II9FOJU05Xb0t{on!(|tVdOjX{9gt<#1NEIMiym9E~0HF;RJuKr>nuv#1R+q)U^1c z=lk3~E$zAqMwLaGg`pSPW0=&MRn>A$% zU4NAJEbFv8vm9FHM2N7kFWSxr2b&~GVuuoVDypg#pavWBQrUnq6)Iim1rAI2$*muk zPLYflp5CuNp+g16ZG(40wVyt1fpk^3ZlW1mvDp+Rl;WWZF??E#L7q<%#i~-h$Nk#v zyJS%_F&rYg%E?(mPA$p&iBV}!UK$XOt-LJRifGCD2#1(6Vs7i|DX{A?$a6X>7zV8_B4%&SAF}kX?Caz(TWL^4VtH?@IeD{yG z_gRaQ#93$;oxm&FrB;vYXC_D}j-(;%JRs#Th7zkb5CO~i9PjFxHVh1n zH)SJoHc0&LeoJYg6Z?5uVLf?$O~#wm3}3))Mma|#ZFG=gpC1+FV*^&8*}3wS-eqF= zl?DN`b6!*ogIF}k8OCR7h{qqFZC}aGuPUVY6NhoIR{xvhK#eI7@Do+&v_RO zpFQZ}4b>XXd-M9_fsf<;aAyC?4{2nFQ4-G;NpAznRQ*wXv4W8Gr=Tw9*c1|y)ehKUVevhz{G*ys3=Ue2%x!Fyh)Ws&Ai!Imz{ zKIiwV5@zSC#lex#cjWps{X+^|cIFs*7d%D+bC%kmFptsG4`_&S1ok~SiGb@qt@;CD zg53eFI9C^2ay5p!TaQJfFvGm7} zB@SmH856#mDN??gC7(T+Ny8I!WscG5W)Z%f%4_zNbi_AcVP)&p!M%stgL294of5gc zZ$4d{;F~a%cgzFsesfK|K$p6bqj;Hv-QzEYd8=6v|N{bOz?L;1OPfu7>>wsNmz}w9k)X! z#^z;GvRrkmvrh@hj-@re`)4DVbC-kSppH~d#E1BC6Ot~Me9pk&_~4(XW_u(on?0F& zqNjfQIIsCuZiGVzN6{5J${9SpuNT4a!{m4W$hF!KHE@o7YfOM8p~7RAJ}0yveAL42 z!aX7Sd0HHF{FPjdRgw7fjRLw$0reaYjCss71XGtXBKKik=q@h*H2G>HE`e9(%;zBt-nKQG;1lyedI&zo4)M$?r+(o+jL z3p?O5H9@zXi+hJ)oXRId2PF&kgHD6-QPe)P;L0hx|4XP;8hRYz66ryagNObJ)AsRJYU zHSAdxDi031j{nFQR&}rNHMY8A<2Cxt!-m4|^Z~cbZgUw14ZaA@kE*l11OiT;;I(H6#SNLlUw`x~ zGuoa5+7a_!^HJof)PyB#F#zh@{q zWse<@;{m>SCh#eRrDs$W3@HPwQWS}yxtm?l5u7O@`0tc?lRT1f`@^SRj$AiLH<$7e zPCKVI9VefG9T?tvG>E(B*_h zM372)E>-so#LCTuP|AJ*K^24N_;3565)b1@zW-zvY=sV>kO<#~FiKqe>pcFc{o`=- zG^77c4>s`pw4);b)dVxvMUYaQ>_CO%_r>;${>!(nhkPEZPqImWvcHDIFW*NR=^NTT z)pu|Z#UZqx+~Zjzl+QwvW1eYL6f>fs-6do=mAc(FVmkJN5d6&e^WD&9-bie~F$Wh~rl91F!7;&Wo{94O z4X4?ejHluk;fG`7znd#Yq>ue51vZY+3+sxB4ripq~AoAfa>GYP2CzdF*#LyCBSrj7R^@N}1)LA0O(rUQ9V zPzo%;!%;5dZ{Xbgg7z8tkR-fty9%;sc+x&y#(ot=kw0;fqV&3=UcW84h=?9B6Gsh) z9`zbL=RvT>X2-38=j2#t7#eYm5?j}pYzje6occzC%u3{6^9keWCgHL~+ekb;6aucq6_u~an_`s)vG8NhTQUlqg7aulVHBen5|*Cv2$@q&OV?Ty_xPhxPLQ;0Eq zkZA$k7~o*8Dehv<1m`{P_%2RK(&Z^ZPC{96y;2hE)!Pf0GJd=mSr-I~&Fssg#O!_d!bTaR;o#*d zb!j1e%;I|O6h^1vpDiU)BU38a{hOuzY{O#Ae`2c1eZc=&8P<&qLPFv2(>Obr%rgfZ zB4wl8OT^Yuzk@yTY;_ZU5sTv$2|oE*v%~XhiLI^~^{UgO$8NAngp6$ASub_a=zzOe z%Hs!e5_?hF)ru8P@=1}|@T~~dgP|S?p5rO+rqj*mW9i1|7NwPzi1;E~`ZoboYqyB| z^-#lc2(~AQA^Y?LFVQ|@8RzYNnsVy<_;*HDKViZLUt9cM-z?+3w?G`9zvR8j!a)$5 zmKHTF4ivycOFJd=CA_?@@>Wy)yfj!^mmVTa4Rb?k#B1DN;$R{KKk>990qfoP+oKD= zl)kM`6sDb0!pcW9LtCC!mp{nIn&xnR)4T5NG#e*fZw*kNj`LdxIAq2vG!qf{?ny@1T(x_r?VyD^dmLlYx&B)1 zJoA?1{`@e*_L= z6GXv#@|Q3gX0ttKvZhT>HLP)qeD^X58uiHWbuy8Li)qj|8f24C;s{GKXge zNoR`L?eq;Qh z*Vo^ji>sxf@E9Rrm-8eclLIY>;L;Q*z*$#9nA9Y@d)X{!>RdcSWS6hDBf1PllJZhX z3V<}k=Ckx@mbOaC_f9w{Pre0(lOr!V{a6}qZpRK!QTz=>0TrwK{YZD zCTiQwT6?@Eg?HvM^G^D-fx6)58~yf0m%eXIB%wQk2X%Ghtx-cSS}DRzQ03g`k7nIQ zO;WbTTadWCzute%j=sLS$#ZhTD;qFHur$QmMEE#rEWY&IhmvGfj4`O!EgX#{RYAL= z?=HOkaj#mmkM#rbx#n|0Nm008cLgO+a&7GSi51KB-`p)*DX9U2^ea+(W{)F>lRtj^ z$l`ypG+=*lFim+lR4BHw+kS}Wv0Nr{oOXN{;>Dzrb^V(N)0dCEq1f9lspORDwbWK^ zwPO=C;-JgG92RG2hDX(d{&6|yOMG-RJzIWUy*Lxxri5Y(wCL$+uf5Y$#*j(VYmwL% zkLn_~_vysv-cvfAOmfjvYp3GJ@BR+chYysU?{YDr3q{-c-ncOL7lzE1)|&5yQ3@=d zhT)0X0;$z(#(>_pE9L%I*^AtmET5ep8!|*G%vSoqJ#&JmgN9BHPa!uxl~=6i@>ipL zDKmo8zB^WG?l(|j*2|e{jNj2`t#A+cKN+dPV zaDTsmduz}x6Hgk`x>FQ!nI^FOAMPlL&hu#!ruU=sE+)zG|4G*2pO@vq_5cPOkgY~ty=A&`L3Uxf8%Wfw2? zOnWxAm{HulttIINeJ>Xn(ZzvPDfmf1P3Joi967cxz9(}aAG+U>%>{{{jn$Bnlg!4r zVmoX|uwS;~oyi#kWWPK3I9Q0-1n7O|Ei;gDW>&SSZb;4^FL_xnHvG;HSPyUgU6V;)jpYwC8lTyGAG)xaP7l%|NEMh(7{xQ=7W)UtZ@E}4DCz>{f~ z6nAH5e3He?=NH$L;otStyy~Q5<)Xdna&oXKz4?cF#wu*%z#YC7wLjvUFxhUhRzCTh zNm(EVF4$QP9j>Lf*Nal!p_g3*Ls zh%2s47-I&ZPh`w>3+*kD>f+2@irnO&v8h)E^F?-aQ$QhhiYVCe> zkMBx@sLWS3NcJ+SIMCR$AeiAf-_Ia1Yx;v4v$N=pZsGck@|*c48OK7H*J`ayrX-S< z7I!eO8`iW+b5f5r7!-b(Gkq=K0h$HCI9sk^E8xldP#A|xubwg(cf^H=Ear2%V8djpp7ku;g>0dEA(+6Ni7~I>VlRJ#BE;b zkHUkWMu zb=@SxYGV7O_KTbQ%&^lVyL%*S=Y4d#UFUQeL#mQ-_=c9ot)B9M{qg|udpOGZ?|cpo zpgdFD!p@m=VN2MkvfO~S*nqSHr?(97-}{^u0d)#63dY*~d$p;e@fKYb=|CZc6r%rv zqD%IGpSf<|P^E1NZ^P2d>iD$FY`I4B&ZoY3tcFPmDON=uJEL4U1CH0#}(BW6ZTA>bQ z42{U~DBQkmB6CgS3^9tB>lOBgD#mWCNhumq!KM#{0y~~-9WE173VcCR!Ow$9;KysF zqUDDrZG6)?DNe7}Y69?Avg&Cs+@F8-4Hy`w%XZG#B7nU99?oaPn1k*#iUM>qA82K# z5<`?qz5}6yy&5O0{dD5>+C$)1NZ*3Mw@VFH%G(4~^eTrQnPezD;b`7`@aR@;igwF< zoXK>ESjKcp7YB7rZjo9@I|$w<+1VrA|&VgcCOVi zl$e4^p-utQn|rQBOgSDsiHXiBfB(d_8TUY){MHg%+N+W1m1u}JTjK9q?42UbTV4gk zV!SPv6_jTS)alh8F;FL|?RKGx^Rr{4mt|E18LxIO@9aNFr72JkvK^$5;)4ci-$Dtd z0f)qLRVS6c2k3!$Et;_3%Z$}ydlKKj76qd{=)|lUto^0pwh`sY%g*J|f4Ond!^)qeM`Jh=Y7AlNpfqjh%tzHgH-O;^Sf&soEl#dMptkZf)mbE{|K$VcpHe+2wI z_!c!-KY^|ubfF4P=CqZ&D~dx-H46h?tP!q3aWG(|JD{dq?XCfbFMw!NGv z?tJ=Rfn!P;%Z7&i%7Js>F~g9FFE5@f;)$e%`$Rc)#r`{v=C06eZYJ_k(`?+);`n@q z7iSFCpIgRvck*{jDJM^B4zj7fzVP0Oxxl>m#O5u+lZj0Q7|ok%r|IMypcPn)yy73| zO(wLX{HK;-%lTwNg3zkZ*;fN731yt9l3};(c^$(avod=PRsV9Z2@$#LNWz2hcThF0 zp^xg~SPAp=+}J83W`;=Tj77@X_=m0As=qnbpjYsp?ajf2QZTjtvg-rDfzuk!5QT@G zGXi(?_G(>-~MR4N>XMRuaHvj(wy98p`-+ z*AMB*KIrQWssklyi{qvmDUHFIq4*m^3~Mv3+?~@^@oS%6RTWd06<<>_OBNQnwIwRr zY;Z2#=nQ+*T_ zj0P9Y-GR(as=^qvF6T(8%YTryh%^&u2B8w2prx|v%8|+haSZ{OMDMi)H*H`-{L8O= ze-*`ak$S2I(k-AIN0_EjfSjiDJhTS6{#WPRFZT6=;gXo(kjYTjl*HYTekThuDJZ0M zus*tq+-e;{L0|^TPu@v7>AAQlRzzXaLmZ_5a>+g&t1SNK<#^zuI}|Nh7eJKg_OHh=TWs0Kk=Rp%D4lHl@z7}=hLQ_rqA3+~oh_D_ z?LSo3lQ=`JtQX|iZ+ZX?d?-nJX(Cn?|8sG*U-hdy-J1rrKpb*%ENIt_LqE%2&NJ_U zq{tB`o18$M)-UN=`j%!!P6HD;FX`%dtJ|`eN`mAVMVN!=`*H;r8@m>I1`1&(GF_8H z?Qgso%T#*j562zp&P8_pw0~+=1RVJeQz~Rgt-d%*a8$fU;ubM6TbI!`#cy(Y_5dTC zB<^}!YPJ7mM>zsd(B~!?T~_A5C^SGC-*4DZN^T+uqF)WapZPfIcAAC-1~B&pj#CyH z%T-zU$`{s$X~-8XV&hkTqRTl?zAS7E$#e#7-HXIJI&YDZ;=y;)F;66^$eoTJiD5=x zNk>ly%o4NlU$IklMx9$5QMJF;sF|D%Jc)N6tMCfJjDvhExQm!)Re|_$1H^0K;d^})Nhh6rl4JOQ}I!MhD;_y-o-8S#Oo$CjSUV{ygAXL3XN>C0Mcr~0yjKDY|ee? z`%Dkf#AO#iEu#wxpV#}!d9I$q#g5(jw_|ORhIx6NluW)W#cCO{X&*mc2Ry#K=frj6 z=+S}v19W_@5NzJDVt0)rukbg0H?_}>fPh*iG&GPx=c@ShNgL-qF5-#V+%sqp+QMOv zBPE!j`LL$a7CTW;jLVVu?{u=}czyEyRR%t4@4q+oTzVeS{+?lbLB`X~eW_{@H4k2) zl*eF1S^fru2SGT)ZB`W(6>;GHZu-<*NC+t3Rbi$3Grw76?a7%DaKH{MC@WclPIrYR zT?nytALlr$Iepg0CgNp&Bu!(Ge!rOuf_0qNq`nd_Up zMA+Y7uI_jy^-Fm8fLJ1Q^LWt9gK=T7&#Y;FTih(65O3IiC0P1+FXg$8yx_?FpYek+ zJqT!c=?N$+HaTkY|KcS?;lzYlUBTs1R{M_ERG&{&Fkk~l?Q%Ca8Y#c`Y4KsCVg@gX>u^u*R#>KnRlYfq zCH_-}SFhM;{;Kx}JWAZNf6$SE4YlholS(~6PbY3P2;oVeZAmeTILXcNdu_l+&s(O% z*Tj>W5DY>HwEs%mI9)-$S4dk&&ry>Es3aY7s)&CQV_I3idO^6*1R|oUEKPB!cSj4< zz?q0vxx`YAMMHI02+u4&w%i4vo~WLQ_kUzGy=_g z&UIv%)nBxYNQTD=w>JnppV)p6dw!kqI5$KUQgqAtOh&uKk>O}hG;wcnh_PsSFQ_rx z(QE4Oz8re_ZKYwZx|+^;4I{R@=R`!I2wwspZh@>X%hvitl!BSfbX3rloq@g9bFPlI z<98ZH&w(YK&rUFTwb&Srcj`Kn2LPaJi?P2RUx)%6Bgyqi83%PKnwNJ4;TvY1GW#!J zI8Qwq9(@$(5UZTs3tS>yU7C8cprcBk&%B1HPcdVYe{SL`N^|XBQemh?)3=5bLzOB0&-EhjQC% zO9DZso*b!~L#3adkxf}0u8ic<$4#=Qm5mMA*(>63*2U+MoyNXfy(E2f;^k7=+$mn9 zaCbEW=T3`ahTKr!_H!md)9IacT5G!J4_T{|)XtH-&71@Xmh|!itVBcNOtb>QUB+-xnjv*jDDsRxc*K6G&Rf7%;*Ghr^emuuKXYui2%_I;M%G) zqK*5u!j7CIVjaDP-&zVj(uGlAR;w9sK07&j$fKTsm+I$;jCwNj~&XWYmO;cd$lxmHTeF+`DmG%s*0z+ zHTSXop8vJ>Cvk?HyoQskmAwj(oB^bdXSGiM$s%Gb1v{|@rebeh#c-TCkaaSNcrO3>UewUUPdqKOmy$Tx_5VX z!E*Iw8MWy4WqlwC4|8Z8N!1~!$Epq}-E?He`8zF!pC zcFCX%k#x>G^fc@Zs1k%rN290NxVgzNNFe?IN*CIjM1+PgR{N)L-(IPHQF)yKXCuVc zeDZK&(|+Gi%x#ip%6jZ?fDt(rh3M!=u1V(Nh#Nj4<~A0*t3E^wIk+T%zO}Iz&5E>{ zo2OsuhdMH4WvL<#^pY%AOf6r9^QGW=enr@#LC^(mfP@0qr? zA{VH|ajd@dLM#PGcHn)&#f~X1;*mqk*`PD{%8J9w;$dR*EIZ)Y<4ZGB;;OuCHYV!T z(xsD@mR{j?)*c|RZp-5aNSa=|c|AS3vr#9E<66VDvL9Q25zskAh{lMc)C-(Gk|F0&pM$FwdAO1{sM)N=A3 zxPhg9uBTUO-Ej*vb&}192@NHl1I>xUuid%F&u=r^8viLFp)X&LzhP2KsxqitI}3_E~v>+d6@SklD-hg3qXjK!W64N^zcwD(T zwKpxz6STO)!y zC06r)^djqNgQiThilsXO`9?pK%#K&mqN9xG@qb>lRH|C5RQHEV5tuG9aa>I3&ZWbc z5|b9>6)X+?i=YL$YH=6V?Cfm38QT4cID}1at_|D!g8Op z3@l6UGcEKT7zbp7`d82lrGICCwDlRqxEJ{{m-f!G{YFT-G}AdjZ;`gFM;1G%4XW7#Z(jT;RE^IJ=fXf1=e@!PXVk1Y|B-x_}xG6-R+z_iJ&zu?+WCPcBtWp*GB_jZwN#%V1HslT*wP&T?Ku zlf5ecl;*jTd4pQW%>k#Y1Lx|UR2+Od+uQCc|lhTXk@GzO>gU~WY9^%!&r5DZw6i4~JQ zjKr^bpIC>j7Y;NHNn#-*8Zs?D?X^y8I(PU%EQW+gDC{TZ@`xsu(D^Ypll?xc1gc(R zcsKUnl-#^8>o;-Tx-L*|kTSYWSlt0Lx6`LNUr)l~5Y@;73B|wZV*}Wa&2t(T-dXcp z;T1TQ_zT6&<&#;PkHV*q}pVh+t3&m%SNdS`Rii!{;hhm}_ z*`s?^>tkF*QFdk|W;tU|!BX7542=GG3Tz0+W_}%pU-Yj8>3k9sM1mT7NEge*PbChQ zBUcN9rz9dGa=2^NnI3q#o8J1OmW=mW-d2kHRWz(#F`<6@g|Z=FKY-VNc5xVpx0s84 zHzsq&`tg)<$f=^{|2Cn7)q(SwW9QazmBR(pXHk>BHMC!d#xog|0!7OYvo~3ru@ly^FqC{IdFs;PQ38r>##V0r6exkDWHZS9<9zp zV>9Dq;k}V`m3)mE2s=HzBWG-Us4WUJZp}G9|B@HIT3&Bwug{Vg>Nm0fz@LETbA7cZ zvCg${c3ijMf_rY{`Pi2BP-Ic=t8ViIjmw*q?0 zV13tX$ms;Wh-fAm1*`6M0;6(mB=*88UOVLE!1uzhxD{c#HxsAnHua99l2$(y2o%iB z(*it&W%id4#b5l-2#;INQLqhH*#T}4X_x{gqS6P~#N9KBkDc=oT%t)dik`qS9c zkyx#PbytQ>xaha3-s1Wl`2f8QLbHJ~`^23M&i3OeW4setmJx{xFne`%Xb1`A97y?D zfHDr-)yXQ_vg8Xg*Tb{-|AzJ-Ekx|g+C<#~aE8r5PUX+EYr|J6I;!`7N1Wzy<*UK8 z!&VPzRhGZzwAN4Ks+*czQOmCR_xzc?BH-%eKfY-hT4*r`D__5TH9Q-8EER-yVX>i$ zx|vDw=0SHhN7l0p$20fI89q|Lt4+4Hw?IDgHaGWsASx62p06@|Wo2cM zITRG)?p)BSuN}Hxo^eYHOGp`>&8vF>W2qAE;%nv8i6ZtivKf@zarH1pP|P_0B7iL6 zg*RJTL(wmSmp!I(Ox2Aq-iYdI5i?A$KPP@^_dTjUSu(_y)BywKWw`ECw7C0V{R}8F zWz-&WZjaZ!CF(OlJ7Lq&JF!5p!_)I79`LS&fgC2q1-FPy^U!s|vPSV@wF2gDJ-s~c zC#3%YGNU;3Z&%e~PD=Sy1UKHs@hMy_oa5Qf8YX5NQ5`j{c?PLqzE>D>G&<*4URs+6 zb-)TQ(bP>?HrlPo!FKILbv4dhI#eLd!^EIf0y)TLpDgZIY=_nrxvY`DHi7gl|K~^# z$~=K2P>x**Xff}40SW*j12VpE5{7NHyj-J-<;Rz{W{Y73?*u9?uejMKd$e$;DT+Y} zXkwWBU)h7u48!!;?O=1>Ww;03gAjWD-`8)~3nD{C$S1$8I?x^brpeuu%b7g$K6UlJ zC6#slJlCzyqC1;<=Fn{Jn;}hSQil=0T&ugL9EH620{Xr*@MqNe?$W&fkde^^h-V$w zlo)$HYlPSb)h**#!Q-^mc4=&z*Lz6Hsl>?&%?~qmf4*qpEyFedFaE*p4?qhdcsjPz zvbn1*+rEr>_nrkafH5k%6xG8%L=> z)K>|D@su*)#9>Une0PxRpdEm4)|Vfof_AwhId98ai8w$Zd@)KGx45vJn-lh$xZ+Uj z1|C^rjd+t3sGjU^ao%1;uV0UObe}<0%@O0Y^qryz)Q`IXZ0EjpI~`!0^$(`+aiT0F zw}DZ881UCK^WV6vYl4bVd8p`H(NOgy!MA`b^1i}-9+XGIT^LCqV&U#VXCYymVRtmA zP_EPTf(79Y)GsOe2OkK(_C1Huy|{%Jsvtm^7Jp zP!yhOmnV=7^+w%E$+<$#pL%k~>_^cQl z6#55%IhwAs@p>h%2DngA9(51_3l1ZF{XZvUpugkxEr#wN3)vnhA3;|%yRK97Q$11i zm-&-9(G3ex1zOsj!De)B1Ww`=KU&S}S01$=!nnGmVPe}hfl*h7%e7JXK>ZuM^3Qd2 zz%~ZdWn6f2U4dtDK#m7FknsD~FeI^1=ml7+nW0Nx;C6}%&DyVxJ3%$U3b(Fb)YDuv z72KZd06;J}qBkytLZ9UJ5uV5jCXs($6>w>GX`B(9M10Xc-{{nzwUtaV7t_B9uf9O8JtBO=7}4BtsyUR&O~M zd%|ic>68*anmF_X-jiAp{5bXUO5&PNOaONMw<`*t8?q>z^>JK}Pg4E-u%77UG01y&KD>Pm+yDSIf$ARD3qlqs;1crLv3>AW%P8=wDPeT4k>SN|>|e^2-gbO) zwTM=Le1X8@)rsttvfHH+SwU}6ugtC$aTMto(FXyRrR?DhHM?edJ9sy6JMMkL_sKK! zzLH0WoSF`~8c{GdXk_kX{rs5@0`%U}bv#lsDIv>0djK&K=gz41lOrOU*bG_}CXS6V zF5_jWW)~;cr#K)N6VWK>qG9^}6Isj~7g3@zwRuIArZW==ptjL=%`fxISsZ?RYuWo` zYV+Xy&BtJQyguQSL>Yh3~$1RkZ4$osU8=?^FSjk@ z-?mY@17!}yr(1Cj?KSg5N(zG5gFHuDB{iq)KJ{S?4?znhWD!LKG zIrR+A)e6G5W;0`CUjkLRH6m;vuQEO9+h)t&tY?es{9Csg)kqflyvV?@-+V|K$l46_ z%-B=Y)TM7_e%GemB8vzY?tiAGuO>{BjjX(m22uSfUFZ{a9SNWiqi3Yf^DM^7pn%g@ zLz?El>+ibD^K(v-*6<-%jQkw!a#oRu4jR|=p>kU#@(5mTUN=h5>0@^@J0Src> zfZLw@_X#oOn zpxMV0_PDi2<`xTy8o4RSM+c{8ITJlVuQe_XgbROO7DLx)DZ=b*ZBfg+qB5Q9`$7P& zjF#R~CMKst6`40K^kgb2iEB1NG#4%(#NLxjvli~x6=q~mVeBilalsFUtr`N=nT)_Q z32F|FyK-_FptDkm&+aP_Z!daOa+H3WaMr8_T>v62AP+ie@99xMfq+?eEHx@WEK=e%Iss~Kz6~+-F*>oFF`flxsZAdQwkyDyQ()q7u)p<@85PY zY~is$s*v*>A5^kI?g*@aF2Y3p(IcYx`1t<8K?156v_Yi@=f!6MYN34hfq?-%gqR%V z$_UKylk>Av&?5ve?7>KZgg~x#u7;(R6<8d_p`XT^h0c(%;xq#3oU)4|P35*rzQ*mX zY0&JpN5Ellj3Bzf@q$!#`!;WTKh?#kPQF_NV?@YPvR_TOV1JI0a$cA;(QE&PD!2M_ zf(P1Y-H3liaRVP=D-M44P?T5w^a9E|w8G$L;2GSCpjZ~c{=Szla^vE=g^D*Xgwk)< zIS_Z3ZdQ5l2n9byeZ34rui5EbI)@KMHK0W@hGiw0`ecm64p6lLmy417lKua8cVUfb zT&ak!wq9Jp+d($}zU%n@GK75?P}3r>H{l3x){A8uz@UK%Ftj*TPsK@dv%cAbm>>b(uer#T*VBg8k zhWPH9DT@WKh0KesGy7e6KX85!F%ax{`2~3Nui(uZh!vUEYz)VllN$va_BY$#XEETO z!Lo;^rt{hykneBifEPjwX3qZ9;9Pip>m4ZxmX_N;i@O+#8zc`bKM?KE9G3-DC&&m% z9dBJZB$(ecNJqW%xE+7LNG)&blcWTx50VKlmx7F&C=Whk+-1q%SIl3s|LkMEAT7}o z-I$rTD0#)9wG(1k*RV``Y_>1*$`8;ep5Vk@@JJZ&P_36ew`Zu!YcN@v{ti)%1cz^|z zUV$JA5e|v_MEpGkWSq$75fWXt$ K&t;ucLK6T#vCH}Z literal 0 HcmV?d00001 diff --git a/swarm/_images/swarm.png b/swarm/_images/swarm.png new file mode 100644 index 0000000000000000000000000000000000000000..4af7b271acd29e9178dc63fd9d9dbd63df95a9d4 GIT binary patch literal 105359 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

whD>%_yul)Tp<0qAf&8E_$M~#~9 z*8J4a2$1w&(}H%dQ7Iq-e1ijUodD7g6f}mm%~nwR>iNnVf#`#vYRzUWjHG_y1rEk* z70u_lq@#+l(Pp}x#=o|lDqT1q*AhEF+0w_GHCDGC^yY6194)2AYxBAE6a;mxyA~(% zPtI(SUL|?$=|&p)ydpom{EPM^q&HqoXkzOU0Hd~8Gtn#yR$8Gc3DB`2$VRi#L&R(3h7k zR2EjV_bImzSM5g)oz!4ep$oaM_n0Ypc6ubx$&Irz!^`c}H7&b(P8*j2M2+Kp@)(h7 z6;>w%Akk-;Q1v%`ICA%EQkYm@uof`z-?x7_ZZ-mXu4)ce>T5qAsI<2MV_+W2tWU;> z@=83+Pk!t<`VPLbUFg#(A{VW!vCl2*mGYEHH1JkB=!;3F5O3dVKQzZVJ&jDiS&+(n zXP9y7muKec{^I)6!Qha;n-Uv|)_Y)sQ&@zQ{DhW$z97veFR33u|ooug#_XK24 zCHPc}llS0D1weA&Yb^yzAhVjBoX)g*YafEQrZ!%NoJQKWU#)c^#3Gbl7>c%)Ja#-t zg&r*$3Omk|#pgY~Q=clkbdzzta;ZDAwiDc)tTwGI=-;=Vt&YcUe*C@`nqFbsoMYeH zVWKrB6FB zPd2;9d3y^o;$=ab3f2^`z zAN$d7tv!#_ZMN*DSL3APA0x!7A3EFJj=>cTtlV_;K5V+0AvNGO@0!#kJn{J8_Kfzj z{*^-~M2>z;?&0*9G10K^3nA4Qb=c|;buD7)!){U`)wYmb0dN&tWV--mi8#dZl4oU%>=G~v5q4LQ7EUI#MdtU>#aZw8$EfE5|>tF-SXFsYY z8{8Ak^oCV%#UBQ?IK|KEnRXsy7B)opTa+FeuWyKz3@Ki_b@f>C-gVl5MEp+AXGlbZ zJbJzjqDXzxHN0LVBFanUX|Y<&!=>gEnCA3(IAX_bRuetDtBlVV@H2eeyu%bRJc{{z z&$l?Sg^gYCB^el$V>>YNgPbmbD32I^!eT#AJY8@996)y4N6-vF&LRxm?-?XuxDwMEX?@=>ja z8_5>wPKP1^*8q^z%$0yHCr(5XrGQXH366I6nD;cFfz?xf6pect`!kovdcR}YvV0H5 z&#E)i&C4o4lrTqFCChs2DJf(;9fVZcrb`D@NV5R5!(U)t5-q%9+bw1y96^sMZw=KK z!mpUyQBHeI6d!3@S2RgHCmGS8e;(p|=Y!p=T!X`;rMf=p>(4tN=hKIUic@Fys%T;B zGC33_Ak6l8;s>3&si`sUt%Pc3+BONKEs^nae8~VtEQ%(>@%pL~r|(F4`3TeB^Rd(b z2_xA@RFj_pEF7feMr-C4dL)tnk7pNOd@0kCp??Oz(~{Hyq6J!H1=?rp*!|ofN*#$F zeGD>RiAgy{_;6m(>W|lt^T8(t29?QH<~wo-cfEolC$9_hY0<+yC?Pp-z8*iu z+UnL>qRJX;qIZ;%z!ABu5*~7QlZw#+>c0+PygDI-rb$M}^kf(c*5H8&BmpW&lBU!+ z6qPag>&NT%*_g;cOL7nniYd$|GG-JaiG#hM7wZWm-+gv+N_}tw1`q&UUu4CdeM^2` z0&2yd)L%0hKPxB5uZOt$@Vg+~+>Re&E&sdRq0_jfn!YQ}p?{xK6ew^I*kd8~=E3VG=8IzT`vIXBOVwIHaGa@BG4kBBQSUe;^ zJE-PFl)&Qg=@6&42o;j7__Y#mKIqy-1|n$uox!9}8eJ!r0NgBnoEG0UTUccM`&VYG z2anMZYk7-?kx{$tLfsH&drST3mNh{yW03OOSs;2yb!moi|MD07BqQkJ z5os_#KOc%i)`fk_l1oes z%x$-IRwgn*2cv&^`>7CH)dE59#?lKBKm9>JX7L`upjep23{(?*fm}CtAB>dtDJ=oG zjU2d@szpPrJYsTs8kky|x$pJY9>_VkA1x1mQOQmIj3q<>2C(BC1gXCrgc^ZtdUbX6 zKUNs^Y+00!1Qtz>mSahkiS6N(FB(#-Pf$CxX=|h%vgj2MmdQIA{(c4qOF#zN9~fDM z)&W#Qu7LxenVJI9{DBl4G;qSe)nWoq{U9Q84m`X1+nNbgD15H26cDo>Q*KFlzki>$ z>S}Nj7~SY!*o75E#JPDNY^J+y70BHONdYQ2hzWUhaJa;=79d%vzXVTd6g0djd>%m1 zpRIbRfvd-19^pXCDL9%WlMyvgf=2Ko5R0J$f3P6q<%Ri*7#M@0WADOgJ|!r31uEi{wI>GotE!2tM}#4Wp3tNXGBk~+Hb3#s!aUpHAA2n!vg1I>Hb`9z3YIh z{}zoQgnlow5?SPTKRh~YyQP}oBi54n7XZq`4CsEprld|R>&1+^Un8y;g&ZCtxDIm{ z?D`w^w#Yyx$dFy){3MQ|xp@a{0cco&8?4u91e{HZ&9~g@x0g0q6Pqb?U6J z&Mf9s=`lbf!7A8NqrX(n)OVq z41TNNt7ovP#53o_y)Ce4Y>Ia9FJf_7{27Al{^?tq9cGd z)FT#;))>%7(U=h^-)okx#RvH2%c(`W60NDkrFA4*<{2#$xf0&6NsNC(?O#D()WQUH z;G;b>*POj+QtIMV(olx%t0*bZ2;u-K6*82+x{%BT7B~{`A>%dd9=OD)WcVODX zT}gdDNQ}{J-gK>hxfwY#@#Jd1k}gGI2Tn|mAd8v83}go5JB+!A0?nnCpKGB<2NmOE zO@4kY_w*8n0^xCv35<+U-$G}wL}88v%#9I7yJO&~9L5cE@Or6tN)N_EuFe7iL6dC) zr-iQ=UC&y_JeD19m>r2-}cmcS$5E61Fj@J{i$jBR1L!S&3Fjw~g9 z-atq?bqtRpf&`TjrqRco3*(7^I7?o(;21i3FQmA)-QH!SxZC>d?>^qR94y$?*E{ZP zGmbu1mTmjiFDS7*>8pTccpq=$9<~0yd=jAXAgdq_F~tcWR19>Y+<@s|RI*<_L5Ni? zw{D|$643lRDTkpB(w|tw=jw~g6C7V40rHcl{!6I0Zmf|<=ChBhwD zS&J5`O2!|$mkc?f?_IqCMm4qpz)Dp1le&1L-5uNggICa%G>H1uGsU{do`i`(!Af;; z9=CJixGw~JPv>T$h3~tNqxB1Quf6`3v<1t~)rEWDal^F|k7}^DaSD=c$jQ6HcwP+@ z%_MG}da&do7`%Z|S&rU5x_9FR^nNo~$XRjN5^TUX|v$b84YnlUt^=Tk%o$U2P2^BE=p;iF1jy<;vrX3yag|7IKHifvex{q(oVORG zN!o#NG0gtT;A+HqVVZqlgtbJs z@_1tlyZY>@;lqmXmH$K1-X*>%z_=O3YP9m`nKpD#9W~p``5=SX(rJL+1U>c=et18_ z#7fe3+m#`Fd7#^NY`+$Lk0@b)Zgy}XKT^1V-Xfu6qlGb7R!jCWTf!;Xs6XN8Q>`?) zr`uaEvalAFG|ZFlFB@I!7&_`23>V=l84V7O7@TcSu#$-76_tH07aMD_j@-L^6@g8! z(1n0)N#PP?(g#8DflTF3Mluz-SR6w%5DnWvT_M1_dqym3ZqCkxY@6Z8i6p-~ja!QsO7C6@Nf zn!e+6fvH_tRe=+n4Stv9JD5@-u-Oji2@VRXq7BT!$yE+)5}rHXj)n%q&wh{inh8~7 zc|{!rQtx}8Xx&|0qvHooxwOI$#IBsw6*6r|&XZ>!S$&)|W)!+bz^E zp*0OoI&>tOi(-cAqt3+;Q}}r5-8fP-1LzFOtztN`FBoEf<-AR)A?Yaur6Z|h4_@F+ zAQUBWWI5fQve*5*o7?QXUB~F{Y-@5n- zD6Ij1F?Nirk4qK-Fisk~6}TNN6fFpNoDXo+w?kKU8bf^N^~A3JRz(hC>LKTr^)rn0 z+uXfX4w@JZjX<;_`{wSX=PxS$)-w4#NPO_4j-4D3Z#v)9ok7P|)QTD1z&&=+Ph3#4 zT_7L?N^mKmhC((zYI6I5eJ?y^eDy9T59ez>x_TSf;UPaMAeRiO@oWL|7Fb1A)AOm2 z3Q8Q}hL%o1Pnnz-?le|Ai7tb#zOh7LE9f9T!59D`GW#1WgqiGC`+A18DCM+D`P_Bb z5IqPk-2^nWc;8Z@GjaG7tXr3J*jcH)S4lScO@75CBuoRh9h$BBJM7WGyErvpQ|#8K zW`Ftw+v#aUeVHc{$#T25-f#{tCoZv;$9-oqak*?$viQp7Kv+2MGrohemD9Hc1z8QI z$H@X28lr*J$|BijqjjUx<+FPAWBkM8e%*B?H|7)3!^pVU=h`0(v2xK*ICKI)D76O? zs)0Zp>2Z_g;H^1PW=k~EqJuQZu+@3E$=_dJQ&qGms3^B3TbOQbt}l~SJ1^icqG2j8 z7!8|U;q962ZI#t_PtAh*CElrYMoe7p|`@ZYA@o8u-HmnS#x%+kMY;_ z_4|W(l~3?3vuFW;kNx){tU4W1)YM``JZ!PVUpw#5SZo()Op@_MqDS z7MjzHoj=UE7K%z+M{Uc{D!N#y=GtgG6iZysDIBBTRZN|> z9hJbH*iUg_gX?}U%K3t(*lwXNJFOJRj7zf&53=SZz=SVZiy~)3OT2tL@qtNkIi-$Y zW-^Fgy^6VX0c<8z*YOta0l~k-aEfIZfKXeMUF|&gxEDg28N<^Kjap#oqntMji`Hc= ztLK;x*Wb-_eIhC(Vgmt>n#OsJib(+x+{k!WXq)5{X=YKiVD!c~!Ims9Qvvbmx1$;j zQ>>G`a+M z_v0eb&xO$~e?Ft|?vaB5wXO2$H zPfn#1^U*=z%0TXv*^n)%aN9ZL+V%9al>iNzA3A`u&qJDTKwQagPT%g|58+j0qelTj zlzdq7VGxEukO`Z*sW3GAn@Yn`1Z@Rw8m$Bb1#N)`A5DTk=jLnb=axm&eu$>2`T{Bp zzY7G{nWi9~uMP@ZT8zSZG4w)LK_M%2u2F{10iJdwAT$_(#9+J&7tdOY%xP&n?xFfP zX6m2CZ(dB>HnJmZ#4v=M;tQgDu_xNh4_^H!oBxmx{qaZ-ghE+z;{b*t4vR_ckIoq+e45 z1yopX!nQOLn3Kxo@CNJbp&vAW?8A9>-XbUu6|Q>%f6Lyu8}^^3(Y4RKAbX&N2CA)_W23+>&qI zl$0-?$JkH15cpmM(~CIqz~}&6%71P;6o(m2kp)A#S6?zcP?jtgE;LOX03OEXAyzl~ uzY*Q}I|3la>-;~v2yD;-yM8S0r~kA6WYdq4PmSHf00f?{elF{r5}E*Y1ySq( literal 0 HcmV?d00001 diff --git a/swarm/filter.md b/swarm/filter.md index e9a3eb736..ce84bcf9a 100644 --- a/swarm/filter.md +++ b/swarm/filter.md @@ -1,100 +1,108 @@ -## Swarm 过滤器 -swarm 的调度器(scheduler)在选择节点运行容器的时候支持几种过滤器 (filter):Constraint,Affinity,Port,Dependency,Health +## Swarm 中的过滤器 -可以在执行 `swarm manage` 命令的时候通过 `--filter` 选项来设置。 +Swarm 的调度器可以按照指定调度策略自动分配容器到节点。但有些时候希望能对这些分配加以干预。比如说,让 IO 敏感的容器分配到安装了 SSD 的节点上;让计算敏感的容器分配到 CPU 核数多的机器上;让网络敏感的容器分配到高带宽的机房;让某些容器尽量放同一个节点……。 -###Constraint Filter -constraint 是一个跟具体节点相关联的键值对,可以看做是每个节点的标签,这个标签可以在启动docker daemon的时候指定,比如 -```bash -sudo docker -d --label label_name=label01 -``` +这可以通过过滤器(filter)来实现,目前支持 `Constraint`、`Affinity`、`Port`、`Dependency`、`Health` 等五种过滤器。 -也可以写在docker的配置文件里面(在ubuntu上面是 `/etc/default/docker`)。 +### Constraint 过滤器 +Constraint 过滤器是绑定到节点的键值对,相当于给节点添加标签。 -在本次试验中,给083添加标签--label label_name=083,084添加标签--label label_name=084,124添加标签--label label_name=124, +可在启动 Docker 服务的时候指定,例如指定某个节点颜色为 `red`。 -以083为例,打开/etc/default/docker文件,修改DOCKER_OPTS: -```bash -DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock --label label_name=083" +```sh +$ sudo docker daemon --label color=red -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ``` -在使用docker run命令启动容器的时候使用 `-e constarint:key=value` 的形式,可以指定container运行的节点。 +同样的,可以写在 Docker 服务的配置文件里面(以 Ubuntu 14.04 为例,是 `/etc/default/docker`)。 -比如我们想在84上面启动一个 redis 容器。 -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name redis_1 -d -e constraint:label_name==084 redis -fee1b7b9dde13d64690344c1f1a4c3f5556835be46b41b969e4090a083a6382d +```sh +DOCKER_OPTS="--label color=red -H 0.0.0.0:2375 -H unix:///var/run/docker.sock" ``` -注意,是**两个**等号,不是一个等号,这一点会经常被忽略。 -接下来再在084这台机器上启动一个redis 容器。 -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name redis_2 -d -e constraint:label_name==084 redis 4968d617d9cd122fc2e17b3bad2f2c3b5812c0f6f51898024a96c4839fa000e1 -``` -然后再在083这台机器上启动另外一个 redis 容器。 -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name redis_3 -d -e constraint:label_name==083 redis 7786300b8d2232c2335ac6161c715de23f9179d30eb5c7e9c4f920a4f1d39570 -``` +使用 Swarm 启动容器的时候,采用 `-e constarint:key=value` 的形式,可以过滤选择出匹配条件的节点。 -现在来看下执行情况: -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -7786300b8d22 redis:latest "/entrypoint.sh redi 15 minutes ago Up 53 seconds 6379/tcp 083/redis_3 -4968d617d9cd redis:latest "/entrypoint.sh redi 16 minutes ago Up 2 minutes 6379/tcp 084/redis_2 -fee1b7b9dde1 redis:latest "/entrypoint.sh redi 19 minutes ago Up 5 minutes 6379/tcp 084/redis_1 -``` +例如,我们将 `192.168.0.2` 节点打上红色标签,`192.168.0.3` 节点打上绿色标签。 -可以看到,执行结果跟预期的一样。 +然后,分别启动两个容器,指定使用过滤器分别为红色和绿色。 -但是如果指定一个不存在的标签的话来运行容器会报错。 -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name redis_0 -d -e constraint:label_name==0 redis -FATA[0000] Error response from daemon: unable to find a node that satisfies label_name==0 +```sh +$ docker -H 192.168.0.2:12375 run -d -e constraint:color==red ubuntu:14.04 ping 127.0.0.1 +252ffb48e64e9858c72241f5eedf6a3e4571b1ad926faf091db3e26672370f64 +$ docker -H 192.168.0.2:12375 run -d -e constraint:color==green ubuntu:14.04 ping 127.0.0.1 +3d6f8d7af8583416b17061d038545240c9e5c3be7067935d3ef2fbddce4b8136 ``` -###Affinity Filter -通过使用 Affinity Filter,可以让一个容器紧挨着另一个容器启动,也就是说让两个容器在同一个节点上面启动。 +*注:指定标签中间是两个等号* -现在其中一台机器上面启动一个 redis 容器。 -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 run -d --name redis redis -ea13eddf667992c5d8296557d3c282dd8484bd262c81e2b5af061cdd6c82158d -rio@085:~$ sudo docker -H 192.168.1.83:2376 ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -ea13eddf6679 redis:latest /entrypoint.sh redis 24 minutes ago Up Less than a second 6379/tcp 083/redis -``` +查看它们将被分配到指定节点上。 -然后再次启动两个 redis 容器。 -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 run -d --name redis_1 -e affinity:container==redis redis -bac50c2e955211047a745008fd1086eaa16d7ae4f33c192f50412e8dcd0a14cd -rio@085:~$ sudo docker -H 192.168.1.83:2376 run -d --name redis_1 -e affinity:container==redis redis -bac50c2e955211047a745008fd1086eaa16d7ae4f33c192f50412e8dcd0a14cd +```sh +$ docker -H 192.168.0.2:12375 ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +252ffb48e64e ubuntu:14.04 "ping 127.0.0.1" 1 minutes ago Up 1 minutes Host-2/sick_galileo +3d6f8d7af858 ubuntu:14.04 "ping 127.0.0.1" 2 minutes ago Up 2 minutes Host-3/compassionate_ritchie ``` -现在来查看下运行结果,可以看到三个容器都是在一台机器上运行 -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -449ed25ad239 redis:latest /entrypoint.sh redis 24 minutes ago Up Less than a second 6379/tcp 083/redis_2 -bac50c2e9552 redis:latest /entrypoint.sh redis 25 minutes ago Up 10 seconds 6379/tcp 083/redis_1 -ea13eddf6679 redis:latest /entrypoint.sh redis 28 minutes ago Up 3 minutes 6379/tcp 083/redis + +另外,Docker 内置了一些常见的过滤器,包括 `node`、`storagedriver`、`executiondriver`、`kernelversion`、`operatingsystem` 等。这些值可以通过 `docker info` 命令查看。 + +例如,目前集群中各个节点的信息为: + +```sh +$ docker -H 192.168.0.2:12375 info +Containers: 5 +Images: 39 +Role: primary +Strategy: spread +Filters: health, port, dependency, affinity, constraint +Nodes: 2 + Host-2: 192.168.0.2:2375 + └ Containers: 4 + └ Reserved CPUs: 0 / 4 + └ Reserved Memory: 1 GiB / 4.053 GiB + └ Labels: color=red, executiondriver=native-0.2, kernelversion=3.16.0-43-generic, operatingsystem=Ubuntu 14.04.3 LTS, storagedriver=aufs + Host-3: 192.168.0.3:2375 + └ Containers: 1 + └ Reserved CPUs: 0 / 8 + └ Reserved Memory: 0 B / 16.46 GiB + └ Labels: color=green, executiondriver=native-0.2, kernelversion=3.16.0-30-generic, operatingsystem=Ubuntu 14.04.3 LTS, storagedriver=aufs +CPUs: 12 +Total Memory: 20.51 GiB +Name: 946d65606f7c ``` -通过 `-e affinity:image=image_name` 命令可以指定只有已经下载了`image_name`镜像的机器才运行容器 -```bash -sudo docker –H 192.168.1.83:2376 run –name redis1 –d –e affinity:image==redis redis + +### Affinity 过滤器 +Affinity 过滤器允许用户在启动一个容器的时候,让它分配到某个已有容器的节点上。 + +例如,下面我们将启动一个 nginx 容器,让它分配到已经运行某个 ubuntu 容器的节点上。 + +在 Constraint 过滤器的示例中,我们分别启动了两个 ubuntu 容器 `sick_galileo` 和 `compassionate_ritchie`,分别在 Host-2 和 Host-3 上。 + +现在启动一个 nginx 容器,让它跟容器 `sick_galileo` 放在一起,都放到 Host-2 节点上。可以通过 `-e affinity:container==` 参数来实现。 + +```sh +$ docker -H 192.168.0.2:12375 run -d -e affinity:container==sick_galileo nginx ``` -redis1 这个容器只会在已经下载了 redis 镜像的节点上运行。 -```bash -sudo docker -H 192.168.1.83:2376 run -d --name redis -e affinity:image==~redis redis +然后启动一个 redis 容器,让它跟容器 `compassionate_ritchie` 放在一起,都放到 Host-3 节点上。 + +```sh +$ docker -H 192.168.0.2:12375 run -d -e affinity:container==compassionate_ritchie redis ``` -这条命令达到的效果是:在有 redis 镜像的节点上面启动一个名字叫做 redis 的容器,如果每个节点上面都没有 redis 容器,就按照默认的策略启动 redis 容器。 -###Port Filter -Port 也会被认为是一个唯一的资源 -```bash -sudo docker -H 192.168.1.83:2376 run -d -p 80:80 nginx +查看所有容器运行情况。 + +```sh +$ docker -H 192.168.0.2:12375 ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +0a32f15aa8ee redis "/entrypoint.sh redis" 2 seconds ago Up 1 seconds 6379/tcp Host-3/awesome_darwin +d2b9a53e67d5 nginx "nginx -g 'daemon off" 29 seconds ago Up 28 seconds 80/tcp, 443/tcp Host-2/fervent_wilson +252ffb48e64e ubuntu:14.04 "ping 127.0.0.1" 2 minutes ago Up 2 minutes Host-2/sick_galileo +3d6f8d7af858 ubuntu:14.04 "ping 127.0.0.1" 3 minutes ago Up 3 minutes Host-3/compassionate_ritchie ``` -执行完这条命令,之后任何使用 80 端口的容器都是启动失败。 +### 其它过滤器 +其它过滤器的使用方法也是大同小异,例如通过 `-e affinity:image==` 来选择拥有指定镜像的节点;通过 `-e affinity:label_name==value` 来选择拥有指定标签的容器所允许的节点。 + +此外,当容器端口需要映射到宿主机指定端口号的时候,Swarm 也会自动分配容器到指定宿主机端口可用的节点。 + +当不同容器之间存在数据卷或链接依赖的时候,Swarm 会分配这些容器到同一个节点上。 diff --git a/swarm/install.md b/swarm/install.md index fa9c15966..cfc26d101 100644 --- a/swarm/install.md +++ b/swarm/install.md @@ -1,9 +1,81 @@ -## 安装 -安装swarm的最简单的方式是使用Docker官方的swarm镜像 -> $ sudo docker pull swarm - -可以使用下面的命令来查看swarm是否成功安装。 - > $ sudo docker run --rm swarm -v - - 输出下面的形式则表示成功安装(具体输出根据swarm的版本变化) -> swarm version 0.2.0 (48fd993) +## 安装 Swarm +Swarm 安装有几种方式,可以基于 Docker Machine 来进行安装,也可以手动配置。为了能更容易理解 Swarm 的组件和更灵活的进行管理,推荐使用手动配置方式。 + +对于 Docker 1.12+ 版本,Swarm 相关命令已经原生嵌入到了 Docker engine 的支持,对于较低版本的 Docker,需要额外进行配置。 + +### 下载镜像 +Docker 官方已经提供了 Swarm 镜像使用,需要在所有被 Swarm 管理的 Docker 主机上下载该镜像。 + +```sh +$ docker pull swarm +``` + +可以使用下面的命令来查看 Swarm 版本,验证是否成功下载 Swarm 镜像。 + +```sh +$ docker run --rm swarm -v +swarm version 1.2.2 (34e3da3) +``` + +### 配置节点 +Docker 主机在加入 Swarm 集群前,需要进行一些简单配置,添加 Docker daemon 的网络监听。 + +例如,在启动 Docker daemon 的时候通过 `-H` 参数: + +```sh +$ sudo docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock +``` + +*注:Docker 1.8.0 版本之前不支持 daemon 命令,可以用 -d 代替。* + +如果是通过服务方式启动,则需要修改服务的配置文件。 + +以 Ubuntu 14.04 为例,配置文件为 `/etc/default/docker`(其他版本的 Linux 上略有不同)。 + +在文件的最后添加: + +```sh +DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock" +``` + +### 启动集群 +Docker 集群管理需要使用服务发现(Service Discover)功能,Swarm 支持以下的几种方式:DockerHub、本地文件、etcd、consel、zookeeper 和手动指定节点 IP 地址信息等。 + +除了手动指定外,这些方法原理上都是通过维护一套数据库机制,来管理集群中注册节点的 Docker daemon 的访问信息。 + +本地配置集群推荐使用 consel 作为服务发现后端。利用社区提供的 Docker 镜像,整个过程只需要三步即可完成。 + +#### 启动 Consel 服务后端 +启动 consel 服务容器,映射到主机的 8500 端口。 + +```sh +$ docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap +``` + +获取到本地主机的地址作为 consul 的服务地址:`:8500`。 + +#### 启动管理节点 +首先,启动一个主管理节点,映射到主机的 4000 端口,并获取所在主机地址为 ``。其中 4000 端口是 Swarm 管理器的默认监听端口,用户也可以指定映射为其它端口。 + +```sh +$ docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise :4000 consul://:8500 +``` + +为了提高高可用性,用户也可以启动从管理节点。假定获取所在主机地址为 ``。 + +```sh +$ docker run -d swarm manage -H :4000 --replication --advertise :4000 consul://:8500 +``` + +#### 启动工作节点 +需要在每个工作节点上启动 agent 服务。 + +获取节点的主机地址为 ``,并指定前面获取到的 consel 服务地址。 + +```sh +$ docker run -d swarm join --advertise=:2375 consul://:8500 +``` + +节点启动后,用户可以指定 Docker 服务地址为 `:4000>` 来测试各种 Docker 命令,可以看到整个 Swarm 集群就像一个虚拟的 Docker 主机一样正常工作。 + +由于 Swarm 实际上是通过 agent 调用了本地的 Docker daemon 来运行容器,当 Swarm 集群服务出现故障时,无法接受新的请求,但已经运行起来的容器将不会受到影响。 diff --git a/swarm/intro.md b/swarm/intro.md index cdde327c0..dbe7807ba 100644 --- a/swarm/intro.md +++ b/swarm/intro.md @@ -1,16 +1,16 @@ -## 简介 -Docker Swarm 是 Docker公司官方在 2014 年 12月初发布的一套管理 Docker 集群的工具。它将一群 Docker 宿主机变成一个单一的,虚拟的主机。 +## Swarm 简介 +![Docker Swarm](_images/docker_swarm.png) -Swarm 使用标准的 Docker API 接口作为其前端访问入口,换言之,各种形式的 Docker 工具比如 Dokku,Compose,Krane,Deis,docker-py,Docker 本身等都可以很容易的与 Swarm 进行集成。 +Docker Swarm 是 Docker 公司推出的官方容器集群平台,基于 Go 语言实现,代码开源在 [https://github.com/docker/swarm](https://github.com/docker/swarm)。目前,包括 Rackspace 等平台都采用了 Swarm,用户也很容易在 AWS 等公有云平台使用 Swarm。 -![Swarm 结构图](../_images/swarm.png) +Swarm 的前身是 Beam 项目和 libswarm 项目,首个正式版本(Swarm V1)在 2014 年 12 月初发布。为了提高可扩展性,2016 年 2 月对架构进行重新设计,推出了 V2 版本,支持超过 1K 个节点。最新的 Docker Engine 已经集成了 SwarmKit,加强了对 Swarm 的协作支持。 -在使用 Swarm 管理docker 集群时,会有一个 swarm manager 以及若干的 swarm node,swarm manager上运行 swarm daemon,用户只需要跟 swarm manager 通信,然后 swarm manager 再根据discovery service的信息选择一个swarm node 来运行container。 +作为容器集群管理器,Swarm 最大的优势之一就是 100% 支持标准的 Docker API。各种基于标准 API 的工具比如 Compose、docker-py、各种管理软件,甚至 Docker 本身等都可以很容易的与 Swarm 进行集成。这大大方便了用户将原先基于单节点的系统移植到 Swarm 上。同时 Swarm 内置了对 Docker 网络插件的支持,用户可以很容易地部署跨主机的容器集群服务。 -值得注意的是 swarm daemon 只是一个任务调度器(scheduler)和路由器(router),它本身不运行容器,它只接受 Docker client 发送过来的请求,调度合适的 swarm node 来运行 container。这意味着,即使 swarm daemon 由于某些原因挂掉了,已经运行起来的容器也不会有任何影响。 +![Swarm 基本结构图](_images/swarm.png) +上图是来自官方的 V1 结构图。可以看出,Swarm 是典型的 master-slave 结构,通过发现服务来选举 manager。manager 是中心管理节点,各个 node 上运行 agent 接受 manager 的统一管理。 -有以下两点需要注意: +在 V2 中,集群中会自动通过 Raft 协议分布式选举出 manager 节点,无需额外的发现服务支持,避免了单点瓶颈。同时,V2 中内置了基于 DNS 的负载均衡和对外部负载均衡机制的集成支持。 -* 集群中的每台节点上面的 Docker 的版本都不能小于1.4 -* 为了让 swarm manager 能够跟每台 swarm node 进行通信,集群中的每台节点的 Docker daemon 都必须监听同一个网络接口。 +目前,Swarm V1 支持 Docker 版本为 1.6.0+,V2 支持 Docker 版本为 1.12.0+。本章将以 Swarm V1 为主进行介绍,并结合 V2 的部分最新特性。 diff --git a/swarm/scheduling.md b/swarm/scheduling.md index ad675bfdc..83be86308 100644 --- a/swarm/scheduling.md +++ b/swarm/scheduling.md @@ -1,73 +1,73 @@ -## swarm 调度策略 -swarm支持多种调度策略来选择节点。每次在swarm启动container的时候,swarm会根据选择的调度策略来选择节点运行container。目前支持的有:spread,binpack和random。 +## Swarm 中的调度器 +调度是集群十分重要的功能,Swarm 目前支持三种调度策略:`spread`、`binpack` 和 `random`。 -在执行`swarm manage`命令启动 swarm 集群的时候可以通过 `--strategy` 参数来指定,默认的是spread。 +在执行`swarm manage`命令启动管理服务的时候,可以通过 `--strategy` 参数指定调度策略,默认的是 `spread`。 -spread和binpack策略会根据每台节点的可用CPU,内存以及正在运行的containers的数量来给各个节点分级,而random策略,顾名思义,他不会做任何的计算,只是单纯的随机选择一个节点来启动container。这种策略一般只做调试用。 +简单来说,这三种调度策略的优化目标如下: -使用spread策略,swarm会选择一个正在运行的container的数量最少的那个节点来运行container。这种情况会导致启动的container会尽可能的分布在不同的机器上运行,这样的好处就是如果有节点坏掉的时候不会损失太多的container。 +* `spread`:如果节点配置相同,选择一个正在运行的容器数量最少的那个节点,即尽量平摊容器到各个节点; +* `binpack`:跟 `spread` 相反,尽可能的把所有的容器放在一台节点上面运行,即尽量少用节点,避免容器碎片化。 +* `random`:直接随机分配,不考虑集群中节点的状态,方便进行测试使用。 -binpack 则相反,这种情况下,swarm会尽可能的把所有的容器放在一台节点上面运行。这种策略会避免容器碎片化,因为他会把未使用的机器分配给更大的容器,带来的好处就是swarm会使用最少的节点运行最多的容器。 +### spread 调度策略 +仍然以之前创建好的集群为例,来演示下 spread 策略的行为。 -### spread 策略 -先来演示下 spread 策略的情况。 -```bash -rio@083:~$ sudo docker run -d -p 2376:2375 -v $(pwd)/cluster:/tmp/cluster swarm manage --strategy=spread file:///tmp/cluster -7609ac2e463f435c271d17887b7d1db223a5d696bf3f47f86925c781c000cb60 -ats@sclu083:~$ sudo docker ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -7609ac2e463f swarm:latest "/swarm manage --str 6 seconds ago Up 5 seconds 0.0.0.0:2376->2375/tcp focused_babbage -``` -三台机器除了83运行了 Swarm之外,其他的都没有运行任何一个容器,现在在85这台节点上面在swarm集群上启动一个容器 -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name node-1 -d -P redis -2553799f1372b432e9b3311b73e327915d996b6b095a30de3c91a47ff06ce981 -rio@085:~$ sudo docker -H 192.168.1.83:2376 ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -2553799f1372 redis:latest /entrypoint.sh redis 24 minutes ago Up Less than a second 192.168.1.84:32770->6379/tcp 084/node-1 +在 `192.168.0.2` 节点启动管理服务,管理 token://946d65606f7c2f49766e4dddac5b4365 的集群。 + +```sh +$ docker run -d -p 12375:2375 swarm manage --strategy "spread" token://946d65606f7c2f49766e4dddac5b4365 +c6f25e6e6abbe45c8bcf75ac674f2b64d5f31a5c6070d64ba954a0309b197930 ``` -启动一个 redis 容器,查看结果 -```bash - -rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name node-2 -d -P redis -7965a17fb943dc6404e2c14fb8585967e114addca068f233fcaf60c13bcf2190 -rio@085:~$ sudo docker -H 192.168.1.83:2376 ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -7965a17fb943 redis:latest /entrypoint.sh redis Less than a second ago Up 1 seconds 192.168.1.124:49154->6379/tcp 124/node-2 -2553799f1372 redis:latest /entrypoint.sh redis 29 minutes ago Up 4 minutes 192.168.1.84:32770->6379/tcp 084/node-1 + +列出集群中节点。 + +```sh +$ docker run --rm swarm list token://946d65606f7c2f49766e4dddac5b4365 +192.168.0.3:2375 +192.168.0.2:2375 ``` -再次启动一个 redis 容器,查看结果 -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name node-3 -d -P redis -65e1ed758b53fbf441433a6cb47d288c51235257cf1bf92e04a63a8079e76bee -rio@085:~$ sudo docker -H 192.168.1.83:2376 ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -7965a17fb943 redis:latest /entrypoint.sh redis Less than a second ago Up 4 minutes 192.168.1.227:49154->6379/tcp 124/node-2 -65e1ed758b53 redis:latest /entrypoint.sh redis 25 minutes ago Up 17 seconds 192.168.1.83:32770->6379/tcp 083/node-3 -2553799f1372 redis:latest /entrypoint.sh redis 33 minutes ago Up 8 minutes 192.168.1.84:32770->6379/tcp 084/node-1 + +此时,两个节点上除了 swarm 外都没有运行其它容器。 + +启动一个 ubuntu 容器。 + +```sh +$ docker -H 192.168.0.2:12375 run -d ubuntu:14.04 ping 127.0.0.1 +bac3dfda5306181140fc959969d738549d607bc598390f57bdd432d86f16f069 ``` -可以看到三个容器都是分布在不同的节点上面的。 -### binpack 策略 -现在来看看binpack策略下的情况。在083上面执行命令: -```bash -rio@083:~$ sudo docker run -d -p 2376:2375 -v $(pwd)/cluster:/tmp/cluster swarm manage --strategy=binpack file:///tmp/cluster -f1c9affd5a0567870a45a8eae57fec7c78f3825f3a53fd324157011aa0111ac5 +查看发现它实际上被调度到了 `192.168.0.3` 节点(当节点配置相同时候,初始节点随机选择)。 + +再次启动一个 ubuntu 容器。 + +```sh +$ docker -H 192.168.0.2:12375 run -d ubuntu:14.04 ping 127.0.0.1 +8247067ba3a31e0cb692a8373405f95920a10389ce3c2a07091408281695281c ``` -现在在集群中启动三个 redis 容器,查看分布情况: -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name node-1 -d -P redis -18ceefa5e86f06025cf7c15919fa64a417a9d865c27d97a0ab4c7315118e348c -rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name node-2 -d -P redis -7e778bde1a99c5cbe4701e06935157a6572fb8093fe21517845f5296c1a91bb2 -rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name node-3 -d -P redis -2195086965a783f0c2b2f8af65083c770f8bd454d98b7a94d0f670e73eea05f8 -rio@085:~$ sudo docker -H 192.168.1.83:2376 ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -2195086965a7 redis:latest /entrypoint.sh redis 24 minutes ago Up Less than a second 192.168.1.83:32773->6379/tcp 083/node-3 -7e778bde1a99 redis:latest /entrypoint.sh redis 24 minutes ago Up Less than a second 192.168.1.83:32772->6379/tcp 083/node-2 -18ceefa5e86f redis:latest /entrypoint.sh redis 25 minutes ago Up 22 seconds 192.168.1.83:32771->6379/tcp 083/node-1 +查看它的位置,发现被调度到了另外一个节点:`192.168.0.2` 节点。 + +```sh +$ docker -H 192.168.0.2:12375 ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +8247067ba3a3 ubuntu:14.04 "ping 127.0.0.1" 1 minutes ago Up 1 minutes Host-2/sick_galileo +bac3dfda5306 ubuntu:14.04 "ping 127.0.0.1" 2 minutes ago Up 2 minutes Host-3/compassionate_ritchie ``` -可以看到,所有的容器都是分布在同一个节点上运行的。 \ No newline at end of file +当节点配置不同的时候,`spread`会更愿意分配到配置较高的节点上。 + +### binpack 调度策略 +现在来看看 `binpack` 策略下的情况。 + +直接启动若干 ubuntu 容器,并查看它们的位置。 + +```sh +$ docker -H 192.168.0.2:12375 run -d ubuntu:14.04 ping 127.0.0.1 +$ docker -H 192.168.0.2:12375 ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +4c4f45eba866 ubuntu:14.04 "ping 127.0.0.1" 3 minutes ago Up 3 minutes Host-3/hopeful_brown +5e650541233c ubuntu:14.04 "ping 127.0.0.1" 3 minutes ago Up 3 minutes Host-3/pensive_wright +99c5a092530a ubuntu:14.04 "ping 127.0.0.1" 3 minutes ago Up 3 minutes Host-3/naughty_engelbart +4ab392c26eb2 ubuntu:14.04 "ping 127.0.0.1" 3 minutes ago Up 3 minutes Host-3/thirsty_mclean +``` +可以看到,所有的容器都是分布在同一个节点(`192.168.0.3`)上运行的。 \ No newline at end of file diff --git a/swarm/servicebackend.md b/swarm/servicebackend.md new file mode 100644 index 000000000..f9042c0c3 --- /dev/null +++ b/swarm/servicebackend.md @@ -0,0 +1,97 @@ +## 使用其它服务发现后端 + +Swarm 目前可以支持多种服务发现后端,这些后端功能上都是一致的,即维护属于某个集群的节点的信息。不同方案并无优劣之分,在实际使用时候,可以结合自身需求和环境限制进行选择,甚至自己定制其它方案。 + +使用中可以通过不同的路径来选择特定的服务发现后端机制。 + +* `token://`:使用 DockerHub 提供的服务,适用于可以访问公网情况; +* `file://path/to/file`:使用本地文件,需要手动管理; +* `consul:///`:使用 consul 服务,私有环境推荐; +* `etcd://,/`:使用 etcd 服务,私有环境推荐; +* `zk://,/`:使用 zookeeper 服务,私有环境推荐; +* `[nodes://],`:手动指定集群中节点的地址,方便进行服务测试。 + +### 使用文件 + +使用本地文件的方式十分简单,就是讲所有属于某个集群的节点的 Docker daemon 信息写入一个文件中,然后让 manager 从这个文件中直接读取相关信息。 + +首先,在 Swarm 管理节点(`192.168.0.2`)上新建一个文件,把要加入集群的机器的 Docker daemon 信息写入文件: + +```sh +$ tee /tmp/cluster_info <<-'EOF' +192.168.0.2:2375 +192.168.0.3:2375 +EOF +``` + +然后,本地执行 `swarm manage` 命令,并指定服务发现机制为本地文件,注意因为是容器方式运行 manager,需要将本地文件挂载到容器内。 + +```sh +$ docker run -d -p 12375:2375 -v /tmp/cluster_info:/tmp/cluster_info swarm manage file:///tmp/cluster_info +``` + +接下来就可以通过使用 Swarm 服务来进行管理了,例如使用 info 查看所有节点的信息。 + +```sh +$ docker -H 192.168.0.2:12375 info +Containers: 18 +Images: 36 +Role: primary +Strategy: spread +Filters: health, port, dependency, affinity, constraint +Nodes: 2 + Host-1: 192.168.0.2:2375 + └ Containers: 15 + └ Reserved CPUs: 0 / 4 + └ Reserved Memory: 1 GiB / 4.053 GiB + └ Labels: executiondriver=native-0.2, kernelversion=3.16.0-43-generic, operatingsystem=Ubuntu 14.04.3 LTS, storagedriver=aufs + Host-2: 192.168.0.3:2375 + └ Containers: 3 + └ Reserved CPUs: 0 / 8 + └ Reserved Memory: 0 B / 16.46 GiB + └ Labels: executiondriver=native-0.2, kernelversion=3.16.0-30-generic, operatingsystem=Ubuntu 14.04.3 LTS, storagedriver=aufs +CPUs: 12 +Total Memory: 20.51 GiB +Name: e71eb5f1d48b +``` + +### 其它发现服务后端 +其它服务发现后端的使用方法,也是大同小异,不同之处在于使用 Swarm 命令时指定的路径格式不同。 + +例如,对于前面介绍的 consul 服务后端来说。 + +快速部署一个 consul 服务的命令为: + +```sh +$ docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap +``` + +之后创建 Swarm 的管理服务,指定使用 consul 服务,管理端口监听在本地的 4000 端口。 + +```sh +$ docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise :4000 consul://:8500 +``` + +Swarm 节点注册时候命令格式类似于: + +```sh +$ swarm join --advertise= consul:/// +``` + +对于 etcd 服务后端来说,节点注册时候命令格式类似于: + +```sh +$ swarm join --addr= etcd://,/ +``` +启动管理服务时候,格式类似于: + +```sh +$ swarm manage -H tcp://:4000 etcd://,/ +``` + +### 地址和端口的范围匹配 +对于基于文件,以及手动指定节点信息两种服务发现后端机制来说,其中地址和端口域可以支持指定一个范围,以一次性指定多个地址。 +例如: + +* `192.168.0.[2:10]:2375` 代表 `192.168.0.2:2375` -- `192.168.0.10:2375` 一共 9 个地址; +* `192.168.0.2:[2:9]375` 代表 `192.168.0.2:2375` -- `192.168.0.2:9375` 一共 8 个地址。 \ No newline at end of file diff --git a/swarm/summary.md b/swarm/summary.md new file mode 100644 index 000000000..12709a745 --- /dev/null +++ b/swarm/summary.md @@ -0,0 +1,10 @@ +## 本章小结 +本章笔者介绍了 Docker Swarm 的安装、使用和主要功能。 + +通过使用 Swarm,用户可以将若干 Docker 主机节点组成的集群当作一个大的虚拟 Docker 主机使用。并且,原先基于单机的 Docker 应用,可以无缝的迁移到 Swarm 上来。 + +实现这些功能的前提是服务自动发现能力。在现代分布式系统中,服务的自动发现、注册、更新等能力将成为系统的基本保障和重要基础。 + +在生产环境中,Swarm 的管理节点和发现服务后端要采用高可用性上的保护,可以采用集群模式。 + +值得一提的是,Swarm V2 功能已经被无缝嵌入到了 Docker 1.12+ 版本中,用户今后可以直接使用 Docker 命令来完成相关功能的配置,这将使得集群功能的管理更加简便。 \ No newline at end of file diff --git a/swarm/usage.md b/swarm/usage.md index ab6eb1c08..6f40fb3a3 100644 --- a/swarm/usage.md +++ b/swarm/usage.md @@ -1,170 +1,181 @@ -## 使用 -在使用 swarm 管理集群前,需要把集群中所有的节点的 docker daemon 的监听方式更改为 `0.0.0.0:2375`。 +## 使用 Swarm +前面演示了基于 consel 服务发现后端来配置一个本地 Swarm 集群。其中,consel 也可以被替换为 etcd、zookeeper 等。 -可以有两种方式达到这个目的,第一种是在启动docker daemon的时候指定 -```bash -sudo docker -H 0.0.0.0:2375& -``` +另外一个更方便的方式是直接使用 DockerHub 提供的免费服务发现后端。 + +下面使用这种方式来演示 Swarm 的主要操作,包括: + +* create:创建一个集群; +* list:列出集群中的节点; +* manage:管理一个集群; +* join:让节点加入到某个集群。 + +注意,使用 DockerHub 的服务发现后端,需要各个节点能通过公网访问到 DockerHub 的服务接口。 + +### 创建集群 id -第二种方式是直接修改 Docker 的配置文件(Ubuntu 上是 `/etc/default/docker`,其他版本的 Linux 上略有不同) +在任意一台安装了 Swarm 的机器上执行 `swarm create` 命令来在 DockerHub 服务上进行注册。 -在文件的最后添加下面这句代码: -```bash -DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock" +Swarm 会通过服务发现后端(此处为 DockerHub 提供)来获取一个唯一的由数字和字母组成的 token,用来标识要管理的集群。 + +```sh +$ docker run --rm swarm create +946d65606f7c2f49766e4dddac5b4365 ``` +注意返回的字符串,这是集群的唯一 id,加入集群的各个节点将需要这个信息。 + +### 配置集群节点 + +在所有要加入集群的普通节点上面执行 `swarm join` 命令,表示把这台机器加入指定集群当中。 + +例如某台机器 IP 地址为 `192.168.0.2`,将其加入我们刚创建的 `946d65606f7c2f49766e4dddac5b4365` 集群,则可以通过: -需要注意的是,一定要在所有希望被 Swarm 管理的节点上进行的。修改之后要重启 Docker -```bash -sudo service docker restart +```sh +$ docker run --rm swarm join --addr=192.168.0.2:2375 token://946d65606f7c2f49766e4dddac5b4365 +time="2015-12-09T08:59:43Z" level=info msg="Registering on the discovery service every 20s..." addr="192.168.0.2:2375" discovery="token://946d65606f7c2f49766e4dddac5b4365" +... ``` -Docker 集群管理需要使用服务发现(Discovery service backend)功能,Swarm支持以下的几种方式:DockerHub 提供的服务发现功能,本地的文件,etcd,consul,zookeeper 和 IP 列表,本文会详细讲解前两种方式,其他的用法都是大同小异的。 +*注:其中 `--addr` 指定的 IP 地址信息将被发送给服务发现后端,用以区分集群不同的节点。manager 服务必须要通过这个地址可以访问到该节点。* -先说一下本次试验的环境,本次试验包括三台机器,IP地址分别为192.168.1.84,192.168.1.83和192.168.1.124.利用这三台机器组成一个docker集群,其中83这台机器同时充当swarm manager节点。 +通过控制台可以看到,上述命令执行后,默认每隔 20 秒(可以通过 `--heartbeat` 选项指定),会输出一条心跳信息。对于发现服务后端来说,默认如果超过 60 秒(可以通过 `--ttl` 选项指定)没有收到心跳信息,则将节点从列表中删除。 -### 使用 DockerHub 提供的服务发现功能 +如果不希望看到输出日志信息,则可以用 `-d` 选项替换 `--rm` 选项,让服务后台执行。 -#### 创建集群 token +执行 `swarm join` 命令实际上是通过 agent 把自己的信息注册到发现服务上,因此,此时对于后端的发现服务来说,已经可以看到有若干节点注册上来了。那么,如何管理和使用这些节点呢,这就得需要 Swarm 的 manager 服务了。 -在上面三台机器中的任何一台机器上面执行 `swarm create` 命令来获取一个集群标志。这条命令执行完毕后,Swarm 会前往 DockerHub 上内置的发现服务中获取一个全球唯一的 token,用来标识要管理的集群。 -```bash -sudo docker run --rm swarm create + +### 配置管理节点 +配置管理节点需要通过 `swarm manage` 命令,该命令将启动 manager 服务,默认监听到 `2375` 端口,所有对集群的管理可以通过该服务接口进行。 + +读者可能注意到,manager 服务默认监听的端口跟 Docker 服务监听端口是一样的,这是为了兼容其它基于 Docker 的服务,可以无缝地切换到 Swarm 平台上来。 + +仍然在节点 `192.168.0.2` 进行操作。由于我们是采用 Docker 容器形式启动 manager 服务,本地的 `2375` 端口已经被 Docker Daemon 占用。我们将 manager 服务监听端口映射到本地一个空闲的 `12375` 端口。 + +```sh +$ docker run -d -p 12375:2375 swarm manage token://946d65606f7c2f49766e4dddac5b4365 +1e1ca8c4117b6b7271efc693f9685b4e907d8dc95324350392b21e94b3cffd18 ``` -我们在84这台机器上执行这条命令,输出如下: -```bash -rio@084:~$ sudo docker run --rm swarm create -b7625e5a7a2dc7f8c4faacf2b510078e +可以通过 `docker ps` 命令来查看启动的 swarm manager 服务容器。 + +```sh +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +1e1ca8c4117b swarm "/swarm manage token:" 11 seconds ago Up 10 seconds 0.0.0.0:12375->2375/tcp jovial_rosalind ``` -可以看到我们返回的 token 是 `b7625e5a7a2dc7f8c4faacf2b510078e`,每次返回的结果都是不一样的。这个 token 一定要记住,后面的操作都会用到这个 token。 +命令如果执行成功会返回刚启动的 Swarm 容器的 ID,此时一个简单的 Swarm 集群就已经搭建起来了,包括一个普通节点和一个管理节点。 -#### 加入集群 +### 查看集群节点列表 -在所有要加入集群的节点上面执行 `swarm join` 命令,表示要把这台机器加入这个集群当中。在本次试验中,就是要在 83、84 和 124 这三台机器上执行下面的这条命令: -```bash -sudo docker run -d swarm join --addr=ip_address:2375 token://token_id -``` -其中的 ip_address 换成执行这条命令的机器的 IP,token_id 换成上一步执行 `swarm create` 返回的 token。 +集群启动成功以后,用户可以在任何一台节点上使用 `swarm list` 命令查看集群中的节点列表。例如 -在83这台机器上面的执行结果如下: -```bash -rio@083:~$ sudo docker run -d swarm join --addr=192.168.1.83:2375 token://b7625e5a7a2dc7f8c4faacf2b510078e -3b3d9da603d7c121588f796eab723458af5938606282787fcbb03b6f1ac2000b +```sh +$ docker run --rm swarm list token://946d65606f7c2f49766e4dddac5b4365 +192.168.0.2:2375 ``` -这条命令通过 `-d` 参数启动了一个容器,使得83这台机器加入到集群。如果这个容器被停止或者被删除,83这台机器就会从集群中消失。 +显示正是之前用 `swarm join` 命令加入集群的节点的地址。 -#### 启动swarm manager -因为我们要使用 83 这台机器充当 swarm 管理节点,所以需要在83这台机器上面执行 `swarm manage` 命令: -```bash -sudo docker run -d -p 2376:2375 swarm manage token://b7625e5a7a2dc7f8c4faacf2b510078e +我们在另外一台节点 `192.168.0.3` 上同样使用 `swarm join` 命令新加入一个节点: +```sh +$docker run --rm swarm join --addr=192.168.0.3:2375 token://946d65606f7c2f49766e4dddac5b4365 +time="2015-12-10T02:05:34Z" level=info msg="Registering on the discovery service every 20s..." addr="192.168.0.3:2375" discovery="token://946d65606f7c2f49766e4dddac5b4365" +... ``` -执行结果如下: -```bash -rio@083:~$ sudo docker run -d -p 2376:2375 swarm manage token://b7625e5a7a2dc7f8c4faacf2b510078e -83de3e9149b7a0ef49916d1dbe073e44e8c31c2fcbe98d962a4f85380ef25f76 + +再次使用 `swarm list` 命令查看集群中的节点列表信息,可以看到新加入的节点: + +```sh +$ docker run --rm swarm list token://946d65606f7c2f49766e4dddac5b4365 +192.168.0.3:2375 +192.168.0.2:2375 ``` -这条命令如果执行成功会返回已经启动的 Swarm 的容器的 ID,此时整个集群已经启动起来了。 -现在通过 `docker ps` 命令来看下有没有启动成功。 -```bash -rio@083:~$ sudo docker ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -83de3e9149b7 swarm:latest "/swarm manage token 4 minutes ago Up 4 minutes 0.0.0.0:2376->2375/tcp stupefied_stallman +### 使用集群服务 +那么,怎么使用 Swarm 提供的服务呢? + +实际上,所有 Docker 客户端可以继续使用,只要指定使用 Swarm manager 服务的监听地址即可。 + +例如,manager 服务监听的地址为 `192.168.0.2:12375`,则可以通过指定 `-H 192.168.0.2:12375` 选项来继续使用 Docker 客户端,执行任意 Docker 命令,例如 `ps`、`info`、`run` 等等。 + +在任意节点上使用 `docker run` 来启动若干容器,例如 + +```sh +$docker -H 192.168.0.2:12375:12375 run -d ubuntu ping 127.0.0.1 +4c9bccbf86fb6e2243da58c1b15e9378fac362783a663426bbe7058eea84de46 ``` -可以看到,Swarm 已经成功启动。 -在执行 `Swarm manage` 这条命令的时候,有几点需要注意的: - -* 这条命令需要在充当 swarm 管理者的机器上执行 -* Swarm 要以 daemon 的形式执行 -* 映射的端口可以使任意的除了 2375 以外的并且是未被占用的端口,但一定不能是 2375 这个端口,因为 2375 已经被 Docker 本身给占用了。 - -集群启动成功以后,现在我们可以在任何一台节点上使用 `swarm list` 命令查看集群中的节点了,本实验在 124 这台机器上执行 `swarm list` 命令: -```bash -rio@124:~$ sudo docker run --rm swarm list token://b7625e5a7a2dc7f8c4faacf2b510078e -192.168.1.84:2375 -192.168.1.124:2375 -192.168.1.83:2375 + +使用 `ps` 命令查看集群中正在运行的容器。 + +```sh +$ docker -H 192.168.0.2:12375 ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +4c9bccbf86fb ubuntu "ping 127.0.0.1" About a minute ago Up About a minute clever_wright +730061a3801a registry:latest "docker-registry" 2 minutes ago Up 2 minutes 192.168.0.2:5000->5000/tcp Host-1/registry_registry_1 +72d99f24a06f redis:3.0 "/entrypoint.sh redis" 2 minutes ago Up 2 minutes 6379/tcp Host-1/registry_redis_1,Host-1/registry_registry_1/redis,Host-1/registry_registry_1/redis_1,Host-1/registry_registry_1/registry_redis_1 ``` -输出结果列出的IP地址正是我们使用 `swarm join` 命令加入集群的机器的IP地址。 -现在我们可以在任何一台安装了 Docker 的机器上面通过命令(命令中要指明swarm manager机器的IP地址)来在集群中运行container了。 -本次试验,我们在 192.168.1.85 这台机器上使用 `docker info` 命令来查看集群中的节点的信息。 +输出结果中显示目前集群中正在运行的容器(注意不包括 Swarm manager 服务容器),可以在不同节点上使用 `docker ps` 查看本地容器,发现这些容器实际上可能运行在集群中多个节点上(被 Swarm 调度策略进行分配)。 -其中 info 也可以换成其他的 Docker 支持的命令。 -```bash -rio@085:~$ sudo docker -H 192.168.1.83:2376 info -Containers: 8 +使用 info 查看所有节点的信息。 + +```sh +$ docker -H 192.168.0.2:12375 info +Containers: 18 +Images: 36 +Role: primary Strategy: spread -Filters: affinity, health, constraint, port, dependency +Filters: health, port, dependency, affinity, constraint Nodes: 2 - sclu083: 192.168.1.83:2375 - └ Containers: 1 - └ Reserved CPUs: 0 / 2 - └ Reserved Memory: 0 B / 4.054 GiB - sclu084: 192.168.1.84:2375 - └ Containers: 7 - └ Reserved CPUs: 0 / 2 - └ Reserved Memory: 0 B / 4.053 GiB -``` -结果输出显示这个集群中只有两个节点,IP地址分别是 192.168.1.83 和 192.168.1.84,结果不对呀,我们明明把三台机器加入了这个集群,还有 124 这一台机器呢? -经过排查,发现是忘了修改 124 这台机器上面改 docker daemon 的监听方式,只要按照上面的步骤修改写 docker daemon 的监听方式就可以了。 - -在使用这个方法的时候,使用swarm create可能会因为网络的原因会出现类似于下面的这个问题: -```bash -rio@227:~$ sudo docker run --rm swarm create -[sudo] password for rio: -time="2015-05-19T12:59:26Z" level=fatal msg="Post https://discovery-stage.hub.docker.com/v1/clusters: dial tcp: i/o timeout" + Host-1: 192.168.0.2:2375 + └ Containers: 15 + └ Reserved CPUs: 0 / 4 + └ Reserved Memory: 1 GiB / 4.053 GiB + └ Labels: executiondriver=native-0.2, kernelversion=3.16.0-43-generic, operatingsystem=Ubuntu 14.04.3 LTS, storagedriver=aufs + Host-2: 192.168.0.3:2375 + └ Containers: 3 + └ Reserved CPUs: 0 / 8 + └ Reserved Memory: 0 B / 16.46 GiB + └ Labels: executiondriver=native-0.2, kernelversion=3.16.0-30-generic, operatingsystem=Ubuntu 14.04.3 LTS, storagedriver=aufs +CPUs: 12 +Total Memory: 20.51 GiB +Name: 1e1ca8c4117b ``` +结果输出显示这个集群目前只有两个节点,地址分别是 `192.168.0.2` 和 `192.168.0.3`。 + +类似的,也可以通过 Compose 模板来启动多个服务。不过请注意,要想让服务分布到多个 Swarm 节点上,需要采用版本 2 的写法。 -### 使用文件 +### 使用网络 +Swarm 为了支持跨主机的网络,默认采用了 `overlay` 网络类型,实现上通过 vxlan 来构建联通整个 Swarm 集群的网络。 -第二种方法相对于第一种方法要简单得多,也不会出现类似于上面的问题。 +首先,在集群中所有节点上,添加配置 Docker daemon 选项: -第一步:在 swarm 管理节点上新建一个文件,把要加入集群的机器 IP 地址和端口号写入文件中,本次试验就是要在83这台机器上面操作: -```bash -rio@083:~$ echo 192.168.1.83:2375 >> cluster -rio@083:~$ echo 192.168.1.84:2375 >> cluster -rio@083:~$ echo 192.168.1.124:2375 >> cluster -rio@083:~$ cat cluster -192.168.1.83:2375 -192.168.1.84:2375 -192.168.1.124:2375 ``` +--cluster-store= --cluster-advertise= +``` + +以 consul 服务为例,可能类似: -第二步:在083这台机器上面执行 `swarm manage` 这条命令: -```bash -rio@083:~$ sudo docker run -d -p 2376:2375 -v $(pwd)/cluster:/tmp/cluster swarm manage file:///tmp/cluster -364af1f25b776f99927b8ae26ca8db5a6fe8ab8cc1e4629a5a68b48951f598ad +```sh +--cluster-store=consul://:8500 --cluster-advertise=192.168.0.3:2375 ``` -使用`docker ps`来查看有没有启动成功: -```bash -rio@083:~$ sudo docker ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -364af1f25b77 swarm:latest "/swarm manage file: About a minute ago Up About a minute 0.0.0.0:2376->2375/tcp happy_euclid + +之后重启 Docker 服务。 + +首先,创建一个网络。 + +```sh +$ docker -H 192.168.0.2:12375 network create swarm_network ``` -可以看到,此时整个集群已经启动成功。 -在使用这条命令的时候需要注意的是注意:这里一定要使用-v命令,因为cluster文件是在本机上面,启动的容器默认是访问不到的,所以要通过-v命令共享。 +查看网络,将看到一个 overlay 类型的网络。 -接下来的就可以在任何一台安装了docker的机器上面通过命令使用集群,同样的,在85这台机器上执行docker info命令查看集群的节点信息: -```bash -rio@s085:~$ sudo docker -H 192.168.1.83:2376 info -Containers: 9 -Strategy: spread -Filters: affinity, health, constraint, port, dependency -Nodes: 3 - atsgxxx: 192.168.1.227:2375 - └ Containers: 0 - └ Reserved CPUs: 0 / 4 - └ Reserved Memory: 0 B / 2.052 GiB - sclu083: 192.168.1.83:2375 - └ Containers: 2 - └ Reserved CPUs: 0 / 2 - └ Reserved Memory: 0 B / 4.054 GiB - sclu084: 192.168.1.84:2375 - └ Containers: 7 - └ Reserved CPUs: 0 / 2 - └ Reserved Memory: 0 B / 4.053 GiB +```sh +$ docker -H 192.168.0.2:12375 network ls +NETWORK ID NAME DRIVER +6edf2d16ec97 swarm_network overlay ``` + +此时,所有添加到这个网络上的容器将自动被分配到集群中的节点上,并且彼此联通。 \ No newline at end of file From 212cd0289aad2d5900430ae3c2d9971dbd996436 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 24 May 2017 11:13:57 +0800 Subject: [PATCH 035/611] Fix issue#174 --- compose/django.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/compose/django.md b/compose/django.md index 2fd0aa413..02146434a 100644 --- a/compose/django.md +++ b/compose/django.md @@ -44,17 +44,17 @@ web: 现在我们就可以使用 `docker-compose run` 命令启动一个 Django 应用了。 ``` -$ docker-compose run web django-admin.py startproject docker-composeexample . +$ docker-compose run web django-admin.py startproject django_example . ``` -Compose 会先使用 `Dockerfile` 为 web 服务创建一个镜像,接着使用这个镜像在容器里运行 `django-admin.py startproject docker-composeexample . ` 指令。 +Compose 会先使用 `Dockerfile` 为 web 服务创建一个镜像,接着使用这个镜像在容器里运行 `django-admin.py startproject django_example . ` 指令。 这将在当前目录生成一个 Django 应用。 ``` $ ls -Dockerfile docker-compose.yml docker-composeexample manage.py requirements.txt +Dockerfile docker-compose.yml django_example manage.py requirements.txt ``` -首先,我们要为应用设置好数据库的连接信息。用以下内容替换 `docker-composeexample/settings.py` 文件中 `DATABASES = ...` 定义的节点内容。 +首先,我们要为应用设置好数据库的连接信息。用以下内容替换 `django_example/settings.py` 文件中 `DATABASES = ...` 定义的节点内容。 ``` DATABASES = { @@ -82,7 +82,7 @@ myapp_web_1 | Validating models... myapp_web_1 | myapp_web_1 | 0 errors found myapp_web_1 | January 27, 2014 - 12:12:40 -myapp_web_1 | Django version 1.6.1, using settings 'docker-composeexample.settings' +myapp_web_1 | Django version 1.6.1, using settings 'django_example.settings' myapp_web_1 | Starting development server at http://0.0.0.0:8000/ myapp_web_1 | Quit the server with CONTROL-C. ``` From b0e680dfe88e117b3c6df49243b8057068893a7b Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 24 May 2017 11:17:11 +0800 Subject: [PATCH 036/611] Remove unused content --- fig/README.md | 2 - fig/cli_ref.md | 141 --------------------------------------------- fig/env_ref.md | 31 ---------- fig/install.md | 28 --------- fig/intro.md | 141 --------------------------------------------- fig/yml_ref.md | 151 ------------------------------------------------- 6 files changed, 494 deletions(-) delete mode 100644 fig/README.md delete mode 100644 fig/cli_ref.md delete mode 100644 fig/env_ref.md delete mode 100644 fig/install.md delete mode 100644 fig/intro.md delete mode 100644 fig/yml_ref.md diff --git a/fig/README.md b/fig/README.md deleted file mode 100644 index b75df693f..000000000 --- a/fig/README.md +++ /dev/null @@ -1,2 +0,0 @@ -#Fig -在你的应用里面添加一个 `fig.yml` 文件,并指定一些简单的内容,执行 `fig up` 它就能帮你快速建立起一个容器。目前已经正式更名为 [Compose](../compose/README.md)。 diff --git a/fig/cli_ref.md b/fig/cli_ref.md deleted file mode 100644 index a2bf8f1e5..000000000 --- a/fig/cli_ref.md +++ /dev/null @@ -1,141 +0,0 @@ -##Fig客户端参考 - -大部分命令都可以运行在一个或多个服务上。如果没有特别的说明,这个命令则可以应用在所有的服务上。 - -执行 `fig [COMMAND] --help` 查看所有的使用说明。 - -###选项 - -`--verbose` - -显示更多信息。 - -`--version` - -打印版本并退出。 - -`-f, --file FILE` - -使用特定的Fig文件,默认使用fig.yml。 - -`-p, --project-name NAME` - -使用特定的项目名称,默认使用文件夹名称。 - -###命令 - -`build` - -构建或重新构建服务。 - -服务一旦构建后,将会标记为project_service,例如figtest_db。 -如果修改服务的 `Dockerfile` 或构建目录信息,你可以运行 `fig build` 来重新构建。 - -`help` - -获得一个命令的帮助。 - -`kill` - -强制停止服务容器。 - -`logs` - -查看服务的输出。 - -`port` - -打印端口绑定的公共端口。 - -`ps` - -列出所有容器。 - -`pull` - -拉取服务镜像。 - -`rm` - -删除停止的服务容器。 - -`run` - -在一个服务上执行一个命令。 - -例如: - -``` -$ fig run web python manage.py shell -``` - -默认情况下,链接的服务将会启动,除非这些服务已经在运行中。 - -一次性命令会在使用与服务的普通容器相同的配置的新容器中开始运行,然后卷、链接等等都将会按照期望创建。 -与普通容器唯一的不同就是,这个命令将会覆盖原有的命令,如果端口有冲突则不会创建。 - -链接还可以在一次性命令和那个服务的其他容器间创建,然后你可以像下面一样进行一些操作: - -``` -$ fig run db psql -h db -U docker -``` - -如果你不希望在执行一次性命令时启动链接的容器,可以指定--no-deps选项: - -``` -$ fig run --no-deps web python manage.py shell -``` - -`scale` - -设置一个服务需要运行的容器个数。 - -通过service=num的参数来设置数量。例如: - -``` -$ fig scale web=2 worker=3 -``` - -`start` - -启动一个服务已经存在的容器. - -`stop` - -停止一个已经运行的容器,但不删除它。通过 `fig start` 可以再次启动这些容器。 - -`up` - -构建,(重新)创建,启动,链接一个服务的容器。 - -链接的服务都将会启动,除非他们已经运行。 - -默认情况, `fig up` 将会聚合每个容器的输出,而且如果容器已经存在,所有容器将会停止。如果你运行 `fig up -d` ,将会在后台启动并运行所有的容器。 - -默认情况,如果这个服务的容器已经存在, `fig up` 将会停止并重新创建他们(保持使用volumes-from挂载的卷),以保证 `fig.yml` 的修改生效。如果你不想容器被停止并重新创建,可以使用 `fig up --no-recreate` 。如果需要的话,这样将会启动已经停止的容器。 - -###环境变量 - -环境变量可以用来配置Fig的行为。 - -变量以DOCKER_开头,它们和用来配置Docker命令行客户端的使用一样。如果你在使用 boot2docker , `$(boot2docker shellinit)` 将会设置它们为正确的值。 - -`FIG_PROJECT_NAME` - -设置通过Fig启动的每一个容器前添加的项目名称.默认是当前工作目录的名字。 - -`FIG_FILE` - -设置要使用的 `fig.yml` 的路径。默认路径是当前工作目录。 - -`DOCKER_HOST` - -设置docker进程的URL。默认docker client使用 `unix:///var/run/docker.sock` 。 - -`DOCKER_TLS_VERIFY` - -如果设置不为空的字符,允许和进程进行 TLS 通信。 - -`DOCKER_CERT_PATH` - -配置 `ca.pem` 的路径, `cert.pem` 和 `key.pem` 文件用来进行TLS验证.默认路径是 `~/.docker` 。 diff --git a/fig/env_ref.md b/fig/env_ref.md deleted file mode 100644 index 4592756c9..000000000 --- a/fig/env_ref.md +++ /dev/null @@ -1,31 +0,0 @@ -##环境变量参考 - -*注意: 现在已经不推荐使用环境变量链接服务。替代方案是使用链接名称(默认就是被连接的服务名字)作为主机名来链接。详情查看 [fig.yml章节](./yml_ref.md)。 - -Fig 使用 Docker 链接来暴露一个服务的容器给其它容器。每一个链接的容器会注入一组以容器名称的大写字母开头得环境变量。 - -查看一个服务有那些有效的环境变量可以执行 `fig run SERVICE env`。 - -`name_PORT` - -完整URL,例如: `DB_PORT=tcp://172.17.0.5:5432` - -`name_PORT_num_protocol` - -完整URL,例如: `DB_PORT_5432_TCP=tcp://172.17.0.5:5432` - -`name_PORT_num_protocol_ADDR` - -容器的IP地址,例如: `DB_PORT_5432_TCP_ADDR=172.17.0.5` - -`name_PORT_num_protocol_PORT` - -暴露端口号,例如: `DB_PORT_5432_TCP_PORT=5432` - -`name_PORT_num_protocol_PROTO` - -协议(tcp 或 udp),例如: `DB_PORT_5432_TCP_PROTO=tcp` - -`name_NAME` - -完整合格的容器名称,例如: `DB_1_NAME=/myapp_web_1/myapp_db_1` diff --git a/fig/install.md b/fig/install.md deleted file mode 100644 index c4a099fab..000000000 --- a/fig/install.md +++ /dev/null @@ -1,28 +0,0 @@ -##安装 Fig - -首先,安装 1.3 或者更新的 Docker 版本。 - -如果你的工作环境是 OS X ,可以通过查看 [Mac 安装指南(英文)](https://docs.docker.com/installation/mac/) ,完成安装 Docker 和 boot2docker 。一旦 boot2docker 运行后,执行以下指令设置一个环境变量,接着 Fig 就可以和它交互了。 - -``` -$(boot2docker shellinit) -``` -**如果想避免重启后重新设置,可以把上面的命令加到你的 ` ~/.bashrc` 文件里。* - -关于 `Ubuntu` 还有 `其它的平台` 的安装,可以参照 [Ubuntu 安装指南(中文)](../install/ubuntu.md) 以及 [官方安装手册(英文)](https://docs.docker.com/installation/)。 - - -下一步,安装 Fig : - -``` -curl -L https://github.com/docker/fig/releases/download/1.0.1/fig-`uname -s`-`uname -m` > /usr/local/bin/fig; chmod +x /usr/local/bin/fig -``` -**如果你的 Docker 是管理员身份安装,以上命令可能也需要相同的身份。* - -目前 Fig 的发行版本只支持 OSX 和 64 位的 Linux 系统。但因为它是用 Python 语言写的,所以对于其它平台上的用户,可以通过 Python 安装包来完成安装(支持的系统同样适用)。 - -``` -$ sudo pip install -U fig -``` -到这里就已经完成了。 执行 `fig --version` ,确认能够正常运行。 - diff --git a/fig/intro.md b/fig/intro.md deleted file mode 100644 index 856900917..000000000 --- a/fig/intro.md +++ /dev/null @@ -1,141 +0,0 @@ -##快速搭建基于 Docker 的隔离开发环境 - -使用 `Dockerfile` 文件指定你的应用环境,让它能在任意地方复制使用: - -``` -FROM python:2.7 -ADD . /code -WORKDIR /code -RUN pip install -r requirements.txt -``` - -在 `fig.yml` 文件中指定应用使用的不同服务,让它们能够在一个独立的环境中一起运行: - -``` -web: - build: . - command: python app.py - links: - - db - ports: - - "8000:8000" -db: - image: postgres -``` -**注意不需要再额外安装 Postgres 了!* - -接着执行命令 `fig up` ,然后 Fig 就会启动并运行你的应用了。 - -![Docker](../_images/fig-example-large.png) - -Fig 可用的命令有: - -* 启动、停止,和重建服务 -* 查看服务的运行状态 -* 查看运行中的服务的输入日志 -* 对服务发送命令 - -##快速上手 -我们试着让一个基本的 Python web 应用运行在 Fig 上。这个实验假设你已经知道一些 Python 知识,如果你不熟悉,但清楚概念上的东西也是没有问题的。 - -首先,[安装 Docker 和 Fig](install.md) - -为你的项目创建一个目录 - -``` -$ mkdir figtest -$ cd figtest -``` -进入目录,创建 `app.py`,这是一个能够让 Redis 上的一个值自增的简单 web 应用,基于 Flask 框架。 - -``` -from flask import Flask -from redis import Redis -import os -app = Flask(__name__) -redis = Redis(host='redis', port=6379) - -@app.route('/') -def hello(): - redis.incr('hits') - return 'Hello World! I have been seen %s times.' % redis.get('hits') - -if __name__ == "__main__": - app.run(host="0.0.0.0", debug=True) -``` -在 `requirements.txt` 文件中指定应用的 Python 依赖包。 - -``` -flask -redis -``` -下一步我们要创建一个包含应用所有依赖的 Docker 镜像,这里将阐述怎么通过 `Dockerfile` 文件来创建。 - -``` -FROM python:2.7 -ADD . /code -WORKDIR /code -RUN pip install -r requirements.txt -``` -以上的内容首先告诉 Docker 在容器里面安装 Python ,代码的路径还有Python 依赖包。关于 Dockerfile 的更多信息可以查看 [镜像创建](../image/create.md#利用 Dockerfile 来创建镜像) 和 [Dockerfile 使用](../dockerfile/README.md) - -接着我们通过 `fig.yml` 文件指定一系列的服务: - -``` -web: - build: . - command: python app.py - ports: - - "5000:5000" - volumes: - - .:/code - links: - - redis -redis: - image: redis - ``` -这里指定了两个服务: - -* web 服务,通过当前目录的 `Dockerfile` 创建。并且说明了在容器里面执行`python app.py ` 命令 ,转发在容器里开放的 5000 端口到本地主机的 5000 端口,连接 Redis 服务,并且挂载当前目录到容器里面,这样我们就可以不用重建镜像也能直接使用代码。 -* redis 服务,我们使用公用镜像 [redis](https://registry.hub.docker.com/_/redis/)。 -* -现在如果执行 `fig up` 命令 ,它就会拉取 redis 镜像,启动所有的服务。 - -``` -$ fig up -Pulling image redis... -Building web... -Starting figtest_redis_1... -Starting figtest_web_1... -redis_1 | [8] 02 Jan 18:43:35.576 # Server started, Redis version 2.8.3 -web_1 | * Running on http://0.0.0.0:5000/ -``` -这个 web 应用已经开始在你的 docker 守护进程里面监听着 5000 端口了(如果你有使用 boot2docker ,执行 `boot2docker ip` ,就会看到它的地址)。 - -如果你想要在后台运行你的服务,可以在执行 `fig up` 命令的时候添加 `-d` 参数,然后使用 `fig ps` 查看有什么进程在运行。 - -``` -$ fig up -d -Starting figtest_redis_1... -Starting figtest_web_1... -$ fig ps - Name Command State Ports -------------------------------------------------------------------- -figtest_redis_1 /usr/local/bin/run Up -figtest_web_1 /bin/sh -c python app.py Up 5000->5000/tcp -``` - -`fig run` 指令可以帮你向服务发送命令。例如:查看 web 服务可以获取到的环境变量: - -``` -$ fig run web env -``` -执行帮助命令 `fig --help` 查看其它可用的参数。 - -假设你使用了 `fig up -d` 启动 Fig,可以通过以下命令停止你的服务: - -``` -$ fig stop -``` -以上内容或多或少的讲述了如何使用Fig 。通过查看下面的引用章节可以了解到关于命令、配置和环境变量的更多细节。如果你有任何想法或建议,[可以在 GitHub 上提出](https://github.com/docker/fig)。 - diff --git a/fig/yml_ref.md b/fig/yml_ref.md deleted file mode 100644 index fba816cbf..000000000 --- a/fig/yml_ref.md +++ /dev/null @@ -1,151 +0,0 @@ -##fig.yml 参考 - -每个在 `fig.yml` 定义的服务都需要指定一个镜像或镜像的构建内容。像 `docker run` 的命令行一样,其它内容是可选的。 - -`docker run` 在 `Dockerfile` 中设置的选项(例如:`CMD`, `EXPOSE`, `VOLUME`, `ENV`) 作为已经提供的默认设置 - 你不需要在 `fig.yml` 中重新设置。 - -`image` - -这里可以设置为标签或镜像ID的一部分。它可以是本地的,也可以是远程的 - 如果镜像在本地不存在,`Fig` 将会尝试拉去这个镜像。 - -``` -image: ubuntu -image: orchardup/postgresql -image: a4bc65fd -``` - -`build` - -指定 `Dockerfile` 所在文件夹的路径。 `Fig` 将会构建这个镜像并给它生成一个名字,然后使用这个镜像。 - -``` -build: /path/to/build/dir -``` - -`command` - -覆盖默认的命令。 - -``` -command: bundle exec thin -p 3000 -``` - -`links` - -在其它的服务中连接容器。使用服务名称(经常也作为别名)或服务名称加服务别名 `(SERVICE:ALIAS)` 都可以。 - -``` -links: - - db - - db:database - - redis -``` - -可以在服务的容器中的 `/etc/hosts` 里创建别名。例如: - -``` -172.17.2.186 db -172.17.2.186 database -172.17.2.187 redis -``` - -环境变量也将被创建 - 细节查看环境变量参考章节。 - -`ports` - -暴露端口。使用宿主和容器 `(HOST:CONTAINER)` 或者仅仅容器的端口(宿主将会随机选择端口)都可以。 - -注:当使用 `HOST:CONTAINER` 格式来映射端口时,如果你使用的容器端口小于60你可能会得到错误得结果,因为 `YAML` 将会解析 `xx:yy` 这种数字格式为60进制。所以我们建议用字符指定你得端口映射。 - -``` -ports: - - "3000" - - "8000:8000" - - "49100:22" - - "127.0.0.1:8001:8001" -``` - -`expose` - -暴露不发布到宿主机的端口 - 它们只被连接的服务访问。仅仅内部的端口可以被指定。 - -``` -expose: - - "3000" - - "8000" -``` - -`volumes` - -卷挂载路径设置。可以设置宿主机路径 `(HOST:CONTAINER)` 或访问模式 `(HOST:CONTAINER:ro)` 。 - -``` -volumes: - - /var/lib/mysql - - cache/:/tmp/cache - - ~/configs:/etc/configs/:ro -``` - -`volumes_from` - -从另一个服务或容器挂载所有卷。 - -``` -volumes_from: - - service_name - - container_name -``` - -`environment` - -设置环境变量。你可以使用数组或字典两种格式。 - -环境变量在运行 `Fig` 的机器上被解析成一个key。它有助于安全和指定的宿主值。 - -``` -environment: - RACK_ENV: development - SESSION_SECRET: - -environment: - - RACK_ENV=development - - SESSION_SECRET -``` - -`net` - -设置网络模式。使用和 `docker client` 的 `--net` 参数一样的值。 - -``` -net: "bridge" -net: "none" -net: "container:[name or id]" -net: "host" -``` - -`dns` - -配置DNS服务器。它可以是一个值,也可以是一个列表。 - -``` -dns: 8.8.8.8 -dns: - - 8.8.8.8 - - 9.9.9.9 -``` - -`working_dir, entrypoint, user, hostname, domainname, mem_limit, privileged` - -这些都是和 `docker run` 对应的一个值。 - -``` -working_dir: /code -entrypoint: /code/entrypoint.sh -user: postgresql - -hostname: foo -domainname: foo.com - -mem_limit: 1000000000 -privileged: true -``` From 18a91f783e4b5ca522a4286dc85dc36595fe6852 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 24 May 2017 11:22:23 +0800 Subject: [PATCH 037/611] Add os cases --- README.md | 2 +- SUMMARY.md | 12 +- cases/README.md | 2 - cases/container_connect.md | 78 ------------ cases/environment.md | 14 --- cases/os/README.md | 9 ++ cases/os/_images/alpinelinux-logo.png | Bin 0 -> 17094 bytes cases/os/_images/busybox-logo.png | Bin 0 -> 10913 bytes cases/os/_images/centos-logo.png | Bin 0 -> 37638 bytes cases/os/_images/coreos-login.png | Bin 0 -> 25631 bytes cases/os/_images/coreos-logo.jpg | Bin 0 -> 34121 bytes cases/os/_images/coreos_crt.png | Bin 0 -> 12669 bytes cases/os/_images/coreos_list.png | Bin 0 -> 8336 bytes cases/os/_images/coreos_run_ip.png | Bin 0 -> 36045 bytes cases/os/_images/debian-logo.png | Bin 0 -> 5307 bytes cases/os/_images/docker_version.png | Bin 0 -> 28691 bytes cases/os/_images/fedora-logo.png | Bin 0 -> 14014 bytes cases/os/_images/php_pulling.png | Bin 0 -> 55588 bytes cases/os/_images/ubuntu-logo.jpg | Bin 0 -> 32443 bytes cases/os/_images/vmware_coreos.png | Bin 0 -> 109236 bytes cases/os/alpine.md | 73 +++++++++++ cases/os/busybox.md | 114 +++++++++++++++++ cases/os/centos.md | 76 ++++++++++++ cases/os/coreos.md | 116 ++++++++++++++++++ cases/os/debian.md | 170 ++++++++++++++++++++++++++ cases/os/devops_cases.md | 3 + cases/os/summary.md | 12 ++ cases/supervisor.md | 66 ---------- cases/tomcat.md | 85 ------------- revision.md | 1 + 30 files changed, 582 insertions(+), 251 deletions(-) delete mode 100644 cases/README.md delete mode 100644 cases/container_connect.md delete mode 100644 cases/environment.md create mode 100644 cases/os/README.md create mode 100644 cases/os/_images/alpinelinux-logo.png create mode 100644 cases/os/_images/busybox-logo.png create mode 100644 cases/os/_images/centos-logo.png create mode 100644 cases/os/_images/coreos-login.png create mode 100644 cases/os/_images/coreos-logo.jpg create mode 100644 cases/os/_images/coreos_crt.png create mode 100644 cases/os/_images/coreos_list.png create mode 100644 cases/os/_images/coreos_run_ip.png create mode 100644 cases/os/_images/debian-logo.png create mode 100644 cases/os/_images/docker_version.png create mode 100644 cases/os/_images/fedora-logo.png create mode 100644 cases/os/_images/php_pulling.png create mode 100644 cases/os/_images/ubuntu-logo.jpg create mode 100644 cases/os/_images/vmware_coreos.png create mode 100644 cases/os/alpine.md create mode 100644 cases/os/busybox.md create mode 100644 cases/os/centos.md create mode 100644 cases/os/coreos.md create mode 100644 cases/os/debian.md create mode 100644 cases/os/devops_cases.md create mode 100644 cases/os/summary.md delete mode 100644 cases/supervisor.md delete mode 100644 cases/tomcat.md diff --git a/README.md b/README.md index ffbece6f0..971713ea4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Docker — 从入门到实践 -0.8.2 +0.8.3 [Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本! 使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! diff --git a/SUMMARY.md b/SUMMARY.md index 20a18d377..d725988aa 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -65,11 +65,6 @@ * [工具和示例](advanced_network/example.md) * [编辑网络配置文件](advanced_network/config_file.md) * [实例:创建一个点到点连接](advanced_network/ptp.md) -* [实战案例](cases/README.md) - * [使用 Supervisor 来管理进程](cases/supervisor.md) - * [创建 tomcat\/weblogic 集群](cases/tomcat.md) - * [多台物理主机之间的容器互联](cases/container_connect.md) - * [标准化开发测试和生产环境](cases/environment.md) * [安全](security/README.md) * [内核命名空间](security/kernel_ns.md) * [控制组](security/control_group.md) @@ -133,6 +128,13 @@ * [腾讯云](cloud/qcloud.md) * [阿里云](cloud/alicloud.md) * [小结](cloud/summary.md) +* [实战案例-操作系统](cases/os/README.md) + * [Busybox](cases/os/busybox.md) + * [Alpine](cases/os/alpine.md) + * [Debian\/Ubuntu](cases/os/debian.md) + * [CentOS\/Fedora](cases/os/centos.md) + * [CoreOS](cases/os/coreos.md) + * [本章小结](cases/os/summary.md) * [附录](appendix/README.md) * [附录一:常见问题总结](appendix/faq/README.md) * [附录二:热门镜像介绍](appendix/repo/README.md) diff --git a/cases/README.md b/cases/README.md deleted file mode 100644 index 4f03d4b6b..000000000 --- a/cases/README.md +++ /dev/null @@ -1,2 +0,0 @@ -#实战案例 -介绍一些典型的应用场景和案例。 diff --git a/cases/container_connect.md b/cases/container_connect.md deleted file mode 100644 index fc72123bb..000000000 --- a/cases/container_connect.md +++ /dev/null @@ -1,78 +0,0 @@ -## 多台物理主机之间的容器互联(暴露容器到真实网络中) -Docker 默认的桥接网卡是 docker0。它只会在本机桥接所有的容器网卡,举例来说容器的虚拟网卡在主机上看一般叫做 veth*** 而 Docker 只是把所有这些网卡桥接在一起,如下: -``` -[root@opnvz ~]# brctl show -bridge name bridge id STP enabled interfaces -docker0 8000.56847afe9799 no veth0889 - veth3c7b - veth4061 -``` -在容器中看到的地址一般是像下面这样的地址: -``` -root@ac6474aeb31d:~# ip a -1: lo: mtu 1500 qdisc noqueue state UNKNOWN group default - link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 - inet 127.0.0.1/8 scope host lo - valid_lft forever preferred_lft forever - inet6 ::1/128 scope host - valid_lft forever preferred_lft forever -11: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 - link/ether 4a:7d:68:da:09:cf brd ff:ff:ff:ff:ff:ff - inet 172.17.0.3/16 scope global eth0 - valid_lft forever preferred_lft forever - inet6 fe80::487d:68ff:feda:9cf/64 scope link - valid_lft forever preferred_lft forever -``` -这样就可以把这个网络看成是一个私有的网络,通过 nat 连接外网,如果要让外网连接到容器中,就需要做端口映射,即 -p 参数。 - -如果在企业内部应用,或者做多个物理主机的集群,可能需要将多个物理主机的容器组到一个物理网络中来,那么就需要将这个网桥桥接到我们指定的网卡上。 - -### 拓扑图 -主机 A 和主机 B 的网卡一都连着物理交换机的同一个 vlan 101,这样网桥一和网桥三就相当于在同一个物理网络中了,而容器一、容器三、容器四也在同一物理网络中了,他们之间可以相互通信,而且可以跟同一 vlan 中的其他物理机器互联。 -![物理拓扑图](../_images/container_connect_topology.png) - -### ubuntu 示例 -下面以 ubuntu 为例创建多个主机的容器联网: -创建自己的网桥,编辑 /etc/network/interface 文件 -``` -auto br0 -iface br0 inet static -address 192.168.7.31 -netmask 255.255.240.0 -gateway 192.168.7.254 -bridge_ports em1 -bridge_stp off -dns-nameservers 8.8.8.8 192.168.6.1 -``` -将 Docker 的默认网桥绑定到这个新建的 br0 上面,这样就将这台机器上容器绑定到 em1 这个网卡所对应的物理网络上了。 - -ubuntu 修改 /etc/default/docker 文件,添加最后一行内容 - -``` -# Docker Upstart and SysVinit configuration file -# Customize location of Docker binary (especially for development testing). -#DOCKER="/usr/local/bin/docker" -# Use DOCKER_OPTS to modify the daemon startup options. -#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4" - -# If you need Docker to use an HTTP proxy, it can also be specified here. -#export http_proxy="http://127.0.0.1:3128/" - -# This is also a handy place to tweak where Docker's temporary files go. -#export TMPDIR="/mnt/bigdrive/docker-tmp" - -DOCKER_OPTS="-b=br0" -``` - -在启动 Docker 的时候 使用 -b 参数 将容器绑定到物理网络上。重启 Docker 服务后,再进入容器可以看到它已经绑定到你的物理网络上了。 - -``` -root@ubuntudocker:~# docker ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -58b043aa05eb desk_hz:v1 "/startup.sh" 5 days ago Up 2 seconds 5900/tcp, 6080/tcp, 22/tcp yanlx -root@ubuntudocker:~# brctl show -bridge name bridge id STP enabled interfaces -br0 8000.7e6e617c8d53 no em1 - vethe6e5 -``` -这样就直接把容器暴露到物理网络上了,多台物理主机的容器也可以相互联网了。需要注意的是,这样就需要自己来保证容器的网络安全了。 diff --git a/cases/environment.md b/cases/environment.md deleted file mode 100644 index 30d1ad9c6..000000000 --- a/cases/environment.md +++ /dev/null @@ -1,14 +0,0 @@ -## 标准化开发测试和生产环境 -对于大部分企业来说,搭建 PaaS 既没有那个精力,也没那个必要,用 Docker 做个人的 sandbox 用处又小了点。 - -可以用 Docker 来标准化开发、测试、生产环境。 - - -![企业应用结构](../_images/enterprise_usage.png) - - -Docker 占用资源小,在一台 E5 128 G 内存的服务器上部署 100 个容器都绰绰有余,可以单独抽一个容器或者直接在宿主物理主机上部署 samba,利用 samba 的 home 分享方案将每个用户的 home 目录映射到开发中心和测试部门的 Windows 机器上。 - -针对某个项目组,由架构师搭建好一个标准的容器环境供项目组和测试部门使用,每个开发工程师可以拥有自己单独的容器,通过 `docker run -v` 将用户的 home 目录映射到容器中。需要提交测试时,只需要将代码移交给测试部门,然后分配一个容器使用 `-v` 加载测试部门的 home 目录启动即可。这样,在公司内部的开发、测试基本就统一了,不会出现开发部门提交的代码,测试部门部署不了的问题。 - -测试部门发布测试通过的报告后,架构师再一次检测容器环境,就可以直接交由部署工程师将代码和容器分别部署到生产环境中了。这种方式的部署横向性能的扩展性也极好。 diff --git a/cases/os/README.md b/cases/os/README.md new file mode 100644 index 000000000..f3c4e9569 --- /dev/null +++ b/cases/os/README.md @@ -0,0 +1,9 @@ +# 操作系统 + +目前常用的 Linux 发行版主要包括 Debian/Ubuntu 系列和 CentOS/Fedora 系列。 + +前者以自带软件包版本较新而出名;后者则宣称运行更稳定一些。选择哪个操作系统取决于读者的具体需求。同时,社区还推出了完全基于 Docker 的 Linux 发行版 CoreOS。 + +使用 Docker,读者只需要一个命令就能快速获取一个 linux 发行版镜像,这是以往包括各种虚拟化技术都难以实现的。这些镜像一般都很精简,但是可以支持完整 linux 系统的大部分功能。 + +本章将介绍如何使用 Docker 安装和使用 Busybox、Alphine、Debian/Ubuntu、CentOS/Fedora、CoreOS 等操作系统。 diff --git a/cases/os/_images/alpinelinux-logo.png b/cases/os/_images/alpinelinux-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..acfe2b19a46d65232e6180e44e2ee7b64e26b52a GIT binary patch literal 17094 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 K*LH1ez literal 0 HcmV?d00001 diff --git a/cases/os/_images/busybox-logo.png b/cases/os/_images/busybox-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4d3126a5292fd4285a5155c324d0d68e5b3e0d4b GIT binary patch literal 10913 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

@S(&~#9yzt49;dpi1B!;!6 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 S`EwsY9-3;ps+G#t!T$rVrcP4; literal 0 HcmV?d00001 diff --git a/cases/os/_images/coreos-login.png b/cases/os/_images/coreos-login.png new file mode 100644 index 0000000000000000000000000000000000000000..02142e7fe08f03a6d8acd376aff142dec711376a GIT binary patch literal 25631 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 Awg3PC literal 0 HcmV?d00001 diff --git a/cases/os/_images/coreos-logo.jpg b/cases/os/_images/coreos-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dee6e9e3e52d58b8ad4850a1447a6e0c02dcd3ec GIT binary patch literal 34121 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�QG>*YL7U? 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 literal 0 HcmV?d00001 diff --git a/cases/os/_images/coreos_crt.png b/cases/os/_images/coreos_crt.png new file mode 100644 index 0000000000000000000000000000000000000000..0260b26cea3a7f125ee7771167d925a0c61f8c0a GIT binary patch literal 12669 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 literal 0 HcmV?d00001 diff --git a/cases/os/_images/coreos_list.png b/cases/os/_images/coreos_list.png new file mode 100644 index 0000000000000000000000000000000000000000..9896b0af61655af21465cab6a05a8f9155203ee9 GIT binary patch literal 8336 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 literal 0 HcmV?d00001 diff --git a/cases/os/_images/coreos_run_ip.png b/cases/os/_images/coreos_run_ip.png new file mode 100644 index 0000000000000000000000000000000000000000..ab121f487e796397f5efb23674f3160452866445 GIT binary patch literal 36045 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 literal 0 HcmV?d00001 diff --git a/cases/os/_images/docker_version.png b/cases/os/_images/docker_version.png new file mode 100644 index 0000000000000000000000000000000000000000..479a9035f9f6ec818f95f7de69aeec96cce21879 GIT binary patch literal 28691 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 B`}F_- literal 0 HcmV?d00001 diff --git a/cases/os/_images/fedora-logo.png b/cases/os/_images/fedora-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd1589cb2bd913b84aa6ca170c867bc1ff4d019 GIT binary patch literal 14014 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

%ZN(w@Vd)7JC>hlvgly__$3*9FylK=?I_Rx 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 literal 0 HcmV?d00001 diff --git a/cases/os/_images/ubuntu-logo.jpg b/cases/os/_images/ubuntu-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4138fab127e424bd9b6e69d1800d95ed93460032 GIT binary patch literal 32443 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 alpine +* python:2.7 -> python:2.7-alpine +* ruby:2.3 -> ruby:2.3-alpine + +另外,如果使用 `Alpine` 镜像替换 `Ubuntu` 基础镜像,安装软件包时需要用 apk 包管理器替换 apt 工具,如 + +```sh +$ apk add --no-cache +``` + +`Alpine` 中软件安装包的名字可能会与其他发行版有所不同,可以在 `https://pkgs.alpinelinux.org/packages` 网站搜索并确定安装包名称。如果需要的安装包不在主索引内,但是在测试或社区索引中。那么可以按照以下方法使用这些安装包。 + +```sh +$ echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories +$ apk --update add --no-cache +``` + +### 相关资源 + +* `Apline` 官网:`http://alpinelinux.org/` +* `Apline` 官方仓库:`https://github.com/alpinelinux` +* `Apline` 官方镜像:`https://hub.docker.com/_/alpine/` +* `Apline` 官方镜像仓库:`https://github.com/gliderlabs/docker-alpine` + diff --git a/cases/os/busybox.md b/cases/os/busybox.md new file mode 100644 index 000000000..1b931d931 --- /dev/null +++ b/cases/os/busybox.md @@ -0,0 +1,114 @@ +## Busybox + +### 简介 + +![Busybox - Linux 瑞士军刀](_images/busybox-logo.png) + +BusyBox 是一个集成了一百多个最常用 Linux 命令和工具(如 cat、echo、grep、mount、telnet 等)的精简工具箱,它只需要几 MB 的大小,很方便进行各种快速验证,被誉为“Linux 系统的瑞士军刀”。 + +BusyBox 可运行于多款 POSIX 环境的操作系统中,如 Linux(包括 Android)、Hurd、FreeBSD 等。 + +### 获取官方镜像 + +在 Docker Hub 中搜索 busybox 相关的镜像。 + +```sh +$ docker search busybox +NAME DESCRIPTION STARS OFFICIAL AUTOMATED +busybox Busybox base image. 755 [OK] +progrium/busybox 63 [OK] +radial/busyboxplus Full-chain, Internet enabled, busybox made... 11 [OK] +odise/busybox-python 3 [OK] +multiarch/busybox multiarch ports of ubuntu-debootstrap 2 [OK] +azukiapp/busybox This image is meant to be used as the base... 2 [OK] +... +``` + +读者可以看到最受欢迎的镜像同时带有 OFFICIAL 标记,说明它是官方镜像。用户使用 docker pull 指令下载镜像 `busybox:latest`: + +```sh +$ docker pull busybox:latest +busybox:latest: The image you are pulling has been verified +e433a6c5b276: Pull complete +e72ac664f4f0: Pull complete +511136ea3c5a: Pull complete +df7546f9f060: Pull complete +Status: Downloaded newer image for busybox:latest +``` + +下载后,可以看到 busybox 镜像只有2.433 MB: + +```sh +$ docker images +REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE +busybox latest e72ac664f4f0 6 weeks ago 2.433 MB +``` + +### 运行 busybox + +启动一个 busybox 容器,并在容器中执行 grep 命令。 + +```sh +$ docker run -it busybox +/ # grep +BusyBox v1.22.1 (2014-05-22 23:22:11 UTC) multi-call binary. + +Usage: grep [-HhnlLoqvsriwFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]... + +Search for PATTERN in FILEs (or stdin) + + -H Add 'filename:' prefix + -h Do not add 'filename:' prefix + -n Add 'line_no:' prefix + -l Show only names of files that match + -L Show only names of files that don't match + -c Show only count of matching lines + -o Show only the matching part of line + -q Quiet. Return 0 if PATTERN is found, 1 otherwise + -v Select non-matching lines + -s Suppress open and read errors + -r Recurse + -i Ignore case + -w Match whole words only + -x Match whole lines only + -F PATTERN is a literal (not regexp) + -E PATTERN is an extended regexp + -m N Match up to N times per file + -A N Print N lines of trailing context + -B N Print N lines of leading context + -C N Same as '-A N -B N' + -e PTRN Pattern to match + -f FILE Read pattern from file +``` + +查看容器内的挂载信息。 + +```sh +/ # mount +rootfs on / type rootfs (rw) +none on / type aufs (rw,relatime,si=b455817946f8505c) +proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) +tmpfs on /dev type tmpfs (rw,nosuid,mode=755) +shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k) +devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666) +sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime) +/dev/disk/by-uuid/b1f2dba7-d91b-4165-a377-bf1a8bed3f61 on /etc/resolv.conf type ext4 (rw,relatime,errors=remount-ro,data=ordered) +/dev/disk/by-uuid/b1f2dba7-d91b-4165-a377-bf1a8bed3f61 on /etc/hostname type ext4 (rw,relatime,errors=remount-ro,data=ordered) +/dev/disk/by-uuid/b1f2dba7-d91b-4165-a377-bf1a8bed3f61 on /etc/hosts type ext4 (rw,relatime,errors=remount-ro,data=ordered) +devpts on /dev/console type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) +proc on /proc/sys type proc (ro,nosuid,nodev,noexec,relatime) +proc on /proc/sysrq-trigger type proc (ro,nosuid,nodev,noexec,relatime) +proc on /proc/irq type proc (ro,nosuid,nodev,noexec,relatime) +proc on /proc/bus type proc (ro,nosuid,nodev,noexec,relatime) +tmpfs on /proc/kcore type tmpfs (rw,nosuid,mode=755) +``` + +busybox 镜像虽然小巧,但包括了大量常见的 Linux 命令,读者可以用它快速熟悉 Linux 命令。 + +### 相关资源 + +* `Busybox` 官网:`https://busybox.net/` +* `Busybox` 官方仓库:`https://git.busybox.net/busybox/` +* `Busybox` 官方镜像:`https://hub.docker.com/_/busybox/` +* `Busybox` 官方仓库:`https://github.com/docker-library/busybox` + diff --git a/cases/os/centos.md b/cases/os/centos.md new file mode 100644 index 000000000..c8c11990d --- /dev/null +++ b/cases/os/centos.md @@ -0,0 +1,76 @@ +## CentOS/Fedora + +### CentOS 系统简介 + +CentOS 和 Fedora 都是基于 Redhat 的常见 Linux 分支。CentOS 是目前企业级服务器的常用操作系统;Fedora 则主要面向个人桌面用户。 + +![CentOS 操作系统](_images/centos-logo.png) + +CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统),它是基于 Red Hat Enterprise Linux 源代码编译而成。由于 CentOS 与 Redhat Linux 源于相同的代码基础,所以很多成本敏感且需要高稳定性的公司就使用 CentOS 来替代商业版 Red Hat Enterprise Linux。CentOS 自身不包含闭源软件。 + +#### 使用 CentOS 官方镜像 + +首先使用 `docker search` 命令来搜索标星至少为 25 的 CentOS 相关镜像。 + +```sh +$ docker search -f stars=25 centos +NAME DESCRIPTION STARS OFFICIAL AUTOMATED +centos The official... 2543 [OK] +jdeathe/centos-ssh 27 [OK] +``` + +使用 docker run 直接运行最新的 CentOS 镜像,并登录 bash。 + +```sh +$ docker run -it centos bash +Unable to find image 'centos:latest' locally +latest: Pulling from library/centos +3d8673bd162a: Pull complete +Digest: sha256:a66ffcb73930584413de83311ca11a4cb4938c9b2521d331026dad970c19adf4 +Status: Downloaded newer image for centos:latest +[root@43eb3b194d48 /]# cat /etc/redhat-release +CentOS Linux release 7.2.1511 (Core) +``` + +### Fedora 系统简介 + +![Fedora 操作系统](_images/fedora-logo.png) + +Fedora 由 Fedora Project 社区开发,红帽公司赞助的 Linux 发行版。它的目标是创建一套新颖、多功能并且自由和开源的操作系统。Fedora 的功能对于用户而言,它是一套功能完备的,可以更新的免费操作系统,而对赞助商 Red Hat 而言,它是许多新技术的测试平台。被认为可用的技术最终会加入到 Red Hat Enterprise Linux中。 + +#### 使用 Fedora 官方镜像 + +首先使用 `docker search` 命令来搜索标星至少为 2 的 Fedora 相关镜像,结果如下。 + +```sh +$ docker search -f stars=2 fedora +NAME DESCRIPTION STARS OFFICIAL AUTOMATED +fedora Official Docker builds of Fedora 433 [OK] +dockingbay/fedora-rust Trusted build of Rust programming language... 3 [OK] +gluster/gluster-fedora Official GlusterFS image [ Fedora 21 + Glu... 3 [OK] +startx/fedora Simple container used for all startx based... 2 [OK] +``` + +使用 docker run 命令直接运行 Fedora 官方镜像,并登录 bash。 + +```sh +$ docker run -it fedora bash +Unable to find image 'fedora:latest' locally +latest: Pulling from library/fedora +2bf01635e2a0: Pull complete +Digest: sha256:64a02df6aac27d1200c2572fe4b9949f1970d05f74d367ce4af994ba5dc3669e +Status: Downloaded newer image for fedora:latest +[root@196ca341419b /]# cat /etc/redhat-release +Fedora release 24 (Twenty Four) +``` + +### 相关资源 + +* `Fedora` 官网:`https://getfedora.org/` +* `Fedora` 官方仓库:`https://github.com/fedora-infra` +* `Fedora` 官方镜像:`https://hub.docker.com/_/fedora/` +* `Fedora` 官方镜像仓库:`https://github.com/fedora-cloud/docker-brew-fedora` +* `CentOS` 官网:`https://getfedora.org/` +* `CentOS` 官方仓库:`https://github.com/CentOS` +* `CentOS` 官方镜像:`https://hub.docker.com/_/centos/` +* `CentOS` 官方镜像仓库:`https://github.com/CentOS/CentOS-Dockerfiles` diff --git a/cases/os/coreos.md b/cases/os/coreos.md new file mode 100644 index 000000000..d88bc31d4 --- /dev/null +++ b/cases/os/coreos.md @@ -0,0 +1,116 @@ +## CoreOS + +### 简介 + +![CoreOS - 容器化操作系统](_images/coreos-logo.jpg) + +CoreOS 是一个轻量级容器化 Linux 发行版,专为数据中心场景而设计,旨在通过轻量的系统架构和灵活的应用程序部署能力简化数据中心的维护成本和复杂度。CoreOS 作为 Docker 生态圈中的重要一员,日益得到各大云服务商的重视。CoreOS 于 2014 年 7 月首次发布了稳定版本。 + +与其他历史悠久、使用广泛的 Linux 操作系统相比,CoreOS 拥有下面几个优点。 + +* CoreOS 通过容器化(Containerized)的运算环境向应用程序提供运算资源。 + +传统类 Unix 系统往往提供包管理工具。随着系统安装更多的程序,而程序的依赖要求各不相同,这就容易出现“依赖地狱”(Dependency Hell),系统的更新和安装会非常痛苦。 + +CoreOS 的应用程序通过 Docker 运行在容器中,彼此之间共享系统内核和资源,同时互不可见。这种方式使得操作系统、应用程序及运行环境之间的耦合度大大降低。相对于传统的部署方式而言,运维可以更加灵活便捷的在 CoreOS 集群中部署应用程序,同时各运行环境之间的干扰更少,操作系统自身的维护也更加容易。 + +* CoreOS 采用双系统分区(Dual Root Partition)设计。 + +CoreOs 的两个分区在系统运行期间各司其职,它们分别被设置成主动模式和被动模式。主动分区负责系统运行,被动分区负责系统升级。一旦 CoreOS 发布了新版系统,运维只需下载一个完整的系统安装文件至被动分区,然后设置系统下一次重启时从新版本分区启动,将主、被动分区的职能进行调换即可。在 CoreOS 系统运行期间,系统分区被设置成只读状态,这样也确保了 CoreOS 的安全性。CoreOS 的升级过程在默认条件下将自动完成,并且通过 cgroup 对升级过程中使用到的网络和磁盘资源进行限制,这将系统升级所带来的影响降至最低。 + +* CoreOS 使用 Systemd 取代 SysV 作为系统和服务的管理工具。 + +与 SysV 相比,Systemd 不仅可以更好的追踪系统进程,还具备优秀的并行化处理能力。Systemd 将自己的按需启动的特性与 Docker 的快速启动能力相结合,在 CoreOS 集群中大规模部署 Docker Containers 的业务中优势明显。Systemd 引入了“target”的概念,每个 target 应用于一个特定的服务,并且可以通过继承一个已有的 target 来扩展额外的功能,即操作系统对系统上运行的服务拥有更好的控制力。 + +CoreOS 团队还推出了很多有益的工具,包括 etcd, fleet, flannel 等。 + +安装 CoreOS 有几种方法,笔者推荐初学者使用 VMware Workstation 虚拟机方式来运行 CoreOS。VMware Workstation 工具则可以前往其官网`http://www.vmware.com/products/workstation/` 下载获取。 + +### 使用官方镜像 + +#### 获取虚拟机镜像 +从官方网站下载 CoreOS 镜像,地址为 [https:\/\/coreos.com\/releases\/](http://alpha.release.core-os.net/amd64-usr/current/coreos_production_vmware_insecure.zip)。 + +如果读者已经安装 VMware Workstation,则解压镜像包后双击`vmx` 文件: +![虚拟机镜像文件](_images/coreos_list.png)! + +双击`vmx` 文件后,即可启动 CoreOS 虚拟机,如下图所示: + +![启动 CoreOS 虚拟机](_images/vmware_coreos.png) + +*注意:使用免费版 VMware Player 运行 CoreOS 官方镜像时,可能出现无法通过 DHCP 自动获取 IP 地址的问题,读者可配置静态地址或使用 VMware Workstation 来运行 `vmx` 文件。* + +#### 获取地址信息 + +此时CoreOS 系统已经在 VMware Station 中启动,显示登录提示: + +![登录 CoreOS](_images/coreos-login.png) + +直接按回车键,获取当前系统的 IP 地址,如下图所示: + +![获取 IP 地址](_images/coreos_run_ip.png) + +如上图所示,查看此时 CoreOS 的 IP地址是:`192.168.66.128`。 + +#### 使用 SSH 客户端访问镜像 + +笔者以 Windows 环境为例,使用 SecureCRT 工具进行连接。此处读者需要确定: + +* CoreOS 虚拟机的 IP地址 +* CoreOS 虚拟机的文件目录下含有 `insecure_ssh_key` 公钥文件 + +打开 SecureCRT,建立新的 SSH 连接,如下图示: + +![使用 SecureCRT 访问 CoreOS](_images/coreos_crt.png) + +点击 ` 属性` 按钮添加 `insecure_ssh_key` 公钥文件后,即可点击 `连接`。 + +如果连接成功,则读者可以看到命令行页面,读者在命令行中查看 Docker 的版本信息: + +```sh +$ docker version +``` + +结果如下图示: + +![查看 Docker 版本信息](_images/docker_version.png) + +此时,CoreOS 虚拟机已经成功运行,并且读者可以使用 SSH 客户端方便的操作 CoreOS 虚拟机。 Docker 已经内置于 CoreOS 中,读者可以进行各种 Docker 操作,如下图示: + +![使用 Docker 命令](_images/php_pulling.png) + +如果读者的本机环境是 Linux 系统,读者可以使用 SSH 公钥(在解压后的根目录下),直接使用 `ssh` 命令连接 CoreOS 虚拟机,并使用 `ip a` 命令查看 IP 地址信息。 + +如下所示: + +```sh +$ ssh -i ~/insecure_ssh_key core@192.168.6.153 +CoreOS (alpha) +core@localhost ~ $ ls +core@localhost ~ $ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +core@localhost ~ $ ip a +1: lo: mtu 65536 qdisc noqueue state UNKNOWN + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + inet 127.0.0.1/8 scope host lo + valid_lft forever preferred_lft forever + inet6 ::1/128 scope host + valid_lft forever preferred_lft forever +2: enp0s17: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 + link/ether 00:0c:29:ff:73:46 brd ff:ff:ff:ff:ff:ff + inet 192.168.6.153/20 brd 192.168.15.255 scope global dynamic enp0s17 + valid_lft 604500sec preferred_lft 604500sec + inet6 fe80::20c:29ff:feff:7346/64 scope link + valid_lft forever preferred_lft forever +3: docker0: mtu 1500 qdisc noqueue state DOWN + link/ether 56:84:7a:fe:97:99 brd ff:ff:ff:ff:ff:ff + inet 172.17.42.1/16 scope global docker0 + valid_lft forever preferred_lft forever +core@localhost ~ $ +``` + +### 相关资源 + +* `CoreOS` 官网:`https://coreos.com/` +* `CoreOS` 官方仓库:`https://github.com/coreos/` + diff --git a/cases/os/debian.md b/cases/os/debian.md new file mode 100644 index 000000000..41e986ce6 --- /dev/null +++ b/cases/os/debian.md @@ -0,0 +1,170 @@ +## Debian/Ubuntu +Debian 和 Ubuntu 都是目前较为流行的 Debian 系的服务器操作系统,十分适合研发场景。Docker Hub 上提供了官方镜像,国内各大容器云服务也基本都提供了相应的支持。 + +### Debian 系统简介 + +![Debian 操作系统](_images/debian-logo.png) + +Debian 是由 GPL 和其他自由软件许可协议授权的自由软件组成的操作系统,由Debian 计划(Debian Project)组织维护。Debian 计划是一个独立的、分散的组织,由 3000 人志愿者组成,接受世界多个非盈利组织的资金支持,Software in the Public Interest 提供支持并持有商标作为保护机构。Debian 以其坚守 Unix 和自由软件的精神,以及其给予用户的众多选择而闻名。现时 Debian 包括了超过 25,000 个软件包并支持 12 个计算机系统结构。 + +Debian 作为一个大的系统组织框架,其下有多种不同操作系统核心的分支计划,主要为采用 Linux 核心的 Debian GNU/Linux 系统,其他还有采用 GNU Hurd 核心的 Debian GNU/Hurd 系统、采用 FreeBSD 核心的 Debian GNU/kFreeBSD 系统,以及采用 NetBSD 核心的 Debian GNU/NetBSD 系统。甚至还有利用 Debian 的系统架构和工具,采用 OpenSolaris 核心构建而成的 Nexenta OS 系统。在这些 Debian 系统中,以采用 Linux 核心的 Debian GNU/Linux 最为著名。 + +众多的 Linux 发行版,例如 Ubuntu、Knoppix 和 Linspire 及 Xandros 等,都基于 Debian GNU/Linux。 + +#### 使用 Debian 官方镜像 + +读者可以使用 docker search 搜索 Docker Hub,查找 Debian 镜像: + +```sh +$ docker search debian +NAME DESCRIPTION STARS OFFICIAL AUTOMATED +debian Debian is... 1565 [OK] +neurodebian NeuroDebian... 26 [OK] +armbuild/debian port of debian 8 [OK] +... +``` + +官方提供了大家熟知的 debian 镜像以及面向科研领域的 neurodebian 镜像。 + +可以使用 docker run 直接运行 Debian 镜像。 + +```sh +$ docker run -it debian bash +root@668e178d8d69:/# cat /etc/issue +Debian GNU/Linux 8 +``` + +Debian 镜像很适合作为基础镜像,构建自定义镜像。 + +### Ubuntu 系统简介 + +![Ubuntu 操作系统](_images/ubuntu-logo.jpg) + +Ubuntu 是一个以桌面应用为主的GNU/Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(官方译名“友帮拓”,另有“吾帮托”、“乌班图”、“有奔头”或“乌斑兔”等译名)。Ubuntu 意思是“人性”以及“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。 Ubuntu 基于 Debian 发行版和 GNOME/Unity 桌面环境,与 Debian 的不同在于它每 6 个月会发布一个新版本,每 2 年推出一个长期支持(Long Term Support,LTS)版本,一般支持 3 年时间。 + +#### 使用 Ubuntu 官方镜像 + +Ubuntu 相关的镜像有很多,这里使用 `-s 10` 参数,只搜索那些被收藏 10 次以上的镜像。 + +```sh +$ docker search -s 10 ubuntu + +NAME DESCRIPTION STARS OFFICIAL AUTOMATED +ubuntu Official Ubuntu base image 840 [OK] +dockerfile/ubuntu Trusted automated Ubuntu (http://www.ubunt... 30 [OK] +crashsystems/gitlab-docker A trusted, regularly updated build of GitL... 20 [OK] +sylvainlasnier/memcached This is a Memcached 1.4.14 docker images b... 16 [OK] +ubuntu-upstart Upstart is an event-based replacement for ... 16 [OK] +mbentley/ubuntu-django-uwsgi-nginx 16 [OK] +ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 15 [OK] +clue/ttrss The Tiny Tiny RSS feed reader allows you t... 14 [OK] +dockerfile/ubuntu-desktop Trusted automated Ubuntu Desktop (LXDE) (h... 14 [OK] +tutum/ubuntu Ubuntu image with SSH access. For the root... 12 [OK] +``` +*注意,Docker 1.12 版本中已经不支持 --stars 参数,则可以使用 -f stars=N 参数。* + +根据搜索出来的结果,读者可以自行选择下载镜像并使用。 + +下面以 ubuntu 14.04 为例,演示如何使用该镜像安装一些常用软件。 + +首先使用 `-ti` 参数启动容器,登录 bash,查看 ubuntu 的发行版本号。 + +```sh +$ docker run -ti ubuntu:14.04 /bin/bash +root@7d93de07bf76:/# lsb_release -a +No LSB modules are available. +Distributor ID: Ubuntu +Description: Ubuntu 14.04.1 LTS +Release: 14.04 +Codename: trusty +``` + +当试图直接使用 `apt-get` 安装一个软件的时候,会提示 `E: Unable to locate package`。 + +```sh +root@7d93de07bf76:/# apt-get install curl +Reading package lists... Done +Building dependency tree +Reading state information... Done +E: Unable to locate package curl +``` + +这并非系统不支持 `apt-get` 命令。Docker 镜像在制作时为了精简清除了 apt 仓库信息,因此需要先执行 `apt-get update` 命令来更新仓库信息。更新信息后即可成功通过 apt-get 命令来安装软件。 + +```sh +root@7d93de07bf76:/# apt-get update +Ign http://archive.ubuntu.com trusty InRelease +Ign http://archive.ubuntu.com trusty-updates InRelease +Ign http://archive.ubuntu.com trusty-security InRelease +Ign http://archive.ubuntu.com trusty-proposed InRelease +Get:1 http://archive.ubuntu.com trusty Release.gpg [933 B] +... +``` + +首先,安装 curl 工具。 + +```sh +root@7d93de07bf76:/# apt-get install curl +Reading package lists... Done +Building dependency tree +Reading state information... Done +The following extra packages will be installed: + ca-certificates krb5-locales libasn1-8-heimdal libcurl3 libgssapi-krb5-2 + libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal + libheimntlm0-heimdal libhx509-5-heimdal libidn11 libk5crypto3 libkeyutils1 + libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2 + libroken18-heimdal librtmp0 libsasl2-2 libsasl2-modules libsasl2-modules-db + libwind0-heimdal openssl +... +root@7d93de07bf76:/# curl +curl: try 'curl --help' or 'curl --manual' for more information +``` + +接下来,再安装 apache 服务。 + +```sh +root@7d93de07bf76:/# apt-get install -y apache2 +Reading package lists... Done +Building dependency tree +Reading state information... Done +The following extra packages will be installed: + apache2-bin apache2-data libapr1 libaprutil1 libaprutil1-dbd-sqlite3 + libaprutil1-ldap libxml2 sgml-base ssl-cert xml-core +... +``` + +启动这个 apache 服务,然后使用 curl 来测试本地访问。 + +``` +root@7d93de07bf76:/# service apache2 start + * Starting web server apache2 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message + * +root@7d93de07bf76:/# curl 127.0.0.1 + + + + + + + Apache2 Ubuntu Default Page: It works + -{% endblock %} diff --git a/book.json b/book.json index 855b604c4..07a348b47 100644 --- a/book.json +++ b/book.json @@ -8,6 +8,7 @@ } }, "plugins": [ + "-livereload", "image-captions", "github-buttons", "page-treeview" @@ -20,17 +21,17 @@ "caption": "图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER_ - _CAPTION_" }, "github-buttons": { - "repo": "yeasy/docker_practice", - "types": [ - "star", - "watch" - ], - "size": "small" + "buttons": [{ + "user": "yeasy", + "repo": "docker_practice", + "type": "star", + "size": "small" + }] }, "page-treeview": { "copyright": "Copyright © yeasy", "minHeaderCount": "2", "minHeaderDeep": "2" - } + } } } From 0ac2b50df139f32518972be3f67eda88ca35075d Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 4 Dec 2017 11:49:59 +0800 Subject: [PATCH 231/611] Update .github --- .github/CONTRIBUTING.md | 5 +++-- .github/ISSUE_TEMPLATE.md | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index cab11bcda..f7d3d638a 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,5 +1,6 @@ ## 如何贡献项目 -* 领取或创建新的 [Issue](https://github.com/yeasy/docker_practice/issues),如 [issue 235](https://github.com/yeasy/docker_practice/issues/235),添加自己为 Assignee。 + +* 领取或创建新的 [Issue](https://github.com/yeasy/docker_practice/issues),如 [issue 235](https://github.com/yeasy/docker_practice/issues/235),添加自己为 `Assignee`。 * 在 [GitHub](https://github.com/yeasy/docker_practice/fork) 上 `fork` 到自己的仓库,如 `docker_user/docker_practice`,然后 `clone` 到本地,并设置用户信息。 @@ -19,7 +20,7 @@ $ git push ``` -* 在 [GitHub](https://github.com/yeasy/docker_practice/pulls) 上提交 Pull Request,添加标签,并邀请维护者进行 Review。 +* 在 [GitHub](https://github.com/yeasy/docker_practice/pulls) 上提交 `Pull Request`,添加标签,并邀请维护者进行 `Review`。 * 定期使用项目仓库内容更新自己仓库内容。 diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 8997279d4..85d8009af 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -13,11 +13,12 @@ * [ ] Debian 9 * [ ] macOS * [ ] Windows 10 +* [ ] Raspberry Pi (ARM) * [ ] Others (Pls describe below) ### Docker Version - - + + * [x] 17.11 Edge * [ ] 17.09 Stable From b7900844d25af1dcea712f7e92e65bc4f46f8dac Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 4 Dec 2017 20:49:59 +0800 Subject: [PATCH 232/611] Update SUMMARY #278 --- SUMMARY.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index 9be119c81..7ee07fe28 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -67,20 +67,6 @@ * [工具和示例](advanced_network/example.md) * [编辑网络配置文件](advanced_network/config_file.md) * [实例:创建一个点到点连接](advanced_network/ptp.md) -* [安全](security/README.md) - * [内核命名空间](security/kernel_ns.md) - * [控制组](security/control_group.md) - * [服务端防护](security/daemon_sec.md) - * [内核能力机制](security/kernel_capability.md) - * [其它安全特性](security/other_feature.md) - * [总结](security/summary.md) -* [底层实现](underly/README.md) - * [基本架构](underly/arch.md) - * [命名空间](underly/namespace.md) - * [控制组](underly/cgroups.md) - * [联合文件系统](underly/ufs.md) - * [容器格式](underly/container_format.md) - * [网络](underly/network.md) * [Docker 三剑客之 Compose 项目](compose/README.md) * [简介](compose/introduction.md) * [安装与卸载](compose/install.md) @@ -99,6 +85,20 @@ * [创建 Swarm 集群](swarm_mode/create.md) * [在 Swarm 集群部署服务](swarm_mode/deploy.md) * [在 Swarm 集群中使用 compose 文件](swarm_mode/stack.md) +* [安全](security/README.md) + * [内核命名空间](security/kernel_ns.md) + * [控制组](security/control_group.md) + * [服务端防护](security/daemon_sec.md) + * [内核能力机制](security/kernel_capability.md) + * [其它安全特性](security/other_feature.md) + * [总结](security/summary.md) +* [底层实现](underly/README.md) + * [基本架构](underly/arch.md) + * [命名空间](underly/namespace.md) + * [控制组](underly/cgroups.md) + * [联合文件系统](underly/ufs.md) + * [容器格式](underly/container_format.md) + * [网络](underly/network.md) * [Etcd 项目](etcd/README.md) * [简介](etcd/intro.md) * [安装](etcd/install.md) From 62bf5171e4d1ac39372b06fc227cf8bc0542093d Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 5 Dec 2017 09:22:06 +0800 Subject: [PATCH 233/611] Update container:Change docker ps TO docker container ls,etc #279 --- container/README.md | 2 -- container/daemon.md | 20 +++++--------------- container/enter.md | 14 ++------------ container/import_export.md | 16 ++++++---------- container/rm.md | 16 +++++----------- container/run.md | 24 ++++++++++++------------ container/stop.md | 22 +++++----------------- 7 files changed, 35 insertions(+), 79 deletions(-) diff --git a/container/README.md b/container/README.md index f9efcce42..5d571a9de 100644 --- a/container/README.md +++ b/container/README.md @@ -4,5 +4,3 @@ 简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。 本章将具体介绍如何来管理一个容器,包括创建、启动和停止等。 - -Docker 在 1.13 版本中引进了新的管理命令(management commands),在 Docker 1.13+ 推荐使用 `docker container` 子命令来管理 Docker 容器。 diff --git a/container/daemon.md b/container/daemon.md index 582e2f4a4..c37c14441 100644 --- a/container/daemon.md +++ b/container/daemon.md @@ -27,30 +27,20 @@ $ docker run -d ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep **注:** 容器是否会长久运行,是和 `docker run` 指定的命令有关,和 `-d` 参数无关。 -使用 `-d` 参数启动后会返回一个唯一的 id,也可以通过 `docker ps` 命令来查看容器信息。 +使用 `-d` 参数启动后会返回一个唯一的 id,也可以通过 `docker container ls` 命令来查看容器信息。 -```bash -$ docker ps +``` +$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 77b2dc01fe0f ubuntu:17.10 /bin/sh -c 'while tr 2 minutes ago Up 1 minute agitated_wright ``` -要获取容器的输出信息,可以通过 `docker logs` 命令。 +要获取容器的输出信息,可以通过 `docker container logs` 命令。 ```bash -$ docker logs [container ID or NAMES] +$ docker container logs [container ID or NAMES] hello world hello world hello world . . . ``` - -# Docker 1.13+ - -在 Docker 1.13+ 版本中推荐使用 `docker container` 来管理镜像。 - -```bash -$ docker container run -d -$ docker container ls -$ docker container logs -``` diff --git a/container/enter.md b/container/enter.md index 7df65f431..789a6d03f 100644 --- a/container/enter.md +++ b/container/enter.md @@ -12,7 +12,7 @@ $ docker run -dit ubuntu 243c32535da7d142fb0e6df616a3c3ada0b8ab417937c853a9e1c251f499f550 -$ docker ps +$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 243c32535da7 ubuntu:latest "/bin/bash" 18 seconds ago Up 17 seconds nostalgic_hypatia @@ -36,7 +36,7 @@ root@243c32535da7:/# $ docker run -dit ubuntu 69d137adef7a8a689cbcb059e94da5489d3cddd240ff675c640c8d96e84fe1f6 -$ docker ps +$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 69d137adef7a ubuntu:latest "/bin/bash" 18 seconds ago Up 17 seconds zealous_swirles @@ -54,13 +54,3 @@ root@69d137adef7a:/# 如果从这个 stdin 中 exit,不会导致容器的停止。这就是为什么推荐大家使用 `docker exec` 的原因。 更多参数说明请使用 `docker exec --help` 查看。 - -## Docker 1.13+ - -在 Docker 1.13+ 版本中推荐使用 `docker container` 来管理容器。 - -```bash -$ docker container attach - -$ docker container exec -``` diff --git a/container/import_export.md b/container/import_export.md index 99874db94..866c96476 100644 --- a/container/import_export.md +++ b/container/import_export.md @@ -1,6 +1,7 @@ ## 导出和导入容器 ### 导出容器 + 如果要导出本地某个容器,可以使用 `docker export` 命令。 ```bash $ docker ps -a @@ -8,29 +9,24 @@ CONTAINER ID IMAGE COMMAND CREATED 7691a814370e ubuntu:14.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test $ docker export 7691a814370e > ubuntu.tar ``` + 这样将导出容器快照到本地文件。 ### 导入容器快照 + 可以使用 `docker import` 从容器快照文件中再导入为镜像,例如 + ```bash $ cat ubuntu.tar | docker import - test/ubuntu:v1.0 $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE test/ubuntu v1.0 9d37a6082e97 About a minute ago 171.3 MB ``` + 此外,也可以通过指定 URL 或者某个目录来导入,例如 + ```bash $ docker import http://example.com/exampleimage.tgz example/imagerepo ``` *注:用户既可以使用 `docker load` 来导入镜像存储文件到本地镜像库,也可以使用 `docker import` 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。* - -## Docker 1.13+ - -在 Docker 1.13+ 版本中推荐使用 `docker container` 来管理容器。 - -```bash -$ docker container export - -$ docker image import -``` diff --git a/container/rm.md b/container/rm.md index f54b5f8a7..4de8504b9 100644 --- a/container/rm.md +++ b/container/rm.md @@ -1,24 +1,18 @@ ## 删除容器 -可以使用 `docker rm` 来删除一个处于终止状态的容器。例如 +可以使用 `docker container rm` 来删除一个处于终止状态的容器。例如 + ```bash -$ docker rm trusting_newton +$ docker container rm trusting_newton trusting_newton ``` + 如果要删除一个运行中的容器,可以添加 `-f` 参数。Docker 会发送 `SIGKILL` 信号给容器。 ## 清理所有处于终止状态的容器 -用 `docker ps -a` 命令可以查看所有已经创建的包括终止状态的容器,如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器。 +用 `docker container ls -a` 命令可以查看所有已经创建的包括终止状态的容器,如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器。 ```bash $ docker container prune ``` - -## Docker 1.13+ - -在 Docker 1.13+ 版本中推荐使用 `docker container` 来管理容器。 - -```bash -$ docker container rm trusting_newton -``` diff --git a/container/run.md b/container/run.md index 10019f313..2314b9207 100644 --- a/container/run.md +++ b/container/run.md @@ -1,26 +1,33 @@ ## 启动容器 -启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。 + +启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(`stopped`)的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 ### 新建并启动 + 所需要的命令主要为 `docker run`。 例如,下面的命令输出一个 “Hello World”,之后终止容器。 + ```bash $ docker run ubuntu:14.04 /bin/echo 'Hello world' Hello world ``` + 这跟在本地直接执行 `/bin/echo 'hello world'` 几乎感觉不出任何区别。 下面的命令则启动一个 bash 终端,允许用户进行交互。 + ```bash $ docker run -t -i ubuntu:14.04 /bin/bash root@af8bae53bdd3:/# ``` + 其中,`-t` 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, `-i` 则让容器的标准输入保持打开。 在交互模式下,用户可以通过所创建的终端来输入命令,例如 + ```bash root@af8bae53bdd3:/# pwd / @@ -39,23 +46,16 @@ bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr * 执行完毕后容器被终止 ### 启动已终止容器 -可以利用 `docker start` 命令,直接将一个已经终止的容器启动运行。 + +可以利用 `docker container start` 命令,直接将一个已经终止的容器启动运行。 容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。除此之外,并没有其它的资源。可以在伪终端中利用 `ps` 或 `top` 来查看进程信息。 + ```bash root@ba267838cc1b:/# ps PID TTY TIME CMD 1 ? 00:00:00 bash 11 ? 00:00:00 ps ``` -可见,容器中仅运行了指定的 bash 应用。这种特点使得 Docker 对资源的利用率极高,是货真价实的轻量级虚拟化。 - -## Docker 1.13+ - -在 Docker 1.13+ 版本中推荐使用 `docker container` 来管理容器。 -```bash -$ docker container run ubuntu:17.10 /bin/echo 'Hello world' - -$ docker container start -``` +可见,容器中仅运行了指定的 bash 应用。这种特点使得 Docker 对资源的利用率极高,是货真价实的轻量级虚拟化。 diff --git a/container/stop.md b/container/stop.md index 611316157..b4e358f4d 100644 --- a/container/stop.md +++ b/container/stop.md @@ -1,12 +1,12 @@ ## 终止容器 -可以使用 `docker stop` 来终止一个运行中的容器。 +可以使用 `docker container stop` 来终止一个运行中的容器。 -此外,当Docker容器中指定的应用终结时,容器也自动终止。 +此外,当 Docker 容器中指定的应用终结时,容器也自动终止。 例如对于上一章节中只启动了一个终端的容器,用户通过 `exit` 命令或 `Ctrl+d` 来退出终端时,所创建的容器立刻终止。 -终止状态的容器可以用 `docker ps -a` 命令看到。例如 +终止状态的容器可以用 `docker container ls -a` 命令看到。例如 ```bash docker ps -a @@ -15,18 +15,6 @@ ba267838cc1b ubuntu:14.04 "/bin/bash" 30 minutes a 98e5efa7d997 training/webapp:latest "python app.py" About an hour ago Exited (0) 34 minutes ago backstabbing_pike ``` -处于终止状态的容器,可以通过 `docker start` 命令来重新启动。 +处于终止状态的容器,可以通过 `docker container start` 命令来重新启动。 -此外,`docker restart` 命令会将一个运行态的容器终止,然后再重新启动它。 - -## Docker 1.13+ - -在 Docker 1.13+ 版本中推荐使用 `docker container` 来管理容器。 - -```bash -$ docker container ls - -$ docker container start - -$ docker container restart -``` +此外,`docker container restart` 命令会将一个运行态的容器终止,然后再重新启动它。 From 94df5237a68d5860fa4422007f8f3c3b2bd29a0b Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 5 Dec 2017 09:40:50 +0800 Subject: [PATCH 234/611] Update image:Change docker images TO docker image ls,etc #279 --- SUMMARY.md | 2 +- image/README.md | 2 -- image/build.md | 8 -------- image/commit.md | 4 ++-- image/internal.md | 2 ++ image/list.md | 42 +++++++++++++++----------------------- image/multistage-builds.md | 4 ++-- image/other.md | 16 +++------------ image/pull.md | 14 +------------ image/{rmi.md => rm.md} | 40 +++++++++++------------------------- 10 files changed, 40 insertions(+), 94 deletions(-) rename image/{rmi.md => rm.md} (86%) diff --git a/SUMMARY.md b/SUMMARY.md index 7ee07fe28..76d602a96 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -39,7 +39,7 @@ * [参考文档](image/dockerfile/references.md) * [Dockerfile 多阶段构建](image/multistage-builds.md) * [其它制作镜像的方式](image/other.md) - * [删除本地镜像](image/rmi.md) + * [删除本地镜像](image/rm.md) * [实现原理](image/internal.md) * [操作容器](container/README.md) * [启动](container/run.md) diff --git a/image/README.md b/image/README.md index b9563f299..ddc4c52de 100644 --- a/image/README.md +++ b/image/README.md @@ -11,5 +11,3 @@ Docker 运行容器前需要本地存在对应的镜像,如果本地不存在 * 管理本地主机上的镜像; * 介绍镜像实现的基本原理。 - -Docker 在 1.13 版本引进了新的管理命令(management commands),在 Docker 1.13+ 推荐使用 `docker image` 子命令来管理 Docker 镜像。 diff --git a/image/build.md b/image/build.md index 1680d9d68..88a8254cb 100644 --- a/image/build.md +++ b/image/build.md @@ -218,11 +218,3 @@ $ docker build - < context.tar.gz ``` 如果发现标准输入的文件格式是 `gzip`、`bzip2` 以及 `xz` 的话,将会使其为上下文压缩包,直接将其展开,将里面视为上下文,并开始构建。 - -# Docker 1.13+ - -在 Docker 1.13+ 版本中推荐使用 `docker image` 来管理镜像。 - -```bash -$ docker image build -``` diff --git a/image/commit.md b/image/commit.md index 074c5c1f8..68ae6a64a 100644 --- a/image/commit.md +++ b/image/commit.md @@ -82,10 +82,10 @@ sha256:07e33465974800ce65751acc279adc6ed2dc5ed4e0838f8b86f0c87aa1795214 其中 `--author` 是指定修改的作者,而 `--message` 则是记录本次修改的内容。这点和 `git` 版本控制相似,不过这里这些信息可以省略留空。 -我们可以在 `docker images` 中看到这个新定制的镜像: +我们可以在 `docker image ls` 中看到这个新定制的镜像: ```bash -$ docker images nginx +$ docker image ls nginx REPOSITORY TAG IMAGE ID CREATED SIZE nginx v2 07e334659748 9 seconds ago 181.5 MB nginx 1.11 05a60462f8ba 12 days ago 181.5 MB diff --git a/image/internal.md b/image/internal.md index 66fc1111b..e2b4849bd 100644 --- a/image/internal.md +++ b/image/internal.md @@ -1,7 +1,9 @@ ## 镜像的实现原理 Docker 镜像是怎么实现增量的修改和维护的? + 每个镜像都由很多层次构成,Docker 使用 [Union FS](http://en.wikipedia.org/wiki/UnionFS) 将这些不同的层结合到一个镜像中去。 通常 Union FS 有两个用途, 一方面可以实现不借助 LVM、RAID 将多个 disk 挂到同一个目录下,另一个更常用的就是将一个只读的分支和一个可写的分支联合在一起,Live CD 正是基于此方法可以允许在镜像不变的基础上允许用户在其上进行一些写操作。 + Docker 在 AUFS 上构建的容器也是利用了类似的原理。 diff --git a/image/list.md b/image/list.md index 719911350..4c3e9e74c 100644 --- a/image/list.md +++ b/image/list.md @@ -1,9 +1,9 @@ ## 列出镜像 -要想列出已经下载下来的镜像,可以使用 `docker images` 命令。 +要想列出已经下载下来的镜像,可以使用 `docker image ls` 命令。 ```bash -$ docker images +$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 5f515359c7f8 5 days ago 183 MB nginx latest 05a60462f8ba 5 days ago 181 MB @@ -20,9 +20,9 @@ ubuntu 14.04 1e0c3dd64ccd 4 weeks ago ### 镜像体积 -如果仔细观察,会注意到,这里标识的所占用空间和在 Docker Hub 上看到的镜像大小不同。比如,`ubuntu:16.04` 镜像大小,在这里是 `127 MB`,但是在 [Docker Hub](https://hub.docker.com/r/library/ubuntu/tags/) 显示的却是 `50 MB`。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的大小是网络传输中更关心的流量大小。而 `docker images` 显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。 +如果仔细观察,会注意到,这里标识的所占用空间和在 Docker Hub 上看到的镜像大小不同。比如,`ubuntu:16.04` 镜像大小,在这里是 `127 MB`,但是在 [Docker Hub](https://hub.docker.com/r/library/ubuntu/tags/) 显示的却是 `50 MB`。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的大小是网络传输中更关心的流量大小。而 `docker image ls` 显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。 -另外一个需要注意的问题是,`docker images` 列表中的镜像体积总和并非是所有镜像实际硬盘消耗。由于 Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于 Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多。 +另外一个需要注意的问题是,`docker image ls` 列表中的镜像体积总和并非是所有镜像实际硬盘消耗。由于 Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于 Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多。 你可以通过以下命令来便捷的查看镜像、容器、数据卷所占用的空间。 @@ -47,7 +47,7 @@ Build Cache 0B 这个镜像原本是有镜像名和标签的,原来为 `mongo:3.2`,随着官方镜像维护,发布了新版本后,重新 `docker pull mongo:3.2` 时,`mongo:3.2` 这个镜像名被转移到了新下载的镜像身上,而旧的镜像上的这个名称则被取消,从而成为了 ``。除了 `docker pull` 可能导致这种情况,`docker build` 也同样可以导致这种现象。由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 `` 的镜像。这类无标签镜像也被称为 **虚悬镜像(dangling image)** ,可以用下面的命令专门显示这类镜像: ```bash -$ docker images -f dangling=true +$ docker image ls -f dangling=true REPOSITORY TAG IMAGE ID CREATED SIZE 00285df0df87 5 days ago 342 MB ``` @@ -60,22 +60,22 @@ $ docker image prune ### 中间层镜像 -为了加速镜像构建、重复利用资源,Docker 会利用 **中间层镜像**。所以在使用一段时间后,可能会看到一些依赖的中间层镜像。默认的 `docker images` 列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像的话,需要加 `-a` 参数。 +为了加速镜像构建、重复利用资源,Docker 会利用 **中间层镜像**。所以在使用一段时间后,可能会看到一些依赖的中间层镜像。默认的 `docker image ls` 列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像的话,需要加 `-a` 参数。 ```bash -$ docker images -a +$ docker image ls -a ``` 这样会看到很多无标签的镜像,与之前的虚悬镜像不同,这些无标签的镜像很多都是中间层镜像,是其它镜像所依赖的镜像。这些无标签镜像不应该删除,否则会导致上层镜像因为依赖丢失而出错。实际上,这些镜像也没必要删除,因为之前说过,相同的层只会存一遍,而这些镜像是别的镜像的依赖,因此并不会因为它们被列出来而多存了一份,无论如何你也会需要它们。只要删除那些依赖它们的镜像后,这些依赖的中间层镜像也会被连带删除。 ### 列出部分镜像 -不加任何参数的情况下,`docker images` 会列出所有顶级镜像,但是有时候我们只希望列出部分镜像。`docker images` 有好几个参数可以帮助做到这个事情。 +不加任何参数的情况下,`docker image ls` 会列出所有顶级镜像,但是有时候我们只希望列出部分镜像。`docker image ls` 有好几个参数可以帮助做到这个事情。 根据仓库名列出镜像 ```bash -$ docker images ubuntu +$ docker image ls ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 16.04 f753707788c5 4 weeks ago 127 MB ubuntu latest f753707788c5 4 weeks ago 127 MB @@ -85,15 +85,15 @@ ubuntu 14.04 1e0c3dd64ccd 4 weeks ago 列出特定的某个镜像,也就是说指定仓库名和标签 ```bash -$ docker images ubuntu:16.04 +$ docker image ls ubuntu:16.04 REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 16.04 f753707788c5 4 weeks ago 127 MB ``` -除此以外,`docker images` 还支持强大的过滤器参数 `--filter`,或者简写 `-f`。之前我们已经看到了使用过滤器来列出虚悬镜像的用法,它还有更多的用法。比如,我们希望看到在 `mongo:3.2` 之后建立的镜像,可以用下面的命令: +除此以外,`docker image ls` 还支持强大的过滤器参数 `--filter`,或者简写 `-f`。之前我们已经看到了使用过滤器来列出虚悬镜像的用法,它还有更多的用法。比如,我们希望看到在 `mongo:3.2` 之后建立的镜像,可以用下面的命令: ```bash -$ docker images -f since=mongo:3.2 +$ docker image ls -f since=mongo:3.2 REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 5f515359c7f8 5 days ago 183 MB nginx latest 05a60462f8ba 5 days ago 181 MB @@ -104,16 +104,16 @@ nginx latest 05a60462f8ba 5 days ago 此外,如果镜像构建时,定义了 `LABEL`,还可以通过 `LABEL` 来过滤。 ```bash -$ docker images -f label=com.example.version=0.1 +$ docker image ls -f label=com.example.version=0.1 ... ``` ### 以特定格式显示 -默认情况下,`docker images` 会输出一个完整的表格,但是我们并非所有时候都会需要这些内容。比如,刚才删除虚悬镜像的时候,我们需要利用 `docker images` 把所有的虚悬镜像的 ID 列出来,然后才可以交给 `docker rmi` 命令作为参数来删除指定的这些镜像,这个时候就用到了 `-q` 参数。 +默认情况下,`docker image ls` 会输出一个完整的表格,但是我们并非所有时候都会需要这些内容。比如,刚才删除虚悬镜像的时候,我们需要利用 `docker image ls` 把所有的虚悬镜像的 ID 列出来,然后才可以交给 `docker image rm` 命令作为参数来删除指定的这些镜像,这个时候就用到了 `-q` 参数。 ```bash -$ docker images -q +$ docker image ls -q 5f515359c7f8 05a60462f8ba fe9198c04d62 @@ -130,7 +130,7 @@ f753707788c5 比如,下面的命令会直接列出镜像结果,并且只包含镜像ID和仓库名: ```bash -$ docker images --format "{{.ID}}: {{.Repository}}" +$ docker image ls --format "{{.ID}}: {{.Repository}}" 5f515359c7f8: redis 05a60462f8ba: nginx fe9198c04d62: mongo @@ -143,7 +143,7 @@ f753707788c5: ubuntu 或者打算以表格等距显示,并且有标题行,和默认一样,不过自己定义列: ```bash -$ docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" +$ docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" IMAGE ID REPOSITORY TAG 5f515359c7f8 redis latest 05a60462f8ba nginx latest @@ -153,11 +153,3 @@ f753707788c5 ubuntu 16.04 f753707788c5 ubuntu latest 1e0c3dd64ccd ubuntu 14.04 ``` - -## Docker 1.13+ - -在 Docker 1.13+ 版本中推荐使用 `docker image` 来管理镜像。 - -```bash -$ docker image ls -``` diff --git a/image/multistage-builds.md b/image/multistage-builds.md index 97be68f02..44a93d8bb 100644 --- a/image/multistage-builds.md +++ b/image/multistage-builds.md @@ -118,7 +118,7 @@ $ ./build.sh 对比两种方式生成的镜像大小 ```bash -$ docker images +$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE go/helloworld 2 f7cf3465432c 22 seconds ago 6.47MB @@ -166,7 +166,7 @@ $ docker build -t go/helloworld:3 . 对比三个镜像大小 ```bash -$ docker images +$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE go/helloworld 3 d6911ed9c846 7 seconds ago 6.47MB diff --git a/image/other.md b/image/other.md index 2ce3db17d..97c234b4d 100644 --- a/image/other.md +++ b/image/other.md @@ -20,10 +20,10 @@ sha256:f477a6e18e989839d25223f301ef738b69621c4877600ae6467c4e5289822a79B/78.42 M 这条命令自动下载了 `ubuntu-14.04-x86_64-minimal.tar.gz` 文件,并且作为根文件系统展开导入,并保存为镜像 `openvz/ubuntu:14.04`。 -导入成功后,我们可以用 `docker images` 看到这个导入的镜像: +导入成功后,我们可以用 `docker image ls` 看到这个导入的镜像: ```bash -$ docker images openvz/ubuntu +$ docker image ls openvz/ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE openvz/ubuntu 14.04 f477a6e18e98 55 seconds ago 214.9 MB ``` @@ -47,7 +47,7 @@ Docker 还提供了 `docker load` 和 `docker save` 命令,用以将镜像保 比如我们希望保存这个 `alpine` 镜像。 ```bash -$ docker images alpine +$ docker image ls alpine REPOSITORY TAG IMAGE ID CREATED SIZE alpine latest baa5d63471ea 5 weeks ago 4.803 MB ``` @@ -70,13 +70,3 @@ Loaded image: alpine:latest ```bash docker save <镜像名> | bzip2 | pv | ssh <用户名>@<主机名> 'cat | docker load' ``` - -## Docker 1.13+ - -在 Docker 1.13+ 版本中推荐使用 `docker image` 来管理镜像。 - -```bash -$ docker image import -$ docker image load -$ docker image save -``` diff --git a/image/pull.md b/image/pull.md index fd3fae3d3..5daf529f1 100644 --- a/image/pull.md +++ b/image/pull.md @@ -5,7 +5,7 @@ 从 Docker 镜像仓库获取镜像的命令是 `docker pull`。其命令格式为: ```bash -docker pull [选项] [Docker Registry地址]<仓库名>:<标签> +docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] ``` 具体的选项可以通过 `docker pull --help` 命令看到,这里我们说一下镜像名称的格式。 @@ -66,15 +66,3 @@ BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" 进入容器后,我们可以在 Shell 下操作,执行任何所需的命令。这里,我们执行了 `cat /etc/os-release`,这是 Linux 常用的查看当前系统版本的命令,从返回的结果可以看到容器内是 `Ubuntu 16.04.4 LTS` 系统。 最后我们通过 `exit` 退出了这个容器。 - -## Docker 1.13+ - -在 Docker 1.13+ 版本中推荐使用 `docker image` 来管理镜像。 - -```bash -$ docker image pull ubunut:17.10 - -$ docker container run -it --rm \ - ubuntu:17.10 \ - bash -``` diff --git a/image/rmi.md b/image/rm.md similarity index 86% rename from image/rmi.md rename to image/rm.md index e18d59ccb..5ea41f9dd 100644 --- a/image/rmi.md +++ b/image/rm.md @@ -1,13 +1,11 @@ ## 删除本地镜像 -如果要删除本地的镜像,可以使用 `docker rmi` 命令,其格式为: +如果要删除本地的镜像,可以使用 `docker image rm` 命令,其格式为: ```bash -docker rmi [选项] <镜像1> [<镜像2> ...] +$ docker image rm [选项] <镜像1> [<镜像2> ...] ``` -*注意 `docker rm` 命令是删除容器,不要混淆。* - ### 用 ID、镜像名、摘要删除镜像 其中,`<镜像>` 可以是 `镜像短 ID`、`镜像长 ID`、`镜像名` 或者 `镜像摘要`。 @@ -15,7 +13,7 @@ docker rmi [选项] <镜像1> [<镜像2> ...] 比如我们有这么一些镜像: ```bash -$ docker images +$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 0584b3d2cf6d 3 weeks ago 196.5 MB redis alpine 501ad78535f0 3 weeks ago 21.03 MB @@ -23,12 +21,12 @@ docker latest cf693ec9b5c7 3 weeks ago nginx latest e43d811ce2f4 5 weeks ago 181.5 MB ``` -我们可以用镜像的完整 ID,也称为 `长 ID`,来删除镜像。使用脚本的时候可能会用长 ID,但是人工输入就太累了,所以更多的时候是用 `短 ID` 来删除镜像。`docker images` 默认列出的就已经是短 ID 了,一般取前3个字符以上,只要足够区分于别的镜像就可以了。 +我们可以用镜像的完整 ID,也称为 `长 ID`,来删除镜像。使用脚本的时候可能会用长 ID,但是人工输入就太累了,所以更多的时候是用 `短 ID` 来删除镜像。`docker image ls` 默认列出的就已经是短 ID 了,一般取前3个字符以上,只要足够区分于别的镜像就可以了。 比如这里,如果我们要删除 `redis:alpine` 镜像,可以执行: ```bash -$ docker rmi 501 +$ docker image rm 501 Untagged: redis:alpine Untagged: redis@sha256:f1ed3708f538b537eb9c2a7dd50dc90a706f7debd7e1196c9264edeea521a86d Deleted: sha256:501ad78535f015d88872e13fa87a828425117e3d28075d0c117932b05bf189b7 @@ -42,7 +40,7 @@ Deleted: sha256:4fc455b921edf9c4aea207c51ab39b10b06540c8b4825ba57b3feed1668fa7c7 我们也可以用`镜像名`,也就是 `<仓库名>:<标签>`,来删除镜像。 ```bash -$ docker rmi centos +$ docker image rm centos Untagged: centos:latest Untagged: centos@sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c Deleted: sha256:0584b3d2cf6d235ee310cf14b54667d889887b838d3f3d3033acd70fc3c48b8a @@ -52,11 +50,11 @@ Deleted: sha256:97ca462ad9eeae25941546209454496e1d66749d53dfa2ee32bf1faabd239d38 当然,更精确的是使用 `镜像摘要` 删除镜像。 ```bash -$ docker images --digests +$ docker image ls --digests REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE node slim sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228 6e0c4c8e3913 3 weeks ago 214 MB -$ docker rmi node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228 +$ docker image rm node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228 Untagged: node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228 ``` @@ -70,26 +68,20 @@ Untagged: node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b16442 除了镜像依赖以外,还需要注意的是容器对镜像的依赖。如果有用这个镜像启动的容器存在(即使容器没有运行),那么同样不可以删除这个镜像。之前讲过,容器是以镜像为基础,再加一层容器存储层,组成这样的多层存储结构去运行的。因此该镜像如果被这个容器所依赖的,那么删除必然会导致故障。如果这些容器是不需要的,应该先将它们删除,然后再来删除镜像。 -### 用 docker images 命令来配合 - -像其它可以承接多个实体的命令一样,可以使用 `docker images -q` 来配合使用 `docker rmi`,这样可以成批的删除希望删除的镜像。比如之前我们介绍过的,删除虚悬镜像的指令是: - -```bash -$ docker rmi $(docker images -q -f dangling=true) -``` +### 用 docker image ls 命令来配合 -我们在“镜像列表”章节介绍过很多过滤镜像列表的方式都可以拿过来使用。 +像其它可以承接多个实体的命令一样,可以使用 `docker image ls -q` 来配合使用 `docker image rm`,这样可以成批的删除希望删除的镜像。我们在“镜像列表”章节介绍过很多过滤镜像列表的方式都可以拿过来使用。 比如,我们需要删除所有仓库名为 `redis` 的镜像: ```bash -$ docker rmi $(docker images -q redis) +$ docker image rm $(docker image ls -q redis) ``` 或者删除所有在 `mongo:3.2` 之前的镜像: ```bash -$ docker rmi $(docker images -q -f before=mongo:3.2) +$ docker image rm $(docker image ls -q -f before=mongo:3.2) ``` 充分利用你的想象力和 Linux 命令行的强大,你可以完成很多非常赞的功能。 @@ -103,11 +95,3 @@ $ docker rmi $(docker images -q -f before=mongo:3.2) 所以对于 CentOS/RHEL 的用户来说,在没有办法使用 `UnionFS` 的情况下,一定要配置 `direct-lvm` 给 `devicemapper`,无论是为了性能、稳定性还是空间利用率。 *或许有人注意到了 CentOS 7 中存在被 backports 回来的 `overlay` 驱动,不过 CentOS 里的这个驱动达不到生产环境使用的稳定程度,所以不推荐使用。* - -## Docker 1.13+ - -在 Docker 1.13+ 版本中推荐使用 `docker image` 来管理镜像。 - -```bash -$ docker image rm -``` From 4958b227d7929ae8482001e629b24baf760220e9 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 5 Dec 2017 11:03:39 +0800 Subject: [PATCH 235/611] Update network:Change --net TO --network --- network/README.md | 2 -- network/linking.md | 6 ++++-- network/port_mapping.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/network/README.md b/network/README.md index 55a455691..d1b7dcf87 100644 --- a/network/README.md +++ b/network/README.md @@ -1,5 +1,3 @@ # Docker 中的网络功能介绍 Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。 - -Docker 在 1.13 版本引进了新的管理命令(management commands),在 Docker 1.13+ 推荐使用 `docker network` 子命令来管理 Docker 网络。 diff --git a/network/linking.md b/network/linking.md index ea42c6a3e..a4319a537 100644 --- a/network/linking.md +++ b/network/linking.md @@ -19,18 +19,20 @@ $ docker network create -d bridge my-net 运行一个容器并连接到新建的 `my-net` 网络 ```bash -$ docker run -it --rm --name busybox1 --net my-net busybox sh +$ docker run -it --rm --name busybox1 --network my-net busybox sh ``` 打开新的终端,再运行一个容器并加入到 `my-net` 网络 ```bash -$ docker run -it --rm --name busybox2 --net my-net busybox sh +$ docker run -it --rm --name busybox2 --network my-net busybox sh ``` 再打开一个新的终端查看容器信息 ```bash +$ docker container ls + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b47060aca56b busybox "sh" 11 minutes ago Up 11 minutes busybox2 8720575823ec busybox "sh" 16 minutes ago Up 16 minutes busybox1 diff --git a/network/port_mapping.md b/network/port_mapping.md index 028175466..1fff0972a 100644 --- a/network/port_mapping.md +++ b/network/port_mapping.md @@ -4,7 +4,7 @@ 当使用 `-P` 标记时,Docker 会随机映射一个 `49000~49900` 的端口到内部容器开放的网络端口。 -使用 `docker ps` 可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。 +使用 `docker container ls` 可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。 ```bash $ docker run -d -P training/webapp python app.py From 3aecfc8b5452daf790dd536b6824eb89130fd9cb Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 5 Dec 2017 11:14:56 +0800 Subject: [PATCH 236/611] Update container:Change docker images TO docker image ls #279 --- container/import_export.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/container/import_export.md b/container/import_export.md index 866c96476..1ee0886c8 100644 --- a/container/import_export.md +++ b/container/import_export.md @@ -18,7 +18,7 @@ $ docker export 7691a814370e > ubuntu.tar ```bash $ cat ubuntu.tar | docker import - test/ubuntu:v1.0 -$ docker images +$ docker image ls REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE test/ubuntu v1.0 9d37a6082e97 About a minute ago 171.3 MB ``` From edd4464176aa71f0fad9c3dc2c1a8c85ae965c0f Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 5 Dec 2017 11:15:24 +0800 Subject: [PATCH 237/611] Update Registry AND #279 --- repository/dockerhub.md | 2 +- repository/registry.md | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/repository/dockerhub.md b/repository/dockerhub.md index ebc1a2a50..80f366b52 100644 --- a/repository/dockerhub.md +++ b/repository/dockerhub.md @@ -60,7 +60,7 @@ Pulling repository centos ```bash $ docker tag ubuntu:17.10 username/ubuntu:17.10 -$ docker images +$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 17.10 275d79972a86 6 days ago 94.6MB diff --git a/repository/registry.md b/repository/registry.md index 6ab060bf8..51d68c42a 100644 --- a/repository/registry.md +++ b/repository/registry.md @@ -32,16 +32,18 @@ $ docker run -d \ 先在本机查看已有的镜像。 ```bash -$ docker images +$ docker image ls REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB ``` -使用 `docker tag` 将 `ubuntu:latest` 这个镜像标记为 `127.0.0.1:5000/ubuntu:latest`(格式为 `docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]`)。 +使用 `docker tag` 将 `ubuntu:latest` 这个镜像标记为 `127.0.0.1:5000/ubuntu:latest`。 + +格式为 `docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]`。 ```bash $ docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest -$ docker images +$ docker image ls REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB 127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB @@ -73,7 +75,7 @@ $ curl 127.0.0.1:5000/v2/_catalog 先删除已有镜像,再尝试从私有仓库中下载这个镜像。 ```bash -$ docker rmi 127.0.0.1:5000/ubuntu:latest +$ docker image rm 127.0.0.1:5000/ubuntu:latest $ docker pull 127.0.0.1:5000/ubuntu:latest Pulling repository 127.0.0.1:5000/ubuntu:latest @@ -84,7 +86,7 @@ ba5877dc9bec: Download complete ebc34468f71d: Download complete 2318d26665ef: Download complete -$ docker images +$ docker image ls REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE 127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB ``` From 3a09552f975e57156a8231a78e459e27f66fee6c Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 5 Dec 2017 11:15:59 +0800 Subject: [PATCH 238/611] Update: #279 --- cases/os/busybox.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/os/busybox.md b/cases/os/busybox.md index 6364dce5a..188e33157 100644 --- a/cases/os/busybox.md +++ b/cases/os/busybox.md @@ -39,7 +39,7 @@ Status: Downloaded newer image for busybox:latest 下载后,可以看到 busybox 镜像只有2.433 MB: ```bash -$ docker images +$ docker image ls REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE busybox latest e72ac664f4f0 6 weeks ago 2.433 MB ``` From de1be5e574bab7ca065b92dc83bcb62be2c7c1ce Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 5 Dec 2017 11:16:51 +0800 Subject: [PATCH 239/611] Update revision --- revision.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/revision.md b/revision.md index 515529578..cbc2e537f 100644 --- a/revision.md +++ b/revision.md @@ -6,15 +6,23 @@ * 0.9-rc2: 2017-12-10 - * 更新 `CoreOS` 章节 + * 增加 Docker 中文资源链接 + * 增加介绍基于 Docker 的 CI/CD 工具 `Drone` + * 增加 `docker secret` 相关内容 + * 更新 `CoreOS` 章节 * 更新 `etcd` 章节,基于 3.x 版本 - * 增加 Docker 中文资源链接 - - * 增加介绍基于 Docker 的 CI/CD 工具 Drone + * 删除 `Docker Compose` 中的 `links`指令 * 替换 `docker daemon` 命令为 `dockerd` + * 替换 `docker ps` 命令为 `docker container ls` + * 替换 `docker images` 命令为 `docker image ls` + + * 优化文字排版 + * 调整目录结构 + * 修复内容逻辑错误 + * 修复`404` 链接 * 0.9-rc1: 2017-11-29 @@ -37,8 +45,8 @@ * 精简 `Docker Registry` 一节 * 替换 `docker run` `-v` 参数为 `--mount` - * 替换 `404` 链接 + * 修复 `404` 链接 * 优化文字排版 * 增加离线阅读功能 From 240c26edf83a1b56a64fff88fce88c29a4ff5c68 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 5 Dec 2017 11:33:33 +0800 Subject: [PATCH 240/611] Change revision.md to CHANGELOG.md AND Move CONTRIBUTING.md to root --- revision.md => CHANGELOG.md | 0 .github/CONTRIBUTING.md => CONTRIBUTING.md | 0 SUMMARY.md | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename revision.md => CHANGELOG.md (100%) rename .github/CONTRIBUTING.md => CONTRIBUTING.md (100%) diff --git a/revision.md b/CHANGELOG.md similarity index 100% rename from revision.md rename to CHANGELOG.md diff --git a/.github/CONTRIBUTING.md b/CONTRIBUTING.md similarity index 100% rename from .github/CONTRIBUTING.md rename to CONTRIBUTING.md diff --git a/SUMMARY.md b/SUMMARY.md index 76d602a96..4f5f17244 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,8 +1,8 @@ # [Docker — 从入门到实践](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) * [前言](README.md) -* [修订记录](revision.md) -* [如何贡献](.github/CONTRIBUTING.md) +* [修订记录](CHANGELOG.md) +* [如何贡献](CONTRIBUTING.md) * [Docker 简介](introduction/README.md) * [什么是 Docker](introduction/what.md) * [为什么要用 Docker](introduction/why.md) From 90b6d52969af747c8ca60ca62fbae81878116231 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 5 Dec 2017 12:36:26 +0800 Subject: [PATCH 241/611] Change revision.md to CHANGELOG.md AND Move CONTRIBUTING.md to root --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e3c7a9e4e..0d2fb1bed 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,9 @@ * pdf 版本 [下载](https://www.gitbook.com/download/pdf/book/yeasy/docker_practice) * epub 版本 [下载](https://www.gitbook.com/download/epub/book/yeasy/docker_practice) -Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新版的 Docker (v17.x) 进行学习实践。欢迎 [参与维护项目](.github/CONTRIBUTING.md)。 +Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新版的 Docker (v17.x) 进行学习实践。欢迎 [参与维护项目](CONTRIBUTING.md)。 -* [修订记录](revision.md) +* [修订记录](CHANGELOG.md) * [贡献者名单](https://github.com/yeasy/docker_practice/graphs/contributors) ## 技术交流 From 8e31d114f8092ffe661c37dbd9d62d6a39e108e4 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 5 Dec 2017 13:04:01 +0800 Subject: [PATCH 242/611] Add docker-library/docs in dockerfile/references.md --- image/dockerfile/references.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/image/dockerfile/references.md b/image/dockerfile/references.md index ba465c8a6..4e0bd84f4 100644 --- a/image/dockerfile/references.md +++ b/image/dockerfile/references.md @@ -1,4 +1,7 @@ ### 参考文档 -* Dockerfie 官方文档: -* Dockerfile 最佳实践文档: +* `Dockerfie` 官方文档:https://docs.docker.com/engine/reference/builder/ + +* `Dockerfile` 最佳实践文档:https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/ + +* `Docker` 官方镜像 `Dockerfile`:https://github.com/docker-library/docs From 79adc251a6242f92e68ca786a4fd815bcc19e848 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 6 Dec 2017 13:23:22 +0800 Subject: [PATCH 243/611] Add docker secret #285 --- SUMMARY.md | 5 +-- swarm_mode/secret.md | 83 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 swarm_mode/secret.md diff --git a/SUMMARY.md b/SUMMARY.md index 4f5f17244..addc69f39 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -83,8 +83,9 @@ * [Swarm mode](swarm_mode/README.md) * [基本概念](swarm_mode/overview.md) * [创建 Swarm 集群](swarm_mode/create.md) - * [在 Swarm 集群部署服务](swarm_mode/deploy.md) - * [在 Swarm 集群中使用 compose 文件](swarm_mode/stack.md) + * [部署服务](swarm_mode/deploy.md) + * [使用 compose 文件](swarm_mode/stack.md) + * [管理敏感数据](swarm_mode/secret.md) * [安全](security/README.md) * [内核命名空间](security/kernel_ns.md) * [控制组](security/control_group.md) diff --git a/swarm_mode/secret.md b/swarm_mode/secret.md new file mode 100644 index 000000000..e9d9a0d65 --- /dev/null +++ b/swarm_mode/secret.md @@ -0,0 +1,83 @@ +## 在 Swarm 集群中管理敏感数据 + +在动态的、大规模的分布式集群上,管理和分发 `密码`、`证书` 等敏感信息是极其重要的工作。传统的密钥分发方式(如密钥放入镜像中,设置环境变量,volume 动态挂载等)都存在着潜在的巨大的安全风险。 + +Docker 目前已经提供了 `secrets` 管理功能,用户可以在 Swarm 集群中安全地管理密码、密钥证书等敏感数据,并允许在多个 Docker 容器实例之间共享访问指定的敏感数据。 + +我们可以用 `docker secret` 命令来管理敏感信息。接下来我们在上面章节中创建好的 Swarm 集群中介绍该命令的使用。 + +这里我们以在 Swarm 集群中部署 `mysql` 和 `wordpress` 服务为例。 + +### 创建 secret + +我们使用 `docker secret create` 命令以管道符的形式创建 `secret` + +```bash +$ openssl rand -base64 20 | docker secret create mysql_password - + +$ openssl rand -base64 20 | docker secret create mysql_root_password - +``` + +### 查看 secret + +使用 `docker secret ls` 命令来查看 `secret` + +```bash +$ docker secret ls + +ID NAME CREATED UPDATED +l1vinzevzhj4goakjap5ya409 mysql_password 41 seconds ago 41 seconds ago +yvsczlx9votfw3l0nz5rlidig mysql_root_password 12 seconds ago 12 seconds ago +``` + +### 创建 MySQL 服务 + +创建服务相关命令已经在前边章节进行了介绍,这里直接列出命令。 + +```bash +$ docker network create -d overlay mysql_private + +$ docker service create \ + --name mysql \ + --replicas 1 \ + --network mysql_private \ + --mount type=volume,source=mydata,destination=/var/lib/mysql \ + --secret source=mysql_root_password,target=mysql_root_password \ + --secret source=mysql_password,target=mysql_password \ + -e MYSQL_ROOT_PASSWORD_FILE="/run/secrets/mysql_root_password" \ + -e MYSQL_PASSWORD_FILE="/run/secrets/mysql_password" \ + -e MYSQL_USER="wordpress" \ + -e MYSQL_DATABASE="wordpress" \ + mysql:latest +``` + +如果你没有在 `target` 中显式的指定路径时,`secret` 默认通过 `tmpfs` 文件系统挂载到容器的 `/run/secrets` 目录中。 + +```bash +$ docker service create \ + --name wordpress \ + --replicas 1 \ + --network mysql_private \ + --publish target=30000,port=80 \ + --mount type=volume,source=wpdata,destination=/var/www/html \ + --secret source=mysql_password,target=wp_db_password,mode=0400 \ + -e WORDPRESS_DB_USER="wordpress" \ + -e WORDPRESS_DB_PASSWORD_FILE="/run/secrets/wp_db_password" \ + -e WORDPRESS_DB_HOST="mysql:3306" \ + -e WORDPRESS_DB_NAME="wordpress" \ + wordpress:latest +``` + +查看服务 + +```bash +$ docker service ls + +ID NAME MODE REPLICAS IMAGE +wvnh0siktqr3 mysql replicated 1/1 mysql:latest +nzt5xzae4n62 wordpress replicated 1/1 wordpress:latest +``` + +现在浏览器访问 `IP:30000`,即可开始 `WordPress` 的安装与使用。 + +通过以上方法,我们没有像以前通过设置环境变量来设置 MySQL 密码, 而是采用 `docker secret` 来设置密码,防范了密码泄露的风险。 From 299013f4f79dbf2d0f190920fa06fd73eb756b29 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 6 Dec 2017 19:29:09 +0800 Subject: [PATCH 244/611] Add Best practices for writing Dockerfiles --- SUMMARY.md | 5 +- appendix/best_practices.md | 344 +++++++++++++++++++++++++++++++++++++ appendix/resources/cn.md | 2 - image/dockerfile/add.md | 2 +- image/dockerfile/user.md | 2 +- 5 files changed, 349 insertions(+), 6 deletions(-) create mode 100644 appendix/best_practices.md diff --git a/SUMMARY.md b/SUMMARY.md index addc69f39..fb4d7c7cd 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -149,5 +149,6 @@ * [WordPress](appendix/repo/wordpress.md) * [Node.js](appendix/repo/nodejs.md) * [附录三:Docker 命令查询](appendix/command/README.md) - * [附录四:资源链接](appendix/resources/README.md) - * [附录五:Docker 中文资源](appendix/resources/cn.md) + * [附录四:Dockerfile 最佳实践](appendix/best_practices.md)) + * [附录五:资源链接](appendix/resources/README.md) + * [附录六:Docker 中文资源](appendix/resources/cn.md) diff --git a/appendix/best_practices.md b/appendix/best_practices.md new file mode 100644 index 000000000..2d6e83712 --- /dev/null +++ b/appendix/best_practices.md @@ -0,0 +1,344 @@ +# Dockerfile 最佳实践 + +本附录是笔者对 Docker 官方文档中 [Best practices for writing Dockerfiles](https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/) 的理解与翻译。 + +## 一般性的指南和建议 + +### 容器应该是短暂的 + +通过 `Dockerfile` 构建的镜像所启动的容器应该尽可能短暂(生命周期短)。「短暂」意味着可以停止和销毁容器,并且创建一个新容器并部署好所需的设置和配置工作量应该是极小的。 + +### 使用 `.dockerignore` 文件 + +使用 `Dockerfile` 构建镜像时最好是将 `Dockerfile` 放置在一个新建的空目录下。然后将构建镜像所需要的文件添加到该目录中。为了提高构建镜像的效率,你可以在目录下新建一个 `.dockerignore` 文件来指定要忽略的文件和目录。`.dockerignore` 文件的排除模式语法和 Git 的 `.gitignore` 文件相似。 + +### 使用多阶段构建 + +在 `Docker 17.05` 以上版本中,你可以使用 [多阶段构建](../image/multistage-builds.md) 来减少所构建镜像的大小。 + +### 避免安装不必要的包 + +为了降低复杂性、减少依赖、减小文件大小、节约构建时间,你应该避免安装任何不必要的包。例如,不要在数据库镜像中包含一个文本编辑器。 + +### 一个容器只运行一个进程 + +应该保证在一个容器中只运行一个进程。将多个应用解耦到不同容器中,保证了容器的横向扩展和复用。例如 web 应用应该包含三个容器:web应用、数据库、缓存。 + +如果容器互相依赖,你可以使用 [Docker 自定义网络](../network/linking.md) 来把这些容器连接起来。 + +### 镜像层数尽可能少 + +你需要在 `Dockerfile` 可读性(也包括长期的可维护性)和减少层数之间做一个平衡。 + +### 将多行参数排序 + +将多行参数按字母顺序排序(比如要安装多个包时)。这可以帮助你避免重复包含同一个包,更新包列表时也更容易。也便于 `PRs` 阅读和审查。建议在反斜杠符号 `\` 之前添加一个空格,以增加可读性。 + +下面是来自 `buildpack-deps` 镜像的例子: + +```docker +RUN apt-get update && apt-get install -y \ + bzr \ + cvs \ + git \ + mercurial \ + subversion +``` + +### 构建缓存 + +在镜像的构建过程中,Docker 会遍历 `Dockerfile` 文件中的指令,然后按顺序执行。在执行每条指令之前,Docker 都会在缓存中查找是否已经存在可重用的镜像,如果有就使用现存的镜像,不再重复创建。如果你不想在构建过程中使用缓存,你可以在 `docker build` 命令中使用 `--no-cache=true` 选项。 + +但是,如果你想在构建的过程中使用缓存,你得明白什么时候会,什么时候不会找到匹配的镜像,遵循的基本规则如下: + +* 从一个基础镜像开始(`FROM` 指令指定),下一条指令将和该基础镜像的所有子镜像进行匹配,检查这些子镜像被创建时使用的指令是否和被检查的指令完全一样。如果不是,则缓存失效。 +* 在大多数情况下,只需要简单地对比 `Dockerfile` 中的指令和子镜像。然而,有些指令需要更多的检查和解释。 +* 对于 `ADD` 和 `COPY` 指令,镜像中对应文件的内容也会被检查,每个文件都会计算出一个校验和。文件的最后修改时间和最后访问时间不会纳入校验。在缓存的查找过程中,会将这些校验和和已存在镜像中的文件校验和进行对比。如果文件有任何改变,比如内容和元数据,则缓存失效。 +* 除了 `ADD` 和 `COPY` 指令,缓存匹配过程不会查看临时容器中的文件来决定缓存是否匹配。例如,当执行完 `RUN apt-get -y update` 指令后,容器中一些文件被更新,但 Docker 不会检查这些文件。这种情况下,只有指令字符串本身被用来匹配缓存。 + +一旦缓存失效,所有后续的 `Dockerfile` 指令都将产生新的镜像,缓存不会被使用。 + +## Dockerfile 指令 + +下面针对 `Dockerfile` 中各种指令的最佳编写方式给出建议。 + +### FROM + +尽可能使用当前官方仓库作为你构建镜像的基础。推荐使用 [Debian](https://hub.docker.com/_/debian/) 镜像,因为它被严格控制并保持最小尺寸(目前小于 150 mb),但它仍然是一个完整的发行版。 + +### LABEL + +你可以给镜像添加标签来帮助组织镜像、记录许可信息、辅助自动化构建等。每个标签一行,由 `LABEL` 开头加上一个或多个标签对。下面的示例展示了各种不同的可能格式。`#` 开头的行是注释内容。 + +>注意:如果你的字符串中包含空格,必须将字符串放入引号中或者对空格使用转义。如果字符串内容本身就包含引号,必须对引号使用转义。 + +```docker +# Set one or more individual labels +LABEL com.example.version="0.0.1-beta" + +LABEL vendor="ACME Incorporated" + +LABEL com.example.release-date="2015-02-12" + +LABEL com.example.version.is-production="" +``` + +一个镜像可以包含多个标签,但建议将多个标签放入到一个 `LABEL` 指令中。 + +```docker +# Set multiple labels at once, using line-continuation characters to break long lines +LABEL vendor=ACME\ Incorporated \ + com.example.is-beta= \ + com.example.is-production="" \ + com.example.version="0.0.1-beta" \ + com.example.release-date="2015-02-12" +``` + +关于标签可以接受的键值对,参考 [Understanding object labels](https://docs.docker.com/engine/userguide/labels-custom-metadata/)。关于查询标签信息,参考 [Managing labels on objects](https://docs.docker.com/engine/userguide/labels-custom-metadata/#managing-labels-on-objects)。 + +### RUN + +为了保持 `Dockerfile` 文件的可读性,可理解性,以及可维护性,建议将长的或复杂的 `RUN` 指令用反斜杠 `\` 分割成多行。 + +#### apt-get + +`RUN` 指令最常见的用法是安装包用的 `apt-get`。因为 `RUN apt-get` 指令会安装包,所以有几个问题需要注意。 + +不要使用 `RUN apt-get upgrade` 或 `dist-upgrade`,因为许多基础镜像中的「必须」包不会在一个非特权容器中升级。如果基础镜像中的某个包过时了,你应该联系它的维护者。如果你确定某个特定的包,比如 `foo`,需要升级,使用 `apt-get install -y foo` 就行,该指令会自动升级 `foo` 包。 + +永远将 `RUN apt-get update` 和 `apt-get install` 组合成一条 `RUN` 声明,例如: + +```docker +RUN apt-get update && apt-get install -y \ + package-bar \ + package-baz \ + package-foo +``` + +将 `apt-get update` 放在一条单独的 `RUN` 声明中会导致缓存问题以及后续的 `apt-get install` 失败。比如,假设你有一个 `Dockerfile` 文件: + +```docker +FROM ubuntu:14.04 + +RUN apt-get update + +RUN apt-get install -y curl +``` + +构建镜像后,所有的层都在 Docker 的缓存中。假设你后来又修改了其中的 `apt-get install` 添加了一个包: + +```docker +FROM ubuntu:14.04 + +RUN apt-get update + +RUN apt-get install -y curl nginx +``` + +Docker 发现修改后的 `RUN apt-get update` 指令和之前的完全一样。所以,`apt-get update` 不会执行,而是使用之前的缓存镜像。因为 `apt-get update` 没有运行,后面的 `apt-get install` 可能安装的是过时的 `curl` 和 `nginx` 版本。 + +使用 `RUN apt-get update && apt-get install -y` 可以确保你的 Dockerfiles 每次安装的都是包的最新的版本,而且这个过程不需要进一步的编码或额外干预。这项技术叫作 `cache busting`。你也可以显示指定一个包的版本号来达到 `cache-busting`,这就是所谓的固定版本,例如: + +```docker +RUN apt-get update && apt-get install -y \ + package-bar \ + package-baz \ + package-foo=1.3.* +``` + +固定版本会迫使构建过程检索特定的版本,而不管缓存中有什么。这项技术也可以减少因所需包中未预料到的变化而导致的失败。 + +下面是一个 `RUN` 指令的示例模板,展示了所有关于 `apt-get` 的建议。 + +```docker +RUN apt-get update && apt-get install -y \ + aufs-tools \ + automake \ + build-essential \ + curl \ + dpkg-sig \ + libcap-dev \ + libsqlite3-dev \ + mercurial \ + reprepro \ + ruby1.9.1 \ + ruby1.9.1-dev \ + s3cmd=1.1.* \ + && rm -rf /var/lib/apt/lists/* +``` + +其中 `s3cmd` 指令指定了一个版本号 `1.1.*`。如果之前的镜像使用的是更旧的版本,指定新的版本会导致 `apt-get udpate` 缓存失效并确保安装的是新版本。 + +另外,清理掉 apt 缓存 `var/lib/apt/lists` 可以减小镜像大小。因为 `RUN` 指令的开头为 `apt-get udpate`,包缓存总是会在 `apt-get install` 之前刷新。 + +> 注意:官方的 Debian 和 Ubuntu 镜像会自动运行 apt-get clean,所以不需要显式的调用 apt-get clean。 + +### CMD + +`CMD` 指令用于执行目标镜像中包含的软件,可以包含参数。`CMD` 大多数情况下都应该以 `CMD ["executable", "param1", "param2"...]` 的形式使用。因此,如果创建镜像的目的是为了部署某个服务(比如 `Apache`),你可能会执行类似于 `CMD ["apache2", "-DFOREGROUND"]` 形式的命令。我们建议任何服务镜像都使用这种形式的命令。 + +多数情况下,`CMD` 都需要一个交互式的 `shell` (bash, Python, perl 等),例如 `CMD ["perl", "-de0"]`,或者 `CMD ["PHP", "-a"]`。使用这种形式意味着,当你执行类似 `docker run -it python` 时,你会进入一个准备好的 `shell` 中。`CMD` 应该在极少的情况下才能以 `CMD ["param", "param"]` 的形式与 `ENTRYPOINT` 协同使用,除非你和你的镜像使用者都对 `ENTRYPOINT` 的工作方式十分熟悉。 + +### EXPOSE + +`EXPOSE` 指令用于指定容器将要监听的端口。因此,你应该为你的应用程序使用常见的端口。例如,提供 `Apache` web 服务的镜像应该使用 `EXPOSE 80`,而提供 `MongoDB` 服务的镜像使用 `EXPOSE 27017`。 + +对于外部访问,用户可以在执行 `docker run` 时使用一个标志来指示如何将指定的端口映射到所选择的端口。 + +### ENV + +为了方便新程序运行,你可以使用 `ENV` 来为容器中安装的程序更新 `PATH` 环境变量。例如使用 `ENV PATH /usr/local/nginx/bin:$PATH` 来确保 `CMD ["nginx"]` 能正确运行。 + +`ENV` 指令也可用于为你想要容器化的服务提供必要的环境变量,比如 Postgres 需要的 `PGDATA`。 + +最后,`ENV` 也能用于设置常见的版本号,比如下面的示例: + +```docker +ENV PG_MAJOR 9.3 + +ENV PG_VERSION 9.3.4 + +RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz | tar -xJC /usr/src/postgress && … + +ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH +``` + +类似于程序中的常量,这种方法可以让你只需改变 `ENV` 指令来自动的改变容器中的软件版本。 + +### ADD 和 COPY + +虽然 `ADD` 和 `COPY` 功能类似,但一般优先使用 `COPY`。因为它比 `ADD` 更透明。`COPY` 只支持简单将本地文件拷贝到容器中,而 `ADD` 有一些并不明显的功能(比如本地 tar 提取和远程 URL 支持)。因此,`ADD` 的最佳用例是将本地 tar 文件自动提取到镜像中,例如 `ADD rootfs.tar.xz`。 + +如果你的 `Dockerfile` 有多个步骤需要使用上下文中不同的文件。单独 `COPY` 每个文件,而不是一次性的 `COPY` 所有文件,这将保证每个步骤的构建缓存只在特定的文件变化时失效。例如: + +```docker +COPY requirements.txt /tmp/ + +RUN pip install --requirement /tmp/requirements.txt + +COPY . /tmp/ +``` + +如果将 `COPY . /tmp/` 放置在 `RUN` 指令之前,只要 `.` 目录中任何一个文件变化,都会导致后续指令的缓存失效。 + +为了让镜像尽量小,最好不要使用 `ADD` 指令从远程 URL 获取包,而是使用 `curl` 和 `wget`。这样你可以在文件提取完之后删掉不再需要的文件来避免在镜像中额外添加一层。比如尽量避免下面的用法: + +```docker +ADD http://example.com/big.tar.xz /usr/src/things/ + +RUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things + +RUN make -C /usr/src/things all +``` + +而是应该使用下面这种方法: + +```docker +RUN mkdir -p /usr/src/things \ + && curl -SL http://example.com/big.tar.xz \ + | tar -xJC /usr/src/things \ + && make -C /usr/src/things all +``` + +上面使用的管道操作,所以没有中间文件需要删除。 + +对于其他不需要 `ADD` 的自动提取功能的文件或目录,你应该使用 `COPY`。 + +### ENTRYPOINT + +`ENTRYPOINT` 的最佳用处是设置镜像的主命令,允许将镜像当成命令本身来运行(用 `CMD` 提供默认选项)。 + +例如,下面的示例镜像提供了命令行工具 `s3cmd`: + +```docker +ENTRYPOINT ["s3cmd"] + +CMD ["--help"] +``` + +现在直接运行该镜像创建的容器会显示命令帮助: + +```bash +$ docker run s3cmd +``` + +或者提供正确的参数来执行某个命令: + +```bash +$ docker run s3cmd ls s3://mybucket +``` + +这样镜像名可以当成命令行的参考。 + +`ENTRYPOINT` 指令也可以结合一个辅助脚本使用,和前面命令行风格类似,即使启动工具需要不止一个步骤。 + +例如,`Postgres` 官方镜像使用下面的脚本作为 `ENTRYPOINT`: + +```bash +#!/bin/bash +set -e + +if [ "$1" = 'postgres' ]; then + chown -R postgres "$PGDATA" + + if [ -z "$(ls -A "$PGDATA")" ]; then + gosu postgres initdb + fi + + exec gosu postgres "$@" +fi + +exec "$@" +``` + +>注意:该脚本使用了 Bash 的内置命令 exec,所以最后运行的进程就是容器的 PID 为 1 的进程。这样,进程就可以接收到任何发送给容器的 Unix 信号了。 + +该辅助脚本被拷贝到容器,并在容器启动时通过 `ENTRYPOINT` 执行: + +```docker +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] +``` + +该脚本可以让用户用几种不同的方式和 `Postgres` 交互。 + +你可以很简单地启动 `Postgres`: + +```bash +$ docker run postgres +``` + +也可以执行 `Postgres` 并传递参数: + +```bash +$ docker run postgres postgres --help +``` + +最后,你还可以启动另外一个完全不同的工具,比如 `Bash`: + +```bash +$ docker run --rm -it postgres bash +``` + +### VOLUME + +`VOLUME` 指令用于暴露任何数据库存储文件,配置文件,或容器创建的文件和目录。强烈建议使用 `VOLUME` 来管理镜像中的可变部分和用户可以改变的部分。 + +### USER + +如果某个服务不需要特权执行,建议使用 `USER` 指令切换到非 root 用户。先在 `Dockerfile` 中使用类似 `RUN groupadd -r postgres && useradd -r -g postgres postgres` 的指令创建用户和用户组。 + +>注意:在镜像中,用户和用户组每次被分配的 UID/GID 都是不确定的,下次重新构建镜像时被分配到的 UID/GID 可能会不一样。如果要依赖确定的 UID/GID,你应该显示的指定一个 UID/GID。 + +你应该避免使用 `sudo`,因为它不可预期的 TTY 和信号转发行为可能造成的问题比它能解决的问题还多。如果你真的需要和 `sudo` 类似的功能(例如,以 root 权限初始化某个守护进程,以非 root 权限执行它),你可以使用 [gosu](https://github.com/tianon/gosu)。 + +最后,为了减少层数和复杂度,避免频繁地使用 `USER` 来回切换用户。 + +### WORKDIR + +为了清晰性和可靠性,你应该总是在 `WORKDIR` 中使用绝对路径。另外,你应该使用 `WORKDIR` 来替代类似于 `RUN cd ... && do-something` 的指令,后者难以阅读、排错和维护。 + +## 官方仓库示例 + +这些官方仓库的 Dockerfile 都是参考典范:https://github.com/docker-library/docs diff --git a/appendix/resources/cn.md b/appendix/resources/cn.md index 333db2c83..99a21c739 100644 --- a/appendix/resources/cn.md +++ b/appendix/resources/cn.md @@ -3,5 +3,3 @@ * [Docker 问答录(100 问)](https://blog.lab99.org/post/docker-2016-07-14-faq.html) * [Docker CE 变更日志中文翻译](https://github.com/allencloud/docker-changelog-chinese) - -* [Dockerfile 最佳实践中文翻译](http://blog.csdn.net/guyue35/article/details/53891862) diff --git a/image/dockerfile/add.md b/image/dockerfile/add.md index a50637c36..b5b753b99 100644 --- a/image/dockerfile/add.md +++ b/image/dockerfile/add.md @@ -16,7 +16,7 @@ ADD ubuntu-xenial-core-cloudimg-amd64-root.tar.gz / 但在某些情况下,如果我们真的是希望复制个压缩文件进去,而不解压缩,这时就不可以使用 `ADD` 命令了。 -在 Docker 官方的 [最佳实践文档](https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/) 中要求,尽可能的使用 `COPY`,因为 `COPY` 的语义很明确,就是复制文件而已,而 `ADD` 则包含了更复杂的功能,其行为也不一定很清晰。最适合使用 `ADD` 的场合,就是所提及的需要自动解压缩的场合。 +在 Docker 官方的 [Dockerfile 最佳实践文档](../../appendix/best_practices.md) 中要求,尽可能的使用 `COPY`,因为 `COPY` 的语义很明确,就是复制文件而已,而 `ADD` 则包含了更复杂的功能,其行为也不一定很清晰。最适合使用 `ADD` 的场合,就是所提及的需要自动解压缩的场合。 另外需要注意的是,`ADD` 指令会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。 diff --git a/image/dockerfile/user.md b/image/dockerfile/user.md index 6cf222e19..cf8685f02 100644 --- a/image/dockerfile/user.md +++ b/image/dockerfile/user.md @@ -12,7 +12,7 @@ USER redis RUN [ "redis-server" ] ``` -如果以 `root` 执行的脚本,在执行期间希望改变身份,比如希望以某个已经建立好的用户来运行某个服务进程,不要使用 `su` 或者 `sudo`,这些都需要比较麻烦的配置,而且在 TTY 缺失的环境下经常出错。建议使用 `gosu`,可以从其项目网站看到进一步的信息: +如果以 `root` 执行的脚本,在执行期间希望改变身份,比如希望以某个已经建立好的用户来运行某个服务进程,不要使用 `su` 或者 `sudo`,这些都需要比较麻烦的配置,而且在 TTY 缺失的环境下经常出错。建议使用 [`gosu`](https://github.com/tianon/gosu)。 ```Dockerfile # 建立 redis 用户,并使用 gosu 换另一个用户执行命令 From e0c41e4febc12d746251e583ab704621c01cc653 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 6 Dec 2017 19:30:57 +0800 Subject: [PATCH 245/611] Fix error in jekyll: NOT INCLUDE _images --- _config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index c74188174..dbc839919 100644 --- a/_config.yml +++ b/_config.yml @@ -1 +1,2 @@ -theme: jekyll-theme-slate \ No newline at end of file +theme: jekyll-theme-slate +include: [_images] From 31a0806e2b3fb5c67651db11878229736ae13b77 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 6 Dec 2017 19:50:49 +0800 Subject: [PATCH 246/611] Add git cn mirror #276 --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0d2fb1bed..8d17eacdd 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,9 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍一些高级操作;第 10 章给出典型的应用场景和实践案例;11、12 章介绍关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍一些相关的热门开源项目。 -* 在线阅读:[GitBook](https://www.gitbook.io/book/yeasy/docker_practice) 或 [Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md)。 -* [离线阅读](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3)。 +* 在线阅读:[GitBook](https://www.gitbook.io/book/yeasy/docker_practice) 或 [Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) +* [国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) +* [离线阅读](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) * pdf 版本 [下载](https://www.gitbook.com/download/pdf/book/yeasy/docker_practice) * epub 版本 [下载](https://www.gitbook.com/download/epub/book/yeasy/docker_practice) From e330bbdad20e9cfba9e02072bc1c7deda0dc502b Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 6 Dec 2017 21:43:01 +0800 Subject: [PATCH 247/611] Update CONTRIBUTING.md --- CONTRIBUTING.md | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f7d3d638a..c38c897de 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,36 +1,36 @@ ## 如何贡献项目 -* 领取或创建新的 [Issue](https://github.com/yeasy/docker_practice/issues),如 [issue 235](https://github.com/yeasy/docker_practice/issues/235),添加自己为 `Assignee`。 +领取或创建新的 [Issue](https://github.com/yeasy/docker_practice/issues),如 [issue 235](https://github.com/yeasy/docker_practice/issues/235),添加自己为 `Assignee`。 -* 在 [GitHub](https://github.com/yeasy/docker_practice/fork) 上 `fork` 到自己的仓库,如 `docker_user/docker_practice`,然后 `clone` 到本地,并设置用户信息。 +在 [GitHub](https://github.com/yeasy/docker_practice/fork) 上 `fork` 到自己的仓库,如 `docker_user/docker_practice`,然后 `clone` 到本地,并设置用户信息。 - ```bash - $ git clone git@github.com:docker_user/docker_practice.git - $ cd docker_practice - $ git config user.name "yourname" - $ git config user.email "your email" - ``` +```bash +$ git clone git@github.com:docker_user/docker_practice.git +$ cd docker_practice +$ git config user.name "yourname" +$ git config user.email "your email" +``` -* 修改代码后提交,并推送到自己的仓库,注意修改提交消息为对应 Issue 号和描述。 +修改代码后提交,并推送到自己的仓库,注意修改提交消息为对应 Issue 号和描述。 - ```bash - $ # Update the content -  $ git commit -a -s -  $ # In commit msg dialog, add content like "Fix issue #235: describe ur change" - $ git push - ``` +```bash +# Update the content +$ git commit -a -s +# In commit msg dialog, add content like "Fix issue #235: describe ur change" +$ git push +``` -* 在 [GitHub](https://github.com/yeasy/docker_practice/pulls) 上提交 `Pull Request`,添加标签,并邀请维护者进行 `Review`。 +在 [GitHub](https://github.com/yeasy/docker_practice/pulls) 上提交 `Pull Request`,添加标签,并邀请维护者进行 `Review`。 -* 定期使用项目仓库内容更新自己仓库内容。 +定期使用项目仓库内容更新自己仓库内容。 - ```bash - $ git remote add upstream https://github.com/yeasy/docker_practice - $ git fetch upstream - $ git checkout master - $ git rebase upstream/master - $ git push -f origin master - ``` +```bash +$ git remote add upstream https://github.com/yeasy/docker_practice +$ git fetch upstream +$ git checkout master +$ git rebase upstream/master +$ git push -f origin master +``` ## 排版规范 From 17856d10674120ed19f22eae0f1a50aebf9a7bb6 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Thu, 7 Dec 2017 10:18:24 +0800 Subject: [PATCH 248/611] Update ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 85d8009af..573bd0910 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -8,10 +8,10 @@ * [x] CentOS 7 * [ ] Ubuntu 16.04 * [ ] Ubuntu 17.10 - * [ ] CoreOS - * [ ] Debian 8 * [ ] Debian 9 -* [ ] macOS + * [ ] Debian 8 + * [ ] CoreOS +* [ ] MacOS * [ ] Windows 10 * [ ] Raspberry Pi (ARM) * [ ] Others (Pls describe below) @@ -22,8 +22,7 @@ * [x] 17.11 Edge * [ ] 17.09 Stable -* [ ] 1.13.0 -* [ ] Before 1.13.0 +* [ ] 1.13.0 or Before ### Problem Description From bf18493b9a4920b10d40894076fb95d2b8369700 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Fri, 8 Dec 2017 18:58:19 +0800 Subject: [PATCH 249/611] Fix MacOS to macOS --- .github/ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 573bd0910..a6cadc40b 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -11,7 +11,7 @@ * [ ] Debian 9 * [ ] Debian 8 * [ ] CoreOS -* [ ] MacOS +* [ ] macOS * [ ] Windows 10 * [ ] Raspberry Pi (ARM) * [ ] Others (Pls describe below) From 528267b4baf2cff12471da319c876adcf610b161 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 8 Dec 2017 19:15:27 +0800 Subject: [PATCH 250/611] Add docker config Only Swarm mode #283 --- SUMMARY.md | 1 + swarm_mode/config.md | 52 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 swarm_mode/config.md diff --git a/SUMMARY.md b/SUMMARY.md index fb4d7c7cd..507fbe989 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -86,6 +86,7 @@ * [部署服务](swarm_mode/deploy.md) * [使用 compose 文件](swarm_mode/stack.md) * [管理敏感数据](swarm_mode/secret.md) + * [管理配置信息](swarm_mode/config.md) * [安全](security/README.md) * [内核命名空间](security/kernel_ns.md) * [控制组](security/control_group.md) diff --git a/swarm_mode/config.md b/swarm_mode/config.md new file mode 100644 index 000000000..f34343cc1 --- /dev/null +++ b/swarm_mode/config.md @@ -0,0 +1,52 @@ +## 在 Swarm 集群中管理配置数据 + +在动态的、大规模的分布式集群上,管理和分发配置文件也是很重要的工作。传统的配置文件分发方式(如配置文件放入镜像中,设置环境变量,volume 动态挂载等)都降低了镜像的通用性。 + +在 Docker 17.06 以上版本中,Docker 新增了 `docker config` 子命令来管理集群中的配置信息,以后你无需将配置文件放入镜像或挂载到容器中就可实现对服务的配置。 + +>注意:`docker config` 仅能在 Swarm 集群中使用。 + +这里我们以在 Swarm 集群中部署 `redis` 服务为例。 + +### 创建 config + +新建 `redis.conf` 文件 + +```bash +port 6380 +``` + +此项配置 Redis 监听 `6380` 端口 + +我们使用 `docker config create` 命令创建 `config` + +```bash +$ docker config create redis.conf redis.conf +``` + +### 查看 config + +使用 `docker config ls` 命令来查看 `secret` + +```bash +ID NAME CREATED UPDATED +yod8fx8iiqtoo84jgwadp86yk redis.conf 4 seconds ago 4 seconds ago +``` + +### 创建 redis 服务 + +```bash +$ docker service create \ + --name redis \ + # --config source=redis.conf,target=/etc/redis.conf \ + --config redis.conf \ + -p 6379:6380 \ + redis:latest \ + redis-server /redis.conf +``` + +如果你没有在 `target` 中显式的指定路径时,默认的 `redis.conf` 以 `tmpfs` 文件系统挂载到容器的 `/config.conf`。 + +经过测试,redis 可以正常使用。 + +以前我们通过监听主机目录来配置 Redis,就需要在集群的每个节点放置该文件,如果采用 `docker config` 来管理服务的配置信息,我们只需在集群中的管理节点创建 `config`,当部署服务时,集群会自动的将配置文件分发到运行服务的各个节点中,大大降低了配置信息的管理和分发难度。 From 3b508242ba3204e4314850938b41cc5a00af810b Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 8 Dec 2017 23:00:19 +0800 Subject: [PATCH 251/611] Remove useless file --- appendix_command/README.md | 126 ------------------------------------- 1 file changed, 126 deletions(-) delete mode 100644 appendix_command/README.md diff --git a/appendix_command/README.md b/appendix_command/README.md deleted file mode 100644 index 2e69ca1bd..000000000 --- a/appendix_command/README.md +++ /dev/null @@ -1,126 +0,0 @@ -# Docker命令查询 - -## 基本语法 -Docker 命令有两大类,客户端命令和服务端命令。前者是主要的操作接口,后者用来启动 Docker daemon。 - -* 客户端命令:基本命令格式为 `docker [OPTIONS] COMMAND [arg...]`; -* 服务端命令:基本命令格式为 `docker daemon [OPTIONS]`。 - -可以通过 `man docker` 或 `docker help` 来查看这些命令。 - -## 客户端命令选项 - -* --config="":指定客户端配置文件,默认为 `/.docker`; -* -D=true|false:是否使用 debug 模式。默认不开启; -* -H, --host=[]:指定命令对应 Docker daemon 的监听接口,可以为 unix 套接字(unix:///path/to/socket),文件句柄(fd://socketfd)或 tcp 套接字(tcp://[host[:port]]),默认为 unix:///var/run/docker.sock; -* -l, --log-level="debug|info|warn|error|fatal":指定日志输出级别; -* --tls=true|false:是否对 Docker daemon 启用 TLS 安全机制,默认为否; -* --tlscacert= /.docker/ca.pem:TLS CA 签名的可信证书文件路径; -* --tlscert= /.docker/cert.pem:TLS 可信证书文件路径; -* --tlscert= /.docker/key.pem:TLS 密钥文件路径; -* --tlsverify=true|false:启用 TLS 校验,默认为否。 - -## daemon 命令选项 -* --api-cors-header="":CORS 头部域,默认不允许 CORS,要允许任意的跨域访问,可以指定为 “*”; -* --authorization-plugin="":载入认证的插件; -* -b="":将容器挂载到一个已存在的网桥上。指定为 'none' 时则禁用容器的网络,与 --bip 选项互斥; -* --bip="":让动态创建的 docker0 网桥采用给定的 CIDR 地址; 与 -b 选项互斥; -* --cgroup-parent="":指定 cgroup 的父组,默认 fs cgroup 驱动为 `/docker`,systemd cgroup 驱动为 `system.slice`; -* --cluster-store="":构成集群(如 Swarm)时,集群键值数据库服务地址; -* --cluster-advertise="":构成集群时,自身的被访问地址,可以为 `host:port` 或 `interface:port`; -* --cluster-store-opt="":构成集群时,键值数据库的配置选项; -* --config-file="/etc/docker/daemon.json":daemon 配置文件路径; -* --containerd="":containerd 文件的路径; -* -D, --debug=true|false:是否使用 Debug 模式。缺省为 false; -* --default-gateway="":容器的 IPv4 网关地址,必须在网桥的子网段内; -* --default-gateway-v6="":容器的 IPv6 网关地址; -* --default-ulimit=[]:默认的 ulimit 值; -* --disable-legacy-registry=true|false:是否允许访问旧版本的镜像仓库服务器; -* --dns="":指定容器使用的 DNS 服务器地址; -* --dns-opt="":DNS 选项; -* --dns-search=[]:DNS 搜索域; -* --exec-opt=[]:运行时的执行选项; -* --exec-root="":容器执行状态文件的根路径,默认为 `/var/run/docker`; -* --fixed-cidr="":限定分配 IPv4 地址范围; -* --fixed-cidr-v6="":限定分配 IPv6 地址范围; -* -G, --group="":分配给 unix 套接字的组,默认为 `docker`; -* -g, --graph="":Docker 运行时的根路径,默认为 `/var/lib/docker`; -* -H, --host=[]:指定命令对应 Docker daemon 的监听接口,可以为 unix 套接字(unix:///path/to/socket),文件句柄(fd://socketfd)或 tcp 套接字(tcp://[host[:port]]),默认为 unix:///var/run/docker.sock; -* --icc=true|false:是否启用容器间以及跟 daemon 所在主机的通信。默认为 true。 -* --insecure-registry=[]:允许访问给定的非安全仓库服务; -* --ip="":绑定容器端口时候的默认 IP 地址。缺省为 0.0.0.0; -* --ip-forward=true|false:是否检查启动在 Docker 主机上的启用 IP 转发服务,默认开启。注意关闭该选项将不对系统转发能力进行任何检查修改; -* --ip-masq=true|false:是否进行地址伪装,用于容器访问外部网络,默认开启; -* --iptables=true|false:是否允许 Docker 添加 iptables 规则。缺省为 true; -* --ipv6=true|false:是否启用 IPv6 支持,默认关闭; -* -l, --log-level="debug|info|warn|error|fatal":指定日志输出级别; -* --label="[]":添加指定的键值对标注; -* --log-driver="json-file|syslog|journald|gelf|fluentd|awslogs|splunk|etwlogs|gcplogs|none":指定日志后端驱动,默认为 json-file; -* --log-opt=[]:日志后端的选项; -* --mtu=VALUE:指定容器网络的 mtu; -* -p="":指定 daemon 的 PID 文件路径。缺省为 `/var/run/docker.pid`; -* --raw-logs:输出原始,未加色彩的日志信息; -* --registry-mirror=://:指定 `docker pull` 时使用的注册服务器镜像地址; -* -s, --storage-driver="":指定使用给定的存储后端; -* --selinux-enabled=true|false:是否启用 SELinux 支持。缺省值为 false。SELinux 目前尚不支持 overlay 存储驱动; -* --storage-opt=[]:驱动后端选项; -* --tls=true|false:是否对 Docker daemon 启用 TLS 安全机制,默认为否; -* --tlscacert= /.docker/ca.pem:TLS CA 签名的可信证书文件路径; -* --tlscert= /.docker/cert.pem:TLS 可信证书文件路径; -* --tlscert= /.docker/key.pem:TLS 密钥文件路径; -* --tlsverify=true|false:启用 TLS 校验,默认为否; -* --userland-proxy=true|false:是否使用用户态代理来实现容器间和出容器的回环通信,默认为 true; -* --userns-remap=default|uid:gid|user:group|user|uid:指定容器的用户命名空间,默认是创建新的 UID 和 GID 映射到容器内进程。 - -## 子命令 - -可以通过 `man docker-COMMAND` 来查看这些命令的具体用法。 - -* attach:依附到一个正在运行的容器中; -* build:从一个 Dockerfile 创建一个镜像; -* commit:从一个容器的修改中创建一个新的镜像; -* cp:在容器和本地宿主系统之间复制文件中; -* create:创建一个新容器,但并不运行它; -* diff:检查一个容器文件系统的修改; -* events:从服务端获取实时的事件; -* exec:在运行的容器内执行命令; -* export:导出容器内容为一个 tar 包; -* history:显示一个镜像的历史信息; -* images:列出存在的镜像; -* import:导入一个文件(典型为 tar 包)路径或目录来创建一个本地镜像; -* info:显示一些相关的系统信息; -* inspect:显示一个容器的具体配置信息; -* kill:关闭一个运行中的容器 (包括进程和所有相关资源); -* load:从一个 tar 包中加载一个镜像; -* login:注册或登录到一个 Docker 的仓库服务器; -* logout:从 Docker 的仓库服务器登出; -* logs:获取容器的 log 信息; -* network:管理 Docker 的网络,包括查看、创建、删除、挂载、卸载等; -* node:管理 swarm 集群中的节点,包括查看、更新、删除、提升/取消管理节点等; -* pause:暂停一个容器中的所有进程; -* port:查找一个 nat 到一个私有网口的公共口; -* ps:列出主机上的容器; -* pull:从一个Docker的仓库服务器下拉一个镜像或仓库; -* push:将一个镜像或者仓库推送到一个 Docker 的注册服务器; -* rename:重命名一个容器; -* restart:重启一个运行中的容器; -* rm:删除给定的若干个容器; -* rmi:删除给定的若干个镜像; -* run:创建一个新容器,并在其中运行给定命令; -* save:保存一个镜像为 tar 包文件; -* search:在 Docker index 中搜索一个镜像; -* service:管理 Docker 所启动的应用服务,包括创建、更新、删除等; -* start:启动一个容器; -* stats:输出(一个或多个)容器的资源使用统计信息; -* stop:终止一个运行中的容器; -* swarm:管理 Docker swarm 集群,包括创建、加入、退出、更新等; -* tag:为一个镜像打标签; -* top:查看一个容器中的正在运行的进程信息; -* unpause:将一个容器内所有的进程从暂停状态中恢复; -* update:更新指定的若干容器的配置信息; -* version:输出 Docker 的版本信息; -* volume:管理 Docker volume,包括查看、创建、删除等; -* wait:阻塞直到一个容器终止,然后输出它的退出符。 - -## 一张图总结 Docker 的命令 -![命令周期](../_images/cmd_logic.png) From 7b93ed069f8236daced2981563f74a6c7089d22a Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 8 Dec 2017 23:01:04 +0800 Subject: [PATCH 252/611] Add linuxkit #287 --- CHANGELOG.md | 2 ++ SUMMARY.md | 4 +++- opensource/README.md | 3 +++ opensource/linuxkit.md | 51 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 opensource/README.md create mode 100644 opensource/linuxkit.md diff --git a/CHANGELOG.md b/CHANGELOG.md index cbc2e537f..73270c452 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ * 增加 Docker 中文资源链接 * 增加介绍基于 Docker 的 CI/CD 工具 `Drone` * 增加 `docker secret` 相关内容 + * 增加 `docker config` 相关内容 + * 增加 `LinuxKit` 相关内容 * 更新 `CoreOS` 章节 * 更新 `etcd` 章节,基于 3.x 版本 diff --git a/SUMMARY.md b/SUMMARY.md index 507fbe989..da8be8a07 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -138,6 +138,8 @@ * [本章小结](cases/os/summary.md) * [实战案例-CI/CD](cases/ci/README.md) * [Drone](cases/ci/drone.md) +* [Docker 开源项目](opensource/README.md) + * [LinuxKit](opensource/linuxkit.md) * [附录](appendix/README.md) * [附录一:常见问题总结](appendix/faq/README.md) * [附录二:热门镜像介绍](appendix/repo/README.md) @@ -150,6 +152,6 @@ * [WordPress](appendix/repo/wordpress.md) * [Node.js](appendix/repo/nodejs.md) * [附录三:Docker 命令查询](appendix/command/README.md) - * [附录四:Dockerfile 最佳实践](appendix/best_practices.md)) + * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) * [附录五:资源链接](appendix/resources/README.md) * [附录六:Docker 中文资源](appendix/resources/cn.md) diff --git a/opensource/README.md b/opensource/README.md new file mode 100644 index 000000000..d9f54502a --- /dev/null +++ b/opensource/README.md @@ -0,0 +1,3 @@ +# Docker 开源项目 + +本章介绍 Docker 开源的项目。随着 Docker 功能的越来越多,Docker 也加快了开源的步伐,Docker 未来会将引擎拆分为更多开放组件,对用于组装 Docker 产品的各种新型工具与组件进行开源并供技术社区使用。 diff --git a/opensource/linuxkit.md b/opensource/linuxkit.md new file mode 100644 index 000000000..a4513c0e6 --- /dev/null +++ b/opensource/linuxkit.md @@ -0,0 +1,51 @@ +## LinuxKit + +`LinuxKit` 这个工具可以将多个 Docker 镜像组成一个最小化、可自由定制的 Linux 系统,最后的生成的系统只有几十 M 大小,可以很方便的在云端进行部署。 + +下面我们在 macOS 上通过实例,来编译并运行一个全部由 Docker 镜像组成的包含 nginx 服务的 Linux 系统。 + +### 安装 Linuxkit + +```bash +$ brew tap linuxkit/linuxkit + +$ brew install --HEAD linuxkit +``` + +### 克隆源代码 + +```bash +$ git clone -b master --depth=1 https://github.com/linuxkit/linuxkit.git + +$ cd linuxkit +``` + +### 编译 Linux 系统 + +LinuxKit 通过 `yaml` 文件配置。 + +我们来查看 `linuxkit.yml` 文件,了解各个字段的作用。 + +`kernel` 字段定义了内核版本。 + +`init` 字段中配置系统启动时的初始化顺序。 + +`onboot` 字段配置系统级的服务。 + +`services` 字段配置镜像启动后运行的服务。 + +`files` 字段配置制作镜像时打包入镜像中的文件。 + +```bash +$ linuxkit build linuxkit.yml +``` + +### 启动 Linux 系统 + +编译成功后,接下来启动这个 Linux 系统。 + +```bash +$ linuxkit run -publish 8080:80/tcp linuxkit +``` + +接下来在浏览器中打开 `127.0.0.1:8080` 即可看到 nginx 默认页面。 From 3c40c84cdefc7ed497f975afb04368705d808e89 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 8 Dec 2017 23:19:20 +0800 Subject: [PATCH 253/611] Remove useless file _local --- _local/.bashrc_docker | 49 ------------------------------ _local/docker_manual_waitfish.pdf | Bin 741145 -> 0 bytes _local/pull_all.sh | 13 -------- _local/push_all.sh | 12 -------- _local/push_images.sh | 47 ---------------------------- 5 files changed, 121 deletions(-) delete mode 100644 _local/.bashrc_docker delete mode 100644 _local/docker_manual_waitfish.pdf delete mode 100644 _local/pull_all.sh delete mode 100644 _local/push_all.sh delete mode 100644 _local/push_images.sh diff --git a/_local/.bashrc_docker b/_local/.bashrc_docker deleted file mode 100644 index ed0df3ca1..000000000 --- a/_local/.bashrc_docker +++ /dev/null @@ -1,49 +0,0 @@ -# Some useful commands to use docker. -# Author: yeasy@github -# Created:2014-09-25 - -alias docker-pid="sudo docker inspect --format '{{.State.Pid}}'" -alias docker-ip="sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}'" - -#the implementation refs from https://github.com/jpetazzo/nsenter/blob/master/docker-enter -function docker-enter() { - #if [ -e $(dirname "$0")/nsenter ]; then - #Change for centos bash running - if [ -e $(dirname '$0')/nsenter ]; then - # with boot2docker, nsenter is not in the PATH but it is in the same folder - NSENTER=$(dirname "$0")/nsenter - else - # if nsenter has already been installed with path notified, here will be clarified - NSENTER=$(which nsenter) - #NSENTER=nsenter - fi - [ -z "$NSENTER" ] && echo "WARN Cannot find nsenter" && return - - if [ -z "$1" ]; then - echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]" - echo "" - echo "Enters the Docker CONTAINER and executes the specified COMMAND." - echo "If COMMAND is not specified, runs an interactive shell in CONTAINER." - else - PID=$(sudo docker inspect --format "{{.State.Pid}}" "$1") - if [ -z "$PID" ]; then - echo "WARN Cannot find the given container" - return - fi - shift - - OPTS="--target $PID --mount --uts --ipc --net --pid" - - if [ -z "$1" ]; then - # No command given. - # Use su to clear all host environment variables except for TERM, - # initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH, - # and start a login shell. - #sudo $NSENTER "$OPTS" su - root - sudo $NSENTER --target $PID --mount --uts --ipc --net --pid su - root - else - # Use env to clear all host environment variables. - sudo $NSENTER --target $PID --mount --uts --ipc --net --pid env -i $@ - fi - fi -} diff --git a/_local/docker_manual_waitfish.pdf b/_local/docker_manual_waitfish.pdf deleted file mode 100644 index add8577a3710f1b448e241a8fa5ecedc2f92dc0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741145 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

-3@O<^wJV$$N`y!WZF;`(|zVWCJ*DD&Uzsg;V`alvD4ht%E-V+x8>1{M8) zPRay^Jge3OX{J07;K*=3&NJsKart4PMK){SUgv~?#0;du(UiNy4D45XLruR)DWz%| zLeVFFuR_^74Z~}vC?8PG{+0nGjYalTESlQ6#z z1=$n78$+AHV(sK+dt&;7zdtnj=%5xvm=PK+Ke^$Y+C`IzcztipBwkW09Tu49s%r+q<5KDKTtoG}q`u zo&?C+DMnXI7ikfqXP%iyA`cEs$u&@|^qxTJeNyZP5^0W2_Z_v17VCeGSShd}B^Y$tS8&g7Zi^Xy#DjQkx!|jsXaGeiKrKK-^S-P&T*x#@mHZI zbfzFM*rosC3Ii=b&U8ohW)c%5cEg!^pE6e3)LYu!6^SF@GSQwJSvH%+e8FBNPJ&j# zOxtGeE)KCP%h6XfungKLz9srUH^JS<8qe*JfR8W6q#rT(Ef6n6!3Z3tix5n9XHR^a zGUrkIk#~A)>d|n4?$(mZH?ENoHijR?ZTjH8KGti>T6@glW+=x31u@RAQ6SF;_pqh{ zHxFnxzKedPU?RV#F)2)(!XBS}UR+4G!(WLrM+e_wk@Z-8B*RDXyzJeQQ4dFpv`Spx zzfNt5l&4rUZZwa0rOE(QiHd~_#d$WzC&=%$*pyQdLr1T9eljUxVCqgqA1q){h z4va7V=8~3)Z=-F+@IV89WB(IDDTP>50xvQ z7k!r(MKyYhOyWC`pX$oe2pW_>w&suyUxkRU->Nb7C|94=M_~vI`e;wAc-jw$V~Je2 z{K$GZgOH@a;kl?cBNT(Rb>t0@?(KihGz3T|as%voY9mpA^bV?;zwUp4HK7HxTf<@o z<%7S^$rZU3lQ+m3PUp(M0mx_A<@JUi+n~J!30~s`CGbp=N_cOiz1MA)$E{{Ojbx^$ zUAko@QO96~(uN$zBqjz2wk|`8F?{&(`jt1=PE(_Akcid9O9uCVG}v zd22yY%i``CnXmK$y$n{Wu?~g%ADJ7M-lV}!hjX1e!6q#ghSmn|@+5YR0wos}Efn`Z-H(#MnpLCp+pe#X=2l`3O%h4_%7?iuUU5sPY46-KOeqF=s< z9&EhQ%X8~cPX=Yv=#|XGjj;K4^KAJL-12*0kpDhXgT8PQ>MmUV8dDom11dZ$c%{)D zk}kaAO3Rblb(%fN>UlKnU~3606*jafTZU^m`&~lBb&J_IT+ib?oq3k67;7hZj1W2w zCBD7{Y>^I)HTlLCIx4RJBI2ttqtAs>SNYV0%(!G;oMg-FT5QV`RR>NAjLU~_%^{5m z)b5>FmS%`-f)ZRg&gAG)OcXk#4#-nSj#CtgcgSUPfrHklph>_|Aie+RBL1Lq9#KC# zljc8ha49O;7rKYIJa;}DxXDfQy7ujwQ@D$t*b5`*Lo#E95$?DCV~WY=`gOvXbe&|B zG#2Zo)@OQdtzHZz(U15FzJtzQEL0AE(05RruW9vA$$e8}0CyYeA&ISUS#xG=nxuR+ zT?rW=>irLzY1#=8?6LkDkD+><)6fAy)An3g!@dR?jl65XHF?MLJ#x+7mH?a|8vIXC zBjfpl@awoDUAd0xB1Q>c2g{C9b^Lt3IPaZpQVfJBb&{N_!x0fk=geX)&;E#j^=3T; z#%kSuJmlHzLXSHy)ap;+Qw8yb>lKi4dA1t4!Cyd0-r-%gMWj+@p{QJ%Ls>sVS%^ULUOyd$uVK7#v~og)6O69!(U>Wz))q^ zs^)}HvkK-_ZS9k_fndAUgc(4h6#JNClMb0ZyQAGz8$Kv|)@p819rO~H{O6`R{V|!u zE?~o`EO#dI7Goep-v)PCA|4`1|2k5C8VeZKt@MBl@a31*{*XRRkGCos!TXuevWDee z3|KmZk&f8LGC&=i^Yv7FHM4QsZLw=N->Z&lT{PbD@c!5bd(;>b$Kiz`iyOCVemy&R zogBZ81JJViCWYAVFY$Zo74sk1KK#e)$&nH%V^uhgX;4EVP%0&8!eX|gtFy2Wm?^H9 z{v?gP&1&k{qjT*OtS?uyajEfR&;PN#8@}pPP%mX5M}4S;OVhC;gt~DhkgOdBMy#zA zZ11ULEz}c~S&cND0=&kw7OdB|4b$fV&gwTPLWE_lbd#LB;r=C)_XYIeOG!B`YBtl; za1gL^CY@r``kH$fkgw?r7h!A8lSm_Z9XhlPMq&^8yB*~xGar2m$Xr}$AF|ev`yq%;FRG8A|6F+g!Ga9Sp`rjz9>U4g!FNdCu>e<;&EmcR+IvO!V3pH ziw}IwubhK;FQhG0tU8#05eX3`NB;OPHI%x8yg*vV*m46X0@mUeb8{ z$Ij&!De$#wOBjcZGdkHc_9Rqg3C4@wbdbC}1o=f3B95m&i+0fk8Ea;f6Hby7;FZUt z*SJ((^CGR=CY-d3#C+tG;W_(*d}BlrltnFF^icC6AxH2c#%vUpr#tf5JK)h9G7|rC zmF=LuOo1|R!?_(2AzQg%^J12ii-~b%xtjMii3D!;FyNtyf4jE*p@~l%gtTiU`C1-4&E8v;b-3~5 zWQR7;6C&K=)uoGdu0A5-m`2KN#ZLOKKpeYP0ae>Ovf*X!F`|U_k7{k+DI9zWNQl=3 zeHvCELd~WpqO13|6N)A|y!&M;=cp|wWX|mpm3NI8b!&Ur?g6ozzLk z+X6Klx?=(oPpiWWo{_wWY33DY7@-`~)sXN8&fBv7c%idcNCW)<1xK6J5Ty>IKl0F|5Y2#XFN0 zHXIbD1)t-;%8EPW-J?K$VXAyP=ow37t9o8hjKlTI4$&PyZReN$oF0Z!EOJNc3D`IB4$gO)h1RXkcna;GJW9JUKk(=flaf4WH)&m&TGDD& zf(#H3R?;H)m4N8VS_Fqqp%Bw14fHy<2iN=w8-`fxf}HlEk+KU^nXf?fQRg+^MCzsQ zQi&NaExsZn0W?7epZ*`BvLrje&r0fOE|u|{SDLD2#rZGMa)!_zr^RSxP!2;VL{lo! zKKIupN&z;$CtSk1DBi|nE++vHZN4y+lN-BoN}JxGp$UyeNZ(Y+=U_r+MJ2srt!<+b z+7eN4l2!9bOr-QFpEuR-MP&&(78eUiJ8Na-*q_d9i63!M4T4QZhi})&0SEnvpam{O zeBD!Bw-~h$FdrhMsW53YTXQvu0N?HqXx+nGubcI{j~F_gZ~QBY>za`ZQ^WZ|%K+n+ z6nRM0rMF^H2gLYaV}yO6CMK;6h6;`9g$VZ(xO!h}o-izg1Ee&gV9WsoyfL&#b`a=z z*h*PDynQ}OkyxG(4jPHYtam!zC?tV?ad0{me!%8IXH7VLS7^E9QZ9ZgucTmxeG&H( zwl`)#xF0xwRPVh&6_~Tk~M5*{qD(inFrK~#2~FPrqyqyOrtpm!&)(4%UOfY z+8X5V%JG}z+CNg-htvW@0NhBk2l|xSCM;#M$(}<(jNjasXj_auuEvW{aS_dmm=6m- zk0YvZSJN^ageN=UvwR6(q>j_t-tBzmwaR7HfiO}&pi#9{p7g;F!5CxJ2Rk_l8)L0e(6W9+4cc z@$2tP>c1SgRwh)EBgR$rzt_yO2v|i@6&Jf)BU&7nt85GPbE4^dhWbMgH=VsKxo7d_ zW)nX}HF$uvJYYQ`XJ?;B92xI|H7A#A_K^?89IYwd%zj9lV4_p=T!9TO=grjNw7lIB zy<}#EZ}vk_FQO^I>1{c@FI5wNs@0GScWZ6}YI;*$)Du4$qNLz_ZRtEq(Bt*EyT7-AC0;IA=0Yh;y&Z-LKrS1(k`W45R?aX4r0Q0P=17Fo z(Q}=!Yk%QEo9$r^ss)fv)5#4C@}N1YdQCP2%I5(8XZ-g>&kw-)3oo!|?ar#&U)<^& z9Ent7o)}!0OveT}SG~ZhHZMIWO+V+~!aadZOE*9X)DPSTTH!Qh`=lnM;OP_%;9AD< ztR+ZXd(jquX!?hgTQ>5vcE&GQOtKF~z4z-?bn%gOKG)nR~YySZOvGNB@S}Szr5=`t<%Teza zFA7}ws|mMa0{fp;OCKnG+JCAOPky(aLrR5a1n5Mf5-KfR-PE6I9HhcNL!XzveKvQP zh~avGX+yp_JAv_@XiH~HNQL&htBJC4d6}H^)8`mpkWLJ+Eb1d3LR?d3vPhDR%+fn^ z!}$2~$4@P17Hg_I5&rbd<0nC_@!jQjt`sxd6jX${S6&{(iI^16NpyGW z{4&Z(cGV0?X}1=qm?ctT-3sQqE#~O~r8!XC^{tzM=mt}biMmRx%>*`B$SXVzh8a#o z`ZENPMEj8UyM8#|rba8pwQZ##zCO$n;Q5!d-mkEc2)b@&h-*EPV%wjKb${h@Ygg#` z`d~#l1LxEewd_!S{Ru3Y*6AxB&cJua<_IqN?kcP)Z&b9k5AE6^2A(lz8d8@*SwxBu z>4@)NGU{rRXqU2SlpcoI>Aqz*)@P9P#n2W2WROYv*p`Zb1#~md41Reum}{|L)Shu(F`efe?F`&c!l>J=~|E*`VO4Z!6tT)`<*`u_lf3TQ-5=YC^> zH%7xHSF}{Y)ARf_Pu)|mi|@5k(cM41uLa5!H(D$Lw7@IK&W!h@bkQk#WVAQ$Mej8g zVn#-Ds3-VLU{H4W%udQLO|7YU8iZ|{Q@s(A5sE)enXnBi(N{gc2fle#;VJN zZZYIP?6ZRhoAV*|k->MH6hI_u@Z}(yVLLVV&kw4^h^A6J2f^V1S{x_w-lEY;;5;E& zES+%wPQpik57Qms&k**g_;L)Zen*03JeO}*+qs!AmZ9ITnVK>UGDCF-Mj)&2ADGvA zIa55D0j5#ZF+OTjFPd>a<4mUzO*^QC-Pln3%$T{32d*UW?}lkX3-|Pbp~?$Fe;kuAg^9r-FKVVOM|o zGvy}SUyrav;1=D8al<=kd?K@)@47r`3tH@mfl?=MJ|Rtj*Z8>12Sw8*54FV$skSxD z($`v3K==^d?}T+T_s~Na9K@trbPjA3mjp3UH4;p@+R6#6a#GB(d1GFSkLqqp>08H) zn2*JQD>4w#8z*M-265?{(=h}`i7Z)uOq?B~hr4k3pks+YsxXD3ss`%6;kRX$5LzXe zo;kR*^c%cSm7C$o!OyhXWTwVQU77**e)HvKU`GP5_2Go7i6z}-m`Kmt!gTqNzV~#@ ziMR20wwJTWqYT~`pL=DuxbttLywjXTmU@kGIf z@fsvI3Hc?K;OTo04NMF6bT3CjGP)m>{J@z|Ar!`73(h!kxV-MRnQC=IV@=0@6;<}q znwnnh2B9fb|y5EHWYlQy4L8BisFN8 zi3Ub}Q9c+KX&<>dESn*#|K2Ci9PD0cGb}k74B^}xqhrk6Rtv7+U}7zKt2LAnfbOqj2M(Rw{os(l?a(#SUUm%mz!xB+H7EsB?1VoSokADC%E$9|enEmOH{Rjm zqfjK=BCr^@GiRZpuF8_SC7(Ic^l{H!$Pj7sjW}^qq)bgMFyXwTq&`mXx!)q)rjFK%nVhQ8pTYzQOmjo%MZ}S}`5T1=8Jaw*jStQfT)Tlio>a!h9=4 z2;<-fbr58np~$OVdd@761gclZk2H8i4KL>2DD&ZY=c*%Q4FIIpTSB8V9M3uhkrqKS z5F;|caOI+On>S-%Z`ZXmJa$o(!p|Pa{a~WxbInK1)uLo7OW&O;q+GFah|L5?#~=k z>}K~0>3DId4nryg-_{0YyyxPysFl4}aeIg^c;}L-hX|o-^zarkt^j19=rfxrwhvp| zXdNI!L3WPZ2fq926vIMNxu$pos4zrF4g`M6|Z|*}S`KM+_2H`YWh8n~Kl*&HFfWr`Wk){RNq0Uj)4cNAJ`>foP{o zVqXVA__sSkNUDVO!8gUJq{d?1L&`hna2qA(qDyOIug0vr=Zo41L>ef|srf9G&Hyquzd)0FC$*ho>B>MdcqZxWkLr^o_`YmYgmPMqbw?F( z_g>I4qeu9@*PW(1T0{6raj*8y02jo$Xhd@wD-TKpCK82+n)% z4AM2@WH8D41O|mqAGiSyQq6A;p~9UT5;S7N5}WdgF(+{Fp-fpCILx3S`z98cRVZfcocUFH9Dhv!S?GGpQ z*L3Fky&w18SZzT^*_G26+MyzcQcDHS$E7x&JKOAMO~m%m2Y79N$tJK#%yx!vZQ~kR zqhk(#kfNc3v0gm$0JX$1nUW5oQ?yFD%uHxP_5K$G{_+_aETKy@k$5XWVV#%6%1q?!qX>MLNy|xCC`X ztbP6qh`tbl#ZzL*Q@3HhcM!Vmm!B5IMR(R7dQ|eNX`a5;UM84&CZ@#k^?*)sg!1eH z#zYTPeRq4+J@Vp%b~SeCEN|$~T$V}LO(^#kwA22>ciYDhOxsX1hbg*co6`!YNAbd6 zT;dSIIy|i-ou$Y(Sg_Kbg?^13o9pI{#MlT>QKvZxTRc-zz$J-ZZHi;>a8_8;_^z1A zp8#i*76rs-`ealii)*ryK15=Qj$pRP{VYHPZJ68a2u`$|{E`c8TDcX(@hqY80K*zN zDfqJl0&@Ep)7RpN4r*}->?}WBGapTkCutaQ@rgbNHikOx6HCRW=q>(*IT*to4_!l< z8y!-TBpPotNE7BiuE8D4To_`qSqDqS^x+hR{J13NH|R0fI+OU;h2J~x6AWIxLgbRE zdM1Qc*QT7tkQS-b-Jb^%|9VtnH;?le;+_ek9Cga$}-r+;D$ ztOc|Lnsywrwa>e&2Ob~-((KetV6b?EDahJ+3*lMlPr%{w(qbxUO1thFV-E7r_WGCl ztN5k^M_|Z86U)J?A(YVWoNYf?60_s{3s)-h>H}eG$ zY+LGfo#Grj`O3m8ihNbW*it)Wl6N$XA^m=tlS7!uKgF+cR}xdFp@JMZdW+yM?!E%fE=!#ppI8Ov1+Bnaqez%U1Fg_KXTYx8o-#@sQfmMe?Gmnhm z2ZIek1@}-hS)O`**Q1;D;pXbf?;jHZtMX+5TnEh?B^M9hyjtHKEX-(Uh`;$9m*Z?qG9UmaMXYlm>;uK@|iP zp4XEP)X%Z=Ucy>svfS1Cfsi)AFI@AoWg?Yds<;2O^}r|(VTOa_p3>5PxL|LwW)+~$ z^2tBEcYzf;oVweO30MChom_8&Y#CH=eHR+(-v%8!_Z)W_=dflUk|+R%2umvAo$Fn@ zV01v@cu=EmBV`Ehjj55>!9yP+9@EEgSuBnMA z)#5o|&0~}Y@|iK80g!0Bs~aM+JafEwypa@ZWrUz+Wo^A*B6O4S&7M}uwT0fMqx#(# zj@Y_m5=%`YV(JzG;s)0`FY=CVS7XM5{#lOyvKT}od~!yf<50r^)yGJw0_)gx3>yg6 zTTZ8>bJ|vqp~NVQVFAn*rggz}f77nUQBFdB>0H2e{UT8-Te?cT<1N7$?Zf2@(-(MGKLIRv|x$Cs{9cCxG)IN7|@|#4JdxG+X1~E6A=^407^5vH_F!wBs2YkZHsP@(xu& z^{{{mp$tB&?ix5G4b$pf{ls`a_^G(ndxga2;tV#Lpb5UGX!8b7Tw3A?oLF>=aI`wi znc@FJzIz5J&%9KGM2xDH#-WCXUYO!caC#V76JR1C67|0*0T(U&q58SM)go&GGl_K6 z8E=Xw`UUG&ZR=;=?zM2|v`;n|R#WvHD?lzyrM5O*Z-^WUsbUZG@_+?xY>kzOWH1-o zJpgx@#AqGIhqBTK^`FU9%{Ie$Pi!kFEdf-L|3ktyulR77EWtb0pp;Xu89t#^WowWe z6Rkr#Cy7F6C{)dG0krKPgB5XNdLbkVD1wWXm#?s^RZ?cP6mTLlGs^f!R;FVb7?3;E zAt7f*&CSJQt2u3qO@EXw9dmZ1%ix5z9?@!X(Lo(##!;lgU@@A(T=;$`n0Ygwykv$* zftA&dvqiiTl9 z;Da@3FNYU5Zu#nd&yIW(ukJjCP)nd>i5qOArI^8nU1XaMCWgB5Mxh8j3MxbJiLOk? zEd$V>Xm%d{n=r;*?Odd=ZM&>{xb9PVyRB20?nbArW#e^y&po*t!_;;P{*vjT7?M?6 zYBXh~j(Y!#iD>UWQj{vN>Ylyi?rM!NRbQ-rEuAkVlCuhJJ(M~`fXJDP#Pm&`pk%~1 zU(k&=kn;&3_Y@b*`inz>b%7Bub}fY`Bv!yT%54iYo!ej$<*rxacYsK$cj`CpN}uHg zm0$_>9R8k666q4@^4#!3Jym~?|3d@Sf$v}7pp#RGjehdgzi)tedjE4iH#9bFov`qa z!M-ciL}dAKatMnm$>9e%av%L@Y5yYL#o{@wZ^Ah7PcN7AQcOo7eu`Q@uxRrAC@(er zJfVN1R-0Bo{oe&XE=4zZ$%)?MVKSG}10$B57_qRiETpp9zDT${wEn-hxhYZa!dKUf zwt-WpE%-5bchtAvH9OH=c@^z%N*JKtq*rx>L?Au>+|b7S_45oswFVbu=&5kRFVkHirg z&P0MMhmy(QUO12PyCnew1jD5*;}*M9!;9*1@H4PNf?0f9(}Xr{lc$E2Lz|3e6@CjH z_2?}?NUw1TXJK^d(h{6*$QgnWs9NAv`&ncQU4`BF)OMpZ>p`~2$G;2N8Q%CO{Lg`I zHVJGM0){Y-S`>|TK^Qa@atjR0yzFas&xNQ||542TQMeFiazz|UkVfiz#!qQXnyprq zuzDS}FDFVUos_I?lwKJ>w9D5V{a{6`e*bxU<2pZL!(t%4&vz2?z==FmNy|DkW>|&Q zTg#ymKu)a@>E|JQff`A6kk_S3rI1ceFDxKIdZW)CjKVzQjox&^2k7$c; zyjcwBi0GIK(pY7Ooq)MElTa9lnF9sl9INxjzc31Y^Ck$Fra~2sKLH{;DQ!f`OFWel zV)ca|iIx}5%i~BtJ-IGjP+Z|C7*+IU;GLVf>^vUk5I+THkCn1=`7=uHvAX2tCRoIR zkx)R^i6fnN)zV70=;y-@aijOPI+aJ-ygk7$*}4`vU|4xAi)V6l`3>y@fsMNrrRfrPL@Lv zkDLgK2<^A+Rss%Rr3s?e>9S$BdCu_gQG!I9RzIMhp@2I}Q1j||xUSCMS19(e0PU$5 z4X$N1-$a}n(@gstT=7z^VE_9fL1ah$h!cQ|@i&=Yiz9<0MpccZ%Ed`c*3%D|qS+-S z{JFp%5KRLxV{3!wMr6e3G$mceXcV814kPvk~#F|mFKO|Yv=}lG`%5@;m zcVhopkvS^3GP<^K9uE1cZZaAj-RA?&gZ_OE)}~|H3v4>Ye3H(Brx$6|?A18RO23P? zut(Ijn5a9|)ZO4l(h)(5sH35xElm*k_sVX)ur@ajm88jf4siAyjW?QCxz~OF#dHL1m@# zOSQPvigg*GJE8I$f#!DEZZGe7ra%&`MkoARO^u9Lq3w%{6BY4)&bu|PLG@<~q z5p;yj(QEf^+u?5iG`RQ1E2Q`|MzYXHE9uWebjF(;;*A%IhavA&Z}!d3;35L(>i!n; z+`vf}PJ^~b8Mz|RsT=AI9TGl+AK9s6Pv7}!e;xzFw`bPnK1L>v;bT?d<%arMMais( zS%#?oTDtEsiZFI4s#n;Z13(!`&{7%{oi~nEhz>{~(&(!EDUt4($O@LfK2Mk2A?-S+HfF1hKi~N@5u)N z^{RW8ubx%CVC&2HsA{(s`^l*+Cte2SJqQNZqm<&iwV}M??s80K%A>d4EI9h5vlutG z_C4ObCVAY+y-HHHVKa|LW%2_=IUT1h2x22`xxhL&xiKsy_xXP%<{5pT1jNmANPgFFSdhUnrHg4 zWd_%e)Vz$5At#2Cy3T#Ht}Rs804?tl z#hUl(1__H_C&4m^EV@$=%{j(v$!uX3rm7X$UVU~c@`~4{!v(Mfob)sCAb-s(gHs7} zxlmC7`^8MS;pkgwfa+z^ur%cVu2M1j-yB$Yx@ncP#n4moSv;A#SiqpA1Bj&>2Sv@? z)m{^Jec*Lz)@vpcuvvHbO##Y-UX)2rtL%Wd@0O%KkM&qF`Wvs-BBLZhAI{Rsx!5{lA1=`$5{h<8^$DZe2V>NDn&ZMlpcYGooOAt{u>uZAd#0 z1KEQ{2v61u(k~sC4H}T>^p<(zR>^cl{U}?X1|rx+lgQl!UN}R%gUsVk;uE3c(nPM2 z3IM*xMe~(Fl9%Z{`jQKoL8Af~3bsyvoaiCek-a1O|JzXai!l?|8=5baz7r)YYA#lM z4J&YsCPf<6dt30*CN7CTKfLsa){&OG!6hXyH%kvNM)yTd#8Kg5VV!=a8Z<<;{^l&gqz$piCkMQOJG62LweMJ|!L!#TwAR@p=F5liD}?z%T0?71VsYbT z2A?_i1=P|=F*1>1CmQ(4a%!Nqf$zkafq<|>MGu0PYgxTOL2oOvi95x+9Fgx z%Cl$*sqj7P|9)GQ%cbw1g_P)xULV1hNOEF8Z+ET8l&|?ZEX+p85r^w9XZd@$@-?!U z->&mk5Sd3;%t;+m0r)XP=Nl1}WAZ)0wJeqajX>428@8(a=X5#lwt=ml+r?Ja)y&Gz z{eXnfGr6vkaHo81^K_fB-Ja-|GhxARU3w_#D--w3Qb5D_*rinoPg%c;PQ$_|Jf- z0T`E7)&zs+cIVP*kR76stgM(*Bo!tE$Xzfj&KCNyD0$tC#q1IWqaW)zr9AV0BD6ybpNioS$k4$pYU9xsHKslHuYAD2s^>xm;N6-xyp z;Imu()r!M$yk)S8hT_ra&?z{@r<@QwRwOi~#(xv@(CG_4Y(76D{L}ZV{H?L5`0<#N z!l~9eq1)V0@q6dG><`b!Ct~E~zgcrU!JDZPTiBxa`)3z1eF3C3UW|fu z;5B}^DJ@AsIWZDf&6DUj0FZxZ&X4e1X$$Qs;G!MoHZxRMrP5e&%Pv0;l*#BdwPQ~v z%$I%{w-4E6#m{Ko!(HaL?nY5FdLC4FV2bf7l?=KXsh+kxhlM(_4)vX+G0pOHH)=;V zLb<`Q0SK_S_MVErC*YWu<&JU6Oc6hCodeyyO;NX+vp57e`zYowPHCG+d2KIWGB$cZ z=a|Gmb&%45|373Pi;$7fHuRW8&1@kB9Bw5=1rA~+1%I5&cSd=%mx0U-v zn;%c{Kj*!KhUZwhVxx2p%mbJeW;Tg{bP2nSvYy}(8e9NiH;f-!nWdY1nTqf(Qo0$f zwM_4erPA3+uyIWgFpE;ge@r^sW4AYL09=$5;qijh&}UQ*;|gXb%7#GrUW@+Bo4RL_ z-Bn$pw3{Nl03PvCk?O;g?e!vhp9k@&yAoY3QI6bju9*d9X2M(B z&oaym(fAI)2_)f5p%t+sw1bJqSP;xH8A8y)#0OuLxp8%T0C?A#V{1oeC zIFGy*^C~a_R19XPiQ~37?j+#4WQk3VFMuZFAAQze69w{_vDh)s)Su~~p{##sw-;t&@ zI>8-P5QsqsU!>oF%k#S;cUpO~FV`giwi$wrrazO|`DB30J=mR|GSmSFedm}%&Tm39 z;aNR7xjcL&)n$qa&J&&Sm(ryC4G}WZ8fQCHFlJ}kONsk!fON?59)9Z8YJi3A z=w|u2<(trD?q#H<&p?Om1-N)v{P~e33h49iEZs5nnn!@*UjndariIZy9XU z&lFyP%>UZ72uTZU%g&w3gjqk6JXW@%=w;Lf5YY?^B3O4yJ5*Rwi(fWdF1DHXRdEgZ zL)=Q$Dnpf`M^=%5S$w&uIdJ1^^mG(SRDcW?8E<(&>*1iiCQvKK#^gFO>(C7#9$1mp zonuZNc^H;fZU&y0RQy+S#;gZ06$guBgIA9TG-X@APFr9W)-)U85~EvdpHRbAGAX5` zHT;wIY?$*MAP)M!XPARkfVd8dhPeD?Ikz!(OEW6fv`qNM6o&FBYuEJY>8tNX0HAiL zqa^)I?&ZwAy87HRYnex}S7Wk3tT;sgfq(}dlnV3KKSM8jwIcb8GXF^o88E`qUpV}f z{b-W!pFLgNoeM>Cb#67Yzo-)Z*(}a-St9l$0LQ<@OfNr--Ify{g=A%RN_o~XA~zPz zpvJ`rEoYCO!Lvs@)y0_spR+o5!V^|iFHoBycioW0gewNR^2~Dk+85oXc@WZz1 z)}5IC1*(AuCB&7)^^J&?PsA%k9BRVJw9@pKZK_e%!nyxfDK6Vo#-2U|v7ADZ9Vlj| zR4wosH!4kB`GQ-fZy0bj{{fyJ3J9wk-_1)bcsd%n~XImVeQr z?UW5sOcUW(;^Q7h_BuI1Mc@uGinI0q2c1q-NvcxfxHx_?$Nm}Y4U!&N%;J2337+-& z|3$=#mr+M8i3pOmjR<94+LNW&9vzl(dp=7D)w!TeMe`R|px0MTO~AO7z~OA2L$n}4 zw`Q+x+qP}nwr!)XZQDj&+qP}nHoIPTzy5phMwx@mjF{wF5%Ha~H@7Ehe;3qyR6y-o zuu!N~J>QFqO-%#kVX}wl6lWJYQ%2T+cFUU5L}NyeJEQ4mbXr1KSJ|QU!v>j_BZeOJ zD5lzM)w5UXPKXhY1Hn;6g3ZgamBeOq1(}s zza*hkZN`y5PcT9IUC$4iW7jyVk74H`3&!?`$8lgvLs?#x(21D57vx86r0u_dbFuFP z0m`}CbXj-cxWDrQ%W*f@rmWzZw1Upg;q&|$-nzQ*dl5YelU?KBj}z}OB05#Dcx^KO z*$!)z+z&AoA^TD(=V!OMZG2AVCifN~OC0CB$T(ITVJ4r`B7Ez+BS}){UCBg-;WX+B*mDb_%zwx`ECX)tc%0ZH2Lb^} zL4xJ8RL@;!jr%tl;fDI_HTSq z;+=pQDlhiQ-`&gjEJr_=1t~4)Ut0Kvk)UpGoaOVh0~vJ%VkQ~XTl?c9nOSetmK#@b z`b!VE$ulYD_yD|Djk1E4;uq7*ai+xyR&ok$CWW@!m!u;{2-uc}Hbwmo!n_e6G zF1yxD{^BS*X8}eWG32C}x}U?5q%TsN##-eql~~!zF`X%l0$i$2S>wQgf|o^u=C2%m zS@a6F_x-xig5(1V1x+e2Z@-`jwDH5cL01cYVsN7fl5FdMOkV9eQdOOrbG>PXU~PNaJjPCBfX*t%idAQC zZea|+Qh^AqMOh02PT(C(tJxAZ=-|X7ULZGioaxFFQSd}hf_m?^&+c%?YdR=>tn@Q6 zuPf8jATDgM%aE+P*xGhHZi<_sZ`8zaZ}VVB2{Yw|Q>Vk&U)?cIiQdV6GNQ4+)C()C z5{JCcTo2toZM?w3zmtHfx)@8 zwRDr09kO#hktMMeNyt6$j|J^SWoAkniP#Sxp=FkJ&r6DD^yfziQ;U^)TmWO}4#JSq zBJZGCS+(XLG2OfRVut&h+k)^fr9-e*H!*X0;lIBDGdH~}(RWhh=E`O?(wrK<0(kXG zuT6)U)@f*h<09Nz4fKDM_$k*38g*0N1ZwaLI?;Ok+ z0Rw=@!Lt5ZO7~&5I&j_=O8cNby`r3t(GGFVHy%I1dH)1aVOG2l%Sk?xp<%J+e$C}C zVy|SzUk&Za$QPx;68^uGvbLjkv^htj7Mj{;rZ%bF4v#F8BstLDsjOjDfA+)4)ER?XA5~csy{C=gy&9 zavxCjd#s#5Ix@k{1e1H-D{(C!M6UXOkT+m6l~uVba9G`!V!0Mq8_+mg5Em<&Bbvm5 z=G3{7qxeehR3FM}v8^0y;9{HT*;P4Zu)=lJ2kNu3zW7ND;CiucKk(Qljmaq$ zg#me%He~Zlc|kloI{AI6Cw|PzavVWZ0%Rk#-I+p0rNx`##mGUJA+3bs`55!@vXxe! z8As|WP)=%Fa;E@6s^>_rTmo=t3J57#CZXJOXsfh+`D?-LSAh7>cfPe0tX!>!sYNc5 znK~T5`Fs!k^Ysve^`_EoJ0u6fxZ1B#5Kqquwe^~-m=98)28WIpAFUE<=#%%U_Lt4! z^YNGc=FO~^xy@p9(zQFcYvXj#f#R`>-lBE8sFqqW1s(AElBt@}Zvw&-N5`@@EU+9! zf(JHbGE^ASWzTSl-}r&1h60Z7yD7CsQ-mvszlhgbM~`!w($tHE`NI}{;u6+iwI-vsUGK;fw&zx6eY2C%u2#pc2w%fuDC zwUgzLSk*thohiEo$&-}35j2AsgE*!0eGsB89th~{d$lx^ti6eIp80m8aNJiLY&(m$9Dk8X;f<7sV}YAXGB z63|m0xh$H4b%`aCGEJVvX3UHlcVQ9(vZ7l+kwWU#>`^h-6CkK_*&)of=*CQf{_Z!w6f*9nI-ycCs-T@&p&`A{<7e{M~aGNos%@iDw0W zM7x>TvMS0l>UP0^cF)nI5SSk^yUSWpzTj67kRb~r-m=Kc5f}r@4G6b6$;p)^63OL- zLb|Gm;H9w)z1`#>QTdUgSCtDSiR<#A0%yWav4rUf@~vaZRq3M<9{LU^So?ulVTcm^ z8y?IQD{Y#Pi5Z`xNv0@W`C714nh-qd+V#(f1spHn8KystE*E7(2U8*#W91c1cyp3| zDd!ZHo<)JwfrZ2C$IOud&X#ESmti6N#vFPxDytRAmZ|orqn%FrB3n!)!GO#@>ddUO zFJovOrHa!kxG>ZR86N`N9F@f%SDq?cuy+ofGh&nEme0QBC0YX9xoFvAbR}>a;v}wl z>oMS9Di=n>HTfvQ^r}P0P@6PFp==8=fUS96;=b88y$^qt!2 z!t0r@z&B#! z;DYcn6xaqgx91(7ll>Pzc6zkBh?A{23J#FThOoi1=+Jy=6x0dL5zxKJ>2M1|&}^hH z+APkXGU>6#tZhyE!j5?{r8XVtD5!+5>gL3!4IOWlIk10cG2WUbt@hOGRyhd`H8!|Z z#x8vKPwd(M>Hz`v_ck1Tjv1^Zq_&Z@_B*%HSAE7zfbXOJi&bX=F~3Fo1@k-kx0W(Nb;xxPQR5n}PN*u@sO>_Fx0#+&5%l!~Q zdh$_#&GYHg4ULEHw_W&i)ZcczQ(WIHa?*R}0V}V7rn2WNmsvkA)#rnsh8+f38^CAo zbQ9$rGNsv;I`ybG-F1lJAmf-8+~CK?9GHKom(>`= z>amK&M(||;{9B_WH}n`}q)Mf=enCeS#E3K&oODKcX@P%7LjK8KP3(6wNvufAo+3?t zp<0@9HPfB>E@W2BR&pi+~ zNxP#@hoLgrFyS1CZ#MD7y05yZZIi@2e2j#6E5m%e>4&+s)ZX|~hEZLnC@J9IRsW;{ z3xvbT*8N~dA+y?xqEBJR?P7}uQ){b~W6I}&%XGGeuaH0E>#|gqRDZ@-Y6G zvZTH>k@O75UFpQM(=+pl-BsNWB$27n8BBN$h1lPF_&^;%)vVZGM!VT}C%b)%K>Zd8PeVHKM2>t5?E{9 zDeTg}Tw5sF7@?% zD09ZGu1m`#Xv;Uw8yr3EPKRR*a6shj2L57kX8sXKM~}(r^U{yq%nt(6m}oM^rB|#e zNrt_nhdpT8HxvXD2^Q2nJ5;&IozFCT4@_iqK+%)==@&56ZMh$u<$wJX;05Xo5RMOW z7S;P>x=0ZWF;o3Xs*ULA z40d-59^EF5ApOY()*;3$*@z^a7bYM-fezz4nFeU=+kY$md6?t zkuqT#jmyH=zLrg?ErS1>as<&E{M|lfGrJ!TJr`_dp(tKaE?|HG^7kdG&&0^&EAD%5 zt6v3shfo?SG=Ykt&c1ZkvTvK;-&YvYM`(=_^fvQ11f@l9Dg#0b> z*U!mB3ZOM8lsdAH+HBj_d+$NNxbp9&#VhP@v2Qs*6g3P;+sKI(xV3uBg5qxg4;Jqo+=)tWcvMCk+TJ>LZOq zyJ%}%qqGe?Ehvx(s*+e{w?G(xfq1o&gfq>p)o-A50!}NrRI!&R4p;@JZh9w~nHWy= zjUS$3BM2ajMWL`1{m9C*wJTE1 z%PSI+bVbU<9Hh42XE2G#i-ghS8ngf$4~g^6hrwzZl&{uP)4Xj-*6EHc(S@KMwJUo zJsIYxXq5CiuY0#%4d1@uaB^>!*Y3YXE)lL;iCU!gm=+M$ZLM3|)l-bHAhC%Xy5dGH z0G8VA@-4cFlr}?5echBKDbe9mz)XKgg(d*QEl+EOvUQ#dWhaTm#xR*0$5ApaPsCqu z;nCLKx%Lt=f}bf*^;X&stg=7%q~c%KEl($j(#?7xc`P*mHsw0CB1T-#{qwuemG7#w zgg4}`7ldU7>DsFUNuA&)M@cWuBw&d;p0^yBJAgfc%kTGrB@q%d8@VPuq!DiyB97U4 zf;I3vg>Y}uMh*IdiyNQTQgSK}A`xnv`JZO~1=5vTC}fCYAZ*7i0JrakA@D1!?-%BL zm8pi=Q1{qH{8emkL*GU}_UPz>@GW!HZf?{Ffcvr;i{@J3X9qr>Bf*C`Q>9MnBTesw z6=A-%{m6h;<OcWiXq z=O_UaoJ3SRBe0xFV;E;Sjjtl#a5xbp=gLRQr32%sdEwrbs(QWjXQ_-HttpojGGTQ) ztwW}Hj&SnP@g3XV_7MIBF0zMfqafkjp-FF=J$g;7fmLc9ZLxTkTmCUH$!bD|brbio z@+@i*S;=+DVDs3HMdTa$%gR(LY*(sFSY03=(v#!I4?2S9SSH4GwSHi2dF{0Tylx3G zHv83N_kgO(=c_aW8Kxd+v&Jb%^rFfBL>o2%tnXmiz9WdQMCVkOW>IQ#!C!k4 zdf|-y7xS+EoC*2g4bQcmcZu@7;pHSRBJ%fki=G?b@x!+uAFBtt^jcIZu#FzZ#n5%e zpbkjLmN9V%y?UsStKXZ)tdj5Q2k3+Rtx|gkreNFv8>%9bW4KJZ+aHDi5mbg}(ONZ+ zHLoabzrXtY(N?l5K!ggErXJPLDS=LCXy}CZcwrs_V{L!2p|F-vKJkoYr%uujBT@HU z;>W)yNkmmV7iBJ+yGmpf^5N}oRSsD}eE|A$@2+Yf_ z6_lxOD2ROKF$ZO6&Z_0h5X-2Gin;r~fv=MZ{Q#FHvVfYChUrEZ7@k zFU|iN%Mx(i{|!5bL*lP!1b|JIMNfa1Ebm%a>^ZCqTDq)b089}#R}s2iE^1t1Zl1z= z1;lBu`MkBCMb)^-%Qt`9Mbu+5;w-!kM-(9(Y8^2W+CF>L6q2r7-IWj*H#-1!F{G}B zkE(<$+MLndxMjP%TCi(LSt`0N^5$cO>t#{;g1p1MCU9rtNC1`n(CJ!pSe<;aeC7Aw zz-<;ycZUN_eaNnFGk733$_|k7-W`lKvqfS$)!cx*h#$GuZY3%R`cMv#0TR>)Zh-w; zAfwK+1@w|AcnST3^5UB^2k)x`e*p>ZlFJ-p$BT{|vow?s9 z3S4jvNQ*1Q*OnTZIz6z~kjTxeSwsUarRY6f?nv(iF`}SEanTLB4}@%=n*Cf#<}PAj zrxWo^PBBOa7wxQFB4>ZH$V6k~dpNoZ_ z8OmRV*0&rL(!kXOCPpOI0jH1AHGPg3tKiiiq*!?)j>O9S#U z0w*voa9>uWmSUH{0mn6rM~QO5^oVx7(GF~YBnn_b*+a_v7sN3o>=ZN>r|oXHy6#?H z1$aoK7yCrJHPFI%D*Q_*U(rB&zvDH8k2n(r@MV9tGj&d`@7cn29yL5h5VPreVJv2FULI z2}TkwqLYY5(N{Dj^B?!Zh||W1gB8Ahmk?*5l;MzL0rbNsMP1hbx`w#i!mGx$JsEAu zf_jt&`Rz#z$Q+ueOin4P7bt8Z*zfvy1r^|j>81u)3sshIy8qE6+?W0)Hs#r2c7*QF zP;hif?T1=NR%G*0bt-*gzwrAc^O1O6n-A}rKY~%_2-t9($5IB+P*JNtN5Tkzz9;nZ z8Ko=FqRV~Si-pOtGdJm1S zs$K-tD(Fs$KrKR6_h2&ab z0zr{Gqld3GOs-6dV`*gNc41GXInG6Jyc{}>S2m>LWiDuV=inVa3amo!4!Fd6%3Js1 zX2jI^CbzP1wt#kVEBu9WEc9K;8Xa-Lss2RR#CgK{o$!`Jf*GLqd-EutLS`4YjBxPQ zpUb0>N0eMKm$hKc912YLd zMa3P7j32)+M@E0UjzV%OQk2z$cq$-463tt2qvcx^?n#p3wQ?0ZcN(>{{wU$I7xE9f zwE@kH+y7;oS*&5&q$|FXiI~eN(heHj1TsdlU3gSO>ay+hgV>+fTU8-u$xi<`S>BDr z?xF@f;@d_^vfBzSXAkwro7O4&V9=Rz>qIJNf=dJ{CTcom=@MZEhIP&Ch^Ya2=0S2i z#=7o-lN#b1D)jF7Oe&qg?sT=0K2!AjJ13*=WuRvRt?FTeJt$9j^OT#IP^jqTUoZ+(nah5If6ouqcF1vHNOh)nuR+=i-X28GnE$r5%VBY zKE0p$r6|Ghs@ z$&OF!!!>xe%59JHK}F%IpMaDc1ROw??;?9m`pRXM*m}3T!|P_b`i#BBiqNgZveLCz zJ*+Hhd0Y)93fHc4kBuw~J3RTCdsk}gp@*n#5Sic{BbTg|Hg3)sJ0{#>rfY+S_r^4{ z^7x!{b9qrF^&Pt$Hb%>V;3^7m?`y`k^dl4m5Gj#`FeF*oQ6y`7Nk1lwqVWowGq7L) zStxt5qqAZ+7=9(p$$f+Gif3^f{Zvvz^*-}l977=_KH?yY37f~v%zn<(Rw%kMl;RrQ zt^mmS>k7LJ=R$*T2Ck|4VJ$Gt%3#U8m&jzSOSUx^w;y){;8|~wMs#t67}Hwa*jGq6 za%+f~dq~hIbsR!yLMd>Hmb5RdA4oFuMI-Mk5Iv7H9r_n9!4akDB=3&U6+Oz5cUV4j zu-^CMvPi4J(K)KmdKx8!tWVm<@N!VvmUHA~9kT|4Rf;sG(jDj36iL*xx?(=cPy|XL zIKTm0wl*og=%Y^Beq8z2ys3bmu#>{_*b< zlpqO_k?w`~X;hNP>EIYtk>SS>TeAx#@J62~hw}oHE|?MM_?XU;5pMU7jC~w2j6b#2 z3_J&{MtvG+PK2BS+Q?d)?QD3cC~wtdt56+cU}T>>zq>(}^V!U&lmOBdH0(nA0>Xmx zrZ99>`drB2k21uU=q1I~%rE#TAC)L~YQ1?-{d0W|<;^bPR}w-B;CQE;%!0b>h#}b) z{?l>iX;aiVru>8BVlf~(hyC{DHNUHJor)k?8E}@cTqT_?=-G?;J}K7>(r<<3&h~x& zqL_8vX-RQI3Sq>MB0D_$Uo5sGFY2I#v;yI|I9}WsXRd?e2rTP~PvaWzcC$+Lf`^|3 zDA*(8RAK#gWXu}sA&R*k)Xw#!0q9t*wc=5WZ>JD_+&g?F%%PJ_Jc2lDFSCa5~gA*W@;UHz2@wlYJ) zuKL1hY!1KOc6%+Zx&m$@z(%yc4vzFraTchgfgRmYEXdSpC_*LGvQ_{3-JQF>NSjg` z(2wiUgna1A7yz@;7uR+omx{RE{m60?rcxdKEl|IhI#Co>cX1Ui(Hm@#$OYSqdX1aw ztz^3ZSj!_W{?2BNq?-i7SL0=|)p|E1IG86gH+KE8Da4XZi}m_PxD+C>K^<{jLjF4J zg)1tznhRc4{o$uiff!hYmU=&N{&P?a6#vpXb+vh&dJ`}&(+`yQdWecG&(rNlLEc(& z)zjf>dH&8D(dTza)=Fj!gw z%6;S#VHmDKGzNMAIhA8P1z`f|+E}7=fLR6ta(d`^dJOf`FfL6fWU9?Mn|XqFkvugt z3BZjL#!kNK-YBE&%bdt}=;~-`Z$1NHY1ICa_eWMNb>jzuNu_)J^2qC2!|rd2uC$0G zSn~S%*Vs%e?|xC*Mb!ae06dn$z)Th=0+9e@v!FQ}92)7C=V>}ho)ii{FixF+GA~J_t5g&E$irJn2jxP&f*Yh>>jenjF`!g>_O%G50zQSFFj66_~!3`?mHMQGP>| z<{@qDMd2v__FWk2%^5D`SnLY9%7#n%w^pE+&alW;S?|Y@vIhgyqlL2d06VjD7g8pgwMokiR?DyJ;LC#DVMODkp`6BDM2~Ri0#Qp+X3cwO!lhB^BqibLA7#f=yiEQ^Fc`HVvdYw#fj^BKS9wHG%KK+Cq`f;3pxH=AeKsmycl|beofQd{uUo)A zkvW{A?l^G!J$*mL^Y;`Fn3brkt7g`a_6k@KXr+;8q<)#K=O;vq{5Mqq5SF~QGE~}j zOcrm)@-1}=2^RU~Z$BEDp_s#m4m$~35$6vi-ARq$+OgYCCj*%cyLxm~gwr<&E7z&d z>aEI^*p34)B$zmglz7_=Ra7~PpEc=Kf?K3-?Dve@k~0P2;O`tmLWwO)`&7V zujiAXH@ylvv@Jo5yS=|T@0m0bJ$`|jw_NIc;;4=P#jX&;-S+42I00>ej@}Q59-}i8(a{lxQ z5QfeqK|%LbF`iDNcp73rOC=&@AOZEA*M4ya*uLK@TW@zO*%08Su3Uzj*MxdEc{$I}=#jvW!KU?-*S25yQzs?S8+jvMn&A zLIL06@#^ha%eJHj%kOPQgC3EQ8%&$zXUhxHVK38py#QF>MMp!(xc@W6leWPV*BbLX zIMeaU(b|7B*awm{PHIIXu4#~9J;9VweHC`Uv5-bc4@@6go@9ZrNOt4%x;RbHFAFWL znvZ1lPZdqtX0usg@ct*9(m!pjx! z$F5~FF&opZ5^&P0Gwa{y#{H#184i>ZP0`@R%!J#67P;)M;F`9T3a$mwTA*LOC=wwaXP|zXaJl%xg57%eVe`llG-a znbPrbaII<5%azFz%iOtqv93olDkdd8gNxOmMKTG`a3=H~?{As)uN=u5I!f8vLA4+s z>_9ACjS|&}IRKW9i2iTS3my?53;%ISc_zHA?8==0lDU+67a2Uf(P6NIFLb%rypM_m zdsH@~CP}1&bE%{Ll#|fQKD24oxsu-7=<{@vP>>-*_vVgfHeeVQYcjn6FvIwzYR;V; z<|oI`nkqUoCXp=xdcwbw=@zfG`%00F%BZqC-M2jQCdyJ6G){?T?0DQkoz@^F zP`@gJtCMCF+O4@+0?fI#mo6AoC%XLV5XnVYxKp~vJKA+f(p5y_FT;HK)f90AO3+!J zR`T^Jh$4}3RmfO%6ysx~1E$8J9JKg?#G%VxiVg;`E1hQ=YlW-t z>OW}FkL?=I7E)S)(!xZyD?z*6&J}c#$242buFJ}rT0Mm&y6$vi(d$#jDt%{bx_(wE zzKn>tad~+3{)yYBH9lMV-i7qW_K>T&+v75=)pNoZ5#N|8(YDd6}IUobuOpu|)rQBS#%t zbyhpc;mA$df$()c7y{Gt8WT&S{ z5dwX@NoEoPO=3b&0%DATxh-Y}Gyp3OO>fHWKw!t2uN^B|?3JF@nS)rsFo;aYBin~B zGac_mc)BC0ye6^1ISWvf=96>t&CJZhLdr+xZ6C~L4~bcTAl=FF$^*GM3H=&&SkKkc zc$lsLI`eNY0Ygre@&>Ux!eR`YD%X)GOc8GB&$e5eleDV@T@x?}_A&s4!IfGvEWn^RBOG$Q zli2gpN1cT(yCiZSFygw87Wry0dMq?tSf_gb6}xwSE6+*8SBU}B;AaAw8i*UQGwHd61DylAtHiw3Q) zEMSf+#e!ur^4kMMCQMPX80V=HDl`rV&jFW5q@+zUR6-xhaM|UOaL9wFF^}9?ZOW~Y zFxEb0{>hs|!h}p5lg5)dUoPLNSr2QEZ|HEQ@G9l#?4fn2qJ_Ua1}lj#L7TC{oHK~X zCZ@o-u^O!NznmEkj5pr?S(C`mJ^^mOoLLwL*L4PB3lg}FUzNz04SFmcmJEK8`w7GL zDF4shq>nvGOpk7gX-!&+vheI~MjS z4ZR)s_^|3oQ0Da;M4d&$5?!%#1K!mv7HKgkl#ZD=bI^9Q z{_2rK{{W-zgGvmZ&tdPI0TEq`T$1_RqyD zRm^vkQ01XY5#is6^-{tlU8NXtMRryp3CV%srzb@x?R`-T$TmdufQsJPwaIm07Go%l z#gCsb$)!6NYR-yrSyT6i5E*dZmiApOzfp%ghj@khJ2@LpRxL5Ly0QK8eWnZ>% z0tNi23>KoTb9=uW6eumm)?1pYvuNlqG|n0k);~}L^BuojgW=5|_GEBIML$p;K&YWc zRwGl0!0xm2pm9Md*8AS@ZHQL*N1wc(71YF7VDG^GDWUmEi2bE}Z5b7z*c^Zb*``9d zvMKAJ=|7+eXRMN9v*ZX~!kK$_M!bP9fz*I@pNq;PkMpF$jt~pv4{M|0FE%RhEumWq zzW9&V6=L&Jo%hq>p02-+5FdDu`#`s}Px|`EXn2|>28r5Xnh6-IpF13}Z8`<*;qXUy zaXBNIuxL{Qk=7OXV=QKPTtxMuhEw;?UhJm?Ebwk?f<_L{3oY;cBCVH<4(vOf^8PU+ zH5`UR$}}(@+X&7Ie_lfuIfSOv`=;;cK^b$Mas@Y?(pGm@$0i3t9FEMflVz|3VWDoy?*l1_i9fyQ7A>U{}MQI_s$rJ*KsqlrJ;Hl0a z!775-2!CfcIKfcFG(=5A&n${qkb~6=YXH7?yi}R0phs<_p;0Jlcr82N<~q+G{CM1os}b zM5j6v&pPF>4V=oVKY(%0WvvaOX&dMw@f?U%Oz>$w&wFv&DM3!j@2GKg$_3W|ofSw3 z^D^h<8=0JY1@`c<<;y2E!?@n37AF;c&aOi?Cgd3$)~sdjtS$kIY70+zvXpKq-23(l z|?AyxGerFP40SrN!M6ax8T{;v#5D4XN06tFSgyV0 z-hkdN&@Qiz?}C|1`Gu|F?|8llN)*{RVAjFle_iufM}Q15CGk&N89WqfGP@Q@kfdd z(wSXV(2NP%-wha|eaAS7`uJMGwVgKE5?lw528?Ip7v1NT_^SxVGQMB^L5-$z{)t&v z4LLhQrffoK*BJY~>5LS{Z+<+!wsgi)za>tZXUD*W5?-zg!~1vY4N^`89JU}G{SUNK zJLM{oaOYurPrpK}$cz+*;9J6A5XWR{P>`x!cM!w=Xek|b8Q?gKAnJS9D{mF5p-ZFl z87=J%Oo&f&7K9?VW??j};ra*!AdK|M%_a+ceg1go+NuS=8rjJ0mT;Xu7F6~9%6#G5 z)E7p0CP!QE+{`8Up2Rl`6lj(f2q<0mZ0@hoU-RHD$_9~GfsF#C2 z!_q0Mgo2z)+=lOfyHBQHLofpW@Lad^PUop`)3$sVuxzW#K?HwMI=GuKCOzA9%ugXt zAlCAz0u$xR@gBzVMLM1-JzOjV&CqO!ZXHU4fFu-jS<%j~6(1_W`H>|IuoYfR$2B1Y zYB*zw(V46yH`DV6P^o{_n4cM!^dv8Bx_f*mO!CK#sMy-TNk#iQty5DlOOO*mJb(sm zpjcMig-O?l-q?XC3b2Z)qBf5AffO=HWT;Tm1nb37wp?P#5Q}bUp%5iJ+c1r4{95-v zN}bFgT2Z%QM*KWyNIdSl%swBzO=gl7ZY@)feN|nkNdKdPm6d>j;J>u1JUsL&|K(QI zkTV%Gy3#Qc=t9wpJK4KB{Ci)S zUd74K&e_4x$<)r+lU`W)|C6ms6Sz3Jn*Ot@{X}14NT3C>PfsPf5fPjGB*zkYf{`;_KR1EuXB~T<<3Wf#70zLe&bkJ!Wfod-#W^0z37~SBB+`vrVIOR2z zaUg`&G{En{miez&w}`=!0uF2p;{y4wbGH*=9#4kti0bd9641Yuc%VuudJ_JPGW&}%hG;gAS!Wb{)o@YlOaz~GVSU_R0)m@x)rRjR~ z2%{)~1%eHaeD}-u@TDgVegf52yHzO;1h7Ew*UvUSd7n3M??5`vIZw(B?$?gHzbRDE-b<_>EG)!1FE;CRn;jf5h& zGq+qA`eQ5B#h829&5G9y%M5-z`3Mo4ivms_Lt8;=vdAa@swoE$vsIQIw%CU=BzH$0 z!D!?HZoWyv9Zf+?RoYa()%Q7c%qhc8N}p~&=}+$$9aEKr}y+Gn6pZvsDt_I{s+Nz z<;;;M>W~;(9#=nv56cY7-pDQ!D~OE5m}lj&0#vw;<===ZB#uT%DbL2e%^0d|-Tc8h z@i)=2Ipqy4wK!)8&XU>Vuhh>^x+T8PCx__be8WD_Qh&NdvOt>H02FN|1$BS0?^UJP zQk$cz$zxE%wEd+T?NgJ4X>p#_D-rndkx>fPzd*7v`S$5Fyr68q;WeZnwA{j^HH-6T z!gjy%F;FyCbICs7fXgq6*U|N>`Hgx*$mLQSU*xxi$M0%7zyP-WA&@Hm@8hifCylb` zWCi=ZEJSvXA)bQFUeRw|B<=g3{*R46ygp$M^ZLVU;Ec6}O1r}!Tl4u@XJvhZkN%Bj zUbJT<#80YO!|HNjmWM6<^H>Lc|d6o+1NMG6SZ4@U5TR0KAY0l#n%QK&Erygd(V0eAiu2Nz!s_Znp~~+ zw%&&$W#R0%p28|Uc`p7JbLSK!NWX0Rwr$(CZQHhO_q1)>nzoH;+qP}H@9YzC?>P@& z+ir9atN2wVk!9MADBk|-&ix-RrZidYV?8mbh%iW4dx(+uf z%RlNA?>X!}OH;Z0p*gWkx&dzJktmc{)r4A`V$}1%aOsr`O!OG;H9K+~Paj~vUs;}K z!mrhnQ{Z$oVpZ!Ag1F%JQLK4;#RVD7@{}X{G}#%lCRQs_42kay7-uIvq=`63JY>Lt zo_7i5eL*FX#-IdCr~7>zP&j87uIp@#u04YeiQOF%uj+iWyi)4I(8gDfTX$iN(F@lV zWvw5tOcPkG*LkIZW}Q9~r5}Yu0~6E)DZh_nFnCwDVLWwtYO}VgKi9IK&&9+rjgT6D|C>c- zwdXL6PhzS3&pBHg?O)8v6h2r^un*RCUa6P}sxFv{RQ)03Gl z4OZQo!zFy^-MyqeW!g_ga|&L~l?55y8;wh@qdkHB@T!GQgloD459#p?0l6cMhQ7Mr7gmoyi`rNj4O1}m3H?>><=PkjN}AL8yq8LOJo zcpzuSyZ#2iBee`6=jigU`Fx?AiBTaEQ+nav&Zl@BYC7R=;^VlMCTr$S?Qu3RIvqI`D9@>V9013lJ&bR zxiXO1(9W~SBFn4VweEeWX3d-F3G7?-p(IiW=%{trHMjB?B*fvA)Z;{9Kpc&{hCuO; zIwDik`;nrU%Ui9zwRkgnJVI$MP0}iKK;T^B@LK&>S5s#Kn37I&NBxp7lL2#d!VUIS z+EgM9GMQfynVR3w6Uc||Jr%iCAAaUN6ay`=;c{KM#FZ|OYO_>GbTI1IP5t)@Vs!Es z{IDgX5WgDYIM*8gaSC+nP))Lg1&ZTe^iG#du6p>ZRaU@IjNnv;G0;eW$n>~i5ts&H zNbFN*oXxVbTIY^s4cLps0W>;e7jRHYO6aO+;ni zZEWa86QqRD=`KDU`FBVjyyAx{Anr;T^ic!?_wO&Xxz^HQZmZYQdu#}8TeXC95HXVt z_`deAr3YAHre;=}NE|emUflLTg_#0wApr~ zZu2s$2LBJ@q&;7mlHSHeJ2QF0V+YvvS;@EIH(!j*8zMa=wuS+M=f3HFPYMnYWjBjZ zyJC}p(Iz`@?$?el)!1xp*1wSR=nKdc1ay$T8@>MlHqVue+>f&5(Hi9S(oihW&Kik_o;{; z#vd+F@RpM;QuDiLDTz>^Y5hl}%U0avX;K1wi}9DEq{)Xar(GDHV)O@KetMA;?%QO) zL4FY=W%A`hg$V*33r3s^ZKPBq$tp!TI-`UOaI(IhnlF7CvgcrUx$7eGe({jg?vVZ~ zhKTudAIwr0Ir%ji5geO#fI5BjbPH^#5NUGcy18$^Wa58Cm{b`~T}>3{usZ>ew)G zg>4-V^**iG-#nv7hPs+aVRJulo8fQydWA{@UHMmW5bV9QlT!1)1$<$^zuwo!sxHTr z2AZtXgL9X`Xm>vb;nmBi9mWAFoF7@LdNh4Om zDZb8fzMH|Ewhn$XEMCu{y6$3BW`XI9Vw==#i?CBzLy{vx>9R;DQ3O{A5M%Ayq}2-*M5KmDkDV!MAfClxY&oO-qD3ex#49$a9rpv`?AUhHYSIM&Z*f&5qs2BQy;U4&8JzU6^d zm!E_(&%`;ZiHjqQ?JLSGigm@;+2L!16Vgg{26!_Gm>|#CSK}8G zuNexzex)?xMk1i6KI~iw7~8!Ov@2IXcJOJOcq}o=#l5~p7&*nUoXIMy$fL9`g2dm~ zF6JZJ@hL@Y&LiG%uU$MV;zydLt@4cNwVk#Cu_W|hq5U{Gd4t33H7ed!{Hw<-7qup~ zcQj7XpeMo3S+BnpA{AYOx@#o+%{HY)#qpQ~`*$Wi^wo7=F!^nQ2J|g!>r{~_A{e8L zIwL|jcJV#B4*(c)@+yQz->?xfHI-`_-~yZ!FWF(CY4TMY*O_ey6?}>_N0Ei0B6w@- zY>39&?Si6VEz;Q5h@NGoS4iJQU@Z_1=Jx)1~FlxA1-t8l0h1K|sTdWLPS@+x>wBp)EnM$G;It7oC%k)@W9N5nGKT7J#~-4{Y0ZErKIvQL z43ICzAI!JYZ;1H7n>$NCi1p;PUMHC=!}zloVe`s+m|&K(D*-ZQ8h zM-hUESn*;7K|(RzU-DtaW9aWc%<6Rk-R7~tg)-jPeR!gFN61=#UymZEJx9V0QOyYz z2!<*O!H82=>f5uV_G5(NE|a7;{)HbKb}kt)d}+7Bk($l>uxIDiUi#Y%~bD zi^?#EL?IvsM#Sl;RL%%dw4COKq>)BWU29$;0I8U|fDN9R^?{0^MxTh7EP1aliNM7n z@&23-`IEC(S^bHcshH5IFP@gM8S4mbZKDHjl@N`HEcr2xXP{g_qAovJzq(I+|LD1b zhGzl=KI-gb7W{N9+aqiY+3_G@BB)PkZJHpFZoMzCYnrqJ#cfQYvq)VkL_&AJ#*-K( z3d;r7Vlx7^o<@ZwBAZ$)~0r5Qa@WBf8p*(Bp!aNyO$an<@Aa2vb zbuU(+r2Dr%76b66gAxZx1KfS#S~H+Bo#BWy&H7dY)c%AOn9>ov>9t~x1warb?3ngk zjvfN@?386tI{t0ISd`9#uT4Un64~lrdDCmD$=m*@1d=h2qCMyC@TjN5;>ld?LYvM8 zRWau&cK(IE$*}hvxlclB@L_c|U6Pr7g?7afJhaEEkL<)1@#WpO1S~H#Jh=>N3|M81 zR{gYPd@fx^`17=MDcHww)%yfAEniogubt*DH{a0k;OaT1Jvhow98`rjY$i;SP^h2O z&MMaMBS&eBYNYM6kUJn=@u}3muu=9UmutJT(k)N9{ftb~Mbu#S4we&#gFc3@^V_t- zSC3LiAR$nu8PWVf6p>&BbdhBuOxx7i4qk2r5dqTmXPULK1p2L8k%cL0%90b}KE4(Z zpvcuY{+mqL6F2cvkt-0sWg1=R+5@}+R(OGo6J zJsfDVPBL1^&;G>V!sE5aU+-o9er8EgOYZbdJ%C62SVeVX z>E{d!8mR)LkX|yS*QUM4^%e>rhKJsC;bcNwfFW((%@DxNv}pHm80J=}HAgUvhdR^F z8#ODLKkUBpp2B~3l+W%_!+ zPnlC|aQt-pCxpMa>3~AKHUfvPVCEt3&zHU?S%|;0(l+RlLQAvO!-gxxGMkYM-;3R+tiIwef;S0BRhTtJ*c7x2aN@F^Q0mCKrvdYYP z?@0@AskC+-YVn{{@le+1+3lT5;|H46d)r|)mKZn!!H0rW%p}Cd)ou?AtD9#&jDXtN zS&u22IVrL6ehN(@_lI;hjSP9h0P|ETQ~J-jWZe2>Sq+}i!2}1tk`!bbqWbE{=&EGx z>o*889*dB>j+!@()rnGKYE*$GT^MyV(7o7iKHOq6Tw5x{MC*d0G4(hy0 zT>P&RXGT1-J?+SfCyjYxPakR=`jpa_rlskf!MAVMU%N`Z+ad689kl~X3aWjMn?3@| z8Vs>wS?pb(@5%HuSzk}YIW@11!$(jGvUKr^7x;YDs*8OrUpZ%_iW0wSh2K=tsl zb$t!qFS>8J5Q)l#PbT*n4EV-Ww#ZPKwgbp@89_r|`D@Xe*g<>$ImXsVvb7fg5xzpnvtcYgYiP5JPM6eVq7FD?xvl zQwVm%IFEmC9F|mOY|iQVt63?2yUupA8fxF%8qZdI=64iR%Z;ANC0Ak++~hYhl<&!l zZf7r}owYFY$X!4|O%zz1tY^5eTCR|_UEq0;W4KAr3l>p8&lnTItfBWqUi}OHo<6#R zqzseEoDg<5dqB{E28mHt5*vG{Tlu2P3e6dNb;i-CrfOp)__2V-|Tw(r#WzBy(10lN_B7 z^F?kS)}RbHM>;h%$1z12Asj0bv^EixIXDx4veC`JWA!$Q^)0T${GBX|I`VDU5DUOD zR<>cvW2Cl83ezSTW^qX#DZ$z_E~!FzQcJgdf4(%ug5sVbQAY8RViqLkNW>ZpN7yiO zn~s{N`CA^Y%`M)i2AkIr>Ttdop@VDu6d&;VeWBuufpP67E(W%G$z(Q+41 zjC)q)2R3?6Kd}1~VC(DIXQFv2!x=3v`ix^~GP5#p{14Onp9+QA1!pPPR@Pbnv6lZe z6k_}bD8%^hp%7xp6~GKZQiTxl8X+V05ngMAEv1m0%NflGuy9P3Mp(=}ER~lES#^Dk z!#j=csTwnR%H1>lt7NT|HOIRb$_k1CG#~Fmh4(Im4uwe0e`>e6B!QuFYFX^i}Ot0@8r%kylJ91yf}` z#in^~%a@ZcfatF_ZJZ7X9QSb@9s2{|!64NmGH%{}<4ZV58hs*u!ED42YPF@c7WqBb zsoe4Vu2laLIUDrXqbS5n6ntNZu2GUU#o4mJZ?Ma80=f!UU`9`*vD8e+hM^@NVV@KnD z-%?{iLb257=RLqQ?$_u^COpc3)`E}Nn?0GMArw5dUL%Nx3~dvRa_ILgk#Df#Or1fr z&>xt1&}5t0#s2*8PBA#0IQ>mMVw`G5Ea(I|FG#L15Q@P|xKt9#jJY#jF2dt^Ic~{t zhFSX{3-FDN5W{*Ee5~0T)qtL&O*wy5;472KLmYgqMG;hL{Rwm%fo1$E=R1J` z#AUZ`3+w>{IarKkLpNtYx7;<1E0HxaT`77YG4|v+1-rGZ=DUJT9jtf51r)*$o@Gbl zaE4h;9y&cvdGrE_6AN7-7pb7?!ZodfVg3+j38BE0CKYLOuE#3EU zu9hmHWZ$ul+%mo6sN?#uXasj@haOF?;dxq*7aLtP4652$fV9CY@of~2;HVVxVs*v! zvY5}(Y+mV|saGM6fivu684S5_dworBv50+QJ^F=TXZ#wl_10dy6j(T;g;c{Sx?QwP zUzQ=df5&!d zhy!fIj;?Ct=X2Nd>knu1!m2P!PwTVb9?^;$$MRHJf6LcMYm$fUk&}u(*Uqc?k4Z;A zxT@b)t3M-b^C}7)T}L2~GhA?P@H+;q0I(!}RluFWn35!2q^vBF2Sv^f=c( z3~T`07YawG4WZ}6AZ*cXQoHv7IEHP%IYbJ>d(wH8p~|N2M5# zv#A`fPS_-ayg>R2kURgWC;s1+ahu~S+qlMvDllR4>zc-N4kIK#f)ta9>gQn^6!mwN zSLw$JEeYI>YBDPmW(=yk5J%0Q{co^xoD6N&V0?cwB!k3fDXcFc*5oun8-{8XU3`b- zff0d7brNMr2H{7)NQQsv%K_D09s5jJtQFVqm0G7iXK0e7vnU8tBotQ3Y_uOlz|e^` z<4}c{g$3qIgxoGqyqV$$?_$naslOlCW?Epo#cbyxO~A+yYh08y(kV#)#CKBBUaMEU znY1!Q#cCMv@0u%ZwES&(EST!%o8wEs#x<$9@#AYEZ5SdMB9rSu7Zlj-0oY#_o>=Ac zW*!bR8RF9dpts`87Z{)4h7YIXB2CP;>?~^D?!SMbj$X$ ze}z((}gR7C;o;@v)N%OpBk zaWTJXU@Q6nHv4ot{8YV;SazJJpp2i8@f2SWn1I)s0;%m}Xd3j)eJTq|W&(aIsKKU`;3n8ek>yd`niSFv3g&(I+_1fy zt)%wwwNH-|+iTOh9S}c9kg5z%vIJh?os#)zq&F8cO;DDJ! zcho&!PH${l?{L(sC*j6pBRq)t>d0$4BZY-~&na^e=95@AJ2vg4;z8|%aaEhB|D7oN zRj`;;hZj=II;ml*sRk=r?3(+7@+IkuUyO$*rtae%ArD6TcQ?A;4=oN6$N4XPtGuk* zph&GMh(9;mlG1>{kVT=)9gQpp%CsE{aSJ-MK%T|{24592F6+UUmR^r13wKfifCUxI z=M&E2anq&AE^6+2xobz@PUxOE2#=`J7wJd~nKS$?8U)3Q!#8uA{ZyGw#i&5gdaQ>L zK>`5byhxvsVQpKzn80tt#9B#H}3ezF)jDuCJYMSPEY8zT#N{QR}Dp(5kPgII)0|<|k*k zlJP0g+wpsVO2v(qtY7q6R#M{5D(UsPU3?HRl z@6|?#bH#+)N?~;`;buh#HSp$dz>6s}t1nZ=mA)a1FwhHswY(U~aPL_IjDbb%h9;&eDbVH*k#3=l6eCAZBdQpWMR{tv z>~kFx(SslBog~Ehem$p8-qw{d`>@>hYx4?ERW==;XsQNaNP-Ut1n z!VZ}o$!byxsvk?wQ97?}^mx9U`z1%2fpXjN=3sebpCQ$f3qCz1?=U`78Uol{&9mbo zzWr7v5q>e3t-EKDe^d0fj9OA7pM`Zzjy5Q^mz7@O=N%W6M!d^~oKT^Ze?Kr4S*xyj z{gHZO09NU>_QNADMh*??gy3g#W&!w>2*M`)NRG|{%M0;zhg1p%Hz5n?) zm2cR1B(MqFa#vvj@fNoWAna!76vIKw8SF5622j%(GB~dI6dNbHT?}RjY zw|l6#jXMsY55)_#c8NHHIy5kj8ZxqYLkTFca0`3SM$e3ho(-so3{=THW{3)xOn>QeznCdnrj3c4CXAGf4OCJ9$KH$P%F1UPgpq53b}* zM4OeWg@p@8y?d-coJAHbv8_7T0eor0x?l@OfnOKT-6>b4u?>?pq?=fWYn7AWosJyN z5{=c*ux^PM9jL1Tbld@J$3}DTX#`mjS_BZNdvMh&zG1U#06>__&uh=H^vHn8qOu6y z-r3j@-LFaz{ON+cuaz*iQk2o4?D(Sgi+#=f_WS=R^8X*D<7E0DhUM=>+JEL0+s|DU zJpfn>#Xr@;^uMNbO#eXXnEpMbLq3E+7;RyO^eh-bV{0J#Qsl@aC#zLdTM`q^p#3V$ zYDC|I#^pB_&k;fu`Vt!VQcYndZq2T|VZY|aV;${A0QG4M@w+?~WxZC2>j!dy=3=am zwgjoHZ3yOl{$YA~6wr4GHm9r zG`%dqQ)_7F!@0j)0wh~r<9=(?+>=$Mgt%3ZLVj34SmPq9$ro6Fs(}8l9vd0)=^|pH zlI}A}RfIa*bK2J%H;41BbRg{*rhPu zESbHqp+GEl1$0TcZc2pi-I~!R0ys8$-LR8~UHCGjsD?WGIc;SJAqr!gQnh`;fw zS_`qC3VOu)oaOjBHZl6;+o#<+?sNjrFdN_31q=I|@k7v(QjXaY_u1*j?-7!wzfM1{ z1P!EEMpeyE8)MtWU0;TQsvfwJrlLa`6oljZ<=aYH#cV}|ifG`}swxZXq+NJ0<5<5| zfg%-OhwcFvX>M}S`ovop8Mr&uh*>HWPKiynZ`N@Op<=5)F1y-71d0k z_wX}qqkUS<%ki|WpHAPy&*0F>mzYJmyyYXr!tM=t4m)F^RKX3UqQsbA?p#bZ0XULa z-hx69Z#A-0pLaE^L*?*1-Mac^yINJDc=NBghK59%PgBrTN%?-X>0QA)aE z`Bh}|O%X~Ku$v8HhZqH9zMp22!m+@bXVAnCZjNeq2NK$49ldEDZT@sUK`z7322h#8 ztVJ~T${Me&`ovd?>?(YuR-T6A2Y<6*abMq!}a{}BX~w~i0^C{`9!DBEPq>uJWQD_s1J;If-bZ}Uo38-sCWj*rZCylsk-lCW5?7{ zzSO1@XmJN9GbgZ@3UJL66Sn~r;x9xfDCkn(C z;>52W;ckjXjG99~S$?Y}lj$fv_0c&*?;@t~qg4zeLS|3gCkZ*7wQ0r<-EL?acd55- z2p}}#7;8bJq^)9Bty3o?H0v+*LV89(+m|qXjF)GLflLgo4ZTCKBVkRlH2c(4Q*Pa6 zrzLEY)FK->Dng$$*PPjXY^AO+g7o9qYABj84Vh5XadKu)Mmeja^Z2p@t#$o2Z)M!# zyD23cOh+iK_L3nQda<^k@~k#Ky5mhixTH#F3U3D33^xXlQki&-m~FSoSOTux%9i1n&KmxKYY8k?`IYnmCJ{8Q6VJw{_^-6X6Su*B*>@XFmS z9J+VGnWKzTyF%JRJXL=j)kStDU>EZWm8XQn%6Lnk^E4#%P?hf`M z2{_v6fpFC=RuBmuJ|gNZ&a}k}NXp#SYDT8u=Zw|N|4aL?u0D`q|Hd~!V8w{CQz*sH z2cd}asy#o!J^P5q#qt!k-(VE}y9O-|F*R9TW3zL9a*k-{Nst{_qQR!hkRJ(qef2JK z-TD#VFiz+u>!Oc^a zDEFsMBn&=!>Xo$4`1|Y4pI1hXnLxPq7|0LhMG+#pFUO+VmDA97f&F#u{JMcvZQEC% zOQ3gtR6CdJ^RqKx7Uy|QCiBXKaLb(1fH4#+cT`amD*7;6_WsDIuTck{x}pCo-NumllNi24jHD zE)Hces@N0?{Jfvys&JUxh|*il3#tUp_uNhyJ%77Dh=t_so_X-kmuBY{$jwUGOUznh zZ`1maQae>w+5X3>6Pu3IoRP!npE5>i!j{unw8PkA{{HoD8fh3fzS|!Y$NHZ6k{Oni zEe9dkYFiz=eTx|=!ZoLNtvU)Tq>GU+6WPGXv`h?8*AH8w`vXB%4bW^ed1-Z53KMt! zI4pJymf{887}`^B3hV;<6$#I-q}+vOC7>$Sqe=@}jkrfQsNd-M8dFZseK?JH7)C{9 znL)K6f_eJ3$ZULzJ?p+j7WH`d#8qg}0$-9Uv&|HjxPf*?#HS~tGzv%4sL1fHioNYc znj*fN+%Fan&TZrTzg%S=>iXIV22bsxR6vwq{)Q`#7h#R2PYCL(3_A&_O~@}aG)crD7h%l8Ek+vVwxU?O6U=!4rG8m zDa82YLP9`znw>9>)-F#u+bRx}&(GrBs2FHRYV-2WUlQ2RBo=1(k4o)dTI;`N! zq3l-=Qt^yV-i-8`A})Q(ZOpHbitx!Y*GLox@zPu9Xcc1I)l;orpZ7PcAT=wtq?424 zUZ+Fx3Db<`oIQ<63qXVEr+?H9xt-|X(BIq;k#f-oNv7F5md5m@NUJpIPJxZ@7zYD%F-~TlQ!86M!{fUFz^`T%q)NmGFY> z2{O()8re-H9)mdo2U!+67wN?a?4Z@s z3tn{`hr1T9dEsY>STR}Gkv2fzM+jI450wC&E>d!3QHdG%_oZE@(&Av~geS``1jxCl zRk&6D?DB1dzMP1Wok)VV>LoQt*jBY;^j>TNH&VxPy~z}_C^JF5i}3WzMsZIMg|bu- zbnMvA;l-L7Oj790L`WzumaY%g{?>W0tO2Cy-Ff>6MDtXgivmtOdZG$X4~J8G_)er+ zuL$KBNp_KtF^_9ey7!|a9M#Vn9&^Im<#gq9QMXJ%$uyg5zf*;u*dNY@G+bTYdAuR8 zL=X?yQzub#f9~KQ#P$}Bd6{E!-N7zM){e)ah1Q27>fF30OtbeuFKpYhx?LWzrwr#i zwE@2VlT(hoWM;9wBarZn<6Po?`jW?V~x5IBWU~o5kM?eTl`Lmr@DHY&pp%R{1+u$(#8>!_eoS3fN zp*jueTK7(hruNMSD_?XUyUkIVm2uSki2pOvq_IZFPd7TjA7n5hWuU$C5r;luOspm1 zh^^9ZPy;vb#ur3h4chcw;HD3~N!p~F=30F!V#Q{EV>OL)iCml1fAX{%eR`mxo+ ze&S%tAB`;D8Df)1yL-iC-=)E2X-7};zrMz;^kD!IF4ef{>J9=PxaT^Yk8e{AoAX)m zHC}6k5Qf44l4rQpF$+J%r_^?VkTo>)tHORINF^B#cVY=lXBUqkHf0eSq|{ zsxJ|pJ1)&=$Yf?KCu&Sgm574P;~*Q6F*-0u!l-IxpO z9m2sqdy+b6fE``1&maNi8TcTnJJq2<8}B3FUf=>niYpNc+_ah|i$-k)23@t+;NVjs zEfWZhn26JmeZlmMEhGsHIDo0B@9)1&w_QCzH;Z`eiBbrDKN4?irB=-?B7sypp5-AZ zx5jyww2TUs_UPFCSM3fz%0NSHw9WEG_t<^|^fo`K_{?Z0MX@WztQEy=@WA2U;ZL7E z0x}hWG;?PMoavK|cHj@N7d$x#FTKxhVlfe*F5_IdSSS;-mI2=t~B&Lm_t3?ZB%-4oC{Z z733)aWkwF=D?Hew2c0%ojPHeMq0g!!XXod!=+Et%nLOAeG`IruTn_^)3T-^`?O`2R zS{t!6Q$-}iE2C}zZa$6i;rUQL2i-p;7hJ}T7f0U_3icXl_Mv8T~?fCkVR@ywYSVu9ggug=zpWsz;O1q~0eqsqy$0Jfm{ zvPtj5n-`wLKCB=ToKfG(Ecy5G3Kfj)4ckkrmTTi4#2|u%5n9Nc2NL5gfC#&0rHB>4 zHJq^Z!0|EM>3WgTMRO_M`ZRuyu#n zgUPhphs&49_70`quRtAxdo)(1@-A$ctyBB#Cmn~7>G)q;;;j0;y2xX|F~pfyYTpX( z)vH-FoUt8*WZTSrOzSu@nKH8=a4=`RGbtk2fcM)=t5?Xj_zCHd@^>a1Ai~c>*GT>z zl->W1Va=rmteq@FF4Jc5iGlG+N2}tt(0)zyMi$+9BH&z!F}ii@{d6A;b$8R~z_F7F zhI}b-;AzQEy=djvSsLr)czOhq*@hw>YjkX31+v!m6Yv;VmB!zZ?Q4`~AaAfy^r3^ELK+q3iWpww$~%n5J@2!VL(G%lADS z06d@{hA<;R$#3$t-BlmS<;r~dQCfg2?l)o5@isuiKBj3;VZ>DHU2?opDI7dHDUT>6 zGi#h5!B$aUKjK7e5i*+K}?m?%;3T(jULW7kTo?Nn9+*OJ=n%50vShztQu~jYCL8mkS z2-QYD($Wujx#tO)l76Ix=e7IATemTuc)YWKX@p$KwA%33guZcPNZcm`ir3g;yHCJf z;_R<1Jh+BodHaq!(L@Aofi3^JSqP6|04UkVoe-~yOm{`1DRzh!1Q3wC?W~~N@vZ@$ zCOzo-9pCx-TA-ADTw{>2QfI9~PjC{HcQDp9c>u7%xx6M&4_4Vz?s!9=!xlDEpkEF# zXF6N})?T}3q1^S8&tOKH%(bE;({5mWTh^5m*A*=F173%Y`jW4S^l97 zT?4CEy_sjsA7^vX%OH}SMulgmle|A;Ks9gZDVf}*#m>z}vVtml)TIJ&%isXM6```| zCFniUM4qGWE)W4<>I@{;v%0$eb|)_iMnFYtMKK zX^SVrv&m)j3-!m2BA3y9Clqgj`MuZ$eeQEWed`+r|{u1F83*Zj}xdib(5G#`>g2Ml3RR1sPVP<1y``3Yg8E_~@=KoaG zbH&%eI<(P9|4+3r|F2OG^FN>-=6{cRiiL=l3q<$xam>$c`30n|w>;z3wMHb>-Il3D z+mCGsqqk~IuTkre6Zf(-mPnomUd_S2BVE&jO+1HhgZ}n{jlY4w-6Gdom_y;p4qb_! zVN(_>$u${Ly1xi|Kvp5Kl_Pl3X>nO%jDT#DO%pM59x+Yu%CD`d)afoxWKk;kol8g6 zglaNG1!%J}TJZ!vYYeM21X==0T5;k1G91fdsO7}4t3L8Bx&bgCjViJGZ(%h{R}uzy zS%O#465T87lJ#4LbqXr-318iaYsS$(+j=j7T_=*i`d7w=1lIkxK`*d?9JX*pKl52d zPsk3>f;=wKYk*TUzGDvt8Mb*A{gb)j&;<#hHp2*T{}m z=HC6w9qhh-*Z4ZUr($?zfb3CDUMAcE!CfpBWBq~A6cj36hP^%?$9UTc6oZ&-<^_U( zAUEf~J)tTXYT;9s_uL@eIO;QeHtNN{aK(vH&O3Y{)Mehv2i8cN(!OhNpEI&qoSDW? zpZi5TTB($KG>=So^{1mZfC^?mCcI(u)@~NDll-D5PvwKg^SKcAb(Fz$Ict-ajL^kN zlguVh;^ur$oF8LEwCdu~=xrLFE1x|NI^E&*$><)uTZ^=hBV;bw2N5BrV3yXVNuRoz zheXxmv?wVZX~eD0d_m`d`g5W2+gaJf#b|?fwMgH=l~}>S&AR6EyL3$l-G>O}Lus4#2mIfkmaFqK zl}>PXxE0jDfAX>hH!?Hz#7r zDoGcPAT7ml=@}?cCSF1gX4C}xfEF!nsE{6)&w#QsKaXip1v!j49E%3c{K!KmUbRg5 z4_ZmR>=if5q&&y8XzEPQc!C_o(!m8sJa-A_COmX86S7ec+jGR~*LkMqHj*x^^SNbr;Vx7$v&6lQg^UjdH;S7~C;>+!@S%08vo!SAc_juvio)HKuY%#GxgOUsDf996 zm91XNQ=o3>w4QHe0a`Yi2D|k8ht%~&qhzQT{Q8V1_vR7X(P8`cYaYogw~c}*_>~`( zdxJC)esM3Y8(#nsh$@*e+E!~cK3bl@(ZsZuuk9csUqYgH@BCdW^+goQ8E6+3_NbTo zQK5IWz`(J8`x`MDi}O3P)0F9v-`L!InAs19IkAV#f<#B_F|(Vgt-C-Tw&*ct(i<0L z+S%E3!5+hh9tM78Ran}WhOHD7?aBz|G*sMKJSKj^!7pxg2)s1gQ8NV|VssCAD{;Ei zAYaS99iV(MC4R*W=w-V1Fa$jlN(WYs>ts4T(%rQO_2Tp)%SRs^AuIJwuUJcgK`Qe>oTQU9ndiX4K z40629;S`M;iW$s$R3TRYj#7(nJaTxg>;Q)3RX6CPU|zg$ePTU0cvl5xQ{d)@FkbRC z^R_Llu>a}1;G%Pq5la(}vC+6juwNEe!M6KW?Fbpdp^`PG}Y zG~P(v4Vk6Q%Y2T*h#^^K69{62R!P~SRhH30RVIFL?Q9ePb*;xt{;VTDX8buHtKDfZ zzcgyTT{J(+vPif9X@brsewDeat40Zei@S(=WF1MYF`Xn-gOhB-7(f#R_=qJBxr~0s zBe5$8-qbZAbaKkW9QM0OqyI$9;|MWcGMR=%EJJ>L*AS}9LsMVOsp^8PA3@H8--3z| zAlT!IAkm($&hjt$fVKK~A_zsTKZPh6Pz_;-dES|WgJcYy|1ktYDf%E53yw)w`Ard| zN3zcem)@u%Ib4dQIhAZYBQ>{C`@y%%tHe=D)F)kDaa!5xarEd**p@!GT(s?8A#!C`Z#Byddc@8=` zHP;F_OeEdRX)|Z6MWy$lot7g31i@T6Kq1x}V{Pw^*v`{a)qeOlm5te>Q-mxq{pq6g zWCvHZdqtPy2wzd)!rm2P#IyywMw;~Sjb7&-;ok-8;2Cz}L#vq_`QKOj0VmTcIBT%xQ=tz|lmEtFQiv& z(z0L9+V>t=Lg5IO8b-7pbFGj=MM$)*SEV-H7yH`DGHNDERjcPA*LN$_EhXNFgscsW zqwfExSNC&t0P!zxl(DHI+bcMyJe;5fLAGVG1zm0GT*V$r(=z(jTe>rr+JVgD*8> z`+wTpgkOUE@4Dz46}Qgf56F+`8^3|9bm#8*ivJID=MXH4(yZBSo^9KSl`h04Iv<6SkE@435zZ9Font9F-)isO zy0rCLv zEAG#4)yWo|TBr<}8;w{vJD}^5K|hFtwd5w4Z25a!cG7zGwSZGY`ixGQdfKdxrkprt z_+=roBx}dV^G1knzFqGi|3bpPY}j`uqAOc8r1kY{t7Q(~*!f@-T~NeDHpZ=6t}Z;? zhI8w(#Ze7ANmIc?OpMjLX$L8XO``Vb&D`Po&&+ytXw0n2S=5AScl;S<^e(@PLj%DY z=52lsavbp=3X@UCI|JU-Y<%aUO1b`|?b{@Von^OYcq=Q*t$H* zon&fxVLSuC3|#k6UF!R$QrIXvhO#9^$%irUjo~cyUTnRY1Z4I!_ET>a6E(Jj$h4NS zuF(^lyJ%`^_pi6g12o92`Y*%r;`4M*wE}9E313Bw%mA4hm%ab?wCrlSeUt-K;O5#( zZ`~v$#_2qUGQ&yo!JUdW^y0wZx^ssWn1Wlh4a$s>ICUYNMI8dPMO->IjQmMJg?n*y zfoRd_0f!9MI^=>!Rjo{F0m3fsq6*cyU}H8!WzMy#g~!hflNgcVq-^f6qnMd^?a$$C z3Nf*Jy^0Xy0dEI!z5gXBulv*YaB&-bSIa@v*-yNDn*ka4ktn{Xw2O@RO@Spx@PuM& zNw`=crh1*?I5L1<4u~3)3;O5j$7!-sd=d|;yz71TaMiGLn=J~Wa_bw9D)TXc_NK9m zgysA>hh~hbBpYiQwqKeZplX$9RO^vQxakQ!v`2WLId zcFu@#>vLK9^U%5(p)s#KSyz8DvGSQgCTf4Awvwr)X1-p~v-2Q@eiEhQc4CxkMSu5r zIw5tqW3PyC#07>kK!$(1VOKR=oZQ;a%VC@{ML<4-v6b++;Pn`5i!K@MCUR*o6!gj+5CsxfZo3PF4#aMuApxL;`-XOQyMt7ZR*Mj@l-<4P>h~yj)}sN zo$1#aw*Wo&uTzd+A*o(H^}B4mp^XAF+{fBAG-Ml+h<8xGJnNMXnlDP)I7lu7kN=JQ%YHB(n8CRV66WE4gV z@aS#P^yX?@O;TxJW731SB2Q`;THm)fV==>FYHh0RcF-b`_{SPZCT8#q7c`c2(rHw+ zKBmKFcLl*lF6mZ|rG>ps+j(+I2Mg?*qqQ-v)-2X8Jnf`{yyr_g6O$>Ak> z?F17VG97GORT4?S#S#HNpBalFd(0~af&Etx@6F`+gizv6}><$kfBIzf5jk0EG%bb zJcMlewCG6{vJ&5Y*YhI+`~0c?q))q-@XEnXH22^xXKQ>vIAj`g-~4`Xp}0O%>D{`F zDUPY$AqR1|E>p^SrW2$@DbT8P*W`-gBqyqo-k`}4AA2;%LQ#{s0SW+r)GR^Vo7cx* z#+&BHuu0*P#AM_LSii}KkfljbHya>M?2Y1)ea<>Yb_eb}othwd;`y$Z{Vu>#52;4+ zOt{C{(6U-TvNX*1bC62g9ac! z?Sk2TE=A0DfI|sCYq*MKJqzSmhK(XB`twrJleF3A9O(%owdJS5j9cyij=9SsaKj<6 zO%MifavSoO{b)x#tQ18DJ3J|N1jgotqT{0t4NYW`Brm+pJ?a$vPm~7ixc5&Z8zx!XWItDtv?fA_f=S0jtn2I8(WxEtXr{@~efffEnr zGjv)YQC-_*)c_s{S%&qj>Eo)+O%ftC)v9a`AWjA`yKXmMQeT%=^9?+JB6}7FnJkc% z87zNgK1RrfGG@U3t*ziy-mEpE{&g2jEu&S1?6ixf@vO68b-{Mie!qQuyQFDCtPW4^ z|MW=T;w99!b&RgqHRLT8z$nN%0T~yJ2ULP{-jhyc<|isdYbU?iSj7K!ooV$VqT-e0 z#NUyA4J^vxkZ272J#+0Y_PpE%DWT)l7Rb&NQT1rzVt4=K42xLEXXlr)#X-)|MqF9MC71<%=j{c)w!nS2S` zi)Ms4SlP9t2LrY(&e2~>(TGTYRCwT$^V&-p!b9-YL=JYTYtlO`v@B0cO%O*R{yhV% zzh?h}=g{6wVLx_SH3)dhG?dwWNhmJk?~GRHlh>a1&T~Q#)^ZhQa!iF6=ry8uUif9* zPA&U<*ZAwtt}CR$?CJx>6trjRUaPxFs&6rKq^X~t^{3E!GF`)F2mDYrwU#Jk|YCwKy)GYup>;1IbHbnm2YZ-a>Ig z10GNZCm(mGp_Wje469=_&cV|NRXsu_-X zRVHqnymECsu)%oG#=!|-?kV$ZFnb-i8i948Z6*YJ*O{v}+`RQRZqdL-2r_U(KLi0_ zH6PX{Id71xdEfJiMmx;)NHp?B|p9YmScoAERSpj(W9n-!QNg5*LfxT!q0w6K$c+e9ooI(OZCZTr_ zRkZN=(>%m@V_Xrl#8vx=7(ib9P>dPgG**9pL5fz#kK~|!Iyy$s&&(Hy5HGe=O{5-B zD;~tzI-qE}e;?#P| zahbWm^acnygIfC~ju+hQwvM)kmV#I{IDz+sSlb*bYYr4tm4*pUl03!ael?*GwxN3@ z3Yq8Da#K!4vqM#Qy<{+|EYDI2u0sEzoxriQ1wa7&JfrleBsp+2heoOpF!WIM9H3$!is%ZtwtM(kgfH@#ZH;!*##C@K}s(VhQS6*)weLkDVBC;c~RoUT3!_ z4h+w~QgNI32tpS}a~h*DplNI|saKPVj|=NX{i5OhpVkh=jf<7j&ouf+L-b+4I)~X*4)hvMiss8hO2k;-or=XLW?_-adulM(iYCk`6ZxXZrkT>qq5H=dp zzUQ^TYN1u2!*=3%Gg8NbTKE+Kb7)8p%rX46blj`(TR}_hu8fnH5Pq?KqDRVg+Ni*m zM)LFmGGcVi5qY?a!;SjQ1?DGtnO(mi*-mk1%15J#%CTcYi1g)b<-p=`eW^uYpCk_k z4wcbLoXk78gvYZzJNN2zbzAs+Nie*qQX>AiSQFA^#V;ueSeqTIJT=edwF06m6@ox{8 zvM&)1uQP_^W0eH2E?~U?jM#&HK`gVLZk}cy6MhE*XqEb19|=2m(6IL#Xe(w^IoAG$y6Lst$J>{%FE7@d@uT8`)QBrpM{Y)s z2$zFT_?l|*CgO@;9dw};)&O1b2;h|^=ZoGi^rkzs1s)()tNy1~6HOXLr)UikxG+pg zdXcz|q{>P7@-64MQ7uodweC0=@*MTkB0KW_yuy6Owm8z;33$_9%SsiR-66f`JXsZv z%sojIX#$UNv2p6I2&t$cG`%{>FZePOq^Z;y;|w{yZ=UZSiA zJ`234!7#rKjWvQv&4oR_>z(DR2n)mq6`;IHF{!e+F=t6_i|T`OmwhOY(GW zmsrUk9_Xj%`4$r5^b1QdZS}ctfFkPd61^3qet|r{NzvZ1_%Z54wR0z%wh1xx``F$r z&q=;I2*>XOV&7L8Mlq;nP{&M=F`82CO0}I5RLSF`HGnW`j#^s{8w7O9>F1T8zH)Hj zHY16x;vJ(q2n9!dd9`#{StPOuzSj!!X5^AxtC#71c|}lt6O~bhe1XIf5Vo;-RTd;X zD-k_Mxald}{<@)ej;=~y$c@|Gy8&_qry6OxD8<8YzILIv#uqE$&*3~vti#$O5kCF1 z>W@(-vW}=7uaB%tm7&*-L9#FN7X zl%P^wcy=b4xbJ%tvgEfF0*K><5SA$0@6sC~-d?6+3`HzV-EvMKtSJERT`BA)$whQ5 zQfch&MaP)~db@2ZLGQr@pw=LU4P(?L%21!6iTK5mG7X2=^~|6N4JHz?#`f7j^vPAcT`ej(Nd|l|7>pGJ^%~4!hgiz?c%iSkv0Gxtp>^tu@_0bj_+1E0-QyA zAR*v8@YcbRZ!}(#h-Wz^Z%!Bup`~*eG1j34>BTAw2ISqUBPlqIusRJvjsr1#lWZPV+1{RW*vNlgGlbK50EB(rQ< zsoe5(#mvZns*DIyBC3U$dk*6`dg?4kZH8+Z=~bd)Dp6)%{^A4loh!JCB@GymrJzE& zD;eOc3CoXP>o5+_L?3u*$t%0?2Em#V-R!Y9gfc;sd9~$d_lv*|#pJyR;TyTA9QJ`O zD+Iv-O+;I1b!Wd(Ig>?Gwz;K)W95p5n^ zUP~bD(|HCLbs-T^-Rjo~!FXn2T*&}g)q1MRG);!|{Bj{@vZ{RJQDJ+AWo zdUmjHQrlFrf(fix4@LD-mO7p1l`Fd}f!<^=rFVlm+>DhDGS;m=8K$4DuMAroUN8xP zwiNXO=*>LtRbSOww;&cG8I3|eLIf+4o4m!>P z>G=+38)cGDnWP6XygAj1KdXLrI1KbU?6i@gp9jQR$6$LOMGmLF!Bi=n=kQJdFXVa0 zxS8$LyH1-z|IjGK_!7AF2!oPihhk(uS+ggl0K9YR!d?@wnG zYW1WJ?j&6R@wS%rS)RSbco{BV2%~!!V@bwz$#&oDm@RNm`1LN)ncGO{gX?0RP;X;( zZpXpVVFsX{!&^QdQ#R`F8ZF7*bj(9F1 zLjPxjUi%h0Vo=P{@inR+tM+YMP?PR6#fNpFJ5X>zXJg^mLF1d8?ND~7Z7o`yWJ99& zRNs@@45L2(50>J~nteodlh)ptLKmySk=)w;?ju(r!lz`l)h=?XS+sAR1a2gF|HU!M zwou}x3r?hdk2Jnzn?*GmQ1PaS`oL&yU$4Ru@<*4{!Ay3Ij+Ug_{(oSn|1Ra1|O38akU3*^I=?AJ2`9et2h((SfpAB0CQEhUC zUtlKL6D5r*WU96R>OC@{E&=fk1P2NB+{5Z{X#5LHI(!0@Pt@?|J;F zz}nb}A-BIG&pWK$VwJ^kg|FI`WfgF=qZZd&mUt3_fDD41sYWD^Kt(%{N>-*MGSvGwI;ZHZUQD-8!5cWugd2uuh5ASX~EL*l#)@ zLd<=fMQRE*7B;A7^N_4DLA7p3X78J+irbQnG3-`L0rcYF48z5JRTJgw$F1@y{?GGP zpqt8|{trx&oMW^;&)&|ToNMfhxE_cK6)w2q2ij-%#9qxgY6+qwX=?rCSpA}0s+&4w zD$X8WxKRJWcRNEPNFq%Bhv-iiUDe*-@q_)mlZG%8xIg_z@5e?)!G6#hfBn2JeZ&iD z*||~#khz2Sdpn~RJz`eDZ~}^67U&4*O8q~L;g{c&sWZ+%&pAG;l_wPU!$KaXv`et| zEL0l%DvcB5bp5{a*R?JTZ)ZwWMf{mLC@Q}oi>84`yOMVpO-UMhN%)6O*XL~Dj=IHW z0Ie4C%E>$^{BUKq*#{KE@uFz+9wN?z!Q7>2=ZE5UK59gw5rg6i!bT7HpFxVKd#8T7Sb*X&?I06B@Dz+KA)Et);SQ+DjN zO+Ja}Z5&gg%>aYyg()T&8Xj!sl{46-5JKo>vVBM7fsTA_8T%a&{j!e4Z9{#ul~#x` zib$6e33N5NDWCppUH$)cD;xWN)2+<^TXk#2h)h;{if!P(X89lMR_1@vt<3*fx60Yx zSrqHMg)lI>QlO%3P^6i5gIWJA)HTrH4;~!^!ZLz@lBnO>yXC%tT%_m!9&N%9EoVe2 z?ye7p$TFaOtUSizhM0BuB1{AhaJG^y3&N6)m$`!D7$}0k8s92TJ#aH4a<=Z2p(Y4NItwOB@OKSJEYgyr ze}SL?26ZSC^sG;N*Ir0nCb1DPcsf_F@;f<@g{@@!<1CH{9WjIl$)|u27p3Qs4W~+A zL(H6Kfh5>}0J@mxRXga`#GdMk2pNzqGU=ttWLf2xf3u5f(TQJZp&=?}7XvYKIR=6S z%&CA&i=x$22ya)Bj$mdmN;M6?Vh{qVc?6}~5JESTe%i*txv-gra0_1R%hgjdv(f4{ z^jZR{YgdCBAR9uQaxn!m<6)ycizZ~#mV3-RQ;dR>2xE43MzxAjE#T`pO7aBD^JZpV z0kB59GY$&{7+`TL>wihLC2Va-caDx+O0cypt}Eyty6qGuWLVPpyxbr>Jtcpy@5gy; zhR_(Fik_#L3`#mJq9{uc2E%6T#p)siy5QP1X4j*`3NMM}k@9fillxV?>dr=Y-Oh`w zZ!I#w!RX%K)$(>$O&m6bb(`{FC_J}+_hm@`7K+emKy^YcPDn}ua@Ais(vR&)X|RtE z{j+OHbFI|e{jVnFGdH;QmY#>cT_9JUalAN|X;C{er}+gUGdm7}L{&>~1r*Rc4e#Ll z1%7FWcKD?Bk@@+cdlhOaeVa0IRS4HPKSxl_-o}P~{V{S!H&&lT{BJh|oUN|HAj!Ff z6y!vBnBNx@l8O1e-GP2Ef^%8-dh=$zAdHpesZKM22?~p;w-^Ef!W_^L!lE%(;*#v6 zgS6maXid|faWlt*YX~oLPa+;&?rS*gvH%U$Luj~Lmh~=mYZgR6R_g*(qd-*t82tE` z5q{ZnU$8QXhOxc8R?qW{nNEH!G-&qlMZZM zunmC6EwwZ@A=@)`EJNkycP01r?5PZd-QwQh7PY(mtd3j-T7xn|o~Q<{=5XN6x(z=R z#`Qd(6rX23^U%`0VQ?cTQ)64INwdDM0tz55FHv6(Ypt)=3tet-emoN}%0qL$({p7w zb$x{59)tU50H3H6_Y|Tuv}*jR-Vs(eZTzO60ZR&Ou;%=Q;Ei< zYwXP=I-5xCC1DJm!W$N5eQ@(AD)^Po`rjZ1hvV=)P_HzV<^Vi#RKQn1TRlYScerLe zLiaf%(2Ty-TLO}=+hKOv5*Iac# z-}ku@H7Ac;s;k0%TpPSLB%s#va{u!o+dumA9k@X!SaRuU_FY!XNU^65z?&!GK8uJV z$*6yD*?@FoAJs(0JdXMIWBtmRw29K7%}Gz2TM5G_JT6}&9%k-B{>Ux0IAgl!XQRqa zgfI@dw10>94V^AAMtcbhL!rmOaYaET7}Dw(HOP_7N1e%@KnXu4x`a!Z?81 zG)a!ez*(=h&kq3PHR<$p11IN=G0BLR3dEoS&+E491InO?)hmNAX-o;4_BA4~5JL6A z+GqS(a|k}@OJqAlx`p>s@6#l02ifA+<&HV)!FVa1dI;c~yx^5>KH=$T`t0f!3m$wM z*_sodFeAliPraYbgciXDjp4Ns-3iF*>+H*AgRZLDyse=#M_P@$uTD7Ec1s>XZ~=!s zB4KTZ^AMEIWc_fOZb*;{Ay2pAYw>-=RqLM|2>nd$Ujr$=dQ6>1E{DV7ns%~Jy&U4F zx}3;K-Dx%v#grA11suZ}jUI!Wrdw|u0Hv#|$j2gq2GUf4i1%EAIw<7wEK>CNth7go ztGw8JU&Vuk%1=^N6Yit$sABi&aqME2P4yjOMy0dZ(C7%#fjnDEMWE61lyHjc8E;&G zG(F@!xN-qA#3g^n`85Ey9vYrV`lRQdW}sSj)dPLD+|=+3Y?<@6iyd)}w@jK0q7RW@ zX<^e{EMP4w$;xP>x})9hHFfTj^hQ654bCZ^O@lD1-q6Pg5Wn$4Tx(0>Hj`%GVhgd#%!@&a=;zF`gMF+vkz9T(~YIRL0n-u zCHHC)4D7KD4V8=!s2+q$c?JK_op-I1H_TXL%>@c>35jDwLusJ_GRVpO&a)MrK%&4O z?`?Q1D;%{di315=Jf+4oh?O>XbuZVcT;P@RW&Q-@!*!?|Uwk(0N9v($2K%7qpv9m= z3q@uS8@}OTx{gbD5gmb8Jp=#yPe|&#Z{&m*Gj4}j#_DLiH`jo^duS3T zTPltI>+E8so`=HH+5XVmZ2%TFcR?v^vM}VeU3y@feT#ynRuC?Ww5s*@t2k$L^0A`L zQQ7Ck7oT-6fxlcO+s>~AFkBv) z{)y*dqeYev4+k3b1_QW{-O>U7On`$JqR9e2k7w@LB@^x5F|!c*5BB{C+-E{Cs8?B9c| znwe2EY4`>A^`<~b+>bY1_leEarcrZ}In$Mr-?vza7oh;Ngn@v{YiZgvWFl?>asrX6 zFZk5k9GoN_)&Zy>uJ!flhZzOU( zCYQM*mXw{Pr)$0zho7WeG)PE3WmLTb0~E~~QT?2#($qn~^L11^aZ#@E@Y%!MZs?Mv z>!4B!y$8yi6@LYWf2%?d-4zR_I&xGNu6*|$5H9B0>dG-DniRD%P(p`cIBQicOr08w z`=x$am0GTNl*t6^URY*>;=3JM1?`ku9SAEo(jGNo7gvY`Ahu`2~SAzr&q_m+=En%e+!~OIE6R)LY3yJ%de zWsM(}np(d&`v%QkaCM*@6hu!^FoV!_88i4k zS{(Iz|39$kHhDSb-g!P8>y@s3p>J#N$ISZSL0YA30Q!dY3t#eCpJfq>VWnM^{!}2t z5CDX(lv2QZt@i`chg7K&y|aJgxUuUG7EVZ$)sEN@kz@M5zAygEr!dj8F#O*G|L0~N{>MIrRi>Ltx)w{>bTB z6s0_YhWU>6H`A<+DFQ)FqIjS&dKkT8e+qv5`$Qv-#d}8_&N!182xU&46WMLBxsI5T zZyu^o!+iv`1}^vCgB z+>WHZXaZYGh=DoAfk_+`M_>8`{MmfL&e{ioA(%&k5uub*91hViCqYkpN8F4qUVt6> z9ke4G)lMjbKCxOS#u~L0V7uwa61}Mf9#{Rka%0f*&O&Y_7sx5S#GgwC>Rq01GYZY* zM`T(xb`x+^;^E1d-VPId^_tH_neOm?8P%^DM!7Hkienft#YyN6vt{xKXYaJuS}0nz zFq>^KHROxkklzlGqG&j>e)m1x<*8CAz^6 z@rT-BUug(D(mV%xAe3dW=NK$Sj{Vx8Zv+h*qOkFsU3UgiC+%8>{uQ*rGxJ^>M-s^e z^_R$<4+D87Q8B-&CC`E=>rBJ6*_35mSTjDg<;I4(PS$c~EP*cXg~V_fLUhB(-(E%! zg%i<0cAWl<9kz@`CJb*vqeRo7@^g--@xS|4^36IiRXgq1QSAsf{q`a)tpc% zyj@_^uY@?B5=X2+-52VIis!Hhk6#*(-8D^_hx-CE_3&SGq7Rnhy~&61B%x$7^F|U0 z4=HlYgV}frksdRK*gC&a7_Pr0fjmjn(s8%v#Cy>Lexltexs-r1jU#3SNzH4pH|#qL z852a71-N5?U=F&`F*1F0LeQ~zf=`Q`F`A=re+li#=qTU^7tseFr9E6A5y%~$lY8TB z_x`jX;^$La$P{)y*({H2qX9QWW3bAuJ2xeC?){c?H?#nV*CedaH^GLyO9I!!U|1iD zgGeJo056~VF=~va;UUGdtbHl1sKhun%v43yft}a+rx%sUJfvEr)!klHU!$PJHqr1l zd;2&jQAT>#qR}hB2pvDr%k zJsbBuWn_^y#By07O7hs+g={UfZ1??BgtGv1l1Nih_Vybk=!H;mhq+?1q-)xCRkogf zOxb5UBNZ(zj!qle{22_nZk`g0PCnv$T@h7YCQL{eQ}!0&(`iGupjgvGwnr9HBusi& zSJ$d%wOLwT&tVE>6m-TBIDa?8jd5dysf1fcGXkgo6}VjG)`NF@UociFIn}LfzUGWv z#?SlhcTx)d852rjqzix*{EPF-5< zS>u<#nCAwaShq1#bVND!IrMhdhj3h(eMky0!<7hXGR8KOM({K3^h%l{< zbZ3g>5d%YkDI4CP&f|5Og#kK7f4eXO_lpD>NFdbJc-nFxIDFLrFaBRmW%Gd9gx0)*qI1&WmT3tzuF>Q#yqSsy41`)!iLfv>vd5e zZI{V+h7ArDEA`u%tc)zxF$27yg&OC!l#l{zQ6FFZZ<>X*bKn~m*Cf2481vjHGMmD)nlCQN6e$J8LkEqmMcO(n|JW)(L0iWy%IwIwp z_~8>cnP{@8b(A()98ww_xnqcYmh=F%-$TAuMcTV(?EVQ>Av2}7Hl{3$cH1|46H1!j ztZ2|+G$|5TGZ!AQC)+aY$H~`>1r5~GIQH*E$l!_vtPMaS-Foi82?ZhJG8JAusx4oI z(nK|yqI^ayj4&(k;U$-Q&A-+m|DQk8v;H^!%<{jLKZ8><&4Gfy75{6N|1p1N`4|4o z@}K!Lh8YPHwh>x!zuFu7b)6N*-~HvI{D*_NYUQqc?z<%>*IQSh^@jTz9wNbVgC?2W z?75LxMO^l9eY_g~#oX%$3WN$dtE8%aME<=`HwYy8KVnW?M`0TI3|Ri!i?yV(TO6rM@rTS)}O2(!_U?9 z7UVD9ae{gSE{h+?vOUx=)c3PeXD+?|J7YzyZZ&>cp;1kZ?sU2TfqZO^_e|%Jq9La%`G+n?-7LCgsQnbN$ z>JP%LTHU;D{Km=GBYwDNEqT=1X3FC~{2VmtPYfnPZ}BgxKJ$O8pw!QgkLvS>uf0_m zx-Z_Ri=-X)4-$`mpd$lHl^WY&#PSXBfI!zrWt8_}+C^KPY`_JeDmlG!OvY*NJzr+T z^o~lpe!0{QW&M2+w*yikCiH@j10>~#=e3^Sl7Ae25aN4r#T1HKsYn8aIklELzS?gb zqDUjNfD6yL^*Hq8C5w7pTTDNntwQ*wG#*ExTC{GV0y$I&55o~;+4A0TsiuIF-ras~ zlT3emVBYcKyu69718gp+cZOhasuU8|i(&x9nSXU;Y!Yv%Ol8+{n^BT8SR$=a{O|*Hf z=39H2k|}|AZmk?-Okmyx?x)~D_?(O#u)cVtCV6*Ha4y&IZb0XvP+mXgwYF3)t2T+=E)h15%-(4B&IBA!cJsKhpmc~K`x1ezwP%_Q zYKsjMBJOPEeJXd{!|2^UqNlKU_F5!f+kPmI@8n9W)i~T=)FxV&o~ZBZMx8DCH>N40 z?CLy^zA(1+-V~6OiAz94K$L$x5Z_$)emj?s)La1P8B;14PE1NXTU&P(nitN}*skb5 z)NBGAI&m#99IF{wWilGr1kbyW3D{hThyq8w4tFGuCa?+jEV+Y0l0k6ex#~iNigwfM zGzN|luq}KgL}sc`gn6b|II^n_Gv@{2 z!xLX0HZ23JDA(NM`xm@*=mPEpFKUEJ?x{?&P`mkCL-0}j{Chikz-@fm7w z8kRF=0@Vyry~yw&v^^$#0mhsrPd&_dL}M1Pa>!uJa9~av`ML$<_0LGGsm#Kxc8r5$ zbRIlZwHfHoH53#VjRTB@yqgVGj@ru=n;#ng)YB`v1q9H-8a!a&H}A4szo9m83k3Tc zKz)Dn%{Y-%`pX7OkM%j_tTE14WwCoZo6G1XrFhdjJdsrm&~q^~vIVje1ewwkBE@74 zD4>#J)e4A_WbM_~qGcO^e>cw3{QDMXJR~z2q|JQqAE}xzW2q5$xTpqZ|L}J>c9*kt z@hte-;QOhrpmW6t2wbbAPMkee@Aq%NrmPN5eO%(LfC#7T+hpW z&b4bLJOWm4(d~{FaG_W^Z!H{a?U`mG@EYw5s5{)%a_AEXdZ08+HgsgTU~wOQP#IN+ zh1R4y#roNjh&uWN9@Y`ucWQiq0f96t<$0ulS$n#3;S9QRnn|)9is*}8 z`tBY_?oe$8P=muSiTU9-V27RPw<_dlg7?JbhW5&tXTc|?V?)HmZXPI# z%sFHVKISD?n)7Nmc}?6h^c+C>;JmO^sv;SPrpZ8DI4*>p4Rbvi>bi>!?2+}vN-x^3 z+;OW!6$?Jfd!%Z!dU0L3*E+DsO^}Tz=q$9@3GSn6X@IYPqCowoq+T4F#D7AF=E(7T=bf%%CP3}2Bt@CGUJd`}Hsw*zV_0(NvC>o&POC)D!P1tHz3PF03arzy zl}fg=82Qf*8zvhO>SM>0iphhIr^fIARz4X zg5}t5phO9-&pvL);twkiUH}a@A(lB-=&UZh+skCLsM2N)s8tS?-Eg7gY6cs$N%vK( zaf-kq8q6To;`)Jaauf5~d7U`HF2pv5$XPS!zh_{!Z7#dbdwhOMdB{ru*t|y^D*kR> z2KtBQf#YEN<M@8DQ|$>$fPc(a62d_ocjx#D)c(+jJ1{S+Z;$w#|uFsZ-gA;}3DT4-#( ze^=YArxkD}ESTFO81({2k*t@!;7Ab@9;+14_W=}Xh!W6OOhTd3%6?S8r&Z;a>%&N^ zN;Gr`F|(Z$(XXC+Niva<8~K*XbO$^PJ@M3^-Q3y~S3LX#SLp>s@c5i%Lqd$AahD@T z$}vl)x&F04|1W^c$j(ate-HdWfcsD9(*MpC9%JW>%1)z~_y3lK^?wX-S^ov#vi@g) zd$Helpb~SnTxSsmTGX`oqTK_ay3J;bAT&YGy)pjY*W&$Nlp9ByVy zzmJheCm9kNpLFe#XHF?M=e#OUixRa$+Hsztuix{pAEcd;BPR;v-l3y-nR4P(IoD{` zSi&Fnf{;f;^?s<)zt4r~yLebR=vYMp>?lNZfHh-baAdUj?83&6USnJrQ!;qlw;?r{ z=YNS20x$L3uwYTfDT({zW<6PRUn@6;e9lTDA)>csK$hb1z~3PLp`^k| z6t6vU*YWbZp}busp)3Z|711_WG!{~YhT_(0X%ct8cxgg#z^;ena3DcXwxZ} zqDE~XD`fYUK$pUiO9OYgd33DU%JsGfUTOe-I4%1VBoyhfbNY_tyn;;CWDjY zu^M4*oil=XX+aXq*$Vx7m80rJ2K7}f^U$#GBFSL?#5P^0MNEb~N@UGS9%B%Hv9`+l zwLi({oyDNi+U@&d|AtWxFw9#^i@a%KX;-7w@B2t;aG{oDobn2=z_yYsqWMpd!BrUS zE{*bm%&q%qohbo4xtD+XgjXQyi=!c$x_K4$bVD3AS-3(E3(>Sf( zJ`;NKAds)H+B^-}&CCw)(M+FS1H`Ufx1)G&4L-L7Cyob)f7HvQSE53v%%(1E53^^= zJ+Ur15i9&9dLJPt47U*Ma{jv-v`x3k7%w9pO4K@+m%_@u zNHt)8#&OppAu4)2K@;R7;W>-j6$l&BA;)~L0;<3<7kPodnx3|UxoMG(5DtB^Uel6V zLlQN5*8zBtZ&}Yb9tYRR-`YQUeEv|J#9MTcrvn)1F;<2TYi30l|E;jGMK_FLP6QDl z8Ot5A=P{`^{Lg6Xl9s=DC_YI`6hRule_Vsv04^`+*HIA!LJ~6!Lh=10@1Cl^@a+aI zF~@`wiI5#J;8bXxmJB2rW@~4LzW7r@Y={}2+kMRud%ps;UOYyh9qG(JE!Jn0oNzu@ z~(#wkRFb*5`Y zPtFUMJ^7CGNoTQGQ-V_$eALC@37=zD<$LGy$IxaryKA z+YZGYwTWNyg8LV{r zi*eskJVQf{vIYAc-24C@i(}EOm?jBnznER}z@A(ZCEk7ZUgTI@caUkp&Ut;VfF%W8 zQ&LkA+yPxzDqjKExy=0yV6C3V(ifL|!?V*ks28?|Mr7Jcga?7dvv#TzvtXdh&sv3=pMfx;%L%mmB1%f`4qYuE?#bOiJmS3wQ7$f zNVP~y8k_W!($QmX&B%)|gn6+`XJ%5EsPp#nf0+A+7|{YQ4Hqu!lx^F#ZQHhO+qP}n zRi|v*w#|F~{ONmp@Fm^D9`Dgg_Rh|FUM!EGvo!VDP7l6rpzN5hYXG60KB%yqtlRWn zFl4$Lg_UivJVaizb`gC7V#~Bvsc!7PBe9gDs?wFY_*4@1Na9U-MQW!x+u&tECmjTt zyRsP(E%(d$;Z3aD-YT@9E8h-D6g(uNt^>^4oVju|9u}z43L-7xS>=WACpy@Vs@B>{RGpC`;TQ*Bd_ByU6P2Tz)F%b0|bjdz6lF>5ygk48wy0xrIUSe8&Q33 z^nea%)+dh_b)djr@{hC+wym39=T3aW7HV6bk6^Z(&i)1rGmYJf_ZsdSTx@o?pSOQF2KHC|;Qq0Htwbu85 z_owx*yVTxy^N}GSV*-eq4@$V_ZC0GA~v9#krkp#T&BdWJ8x=8S~87>v@`1+fNMT3A(>b7AgEm<39>IHK8wuGa^wd?6O&%pc&!;SX4 z8R8_t?#Q+vHaY#WJyOjzkmZS3IHMF2(LahB92`H0Br4Ae^jQj6#xsA% z0hGU4jn4gdnHP-TTv-)=?Oz6|(mA$cH-TWj`F?Jg8WpK_e1y*=(Q0-m?W$kv#(>9-b?0<8*$BcwsIf z8_95?{7jh5g)3de=>Gv=gon#D>JI_0K>%U|lgrH>ee^`KxI>RK%BZ)?B%zJ`MM62y zRt5%Hu^|C?rR1I^B~;-bNv!9)0ZteuT5iMVO(-P{t5FceaKfI=6XBX%S#~gWzE)6a zO@XdsQC6R6dKGtpOA;?a*BK#;txQ*uI#XAanv$W!_{s`1!d+n?h(z|JRy!F5R2!jT zg+?^r3mlb5=kD_89Flc6$G+0sTBPK)ABDmBuFQiA1N^Ztv;NH_V+(jsIW1#Nwo^^@ zL=|KKcPLpY$-ZaEy0&&^K4ikv(&6!J+tyy7U;pDQ|7-1p^*?AQtpBriVqZ8b#WbvVU77L>UgPtX zzl`zk7&6+7if^On-qn*9sivosGI^R<5sP>x1gEE7;3U zck2XQ&jvIQ80_>hRk-?=(|5dUNxAq|fCht(ol)(R=3<_2Kd?qkzB|8b4h?BzHV_U^ zu!dw(n(@`02sRxr7z2Gc$cS)D5GPk;Rur4tF~r7aW-F-^GT)O>mmOb7O_cLkatNfa za)Dk1f~vKVYT~>{Dc3L$sHFy5{4ulu614bdqff}}Q-o@_IHS z7ODj$1M=aUN1AqMp3A|$&E5ceH>BU6`!(XS#n^ya|^5$$tKq^CjH0!A8ORZ>xLTR#10MJ7SnLFOz@u}n zH&4#-^31~l-;E(7WEeyM34}@0147Pj)d4=nUZC4Cf0-81m4HtUhVJ`SvGi9C?CvEs z>_XWSEO)RI8=Z7~P>O9NCG1*|Z>fRhgWaXVOK+;XEV_ut9i3Ry^4|>)I?X&RMXYFe zv%)fORwV%LBM?+HG?6{RJO_iZD~Wh(KzQQLWbXOiJ1i`E!R~jiO^3*367uEh$=d|) zI2j!Z{4^Y6aT<#|i_ULmUwn{aK@Gx)l@AB%wY^x1Nvjd6xNEn{_ooIeOoW?~nj3!k zvX<)Z3nY^FT)!)Le~rrs(~dlIqId!roFe_MP}@QX3mfnpnGLC8Uj^4ultFR-z>dMwz;kr6~sb=QR=9|GH!_qsBM zCjNzyCEp!mayfJ>+_rA*N&RYY)}u38mFzQ3U}MU;LS!}g84m{f_R$7FBn{ro09ip# zWZkwrTDi+#?VEW6iD|w|Y6s{6nI-si%KN*yjYW%ywv-_kQx)3hYZ+bB&=Rmyd5(?^ z;!#(x$5unDww~h}qEr&$XT?c#f=cP&XTH~?3-0JeWd$foy0rg|*qFl*^~J(YKEf_1 zgs-5zCNjQKN!s?W729ekissQrsd_#ZbwxvB%7g`q3^Lx1>y zYRGE=@9s>+;j{n^mJrAeCLEuJg-frcy|Uz1Ic5Bx7VbZ6@H%&Rzi0KgA+)cdIv{$3 zBvP$DG9J9%-*<`J*Yv*wv0nh5)n-eh_|D@jKt~njd2weJW^ZXdm|)83mvp1tnu;g0e(&c!uqk# zzwU88lP+meZN6B`T(#5>b_*OU7=rwo8WVWH97Bb@*=?l*S^$Gq(R1iKNV3$tSMBF0 zDN_Ftu-K_F$E88LVt>vqvK#SJG;>BlBmuGdy6J9E7~3Am#yl6Z6}VDwbj}4ns1M9H zr6gy1k8*gX*~c@4NG>Ocor|WcDt}6Hb5kR3X4F%qWj*B0o~czque1A{J0lM)hs*6k z1M=JwvScOs845z7NbSrhS72I>lrXBrr?Bj}9J*@+ zOqL?><;oq)i4-qDql|}*`ESpT%?MEd(Tk?9u#tgxYEz3?eKb%z;N3UdY}GjtDzR!X zgUBVSd-cG}o+C@Io#d$kH#~rH>WB>AUDN}vq`+`o`*7E%s#JlIt7PpoVRrW}oEQaB z{nXOt#*hc(jk4WQC(p{JM=PA)#n9+ZwR)MUy_U*XOR&9252VsXK@jLxf0MCfT zWA+zXzT=EKGXgMG9LAC4-im-Baj~|j(8$6@i2IUI0K?r$4Om&_mpC$9Z9X+be$KUm z&ZGzxk>x5kF%Q!3I5bJgRWzFgx}i{_z-E;1f2x%zgMjGYK?#uHP}v?3M%npTKaSDg zBIX@tPm25;r}#3lx$H<@G$1%J>%IO=lcy;5ahgztq-m|yrjC@E;ME<_ zI!>v0H`rv~NREVOkd)J-7ER@Uj^vxs!!pG2j;5iEhv+zv9q@pfxEup1Z5CAdr#sEf zlf)@j4y%MGO*>QSDN5J5mkZVbv*!VKUaZ6x_E`-u1CT8&sA-^>`wP|Q+!;y`(ES3+ z`7;;jX%-oZBt!9pFD5X3HIj9I#}~6;B}A|iB9`=av2G*sK(Gc%(qHbQ$O{}3Uri}) z#lHgI5|sOZyO8>m(aR)lhnThwLnUk%$q?^rp%xn+V6dnK-FGOb2rXOh#4<&2pIoHI zKRfT(BkLUpUNWW0?wXQ@F?Q&|88*<=eQx7!l>+cNbmJUbn6=$)GRjXOv|D{!Pfds# zl4^L(&8*XujW|;r_U4I|0x;%$YJ*Q8{Hv*sxOZD-#K_XJz*p-2tN#>9Ak1^4uUUB* ztcTR^aWa!-hXN4300xgDMExC<{c%vHCz0CSuU{P;X`RG?snD zmCT6>)l#qg$-JFA0$E408D);l&NWCMqgtPlsC?a&7W@Eq;wfKVctinBi9l~7?TXZ1Z-3WG(6L!~Fkv2j6(=O=;^Ut~T{MvF z!!C9JId|J^-p5uaDae9L%CDBXj_NXl)R15{p0(bskBo5*pMyUz2F250KgnK%w9Cp# z;;VakuS2k#{*c)ui6GajmH_Q2gMVo4LO2Q_p`O2Akb>lgDbS${*Ycb|pNRIaJ( zo=eM?-ZS*AC07EAeb*q`UkwSoalCsp#jfE(BzvRb3RU&qNNKUqfvWj%Yr;BjWnK1M z8&@MgJga$}=`uA2gAfDplTbzYBC~y6r_ITVtsqfK&tP4whQXDSM4DhNo^n89ZE{&7 z{|_p-lDEHS>eq^0#y2DSvnn|tGq5KI*Joe+ZOmrcj_l6Vndp0~WAX-*ttp^g_>f7F zS~y<(*mMlKmMtVT=PdUyzsMu@wv!lbx9=V*q2~4UMybnZT-U=+f%nlWf3zw9_21X7 zZJA%Ii%*;Ng^jGl;Cs);8{9u8auG1x)e09#y?l`BRMAno>+lya(hy6ntIs{sk!zB3 zOX@&6Z8G^qf__A&Fo!c4FGgb&Y!FUv(4`VyR$?y{Zp<-jM-$d?Lmy*b?GN7k3p{)i z@sTFs6>EF;Fug&rH-7!(dLA|M10=<~Dm4zg8#T)buPerP{t;L^M)%Onbu4Jv(uWHunnaCqa!{)>rxJ$?l-KFpo zAd+um6gqP{VRejIltWCR*^ev@XSA6Zb4@sHASc=R$Hn%B!tZ|Vhex1Ru<9R5gVsJC_-b&VC{NV3W*0JM;uK2kCL3c+$qRF&5`_;xuY zxa14$gm>W*p)6oE7`ezc3IK|_k;N~)j1f|!#%fK!@3QkO9$Euw5kvVcQET`LS1cEU zCbWA8S#@kcJM3;x#@6e6#+bf$TB!Z&&hky0HOyVv#x_=0t5uJsttY*6v`F3F7dVDX zm`Ll1&R;iSWBcu-m2zmZ38Ipkj@LyVn+SRZINrpSyzCt;?)Pbd=+J%3r~bXTWzB$m z&voTg4_hpFD(Gtxi4}ZPRDq0Of5P9py2-3vyHc~y7?*<)wIL1{p{%`seGUT>r8(3G z`vWnK%-Ffy&glM^3-%wH8k4d3?QtR+NWA2PW9Kbh5|Pfx?sS>P_}#qN=^U z2nm3krj12s>xBmcjbOTr&EZ7yp))B0!fase>EA{Pu-WsE;2u2DakZhE#88JXfqvzx zCICoLGRSzVK2NxPgySp5LBpUV)oFp+AD*}Io~y&zw^7>guU@y2M^j&*E}EeV)!@g% z9>@z;o`_%3B|R}IKMqkWpv`HmM3xK~zG~g*MOS4FiuC_%Nj#`p@~n5$Amkfh1bjpIM);5Yj$7|s;w4Y^=!nwz(5`jvYaj1}RM^XnySyAIp!KFEw8*Q`%PUzSpu zVUH8zCbFtkcEZcf4U^ejp$QhoAUUSF!5#k&mYg480^F~1f+J6FNw z+F6%(4V*^ZD1?hS5({0z!L7^m-z<2?UtZk2SYU5y@qXkoMVAp#f-MIN#|WETX^aUj zse)P&VdZn3FK8t5?Um;+qf&cwmVqE3v_r!od*G&+jYr1sIj=r z_QMG3!2&gw3xBWM>pEKsO<#1dh&{ZT1pcNP1xZ7h(1tEVDmZ0=6X!2Z3gZ}o*B9QX z%acr`P6`N&h*`eF^Jqt-SsW~D<~}J;GOC@Sm-rd^J%aZl z0s!V3?&5?os?B;+!s-H&)F*ifm+>Pdl%t8f{2awU@IY4jW8W=GP~}vHyn?i3?`X+~ zB2iFY0Q95}=U=CYr(b zn(&@GfOZ z(zZ4?KCOQddFqU>1sL{3?!LcwNnzv0CtVK!NlIefDswi+9O|shprhp)?V#z}0K`M; zE$?|*T-Y&+QfRag1kDLt&rJTRFxUZj!GMNoh*Md!)5w3Mj^`w168R{JmLd)y?=Ffs z)L`zMwwk=fU541?aRXS1o!G}YXV--to*RZI$j*7#`t5%#UWU1UjeN~P z2{n8^DjUbGH`QMj*6f?RmE~t2LKlj2e~={X&tFSkT---Qx7xG&P z>n(osoqtQKNV2zYE^rxnGB5cy+}1<LJSk9>RBx`Uw zaJtE1eTe*&yqU+8n@yabU$bS`60ZSU#=W(NDm^+1sP<oIbQ;kmJ&eLY}`)nJC4JjF>m6sA@?sBR6w?GC!cS6E%tbohaV344iAll#WFt(MtIIuc|V^>Ns|Q zs0E}c$J)P?lbWjl)d3H!6Z4A@%`}Pz^;04mrgY*=8s{F8zN~K)#98I62JbfDaTFFG zYcyZXnFANiHBAIU!WRcSwEp-rDzKZ*eWc(1xLIOb$tBs57YHFv-Uo}D#DT}x+38Bu z5~yaHZGN7NTUhU29g(^s!duQuSQ0lNLN`r*0^HO<{nd$VRpwJv)uJ#r9feD-XsZk$ zzd%CN?64I64K-#jMXSOQH|Y5%y!gp1JZK^DY?hZ+aeMP=NS^(IBQ@p2n63+qm2DA} ztN3!MR`N8ZfkuCIM3N+|>VenLQvqKYC}J9LLtFp3|B`=GPLQ9WT`8=Ve@*t0T!rz# zX3F1P#_8M9;rj)EXVUkJDw1K_HPrL2MFj z0XZ6~llg}LL#|_qTOBhE6jXQ5ZFwREhbUGQqg5D)osd3lYcf!V$ROd&DifY!L?h%p zh=sh_ioEE43NUvUZtl5S+{z*r@l9mp&ZY+o;s>HW9F0VeRT!E3K% z*@?CHFRoD2K4CKwmd0a4b>nP<1%^241C?XF2uV&LtemY~fB2wF6S>E(j$`d_a_x=r z1hDNxsAMb&ZWfJDk`EXx@tMM~_R`o?f{8h{lx`3XE2l?lSPVHb#D zt&7pC2Vrj;7x3o?J$cf6-dkMhalv1q`^Q7HJ?3$NUG~pwLN>4W{n2Gt3%5kIt$4`> zGc&HoYz`YV>@=jqB+EBL*Vt8&nveksl&}6C%{yi>;Xj-U_r#K7}S455Sl&(!1TKI5m znB{n>>H9Z_GF+cZ-3n<`+qEsS_a6!L5^s9QEqWmN_Hq#5l%ARwOGZq-PWMe;9G0QB zosH02%(EPdea#yvVDMJznw#a{MFroU8>UFZFD-+IPKE_sZA5~bK#=Ank?Fs-s^U_M3n99&Vcm_x#bLYByUfoz=-F?_mUo)b)9N~~;P``CBN_))$ zh$x(KT?ExZPth>3_K}<6g01do=ZO~-m#i2y_bXQTXVM ze1U8)o*X4|VmjJ|SdPJ*vDfrw6=aF@wAGoAIqtW@>(<`8fhE<>FZoDCo0(iaXDILo z!Z_8^+s+*jX5=)mhRN~nsZi$)#f^B<=a88g_3&oW1JS31LU)W$%F8U_i;_b}0jT9(7 zFQ}`&m$K7s67)zuf8 zO4(qs#%@#3(=nku6~K$VkmVaYfm8K0!lPFRqGn4xEXd`E&0tW8Pfn#cBXk!hcfB9m zPGjp4fwj0yI_>(Fov^+OAhi>lGP6KUkWt_@Ds{K{t0&#R`~ zX9n-HbDGQSK3Yr(JgwhUPcY{Y*x2+SJM2ze#8m&2l6oB{gdvIh}@?F*U zshJyA7RAXz@O=R5>`#>?wnYX89%iy$0ifopT&|^_8{WfF^N<$QhTP7)k~aLFf+T$G z9JDJ)%Ui{V4CF!S-=tHQEOs;B0-qc;w8({eWl@%BYaFV+BecP5b=0Uk6{>k-dlmES zX^an9v-FNH>&cZqg0OPiNubH}#Pia0!jJ(A%s1dZXW1|wrS{C2^v2QN8ht0?284&I zd1v9^^<+U){OZbjX1X)8!&CHH`q~m6a~K;!vZl1&(2BVR3XltT6q7LnC_{6B84&~f zAMZS569W^1z-1QXUQ4r)SbFnWCK|>PsZlJ#Xq(C7(WgMGFRIXs7Oz0rrXS2^y71x_ zy1PoEwkJPdTmGX0a0n#h+}Nj)nqR*jSDkWGuN|9*_QHQvxG?c4rRh_x-tR+);n1MX z{<<1sl?iV*P*2F_u&lH>3o#TnjN^;ARG`-Ne3VWBhu*!qEYIIz;EY-JVrTs_#L!8q zC088amvpC6tu-pRY8=H~;fMed6jYLjX04~2%R~p?@RE27dR=sC7236DkWKANfaOIr zQDLC+3^3pq_s{YS=(StTks0%JM66F+XJpUax_(6Zlti^LTON}yv~u+H-a3}PiHzt z*76&FyM-4s%aOKRg-9WE!)y>}Y=`cvkZeGp;!ph0o* zFLUvR*~ItmQ;4;GncS>Eh7$V#i>+>u0>F0_RXnnq>Y!!&Qw+E7%hE#BufrYR5C`LD#VYu{x;i?1V`bP+SqtJI= zcK_gKI$3uH!E^i(7WKA9tu|lXBbAONL8mH)Z3pQWmC+)p?7j!h+VANH<}rw|&x+Bzg#Bof9;$UX_0tx4e$2P&T3ZtC>h?lp zLck`4x45=K?Ca@C=&bV!p9M%TyOaJO*$QoQBsVC@*p8x+(Ak8ht1QGG{8u(lSe?(H z7c$?xQkzT~!hI1@V)@ZPt~<%%876r%5SFECf&@S(Xy~VCY$>3l-cLvJ=*4FTLLQ9}6$MV+HGf3glj6*r-)v{)r7@ z7UYFMD^0 zm(v3mqN!+@6Xu_P;C^EV9MP4vs{!^HX@Pdud_c-Ez;Q+}$n`kiS*I~Y^#X0N8Rsz6 z>PF7*7ngjnQ*f=0#@d-HN5pFFnxm8l`obCw#zRf!WA2;e;jpNL0WqWUX#$$%I85LT z29gjTqx4X(3F18eEm@a~(nWHjaQdAJr2vT9bc8_^-n`CK!weaq!m@CY8a~^@YZIgv z)K8cuS+j7H^^oWy(hZI+H%lB5O=TLYYpxXTt;IlSZsbmKuOwW@Q$5qeEJy~raI<;% zI%e|^rTOI0cr-NKvVzA|)PzE9O6*%tyhjg}-N3u~vW?$5&bbQ(!J%a9DIBgnY5Oa^ zpDZe^kD|ADhO43rpXddaMH^@qzs6LLBAmv`c$ipy_r zWYV26lAXU{TXo42jIfxR)Np@RrC6pI1*=iej0mMp^#!6YBlGV7V5a{gvidKd5;H5? ze@lR||6esK)htA$F?z%NtNgb$c5-$!F|hgnm?8WB+Ni|-AB;-u|FcnPLRMrlJAAk> z+d*(R$)*(Ex{2((Uf($Vx!DB=J}au4s1LT#stenf%~c?}65_|dV0{Km!30iYMfa<$ zYB6n*OdadaDNS<#D$Wy_*F580lw&%a8R@U}6n++0x=0~=!o`yTmA7YjCcT*+u=IU! zmra_!0T@JS0KlN|{xgI-l{Wtl*>f-$4rT*@)2i+zQIhyc%fW zi(O2~ZBQnT)hzOh?1cN`{cu{-gz#-mpGS=NH?|-vk8NSI$jik|?J&gWaFaChH#pi~ zvyGF_*3_-T!ZJlIOfp*TBJW%39+W0;o=gdx9q9LsSQ^a-lC+N4_-{#)fk#h>ExOvr zI)~cl+0*k%f;o6Sv=~!>g=Dj&+*JuOgI~F1%zH6H_fZmP){z}H$$ddT@9??lE{_hH zT`3TK9FHtOnBZxb>l9cEn&wZsI}(VZ1F_gc(bGvdS3Fdj*%0{JN${qL!|;WtmZVTW zE)?`3uwF>Fg9Gx^*)nKOeNsd5=y-8dAfu|EvqiF+@92jFSwt&M2(oS3Br$DWGQ3y}SWiS}{+1z9tb_wVk7g?aww zML-5AUW+g_U^?&-=G7?xI~ZBAO;=*75SAA*KFD<2cEWZX>PD-5k9S6iFTz*zRPv#c zd{LUSYp&Yu>~K67qR@aB`SNPrN_k}6`im+==%xqfxOmMfLU<=mO{zups_t1ZkDe!Z zk#eGJz_Nd*C zO&z@}KM&;SxpBa+5mC*dy5Rt~=vi?1St^vi4W^xxQ}lS2;}s&ZzG-U}T+ojs_)2-CI8+5SXVE zX1ll{;mA-R67vPasCLRYwmtR8ng)5N)KN>1&oai&Q~VGyQi(CG+{tBmO(KkAKqZ@Q zv)_VcjCqrQY@?I~4}WXM7#-m^jTyo5#h{F>qyQ98P)R-1M9IzM?<=6_N0*KjP6SW0 zz^AgB6TO~r2e<}j%=(f+nN~_}zXv-lNjzr7%}LyAUH|eq828&I`rNgH?uB@Z3@8`t zK&R5tmb2ZQygh9fC}s6`5;wEHN=hw|1B<9~L3}rLV6J?ktS{sUcW7K=)hIhmqG&Mv z47Cm2W?h1(-4s1inuN0N4EyV@jH{d`Byx4i*Bwnl&hHfEPjhK23d*dAhd%6F(fCAH zRFq7bXvurC3+Wa1ieNw-d!>!uNqFtgGF-GiQ&4g)>F`UE;u~mO z!=ha&_;phmojgWY%4qQbiKvv|?FMYwaAIaGLsuI)2}$P9O3GD*sjV#_FvwIZx#L%! zlbDKj(FUdd!02V7asmG{+Xnqy%fiEXMeu4+POf_)!39-NJT1Aw2g!uaU)g^(#a3Fp zK}3Rth(dF?c`gdlu7>Hmb}_O8+qT+>tG4vboYJlUteWhsg7RMD&n` z7DRbAsPG@4E!KHKvRWbM*Qsb-r#LP~{_pm6$^4Er7wk#e)XSw7-g~MTmjFmM2|J0I zw>hyrVNXDlLG}&@xjZhX&dRK8u@M#&w#DyPd6%neP^zh;u7_hAe?O4xGLcZ}7eoS0#{lHa| zT+6>WBijVRO}JYnA7Max#E!O)1I=L{l`opa@l7vYuNQOpjS`U{@P85Y z)$@cy3Mj{iV-YakAURX=A&fRopb32O8RA|MJat`_bSKz7INggYc)4IYnp~2HHGx>y z?)<5{<7-|vT><;TSPj^FES0aZk59d~r8T2zyLvvm1gt?ynCV{Ii>baUdfz(cLwqUQ z``B(HR{)^sYBpB|8Pt*M?5PLK5ZMn zMmGUD&QYi@mG8iZ?@>G9Z}JRxG*M)AOL(tx=^A7W(NrEXO$=9`R9GZ+?2(D+0k)Ab z+W|idUZJSuFSHzI+g2Z^v~p}1kJIHz|7*878m>X7MHiuR)uBEN`t)mxiN2&t&HhH= z(}J0K1(J5ur%Xwq(TJCKsiAi|1F}m(B`bh`JAAM= z&;Mi7gY^0AW@Nm?$(HR6lE6e}0k5&JfPhbfOm31`D)o2ouWIoxN;U0v-1n;+5j^5{ zxYP}qH3l7@9$Ixr(aARz!DT7fmEcX%m?4RpwK1Q8nTe@=x;~<8^R}&OzeA$B{lEW{ zbj4cEKoZWT>_Z%%_aUXi(rW$~hh7PV64P^@1~xVF&%SRkyysHIrDZ@2vk%AGYW6%m zO?(_p$Ca1DQBZSAqxXq|xaxydjx8P}?r>hjWj_C;bWtJN)u_pMQ&wni%xdvv4ZwZ4 z!qS}Sp*#GzUiW{L9F6eZYE9TgnM2vCL04NfCDF-0VZcn7<5A2b2D7Mwa1PzU4woYS0}gZ4x3mRfW6f&QiVA1Wt-KlcJqi3b@op z40mlvgPmaoQJ%nxm}%V0X@r`Mg3c!re6Ow)QCyty)-?;n{=1vq&G#I)l%lY(x5hHG z1w27f*_rh(%(UzncUp}^7f|22k_b-7Y|v07^_q$h@-z5*5n<$K#M{paX@+EJRAzAi zDVF}jHB_3MJUY#mjNDh_G?nJtuVC3SiE}V$!pvTs$i|U$jfCXZ4Uf;$%ew)6F_kwN zrSnTw+&YOeedP6FQUV~FqZ_TplYb^bz)RG#6`crO^UG3c?d!D-ziAw9Sq35!Cwg}* zdx1`9cr#v()U{j1dvb!HMbI%;--{{R5p?SQWkr~32y6!@ZY#t2&H+LV8AC#NeQqT= zH|H0zDmreO%-G@tmz)0uLArR=j0mrOBHz0-PliR9yeX{x0Jgcp9A~!TouYS0ge1o# z)~+Jyo&h=n?WpwYpd9-WO-4OGCi~IUlR^#c3TnL%%@a10-%^<>!;Gwpl<*fg{hD`a z%&PkGuFm-3Ly&sy00b(z(;i-~%+mn(!PxxJgD}t~a;2fA%rDh1K`!CS1g!>^{@UqW z7px*7T;Pk}J9pLMlJrFlp6TE&WhP{n{nl-W>l39db?gDZarO^vDAsSV5Lw;zLTPe2 z`krQe>p_2;QZ!|1#MTk!5r(zh6l`59o>ps9u~BIu6~bjDU3c@BOCGck_8fEUD1^rY zUrW;}J+ScI*ji>}`2KcI6w7P{Ee*hoKF7KN%lk(^NTm&7dO}w^WJ}%N-=4@BkI3km z<;ny{9g`<^p%{Xr$6zpSx*g=(Hd>D~{O9uuoVzGi9`Ln1GNECCHplp$o_H8@Oj!;= z2#syXNftU0nAlv_FIjt8k6&y1ABAXG;)EifW;=lx8BATmbs6 z5&`=Fj8yB4Vhohx|8af&FDDEW>wix#vj1Oo!ca>#$VCyb@%+bG{?|?z_W$67VgH|< zFbr!EI47d@ng&-Pg!-+6;$cy??)iI52e%DH{ujl$*G1>}a71*IAd6)1F1P zekomdvLild)AfFiqv%xdN7Ff zJ>yT!Sa4jKWBy1cqkwGbA0y&6`DXOF>zMm0t{6FIbt{g6@O(b(hsCfYl&RxrtDU2D zK&JjKI9eV{KRH)f;c&H{l^B*@`{!{$aY%_wEU0wAEPZiI)T~voNWy6j+`Y5y3dvk~ zJSZY>I;{}+viuEAbx3-)P6s)zI>c9E~M?MA&BeBFHXJOv? zNG%;7r%?S#$N6zazPUYWF=a3&!fiQImB(uxH33BGn(8`EGXha;2UP2+r^apO*{3RH~`!( zO;>#yNdayVbvJuRj2F(j-xf4d*K2ctHE?R#mtN(ipH;TXNx4||N0}YoIRYzCB-*eKuB*z!I8DMfL$;W*i0M11?0zG?M7xbrD=9 z?ZCCBP)xxF()YQ<-tgG`2?%(2oY*h!d!9ZIA zox~}Hh{gji7+Xk%4BzxQ#iLW+HB(Bim4<>>GrBWkEU(n0%jQRlyc!SX2}4oIh`A7c~t(wq(3lZyfPO6FGyDiji8 zRcWZo5N!zdN?)D_dTzzWim2NQDb>yA&D(2YoOcpSHs$!*n3sVVYbN`^qw#ydnr`65 z(0q_%XuM7HIv!4x89-@?NE@_G^aLpLoN7*m5ZL|H^R)m z8soc`|57iqxl-r{UK21C>l3j;Unp`naQQ4tR^L1?E!B(it#>vF)To_mfN4$sly&@* zM^S{U_AQpQx!Ej|NJ2EXfvW>Q$nE#}azpgm zoDYoADzZb0%!F(EnQEK1tc!i36Pmm?OIT2Jn(h|j?dLjqKeNg^e$Q}V`{A4g&JqaC z)WmZU3BZR#lKxo%DW+&6AX!2sHRTBzGhx3TtCP_{Y@V z`%&eEtZwxDOa?Q0kCn~gTg=z#l500E>Q=6G7vqpE=9j+GnG(XU#(LiP|6%T(f&^{1 zW!*xTZC96V+qP}nwr$(CZQHIc+qO=xwa!Mw{v+nRocG_&xO($@GRH{w;t3u3MSzE< zcrcD3Ax7zoLO!C*#vNp_GH=}Foxk@od|pNNE0)y(wZ|QteRVgglVlMsx4SOroA%DZ zh2=M3-#@fMePHgC4oQbW%Bxd5}3#Q zMzS(1QA_Uwi|Dh!Br7jB(^aBfMeE9M<0afYAk2(4z@g}L8m%0ZNa_ybh{F9eH4bB1 zl9vXh){+1;D#Q`nbF35@eVpptY<~NgugO*aV5eyM^M=ZT5u?GQa|r=RdY>er%ABer zR!HFy6Jm+EX+u^kYhd0gIO}Iy+>?Z#{Uny;Ba!wPv5Wv7$x9H_kOF1#%d{@}>?v#m za8H+vUs3k;??55d)kzXCt2fX0Sog}aHv8d8)!c{SYPE+6knnYdu4K@l z3hi=biteVvjM&dOdJ6l7eAP$j1xMH1yDML6w1kd;b7s^cG8Wq8KVydQ8`!R~ znkG$ZR18VX&v0O&3ByhpK_nSQ-u!_Y%Y4`GZDb*)`3S^LtLtV&$IN}HpX39M#4|QQ zckys+6J5^?VjGK~){X0*@-k?0Vw2j9)s6dTG2R1prt)M{5-v!5zn+|-#P9I&Wz(Ny zZTVWfhfR*+wh7-FN>yEP(s*;6O`x8n_YOs;ngd!a=ilz-j=Zre37J@^t{d$B$~iop zn^qNk__a`@Lpp(Mpv{X3F~mWG;bb3I8LiXRSfiQ>;}>X&y}`5heA#R|DHdeep!qY~ zol~E!=#SP%YkkR)#{MbdtwDW#BCOqD4mhXUTyh{YDuWnOK)<^n(uOxUk2%+_%w5>QbfGJ0+@opl2!rkX*zH_s{Rd>-qh_Snr0 zk6(7f2hW2vvJd8kwLx)5ZPfxnCDk*aV=$yi?vZ)Hd|Zn_xyyf#H!`Qh29nkRE?GL7 zcmzaIu%l~$RJkTo>^G9y&I~?;mXRtvktsRwBemTL0E4BcugmzpB?R8=WgVmM_Z!r5 zKRO~J0hI|RhpHL$imSyEqpy^mHTLvzv>7~nQZMtgDhMrDAu{Nv3 zyrt61kxUcYxC7gsoRNu97rHLfLRT<9?DxbR3SYi7bZpHOVB|jv<^ScsF|acIU;Z2W zf2#lXgG0+2c48j?PqVQ9+x{E-KlpF#|Jr{egyHnfM#XR~k>k6@Gv}Se#mvj7E(Wb{?f$NT%H&Eh@;Cik4)rl={iw7!jo!(-3Pe(j|DaxMe z1OY_GliUY)e4?&5+HEnI8rUAn_KrZU#}c%V(3J&op2;#LIKzi{=Yg`awb$3qYRL1R zl4~`$Ptw^two2+5`s)+|RTc_xXFAm-d)6Q?H>R-pEyD= z)pdF>Uf8UO*dU=--dnY;hMKePPvruJzcq8Q%*M_e^%Ni@tmb)}{i*}78pg#&q_!5? z5@K~NUB^_huJ`LbI7Qxut%Qn^X7)&c9^y!ibst)Lwb`*d0Lqg_I*Kn~5w3FziSS;@iKdtRb^H@>KL7{St|kFvb=v3a1HicxBy(nE3O5k~{kRD7KN zOo2>ABV@l)9H z@Wjm$j>4R;WI-OntC}=q1>m(EA%>3`2)$)1rzra! z5%LlfWnPv|9PH_>-G#jx1-S{$;5C1+&{#M+Hx|vFTkS5~c6xG4_=G6H5-d2^kdiC( zU!M$4iw7(qVb&z9iSODqQW=U)BV){dKUjGp+OZr1jUUBk*#V~)8+-}z(-04rGM>f@T=bUV0y9^6aDWwVXX^tHUU zrn~Q`s0=URF%|)FapuXgp?wr zBHHA;3#ch9vx-l8psiF}lDHX7Wh2-~tdbo|)b{_fs~i-~qbv-E!qHS)vPVu?}=~Q4qP>qq-`*8&yYa>;efMq2#*cQ`8c``w^3DZ?l;Ix#u3-l~QORvRG_tIY!g~)>T6C#=;jg zM5kD7aGm=blF3o21xR-u5iZnS*3V%Wtgn`m^sC+LE6)8_&W&Blw(1fCmH#G(6J<&X zgQpS{Q$=uv7tFQlcIbFEN6xYy6y&bnNG;9y^QVzB6>{e{2!Roh5!N>K5m!HAkny-~ z2D&zB$X2P`E8ao8y~#8K2?>_FW(|NzL-~`!YbI?r7bK1*9S<<)7O*bHb&GqsScAc^Q!=a|M)R3v)MPh-|7; zHvHov!d7(Mfco^GRPd%o3On%7T->^p5K1hJTh=Xl#PMKP55Lt{MYf47%|}Vo$QLcN z$`H`>AdIWJK#I>G=Wfy>&c&FjEA{1JutPhRMDkWEEj#5SHk)fSIZyCi?1YyaHkk>g@HTOFRJ_Q+j!}lV!sMsNfIFG;{e?X$y@sdKQD zqG6#sgQM|^j}mQImHM~dRywsSnL_fHLvJOXYFA4J2JS#k~=uD)Dr>(WE zIrA=)9KPGm0j-l~p?g@@F)Yj&OMsKvj4y4oQCteNk3t{Q%zTrzYXUxQi{JPXNtYkGL&Q?zDreu(pal$Y4XXG`tShC8%wopCUC5+ zE(iM3ic{`wnDPBYjjMPSS@}i|)o$Kk_2-dG5d;>O(PE?viYU@8b(u>h94?qO8jO!2 zyz>`2{C0Xu27bS85!Dh|eMc({TY>qM;6lKh_QfQ&<6iZKdknck!75{v`g0Lv(5qu6 zPn72=k!xn`b#=l#`f zV2RoHNR^vtj1tvRn7lVo&7Jo%)rRR{9hmZ&q*rw z|5Usj^lm}O;n+y|kF)&Sc$xhl@G|?q#>>%Ll<^l`*gJDdbfm60Zu>1CG{B3zdsRRs zGT5MW9=y1}*&LlxZ7p^Sxsx1?l-iO2zV~p9y+A7t9U!Oe@=bCoc!an5G+&G=6xB82 zZsasb=1Z3jCLPJxAD0}mnP?&aP+WUUvVZN}dHijuri`;dyUJ+q;~uCCwnr1PUGLw( zfI_+qq)kYf_~K6>t$eddKHK$By?~;baF87quU)%CPV4VY_>Bz$Mj@p9EQegUiU>O# z1tM2iBil0%5tR(8%X=(H=Y1N7Esyke6$o=Ni_hZ~Vv!Wkp-y6F-xaD|tRVk6M?J~^ z!vqvx10?nLWTD(gqa2=`&{3;@G3U`5k%uO)MC0t zcb=y*vYse^L;m!RyJbQEOUr8@k)09|-FCznHOxDNJ7dIFU*X)q^NBJw(|mZ}h@S}8CwKUj(yFSd=Ex7TG02^=j_e!PvjMnBvi9C}}G+u+VBSUL>t zs1P}3&$}*zRzW_XX5kh;?qTDiNPWF=Kfk7cfo%BOEFdJkMP$P`j94--Y;#MX}WIVHVSY8do?R$BAP8z z7auoLAp9q?8iOoIWW68}t&1H6fL}^OxHvvW9w8XZ9E|S+ugtZ1L1tCtUQPIWMY3}K zjvtgwmR(?qER&>4uHHSs-IaSe!{z}b$MQ#3Uucn1NCiSlyRH>-JH}d3&wi7q86T4P zB?0yboyze?TozC-yo%6siat1+%PUVXX7B@Y+TJXb4NHn`IWiJv`k!*WGhIV68-dEt zUrsTsDdM`X7^D~ey(1#Wy~=z~v94WavU-=k3+||C~D`7vw4T&U`3-7dqG?U zDYj^^u;cC0STW5YyicBooBchV01DWu$QF!L^X_rr3L;SabQwnM4?+m{oVMBZ@VU2{@S@!dGwicaL zSW#LScXv`5j_G70@vtVXk%~o9pe}v3oDEH!0aj~Lk}arts2h5KX$B_%d@b~qT_1nr z&vQfnmYm4#GqTFea)h}>=H_kVP#3}$U&~kP+4&LXjsEb|iGCsBg1)%GPqD9xXW7iv zVRG~!^-pyuFJmQ}Szw8ZUxl0Dxt+0ZNIHFVd?tl6+n`C<0?y3k9(~2KpR(+ByFcRL zKD?5VVJ2>9akx{}mm;?5Hnz=1_M&0pntW!-u<-O7%CLvn(kL{~$>;}h69_{|7PVVS6cO~P-x~z#Ktn5h=6HdI_t4L!n zlEsqPKU+j`lPSfW;EMa>uo}dl8Sv+sD^H~eP5E#M37QUjR&J3&KreE)7}2%1Fr@sf zwVYSg$fi3V2OI?yo$|({)PdnTJK0}gKF+~()?)Vc>;2MbHSk-(2f`VcT>Tn0mJS-S zGK*r@!{m;cpDUo!_Yd(yu}{mkobWtSe|}d^plazEdH$}`7A|UTx#%2BG)PJf)O znv=@w47}ywS&|fNs@1L4uzcAXU4~DJkD}8sfoSQfRYJiJQ`Wm@3Y^I=N8f>wh`BRw zihC7?ZK`!9<8WCvVK(qfEf&a*VJecyog}=~BO1f&%=C33ppn1~Dq95n5<8N+3XGa! zNm420BjCQfDd^a5;ql*@emlh?y$*kz{nruIN3Y7w-n*|fcXrL277uqU%r((h$0aK} zBoA0fT1gI|vBXYedo8Bk+N`Fy*mpqkq#wlrO&})dkBZ*8lmN6_#lJj4HZ!k50hF(S z+}Yc7Bj&zSU2~&1Y#|H^0TX0JMXaCa56Y*u=TrlZ?!>lu1!GPX z4|T{qGX5Z7_)WAhw|Qe%fj8VchtOk51ARGTbdvmuBh3RDXt}~iw|N56D?_vg4^HrL z?;Ar?yd;{iG};Ax`YA%&sD)Wba(l=f-F37|H?GEV=>oJPd7# zK*%YKTZ7E1Q^yU8*4_8_u*Vi6AsRcHTuS$!=ZaseEB%lVGRi#7jSzL<5A}XU*>_BX z7y(YgcaGzDHH(e~R89lj(u;==19oUc7;6Mgs%Wn>n_k>X5`Nfk(#5dHcSM&fXO4zlWuk{!q(}{MN!z`aK2@lED?@zae(=>=wG&u23znyh~bQR1H=I3t|4W+4=>j zyZSgZ-)#%4%5K0#RtDqrR2D3-hl-xOU4<1<)Sqmps>u6XI?@L4R zR(%@nIea_1b5>xt-i^Xo$Ah_Ih)cR}purgCw$QmE+EB&{Nk>mewOjC;paCy}3Isz_ z4XFI`=brB|XMQk@rU{j`@j`{(eH_&*^x=40(hMpoaCV;2ZXkuL2BoUSAJm|V5~sZ2 z0m;S?rK27$!Yq+}Ne{(0m-g0)Za<*vc@^ZfLYVOCZHK^<5S-=RE6TQDQO_=PBr(-( zWM6YQhXfrXt=}!LRCn7C>c&v#*wDGkhheqhw@ak`M=+0GB|l9uLHjX4;CN(xD*(lO zy`F!g!AS4>)O^>DlruY?)lx#jC)BO0YQ*}%pc~6%UwjE`I2snHpMo#HaCo~GK6kV( z9u)=b+jv?4{_f}$4l*R$t@GKtNFmygbrb%EYa)QRQjeTcXJQK4{2e%5WQYo%-giy= zVs%lj8xNV`$1j39Jq;PPDmjA7>C^OAnZ9viQehJRI{AfZg4C-f4>V6L+tyms?!sa8zZ> zrFH$}_nAnuqjdE$KhO@_^l#N4I>FaHWQ^phpF^T;40I;->T7WCN{)oJvE1`%L${hv zckDnV0xRt_PhI@TogvXgXVxvHCeE^Hs_?*^)UYsS7Hikl+Guo8nmISFWWm#5ZC+s) zBnO>?A+Y01J_o+PS*7fk9x5X}sscrOxHctz2?_(31~42sC5h3T0i|89_JVGT?T(e%WYfOx<-2In+yIyjrbP!|x12N;p+A}su5B|I-f^^<&S+`?5~Nua(PLvDeKOY{GN{4Cn$ds*AL$x-~d)s`za8V z%3pb36?#T70(k8g@jMnp(p%DZRLe97s{65PvEsiCZ{&S!8Um~p1xUxfkrq+b97+@! zUr}07QC&T%uBv}oZ04CLuEB&nSRfzzGO}n$luP%(OI(g@N+1GQ>}YczEpHDNuI#i! z2{mJf_XA!?ryjOv{MZ}nLZ!`p8^cA(Fp!+sl7&7ql;8p&jZIbrM|N zt2LdYjo2NkjIGUFdcvdQ`4<2`ryOCIq?H@F7N$hgvv=EUcnVR6=_LMU)JGl6ZmPo|+zRf!w8!Ne|oX)H(_Q(QEd0^tD*qLwM?E$5r7K$_B zZB{P+Gi0--?;csxi*~wtKQal5AWO%`67{Ll8^}b2Q|Ao8{i|`Ry43?CWib%HJp%vH zz$2^|YvIoi&Zbo$1daMBni03X3N~}=VU6Da$*(Y-!TzZ;N$3PLG+I}%3A8~RbX&Y) z)cABb-Y&arHNg}E3d@drM{E-}PnE?c{ye1o?+U&buZ!ExVfbG>#_$(`SOD#(klKZu zyVJ?zV(o}{UlCAa7SV!mM8ERucpx$~iTF_4Q^FYP$Dc=KK-!QPIi`?NUy#<#nhRFt zTq?7Nyi0Ve?(Ke_-vAsT$+!%q#uy@N{iJhnC#_h{0XsS@`0pU<7`=K+YG-@ns@?Hd z8m_pCu@RP|3<41AB!xZr*IazA2a5G&Spt7ipNKt{q4uwVEzRldCJN(_jIEow`($r= zIcbNOS>X(HpHe635;}sXl~6jdk34_nz5ekZD)$}N(UuYK*4-p-U1Vxl(_%aAt!2wmxuVBANAAxh|@_>lZ1$k$fC?}pZ|VyipG*3Mj3riN01 zNOn~q7v=MF8Q|pe;kMkpJjWo>7}7j{z-p6C^wjJ7tsKMlPzv@7)hs)*qS5aVpnk~0V;0LTJh zv&t8l3b@ygj2yW^Q)gs))KRb5B#mofshu?HA;J^(fc-k{&_ha+o>;ZZ!h3*Ga3I(p zz7?aQ33T`RF-6{jYPDRbzSA!_Dg=7hh)@)OcK!iOJ6#!D^3_8R(2u6BCy$^EDnpJ4 zBhVtKg7=mfkizX$S*(_dmf)f=#5LtfP}P(Bn;an5zOD&tCnPBk^*?LtK-v4_sd)I* z7bqpm;Jei&oDSE z7+dlvnPJ20bZ5$cB7xWFSR8-Lj~Dcsb5>_6I+gVc`gssETxb54X1@U{#KciI^E0%S zk-r=H!6X*gQ0O>UUQytFW3KrIj4lXPwmcXqT#=*urVSGrZKt2i(rejfS+=L#Xpp?c z`_HYMc)#(sh~=5p6>nr%1Quc8D}6`s%+q+*u1o6I5h?E5Ey@z1x~r-R2z}tWI!sc% zz5ml1=fq=y8EuU@^yDH_TT zTB{~M<9A%?HCiC5bmqhj+qi#EcRVQ6%xT9V_{2}u!yFN=0ttZ;6i*ftf)UDQBUci` z%F(2@Havy0cP<~$ECFqe7eEzd&PP>$vxA@b&@twVigFY=fH#0zh(hMvUQ6CHS~P6> z72UX(f)Olf+rFM{h;x~Yms(x^`EuZ32mg)CI9h=EA zb$J(C?>TY_8FcKaVb^do-g=rnUMwF&K-QB=W^7a)e$sG3L3WHMs<|(ac5EEqj(eAkGqO$J&zT#(qLFe*L0 zt!$Z@7u8_GmhmMgplGAEhom@VBJasJb5@GB@!k4IfI0%+!dY{SX0ne@S0V=U$X~FeN+Ln0w1mSeC07-Bz-Ts5@)x5 zR%@QpaPdIZ*d=iirq%eoy*8=N?U96h6#?xl`e8Tl4CtdEKSbtL212vAZqgTcR~3}X zBS*lvPdX4pG`(2#JOWCTN=@8ig0@C8qG&b9D zqCaT#qF^B_`~F!FtJO&N@m;^0E+$YPklS{V9_SGccam!gi0CVOgCrz19W(G@8k&Ga zrk~nmDXYxa2t!2w2I+lK!p=5tEz4C@$Ca`Rp$HR@>u>(7552y!?%-0BT+K=3D>8OjI&%W0A znara^>WKaLdDDn}^?0WytNe(0MEE}Fsg1=ZYiFo&WR_uD@0O@Jx$+HKv;sN3?<#;R-wp!|(aB=GiX{ zm9KWMCRyU2CZo$RjvS-&CTSMN7sI?Z&&C%r9%F<3=lH{H^R4^Kc92nIrand82>!t5 zsG{t<70r=y#5TWJ)hO?^u})v_n%atNN*1W-x2O7)9-wdlY_d57C&Kton#Zo?S>C;e z+fGp0q&EwG^!v`lyw~NKCTpr3f?_nO81VDatA)neqk0@Dvst#;nfAtlZ?oy81xUy&OYF!g_^eg7LWMV2sT7CG70} zRy3Y;oRr!P#*a3Na}uExXH=3#gTr)rK2;voujqLS@IJKk)NCAz6+;I0O@_%hD^?!> zqrcr;G33z6!;l43QD;e-7>toHJf#t3MawB2U>0kwy>b0IlX~ z!pk($;M%&t{&{PpV*imq6+@|i?vJxrShGjQnK*-zDKlrz=+^|GUC%5 zOJ!ER2|S++)8+{E8BoMCFGN5;SnRN^Y#%a1zjpfP$2S2q)kIgI*>3s~aOQ5!WIRXR z+)g9%SIm^CzTf1vP&lkZignkc;hGMtW-y(W)J{LKS(~aSy-^LkhjuTSC0Q1}bJP=s zuh5!6#qb)7n}zIG|NM}2KmG5=Y=8@aHX;DSicg)S@eAZa$iC>aAsi<4cj4E@plFVD z#K*LpggakGC|=6G4(jr^m%_f)mKXbqT2KiaKR&qo`HP~=ubtHNeu3GcDTK0Ls1K2> zT%gvRqL^U+s0sgfCXI>Z|I)Yg|EatSQ-`FxGjZmhD!~}&|83qy{|~&2{$KMh@>=J7 zzF)0id0Luq8t>O&X*~w!vk&_pSL>BeEYK;zW74+;wn!=sqQI)#a_WRb!rN62&5?AH zf0AVx$7&^sIT1?6<&!#iPdIq@fwW9Cr;XIBfEZ7g#^3Py2TBJ`p{c4)pIn z4elJuP}EsVzj^ zfo??r-?mhxU3_3Y4VbuOi#WrH9+|qoX}ys3y;6&@GPLfT(1t}buk+58p8IalPa4=e zwnAJCp7UAVh}M&|4=t<0;1hvF zZQk->sdHTZ)Mw`oVG@iX+6cakgpWhck6=6vKK9|xqBY}(Q#2W1T^V~SE*oyl&67B! zhq&RD-uwmtc^h##<8`EWYD_fT^gjPMU7fpfbF?=+EXS9%Bm-?=R174 ztKVR3`W)R(^o--yrmEvFYxz@xc#*Yz54@T^IA!Tf$dRTGsC|WU>p158k&1qHZSPK0 ze!|f!Nh5HPJ02F4ZN3|Ap1j0m5r>sXAm*o~F^6a1LoI)F1@Lq-QgGdpa?x6i^K{leK zQ^u7aIcrS^y%++!KsnWtQ&TL4No$qnW6;Be*0~u92&*$xdz7nNY3!`xjBl>{ABaAE zLyiUWd`VXioYN-3$Oq(bJ%GhS$b#wyv2n^w3>1`hA}1FmGzAl*XQ5LUTj(R0{@$|p zX9UMYdjOBYypkg&lu|aG)q}7~n^hb?oY>hKdMA|By;n|@>rR>+H9figtpZdmEiI+w zB&`IBavS^`{_E^gN}1tVZGn6SP-QlMN;J4ihbM0ikTbymP-Mm~bM#a=107KKQ?zJU z*)juS8VV&@F1fpXLw~oIF)gGW{C&@;v7rKV%uaufMY$RT}~9v#gP&2hC9zP-2aCq$;@eWO=?Q5W0CXR9mB5 zBLk!jhuqEBl7AA;r?gMz^DBr^9fyV}Z>@bxB$0a9K@IB|Ze!}R9b?$fy`_})O4?+{ z46Xe(a6P#255o&t@g2^{9I7zW%2jwagNWGzTbbHCbjt)|uG|u?fANcylXFxC82pnB z=RqNM3O*rULmGAa7me=h;Lo4m^Hf&K+li5B?2<;(sWVU+YZQ@;D`!u>z?v7kK4yZh>7WzE*gV;5ZfN(roBe?PA9D zAk!2t@M;NhT+TNmU5>(a9osXF@52n!H$i(Lt71NtNr1r62)&4o%9vw+3o60V4X~4l zAhDz={H8W9pr2r2Dz=wo&|eIRIL?l75o3}^f-AuUj2P2kQy%8leGZNnE|8P8NC#U0hfBMA_LKvOrV33v-#<{I24k#@6jGL7PNu-%#+^l#2s#W- zGZd4rmhM}{)YVxddP1vE;?2o=hakM75Gs zR8v*xT3|`?hm9loO48ceCyv6N?PlTYb@IuX77tU!f391)(VUrygleZ1f{AYd=#QBm zZ@1|(_^45x@6y>2UCv1|ICDlzDyT+-@@|&(MN>VTB^EW5ABE-m7B_A1?hWK=G!1>F z)B>gbW(hrmH9F@llorXfCGvA4+6#N9-Wzvv_ar=Q`st~#mxJsVej=gk<&z0lhYm8M zGgF44T~chZX6EA=1Zv!lY3wk&iuW=Jh4?2O_225@e|$sc|C6|4p#M+hgu&fU(fhR7 zfBtcnf14B1{{tta|JR&w%GnFJP&ryDS<6OeHeKgu zZ=9>C;{&?&&MOsN2qVfmA=jBJ;43-W*+hM=h3Yr(Z=nbrX1eWCqRIjY&WDWGJYWJl z7e7~&v~Z%e&V7v)r0`2PJp)KIEz_n26h`=-2Pl=}Iuo}&zDl!K7E|vj^{(Ev=}^h&Lxaji-bZ!pEDmO^ z&y)`rLvhc}MTcQE7Q4Y6zdF)Z?Sa1ZDc&peBd7k(y9ao9Tz^VW^c^2Y`Yy!qS|%)F zh)0|1Q9;f!;3nXsnO$mdITH{qSw0IUI{?!y5UX$uGj)kVseAp9w5@D;tUvIh1g9Uq zlPkbRp_oy{*9BwA_5TFZ(vICrtsgQhXpLc^t^8bOsMl5gMbdgCae;HmH_?1|g0{Je zw!xFlDxz%?sVVfLY&6P{vkueS^(LY6Te}F}N#U7ApT3}V)xUCzUgES}I3jjWSL2T( z1)VoR5CVVKwSWNeY*UE^NbH4(*%b#j>2_3GwJ(ku+y2LY}fbZI^aL~EQy+YPq5 zHJQz9vS0)MlXKb2u@<8!DHD+9&y5bVcTk&}97ktzj5Jhes*<@5T)!Y>=aE_os-*|0 z)2u=@HJbwLh*+nlF-Q5(vpaH|s?TO4ylvp1NPN zYDZzm$wo==07WQ_*vCvBIvwzyo7F{Gz_`-O_{uyUmZ)GC4_Nmm#HOJF;4|RjlV}0{ zT`iYi<&tlK(XtF-r(?}4gwEmmmsSP_R+@VDI#tX`de$Z?ODY+91^U;E<4j^RjBtl_ zLfP5&%*Uafu7U_cHkyS`$`4U};AV%+=LSqsx(YOdwti4>{-kyO{k^Ud68%?)kTO-TU*VfY z`R?sDcreE+dipr#Z9L<vIKYGng+{LQzn@snikrRFNtb^?MQhz7(%+YV zxjfkr%Lb(L6I*g=eI8HSkflVx%ZQF&5}|LP`X6Ke8F>c+-QsSay~bBncr)&AEzO~| z7Y}cWTBVle&e(fu~s315l+K zig&Y?rbsuZrGaqcVGus2cY1^LkO|xAl#mMmsby6IwsGzS3l+XEEg?ldeu}47@eM4& zMy7iob`1o4H~Y$#p*5d>bYj-I+vfrBiuv~KMJA!&X6SX>s)H7K1i;p4sD5@F!7w6XcP$n?;H zIRS_kHz2lA43Yp(7pG8zgYwrhTx#+v&>W}Zp?R>FR@D!*zEKUyQ{pQI2Bj34c%qr6 z-L{`e=fuxXlG=kUpC!D|`)Z z$mwjYhZ9&g9jvmTxZ%F3v}>pU?gJte*p-B=-bo>Nl`C^5QJR9k)ry0ACR2I6?&Q5x zctUe}(69vB1MisemZs;}6|5&pu?goP&Bce4VjI3egw@WemoPjrAKAhimO9ZqWr0jzRrES^^0b&tRe~jen1&GWZ3lo4}HEU*a<4*#` z9xI2ub`EehNp^`zdY;Ov^pXx)#ig30*YV`c_Ofst_SoKj_iyWj`7!>7ht#kGo z{^OJVzc3Cx8#B{?eemCbZw7|{RE#6G^iGEoD{}KsvoQSI7>D5>Fb>1N#yGtT=s1Q( zTXU*yh&buux8vM3>%sxx22KicwNGz>8b*)u*<)qgIe~%{If11sZR9B=BR#0oPY?X? zr%kBeU70R1`V4e9XGz$jtD?#ZB-|UcRrOHo)*r(HUJE`IDn|%b*aM)O1gitGxk>HG znQvkPOo#aaeN^vfnvq#jmZ@s<2zM{}0j`ls#70-Yw*5;DWJzNW?t=ikz-N}4P}7-q z6Fg!?qKVSUk4Q~Ix^Ke(+pOIT*XS9f2m_0|WPy?|zCr7< z?BI8lLZ{lC?X%*0BB=qlFx#499Qk%2Q{TvK^`1oOOZad%-p^E|4a^n4?JW)If=-@EIVvnsXT?$ZZChugJH%H;#o$cx zIaHFVAhP^`1=iwNd$oC*Y_FK+ zTxaFXKyg|@(X=$etMEG=Jg?O?R9k)RX5)a^)oAc?vnWEwHH)4=|Q*MxjvZWdkKjPk^zSf1q)bBoSQ`G0?yf}lp$vz8fDv2g{-H(ENs>eYo z6#iOkl1~gH5_KDJvCpAZMsr*8psRiH8M4J3yZhvFTc2SX z$F8zs)Kx|5OnJ;PSd+9Ek(WHcG4k!Wz;s_snV!h=|JFkuBM^>;pB4%*s0Nk^Y$7!D z-b2mxhR|Ryl92YBc0)W&DdoB;X?~ldhgZgRsMDdC*yVOFT+nWV?NIynuWB1wrf2Jb z+Y6|*#&()CI8Ts3Yx9xz;;k`jkQ|*je+;sDzj6ZZe=#AqmZieCwIN@-DzOd4g>Qs4 zC@16pg|ctCJ*x%5<;Vbl|GxMpaqLORN3-U?B&Z+?8v&lHNg_LR)eT(E;@+1(2gsbY z?qjO3pwik;LVQa1JP2+N(_C3d>`M%s>uG4K)Ow71<&|79gqFMWTgYihH7&~%y9uRh zKz7%h`U>T78yj2{ClWT^rBh)+ce?SV*+!GI zrc(*{)4ULJ(uKi)nf&anD*<5!Z#ioTVp)DZGVF{ukl&;m)wVo(Dod1|HiII(!6@rE z)7lghg)KK8C?xmF8PR@0JdVF?xxO57O8G!Q9-)X42DL4c{@msmjP6gS<*>>%1o(xK zjN!c&Z4=PKF0e`D=}3=`e=Gdpz+t-1t{KPeB6wft)!!Q#H_H(EbV_8w73;Hg89AQ8W{R%OCw^_|(=$@;IhejMk%Qev8P>^eUj# zUX2E{^#wuFVY-d-S#Sc7V!{s`Y$@Hd*YKR5)TY;M592EBARSu82zoHM~La70S~?1Q--BNFECgJh}uS zKk3doxRd|E1WG1IwIWY@huJJc(#5a)9N|T1NKo;K#1gQ9Ast?xjg=}68r_p@buux6 zB0kHCSob9T@uMFK1q2A0Rn^gT%#*{oGrDiVP<79opK%y4w=oHNTCLd5OfYLg-vHRi?$Xju+5U@{vA(qF;6W5s{V9 zBUdL1o*`dz#Bo6Sl_%3XnhM~_V11^`Pm}AlQuTf}0iba3xZRPj8h@$LZSi+8sF|U& zgO7=SBGpZ6&$v?qCGH3QPm$^E3H7%16X)=Ucp)DC!!ZaeLm*olOtNPcM5*5&M=GUx z6j)7GkG51pv8A0SQ7J>e+lWxaGf3~ZhOEd)&k-FYb4kY39wQ0iab776AM8{Bz-i&T z7u)$c+Xd;$<}R_@0e(377dk#;Dp@KWrP=znlE&-B5jl5tdDxxw_utSe`aB|n*$?t8n{_#=&uV?wcb5v|>Z2y-)`A_8|f^mN|HWLgbwypy?p!SYmLE@+*{m*4WDE2YW8od-N&oV2~q=<49M>0%@n`tFFw zU2W+auw^+c4?FrhziTY?P7L7?F6vzoEOfQ(U0iFX+VXYx4|wdiTEQ7I8tIN5xM)yw zAA0Nz3pllj#b!{<9HLFSOnFN@3Tr|tflc?AV$L46)WGx&<7%3(Ca_|$O8?nihaBPy zqyRNZ7CS$17n*}a-;NN_1_(Ah!~-0&HE zDeq1vn_Q>rXpMQ9W~_0=`(-hTauP2FQ7#DR^BU5Esf9X*>=0tZngUiL87p0{N_jZ4 zQs|%oFxA@NaYcB>J&6U&#MS8DKJ{n0etl23o#_(nu^Okm`G*EjS?ud#LNA@i-}1jb z2h8X)orTP9u40JQblvYM9tMCY8ny9f{rFSpPo<+p^Pz3%&7Myn!z1Z&(??`J43KIw z^RlDqa!YGB<4pe@36vw!QYrxJDJhq5!ZqK=CO8NXQ%`{5XASYn)Et5sx84x>Br| zZN6HPLSnciy$aHs0vQfyQm)BA2!AS=0=Ux-0yeKZwTt1kQWE$@qkYOG#}Q@w_CobvT|W4y9gf zwv~iqajIIyGbdWmsc}CDk*lXakP|6ZdZ)nT5RsTk2XEI&Kknc4_Q#Y06r%5eaQ*CA zZ>+Od(RVHi^x+f{Oa2yTaW@;uabCvv5Q}Zr%P-e#hAl64S&7H%8aC;~6!T&DBaEr^ za`Op&d}{YWpiD|$pR01GuYixHc$zxPDU|y+Hg5`)Ju$U#xjQWA-za0A=atMeVDjLt z46e`^wqX@??x75M(_Gg$ zyLPPd9=*v-nUc(3C3T2Pk3(dw5#)u^7e(%Ft!c025Zmc8!j^;!L?$JALde?fwI%h}zCUQ0RzkYeM`qkIkRH}z%F%QmMR1MVMMwmn$^CqzKiCU?M9^Y(%JY@P#cgZuD?SGpIZDwT*o#5_D zn3)10Z?Nx^oWELqm{ti72i+n&88l1<2QLzopFN?T7-2eh+`6(OX7TPa%~`pk_Fi}l zPG89zR9`66RNmj+wssxaGO9EWDkb*@pzVu;!lwD$PF_Wx9^1O37p4I+gtF~@KhUmB%)_6- zVK{)zXH3?H1Z?C2i7m%rF5x(a&oP|R7;bjkAamP1)zev(vT%NE&2SfNY1S{}Pfy^uq zPVb04ybU15zRU2zr(swWl8ZjU$?g%p9A=)#1kFq#tQoDuboH;KR3uM*Eb!a#Kf>Wb zMWEHMR~^uSMUyp}^exmw+}aXfX+1ADKQrk^Sjo97dbu3FqFwG25!ewMIwO>EeP(6d zW}D-U^_{%5-93u4*LaJuMzSedi2~=NDn;TqmwP%3Z1rw02xT4NXqufFrl%$mmio`0~rYJtV7v(_$>C4;^x?gDJ6Q+P;cBI~`bRx})FHrrUC7asH4 z4x{u}$0ddFdZcY*`j?V$oUQ%!xr+_+7vlmt;k^8C2w!m{(#^Is*n-_n=&?`{s^Qx; zC-+rd47wjBHIgawIyhZ>Cao+N$Y{!?FnO^qd)HwyXg)>W5yOp5S@xqbB&yrm|Ets_ z{_@4)N~RzFLgZinj{)HSpeQSYVfp_nZF$EeqXjF#I{KgP!t(!_wy^vUw1wsW zowo3{nl#A={n%FPC!QWuJ@=4Qrk9tJr|Yr8vaRzQ*`2w8`a_#h5qc2Wi5^Vlg>Uo- z2gIi64Nj-!u7S2#wI;~}?;mG%!~HvpbmP-Y7J8o=;ynbjq{nm)iCxPlO$?Q9Mn(P{ z8~hpOCK(vdqCXfTpffV4p`kgsp}&!S?zTdaJGCeEdKwNjgv3nf6qXWMEEYH-X-In<{UA7<2ZM2mjm@Tr2X zIzc_0v+dJKV@o;$4k*a%1e9ES7% zv+YxU(~)n8l4pP&FIG}oMRpJ$T+rnh-p@x^3GkfCSXbYj4w(6;vFVCD*jxD6A=-Nr zFyLoa(kKqf4Mf+H$jlD8N5T};z#JNBT8Sw7shqJdgi7Y6ty?L@W?$Ji;KS$2U7 zVkKh zD;k!I>zSjz{*3xov?S*TC~lF&?_BUBedR*zz#|teU|1DWQr(16i`VU!p`a$Inh{?_ z55Zj-vHp(jYhi&g>I`(YdHD|>u%-dSwN!a*$}Eaa2j~NuIf*F+xQOyx;S!OO7+Tj& zlkgszgiEURb|loub)ozwC~ee4Znco^fG$;$E#K*{XNF0^Ng5MxljLMhWGl(;-2 zhN|*eRAtJ`wI6|_8vaPdv=0~h4c_T#KTZI#uzrJ;uHb8Em@Qc<>fg)~zPTeaWy8zy zS;yiZvVz*zI7fgTStwsx7YN#A**r!PE9Ivu1`2z zU)3OxE08$jd-2YSz-zshPwN_ab$LOPa4QC^B|Qfp#;F;IS?j1M1gRyg_s17Xr=vsu z@BpmMS#ELmUEi#sK^$S5=JOrXBx3392Cd<_#J^bXEt#`RrFn{dY0rPd z_!r%wn&@3Isae8HiARXkg|m{%7-~&>g_zO=xnB6X4BVIt7yM&QvJT`n$Z5rlBZ!t} zvslK)fBffP;qMQCRlk?q=I>-E*%_&-I=7Y6Ixq+B#>-%)%Aj#fw6o`xW=%Jl`8Xq7 z*TAu^6Bjp_odcAPS>Mg=&zY8P+GClom<5gBx{)HB0;QY7^VBI)qO4@5CXm-zVgNny zgbXyyboDY*j?2jw3YT8}4VIu2miHsRqB|z#R0tgnYxYkH=UE=phZW%J?s9Mi^SrPo zX;ZvVZAp}r9<=@oCurr0)D#dG(LRXqv-f8Po$iQ8N7e4UVpS;~vKhW9zKwoJ17z3< zUEY>Uz%4DzP`@1#>hJ09q)Q1Z3RHVtMaUY#FSZhwMT|Aee~S3uj-Y4@?VmgEl?olB zSzPH(O847s^?z#uDn}Pn{%}54ni|Br&%qY%4FRW{;CJ0e7I}Z5zrLu^Qwx)|4a;t; z{AFo|u`46Q2Ca)TP8Wab*r%ROLjpBC^fuDJ_qs@N0BpV|e_T<+H#vi+CIu<{TeV5J z7q(OmZMv@<=@b9W@lwrR*pisIJEBu*IjWZRM%c_(0Bx|6f1vU(q>GSuz&5`rCRzH^ z`tR?8uU1A^O&uSGHZ{|%73`4Gaa4X5I>DasR(i1K7X{cf$W5=YUp*xue)uKoA7y6w z8n3z5LK9tkiBou0<$)D6~^qwM@73EiUF*Prx>2XH)W>>FkdDQgO7$ZGX zTt;)EsOX!@uifG`a=!+SM1#cuE~3}U2z-wUNEv<=Q=ZqSAx0+nt|ywBwPuOrf#yYS-fZJtHUpAv7Bp;BCd zOsnNh(;}G zix#m+GLVANz!cjlmcCJ27i@e5e>Wq4QJ?(dAQDD2@4DXR=ag?SP3f6lWcFt zulFEV56s2L_JEx(2{+MkM*AV($md;%C90aFP~sjaJWJfos0Gu=l|W zIok9I^}a6Fsz;!Xs#O!nnzw(j`Y(nI&OHhuwj32f$i#v&3`aa;y(EeNdH&FcD{v}# zqZ0pn{F8xA;osCFRTzo#Wj*N)Sd^X@X5ZOX1C35Uy<-YJgd!5|OQ^C`w!b^1ID2fdgi z8BsYyl5QOQJ3N3)pQGkJJU%#HL6?(Hcn8In-kzl=sbc+qze~@dp3%bP=$Yr566wTJ zmS4$1Mj}P*|4C>ISV}%Cz|r$(km>#IaW~2)6ErVb@rEAeWuS!@>KBu#-9xj3kf07e z)FV6SHDdnZ?i*2YZI9z}*S?8(LtAArQ7F59PsKN;ld8Rsq$D63#m3pYsRUcuA4*A+ zk^5SeKJ<2S^TH`KzeA=Nm*<0VwT?GIIBo*$a-}fTw+tExIX)qR6_h_kb0}o#qght| zgB)k|7d)*C5XhPHP({#xS{x*>OudXEb+*^^geKYfX z*V{Ph0_4i5GxlFL?rv1e`>#vg(`t+rL$+Cr@2eLh^Bgy&;sL1kx*bKH)Uu(oJ*k3( zWak@O`cz~`KIo5iJLOz?SJ?pPVLvl)*}#FUG|V6;&f+%@?fAjZh`I3yk}wo8VTQqL zJDqQ1+R)US%RuVJ1tlIjxi{rFRf)~kaDtYS}8pm_d|vGITBdCaU_{}-Oe^8Z(!xAnJ59B7yy?ti??|7V`Z@;~rAmj8F2_ksJ- zWF$^GZv7PvVGpB49|r8>|Ixu(^HZ_aB$Q*eQwJeAxR;jsDjVjPM)RLyI@8xAtXUe% zMwzBK31^8~(50+EXqgu4|CFF)jR3u+&Ht~NyU?Av5y2BsiCa?8@NgD(;r!7wN_n+7SG$h5!3 zpMq{MUZBE7;}6FTOZT>_$O$}-&YFMyaYVLITg)--Z^MX2nJWj)^mR)Zf-_S_a$8j| zIVCeq7B1a~>bu(xJtL)Gt0K9ACsGTu#csKQf~4Cui~Ed(R09~!7e+cE73uuopkAc- zC$_2GjMyr~ZAF`Q_?1b0l-j5rBG6?rZ)(KYfoau>JUq7!okqHD;@y8cfeicM@?$Dl z^UOpFa&ZU-3D4~c7$*q|{zj%+1Sc4*2Z`IFy7y~j+`7WX2KHJW$r576QTVG{iz?%( zHT@7VBlnGNTGXMDB-fDr?mbA9(t|{O|ii`?{9+S>xGZ=R}JNOTsS(lHsvgw1Jgo-HN zSg0UOrO3}-og;ir(O|-PyAh$>?aqPZfK{Fe=X#O>Io_1ODmoa5mF+)EAPFO9HOfCF zXWH2_7y^!ssoX%>fA5jB#elto+}k@lG3q`s_mDUu zYoPpd@(wifaLLBS^&KuSQDCu9eu!&sb0Hj)t_veT zup?R-hOD#S^;yHMk`r4+Iqn$Ot8>y{+CNO*Cv2I!JOY!iM-qM{n?zhUHh^Sv->Pc~ z)N6gZli^UVw;~`2*=cL2VKtBn8!01F+eW168)A_w>7iI|1PaKG3TU9L)M{q@3hzTh zdT`F2GPT`k&u-+Txi?x!5y1Kuey%Sa=}L2AE)OO2N6;{q5gvhyz_7I|&Q&-(XzSkj z>=lD^$jWR@J{o){41Yt7%95KEbBNg9hP%nuB5JDV@I@xAU}=OmeWwk-Yw2?B)a3p*i$=emzdv(Q7557~5iCjc z-xL=ZS3jO04z`-jrlV0vbKN?oaf%q=lzZnBO8$GY*A%Ah15csi%hoHo6e|L32>eo7 zc?@f@lfn3k?K`#4C+2^3w8gR;4fOjLlsR@_PhBoT9f8GT4M&j+Chi7F2MV3k12aTe zTDUSn8CHWkMp3%Y?!L$(dfzuXFKtnGzZhs;Ry4aGEJsqoOY7yJa?)?g+`hahJ(-UZbL$X-CDQbh(@Gv#)gn}^X06i*@%xsFd?g@k`tu_sB=idU%ocrt8%;i^9+j7_QsSvZJ-dxCsEUK!DQcyGsZZw z0SKqH-*f)NZ!bGxvOy1-EfY5SzC=>~CXri$Q8#~e4bX;lr~u~_zq4>ba7TRbrP|+b+ETHwR0ilBxDe=x3PCp zaWFDAWe_!WvotnUmJt5mB}Jkls{fm!h(XrW&iuaz(PI7#&_QcLO^3&P zBPXrxx*$X&PM5%!lP%&kC=lJ;+OKUp`Gb$2=tZLS^QHGZGzu9fM z$C?!k%DVNMRl&dnjI<#`AwKXMy>XTx>Z&IasU&R2B*opS!ow+@-Qqj3UPp}B;D=&W zyVVEG1O59KXF}1^D>@4Pg!a&h&q>}Gbp=e8WcC`$NKbPD`~Ka)n->Cg_$crNZ_>O>(TFeJ2kw*(nuwPn;@H^3d7@H>Km z`_Q#oQ`^$7f+gppPliBCgXHr@c$wxYg}_COL3a%A%uze~gnS=0$vh}Y#wM&vk4@R_;hBbg-wCIGyqntU{ZP{#a+(W$`*{A}*&ffQhLL zIi*@W!oYiG=$!#1`~4ceIN`WeL;smR)RCsz`8h`E*_ z+wOt^rmpMSGrSnttX@ym;p|Of*wQ@^sNJ?=(BN@*OclS|OArK<{Wx^`D~-xfb7+?e z0~^vFGy3%QaQUi>ZeCR9C)FFg@0pt6HW2 zu9%^I8BNv6rzUA#jQ0JHzT*z$#qps#GtG=ctH)O=U>8%qa$`>{0MkDR3p7c1Q8@7n}4KJqin!%V)_IU}o)*X-+Q#1(8^1*P{uc zm~yk0xpY;e6nrzal~8%bYu}bzvpV@#BT?i`Hoey3H|_N6t1=e7I5{DYG1~7u;5In4b5`11w5uHDn=)m?v*@#59koNr z0PaUY&WViGwIX)-6`77L>oFlt>P1+07QF%{{LX%_-+dC+z|Aet%`v5>-%59?cH@%2 z6cM_XHaRVfthJ(VBWsiY1RD_+i`jh1x3UD0Wv+|KH*v!ys)t#M@m%Cfe;z_o+8^_} zNiwxJG0^MKeN#6h!8%%CuPHqRJnW_$zi-H20OtFsyq>V@|AbD#*{b~x0q&jgnEsDd zukYlbmM%oCKba1bWf89&)Vq$Q!r#X6@{!Gxqq7jyy&w!P#TW9$pkxi_kO#*I33+Ee z6HHwS+7Tfw=G2JqNvHMcS0*(;1aOcI76=kXvXsk>SFcrmN`kp1FfE6pUXiDUz zcI?qywKyq*Q_tZl8XswiSesp54KLp#?8PQzokK=dd_pHOoo#!iqr5H6=K zJnVshCOpJ1q&0+D{GWM+Oa;J7>M!FUVPyh!KXf3D4uTAdT;5GChthW{?uJ?&D3Jnm zM8(C|Q9(mF3@_l#ctb>0I90{xxe)|v;32-qikubC<8nOCc!o0}ucf(+Y zaqTR8`Px-tJAy2DlmwZ=LzVoJMe($LpK&lC*lWadea8Jed#sdHbWkQ+RkiF;+HPU*u-Jc1Qz@bDL_lA|%Z+y#TY2 zks#O)uV=17yU58lA(|#+(0yxDsz0rodmajhp&rYqj$wHqhGi~AgjD2Xf zwTXg^q)S-Y0~8| zqwl#+pqbb@o^riziUgW}n9)O0w4xy9x7|^ettf9&+I{M02|eWZ*w;vcw+>t%cY+K4~3TpxAR|7IYyfWFE1rNf>@WZt1t!nUYlG#Ym?vK1U~!Qyx^+W zn1)+EHaxWiJUk9I-B6S2d(F{bv1QsmhAkGswSC%<=?VSzv}CVrKxWvFWtf%}ybN#q z`E{KC_@=2Cr(MXed?ixEWZP)=-%|VWhveCKIU|IV9#(!xR5WU22~=7okgQrnRgm|( zOH|mp;bmHo#P)gFyhGhyzAw4^t2^-TCPfIK3=L)CdPTYZDAvI$P#aPZ6Qq;e1aLon zaf6oR++dCvD=aN043%?%c%<^v3|=3%Iy}9OL+HINUA%0qDl#K9>)hH*`!JsL zN{F!`W~2pqikt+|c_i(u3Bcm7qi2ke7m9LLMLgdvoVy_Mk@rQRq%lg?#K4scM*9hS zGA#GRG+Un^yb>>+yXGpK)Smcy`{SSEzn7y<;auXbg#3XgKH1Pn_c)xg_X2k zSuM=L9R}O*V6y1!T+p(Dkmooppch#FDP2EKDq(KT9diBzZ z%&XpY;RWH0@4d;Zau$F3><2Gh(+}Zp{_Sx%%x=NzbN5i$V%L#%;!QEltI6-$l3a6*V31+i& z(#b8Q#0PF|Y!)n!=Vcaqf@5F5cgmu~h+k*Gg;gdaivE5WnvvJWcnXy6DOQ#UoSqoM zczTmp2XT}bq5)|G+yrJYLJ1?Xts5Vf1m}E9mkV+T$E`=HasiM57{XBPa_-_y4*qS! zPPjcb14p0mwZ$mVgGR(sJ87-Em^L+IvT<^bjsKK#fX}V8V#%TX7vR%y-%6TPD<>)4>Dqq>>N}UGQN0Ed$ z&lDd1^7{sK+`(OzejZ}+ICA;|EU)rD^-f-#XZqnPPVzpI6`4o?eX`T)O9LM-N`}VG zl>`3)1-80Cxe?^e3+va^7=Wk4aeA6jZkYApI~jAC0l%&`103)(RTCh&a601P$7uvj zM&b6%uh;51O=9A+&!wKeQaN*(T6M{8&w=mPSNXNiBmYC*{_}#K!%vanq#vu!=i3q1!F3o{@C2 z7$29UY7AYl$!i0L#OlNLQ<0!$$UYn3h;&WhPoa{Vc3>LMS%XdP&J6ouL4O16sNOWh}otitWgs!XFqD|f-HPSJL>dl|dqk>GH z-phsgdn4`)y`VuAnX2nn740i9xRyFy0Kmozoy=o?&J#Ig?TrXV?fr-Jy8sbI@5Ao* zjo!}}nmfwvifAVjeP_F|%}wgBbFe;QfhaFa(&rd5x*^9$^PgIhYODz(YJUh$BtQxu z&!&N;=|YBv6*!?ZrSKaUXBzQ#)cbuP>0Z)0rv6KE*@bv?U?G4#FMQoO-K)!@?IUdm zw|s+{SJi1R$G=tC9b*NzGBkTHQ;k^2vl($vnBvA06J_g`{A-4FgY9nGp!c)iNf;VF zj^g_|I4jCOU6gX)V>xr)w^_tR?;}4|K@LrrSc?kV+feYUw+JjTXDADT0pVnW8XRI9fXQ40FgtglTdr8cU zg{Ibv?OJ{$@Vzr*yt2~hwITIBC(s~PSYXp?KL}Q} zNN}l6xSRa3RxHaweNa7&$mI5k$!)^1?MscW+X(Zq6Mulp2yqwC<~E%Vd$j`!UrAkO zME!`RvRvQD_;Wk<=>OP@ABEMO`ug`tJ`zZ^kNkDp46ELmwdD&A?Oq!x-t!^ z3{xkaQ#f<8OJZlA^n9LstbW0xhlx^XJ(+|H=P$RCE}(%-4=tmz1g zSkVjJvf4 zegHTRNj8w(E`8M;X>?w4GY|R1E|@HTQCUecIysv?Co663P9X|8YgraakXRI%i;1-2 z483a!ahezkBklXwBA0~&tk{4I>n@$;dgIQEBmvJyQ6dLxe=G@p)3uwjz0xJhxc8bK zr{WH~EHp3Smx~!wT(W(pXWX`~T5AW(w!7%+#&=ggk(6nAgZ7^r>Lb1>+NDM*H0Mw_ z6Os@cfqx)kpZyo9Y10x{9eMMyxx7+#dqStgYmE2U$2_x zy8I(>oDt3tNlSiH?Ng6!_x|FM#Pf&B_!*i`;)V5tv<9~JM7%^5kKQV82^|f|w@q{A z*UC3Bh%NUiHy-71vN~US0!U-TW0{v>IfL!hg7!iO-~71DN(zG(fe4TmSZ&tVtx8W( zLed$?GKuUXjek|CD4a1mQ_1WSuuVpWufrh(sf^WI;|ClGAN2l)m$<)PGnDih>?@{# z-LEvgqs=`Dv%(Q7%Z&T}wm$+0&qyV@@bLl1f6e%Kf&`}m_@F^G_H)*GE=iWpsxt}p z4sx|f95WYH;x8;@kR%um8v*!m%Fo;t*3WOcJN?hS*QbHq;>Le@77q%u9eeN7rSqZY zJaz@XM-5(cYX8@L@ftb^vRCceTj=f$aJW=e;{5lfLMRbKTX9LQ9$i;`F-@wk!rY?m zOeA;SDMY(s^qctt>tZgGJq;!rYz<=u;N01qsZ_mZ!RUasl@6#>Ew`XAs$x8vN8?!> zGQJsMjLc3G7o?CjdH|O+aksN?EeCeq#h89>roubt0S5EGqXjaboqlsDmHCS1WNGc5 zEtB5e<+S^I#KgxNw=9e#1vax)+t%@F9%|GRuL&26lsE>kU`YJ$RvNh>qJE)_d1F8; zkhA&k4U0SfQnB)rPsgf5uZ-Yy5xpQsN*Roi1UIN$Vk1P{a=jIZx!Y_IuR z@qKMH#w)}}SnYgCe@CAZOpG{O`iRx*e!2gqlHw-)`N8c^i}&2k@GaS71`M-UUX8&d zeN79eb_hxmS_@uCiYxPF?>{SW%4b@IJCboZ}8y8q4|Z^-fXy!v`qb(;WI zKe13{8P2=361jvpBn)$}mRE z7Q=69-(0grp{V!7y>?%T&w-zr)q6>qOz(SDrET|MaEb3Xmxbip zSpwHv)K``!v&TpCI-!J)wV#=gO_ut~cEI?4EOF3+Ksw^;xo4B`vN&KZkzrgR=*1{# z=tj`Q{YF=`j=DgLWhS$x_6P5!N4w--C8gj>xTp4`@|@w4=ON2v5M{rKTM5jxHHVI9 zr>JpV*1^9q7tGJ}^9=MI$&3H7-|E`XJBF70nSJ!6xG@z# zTu)p(n1v3CX$~9XuKbMYsgmN6wMo8yZdN5yGDsJue!=dN@KxTpeN57?s^2mcsu{$t zZnSISSPTRLstEerFZ)2Z!Cl+ksft^(6vUHgA&Ri+WIa;IQF?d-%ASY6Z}$tsZa5D5 z12kMn$qRcE774y(_XQQ5V+)DS;r@n3%_#{AhT~EjfxNgdBoMmv6H}?Yb-nbw?pb~6 zD9KcUft}6BOW%6KzR_I$WPm7}^0&6{wYx)H*hXtlG*FqZX3Bjt`(@O@8Wl9-f%Q;% zgIcayd!pEZelbEoIgY7&y>iSyau__hYUU1#J$GwE8;# zPF&c^xF=`+W1S0g9bC{UYf@rgF$$%^{=r^z$NLA20<`bd1j^S-oOcp|fR04127?61 zzt>n@9GO!7T3>B#U{nQ}MlMjrBn-w>dWMCmXb(PE!A92=XMpo~+63yU`(>0>?L8TmAbz211T(O;ghV`!2=9(NzV zZQ!>}7DnOn)6r6uSUk1{-;8x}un%j%foWeGaGExhZ&*-cis1&hc$U{cKil7J6I3ly zv(PlFS&qVn(0{a&Zr&TLk`GoP0ze#u;>MBHsrxBD(#N4N3q-h`Tnzpsotezr??B-T zpXpP0F2Wz%dZwzkgjMjYSDkUpfH&WEFCd`y@}`~^+tXe&IBunk#62GuHpMBA83w*_ z%-5C6328!&9ZOEVcgRi_C(3b-nL&K=#9jCkSkn@~DY{@R>J5p?4a(ytgt~7a&JV1} zQD4mG1V#Rx&hMrB8j9;v?^l8!!A+f<`fc1Qdp?JW{-Ww9)UQB2-${`&r?=!il2|jo ztSr1Id8^!^%694;la~Ll^{4V2U$aC(8jR|yK)dZ~1|!j~ zy*Uop-}it^z7m&*71V&e45Cn0tS%G`lSBod9lHGF(-Slp+8jYl;3@j!rs~6+%$8E`T@1v2nE3 zf*_9g!->_9So;rW{uXdNt-6u!hubj!Ri!GAtGuCpE6&`@FK|BvDb3E|5b><>lDb}fNK3;I-Ec9d7nxM*XI=!OHhcd93VxoVK`Z=_dd+O<2>|U{ z8|X(fBV&PU$i2*sePxWS>bY&aTuu=#?iwjX@87Cq5b6gJ7`{N__N#5 zYF2iEUor5nW)JFwriko_AzmTH{3H7!BIuAJ^^j>}v$nOuQJ5_OCc|+J8bK*_w;%GR z_OA9~d!kJnuR_$yXd@!XGnOh@bm;y9?nQrYN$`5H?fg0+K7gF4QVqttkn~fJcm-E@ zt<%D*_3Ie?8`Oti;HIyLC0UuX-(mKjMMmPjq)?n>#Qmk6j8Tz_LMT1*w^-X+^DePX zQzUihMwlzCw&1CEGzJZR9nnXXJVWFxMBAf6z;`9UcA^&`(Dn|1@mu_^{L9js4=%CH z>;re&Dk-Z6>c#pnfFe1uvZGI(xeQLHNp$?5qd6^2zC}e)^3Q7_h*v~cX^@!F`

w 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�MLaA*~RuD$F&NrDY1~yYW!2n26 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 tgb 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

p{?r9p7WBSeeUA1 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

    s%@ z(w`?Zt*Zr|D~~2J_bDY-2ER7gf(t_^#i6ap zz%KwXi!kN=ei*6U_wCCG4pE#W+QcmMoo4O~yXwQ)ASg7CLosk&p3jp0M8kEY)Jv4S zDFh`jI353UD2)=#UX5;9FXR$UWPyBk@5TJ8oF;>$x7Oka483d#47><+j14;D$jNzaa7&JVULDqwiQyTrhY}Td{fqEi8 zI-if3_bZAMZWY&c2KF2B64Uadh~1FqAlfHe-8510V6leM-7{g#f!ZqA7jzrM+n$62 zUTYBF4ZHeIp}#IAYs@oiXu^vyG|!yo&XAkKvMFNnvTzt)g5+2I9zfzf&z0DL_Fb8( zkka;}#Nz2#jO%2Tp7PQPh%*iFD1`0P!&bsK;A%B?`h;no*5Q%?uGVJB!P!Y_T`#!@ zZbdx6=u54QTVV1c?j6nEPM@%tBcu9@5b{d%M}J&ZM#&+e7|Q*T)@mQosP5_vfF)?r z%HxL;4iv;t{e=pC#@aBgIM^Cu>!V&_?m`=E+wC0V(2<~+?j`1KO~=wvcWcQtu(d&) z1*nT30bZpx=2fFpJuur6(l3mKvPu)ehX4k^>2NnX1hg7L;C6-WiMiF}Fj^AHHSYm0 zO5P37OOz@BVX?Uw$2WN~!^?7_jImz#Ya3I)5NSDB?mPsl15;zXgX60|U|y5C5FiF) zU>7X?Pra)87=V^rnK4R)*I;-7V!x6~!tDN@61DxK4?-s6v-w4)&-o>-JJ1s)A*Gdd z0CQLmsS381;Ems`3fGArQ&J}FrlZ|&sOWI}swqd{JJLId3SSZ8ox003BR(unI=+2S zqDi9f$C0B%z2VK6!<~!Spj+weYZIi4lfQ*TaS0O11)V{Ggz|_~wi(|Y100c_2eHzs z?EwIpbE4^3DDdbMqx>dTjo#K!5Jb0olw2n&kfsBB8;sup6fi02<85BH%qLZhY|DQq zrHGE#64y38-LXEsLYA$}O3O=$g<-)#@_|kQ!%<{^1WNf%4-iKmMOjX&g4bZk*X(CI?3gijef_XhL4>j_m;nGD z)B!iw%rW^!=gb^c;?jH3B4ZNLLR@?{*4}rK<*?VZv^tn#-5c1Et%bB-9V&+n%| zcO;?uPe5JPYMD;5*z6Z=K9EY*vKh4fD8GLL;E(ND;)G=fAG`m{V`*ck80gI z7-ht4c0)x5Erx>2tY+}Ys`LlPcDv%i7B~1)xHh2Lz>p%9U6N5_62@RT#$zO^^ z${TR!D)etm4hWH_C*C=N@-su^;m;*?KUaq+*rjQXB)FrgXp`rQ@a1lmaAj^$Gc5OH zN;N=etVgDlILi8?P@Dk~N!E*#rTVtLvx#NA?FfmaX%*4G;;!(L~srYn9o_H#=%!|>;+FXmi*XEL8MG9jC2@WZf{(@CEM5(!w zLBw)$wL(;{`UPLdd(6TOs9LN#Q;idhDpBGn4FVO5t51nXw zi0jSS(Qtv76QmR*&xM_3yt)OY{h-TPS}k^u-a?+blLTx#!u;0_m8BZ&txRVJk1Lo6 zr^*2|Sd(3-(r1AV9`*blZIa!KqsAB7F&?Z>@Sqdnze&Ls&-`t5QsPmq&w+5=XeTIO zJqeRTNN~4xJV@0%_OKD4?sag7%ao#wZejYz$1RIkaB-@u*^YWEVgdBnO=8L%f*ab^ zN$QQT)0cj^^rP65ZU0ylH~P7kCAT@)Vy-uL69T7ZBixhUneGlvu%$nLhp4!HncCr! zGu|=ayd?g!99UJ)h)z6{ z%r2_C(cs2j$#ZB-r^>ypZ%7#VRfiipRpxRf2M(?uX{(N^lx`8!;U30jgT=6G zv5J~_(N`{UFRgeo6D*$P`;qA&WPdElF~IclI_rkgXx;F&Y|{2e0OuzkzfsM_x-4MC z*^bgUh-_8h>r@a}2FIm71J~`FYBfAh%Fio&IeZ)qs65B zu#ERA;^GNTeT)nI1frruB-9a?^WJz)?%t)!Hf6C6dU3;Vnfe~#LV6?+`;<8Pv$`TS zCDM47Wp62}Lw=Dj?3#cv8z3^a^$vJZ|jetWg9c44s;>9!r#??Vqag|5re#|>e37jg)R&S=;n7BaLcQMbn_Jg|S#5^_YM{U7xyNpAvN9E}n}0?5+NIGp7ax zR_JJwm^}E|8bhqrf!{<{d9%M$=Gj%*2cvOh`Nj{dmcQKz;zG{Byd9XBiQ+K%lxftY z)V**OtN!@rb|<9L6NCx(HDwka4qb{Ao(+l!JS{8?Rvv?4m{y+KmAVat%Wi8Gi-H+` zgd$X^1h=^L^o0E@c}>7({7gjQ?qX$z{eboqIiRP$238`XoX=iDDp5yzQTaC+EJvu@ z(cbdc(j|u@b6c8K(+b6VE9X9=L?5g{%X=$038aU)e4zBAG=8Ujhz(+(NwF(S9A0Nz z41TVWwKi8^I5#j#9o z;{bW5ry~gV9(@V{2Ej9P9Rb94PoLLG#WC6Mlt{10MzlP(v|>CB#!WPKk_Sj)o;eK{ zA0M4H_eAJ9#HPCXr!*+HZgRg0W-%s46hc-8G;Hz~@VkvAxGh@L- z5nk7}pi-my#~$MgCG{p?yizmEC>=}g>T|wXGQKkTg9EQzfMZfBpqzNsMX#3GgfL9N zSa*dhCfb4yrILJuRXr(Jiwdl?nH((FnY+w&Ln}l~3lE7ne^+-1c=>0UD5_abJHf5_ zOrPtavB=0ooL}Z}yPS={>jHBL>}{5y&oxSe7g?*p(D_Yi2MWjQ>g*Ad4*@zxND5bQ z)DVkwbZ(B6#0^y8WE#$Ae;$w?oi}8QLSNJR4N;L-euf>{@F`dKl$W?0wOGEwW&ZUX ztTa&FF6UuYO<&*f1>POLFW_ZY1*S*NXa)rqZ~u{^#!!)|f%2 zydk*2pX-DpLP@dm@1ZpKF(8AL=~h+xf#{)vMd5izQTMNgPeeD@oWR)TM9pQdI{A&c z*+=}}?G_63TTvS&+f)wfB$(j~-e!u8AZoN9V{#Mmk+rEEq_p6A`AGac;Fj3rCNS#u zz;N}E(l2yT`kwX`9*+;wPo~HK381zRHcwES+-9?|O`@wtF^W{-t<76mt~rL)1L=KHkOWjiKj z^{E)bL1-8;S+=~){86rP;R{Ao!h`ARm6H3OEaG>Qcd>yoEvk9{J;cacFV3)jizSt?w5MGb|l9{OF8cGU>)HG z?r=Q82%!RE@egn=ISRApN!1g;#D{*ItDkM!bS?`ngWh6;;QT2$JSh#t^SFVgq>w&C zGE|z`F62Xo3`Dbgjm<8{q&_U(4s*-gUi2!fQ0*&L?vUMDMdMXzjT26;c$aTLZuDr1 z?d4vwRN!qY{d1)5se$LCNU5alr%?3>aBY;%4WABxVxGnO`wlKfrz5ov(jAE3+4LP0 zE$M&qIL=gIB?p)PF7|7({~M3u?A>9cEK2qOU)QB4YNP7wTDdA!tbK$CuwA}hk4I9IZ>5c8 z|3Utf>?A9^tnYnmB)bi2^w+yh1Z>d0!}McJCV==+bR^?{9oC@*$d*8l=?Zq*&&y3F zgI}1Pfog){LF&e8MP|TFU3DP59QVm)!q5aoVZxx_{;y=HLE1s=&qLY!17a=rFX?1K zDztVJ9t%j3gn(hC86-wl@Qkrh*|Ih)5~fYIF9bAa8iFAgX<}adw}3qu(OX~O;q{to zy|yw%*H?;HxiUhhc$AxdTBfH9YSQmUYjz}3}Ol<;cJ163SCX51u{2c=pHGuPLTc(}y0o!iyhD$uH)X-h&TYd>SSPWh6x;6so|EbmXQ52q;=VSo^cVGZsksS{J{oFb{A9uCz_eF8ZhE%b|p z^ihP-lL}oeiv}ao1TN|m5y-yiqwMdl=cE#1fet*)eu9`f!D)xK+3pG%4Tis<&Vsf? z59Ak2`%4h2Vix#~A37geVklKu!=9UYp)RkH(oXLFa?ryOQY3OKik*Ez8+I6M?=HsZ zz!g)$Za88IBc^0mfJ&_zLA|0)G$~}rmuN=g47&XD1KH$BnKGfBbU>&#$^U-GEl3#+ zIjbHn#gSv!iC1!wKLMOAzE;7Hnkgt!eM?DNsius$dw>t+?AC26j*VKqM-1sVQP3Nl z5>8*$ay_URI&^j_0=C62M7%y$I_##`> zt13iLS%uPkk~f4|ABg_asMY*1|y}O89qpVAEY_Fa~A)9y!xwY?-0a2w^q%@quUqSYSN9D3d}_sqZdK*tRg| zAcUK8V_j7GfM)^xRU59nQcY`0btnV=+dc%wIxX>Rff;hik4so0LJu0rgaWD<@unQc zp9n}M`1RqC;7%axj6xcm97#>Xeom4K%{7-D-~N?2Fn1#ZYjU5W%bq5K@dTAZfLEhS zHREEk6vDua>t}5;Yx${RO2Z~I>@w0H*y*(1!^HT-ltscwha9!`0i;XVWQAURFAA|U@CrDpbM>*OV2 z5MPbLAS|$0a$;N5(Q(gNMgdz(P z`NmWeLJUK#FHZRJ+<;xF zS-;EqsNnq`qHnVV(gXCS$*@_JctvBO2el{a+zAn;rrK9o_UiZ0lqv0>qS4VR;TN!m zf(Qnh<%eaIP?jR*zgkj&yA%G&4oQat@$iCn$IK<^#AzP^@8@lyVJpzVT0jVGsV7t! z?Kxe?8QWkW!AIaV=ugxcWOS8-IGdp8a?`Jl_T6exZT4PYX(ieTtB9&WB&PzG7eKzw;xCSj z`UtMK%e4d$kQ(_=Vb}qgRKf&%&BAP<8r+&$s-+|VV@;hv^3?D&C{&b{i|q1ab;LPv zb)o*herSSBQ~~gVWE}Lyo3A8?UApFU&7`r zLI_6-+Ka#RFST|tN3pD}7&IngaD2)JJ-t7ClgquUdJX_Ale22IvlWb;f@CYFRG}0b zVJY^)CpAF4Q9P*#qTRuleKuCD9>;3Jk!*7n5N)cC<_vYKwOMr+UWV-W6}Oh#Gf#B^ z^NKi2L>;WO(!|LeEh6SDGk)cmaJ)WtVl8<7k(U}@I;{i1F>*CN-Ebg{9WtWgcXNM&f-h!W zywB-|{%4;pvW$CysEXZ=`wCh8!?a==CF}o2cA|ZaWwd-zLpO&c5xHv7_?((IYAuyq6E z!&P;Th!OCUV~w5J)8FMJY46EB9jmzHl{*h( zj@iG%fv>KX7sF&>nFU`x_o?I^{T2>ZZZYDr9bc_*FGW1u=(MSo;ZAfM)M)fF0=gSt z(%7lLh=rlSHq#kX{niIVT+cpB_%Gdydtg2AEiD;!P`@OSACxJUE9_&5F4{KXY|E*Vm3MZXmig}hnIj-V>Q>`Wu8`h z6qiev2r53H-dbx2talm!l-+WCK+cIc*|H9Z;t5t<%wxk_1LS_3&x`_ zPJ_~QXd&YbWNKqiVZ~~Bpxu#{xYFgOOqrM! z202~QlA=H`2Xv|%ikz`=;rXFmml;c3=6$6^L}l(#tI|AK0~Nj!h>PXI&sr}Hefo~C z=S;2;BDDrHLSKZ~W8+FM;RnbE6ksHgL^}7oTMZzcnr|UN0GJr+1%6C+I6YpAf%9>C zQx#|4UYuB4wn6+p;(;`LBob28Yum%Kj*0IrC-inSqOIe9TMo^2U9yx~MEIIlMLX1p&W)2$DIsGJ7%oUG98+ur#Z|P$PDx-=~$7y4`M)Qbko(-|7F8+r~s^Z+jLrpG`k8TFUl|uCE_meG6g?9033&s)P)^{69$TU^H zP<{{~;&|sOr6@ff&P6pcYw7UK1f;F!a;|5Ti`yHSw)|`UOURP{yVo5Pp4A&jktEw2 zxDoAuDIN(cU5tiBm1z~jEEB%zo)d)J7g`Nhzjf3)bP}t!cc2FE3~}iCYV(or8yBH; zjD+K`Ovjq<)>-u+7#0ud`pgIFHRVI3trz{K2x znZTlGPDWvmd&SKXH|Y29&RSt_PsvLxB5Cx!4fbg&h0oFC4~dHy}$SL zGN}3%tj)J zJFPLV8FCZ=?~4-8`!=5ZIg+OZk_3*yIt#wy@7-iKTuB;e5PSx;zIns$p9&18jik0` ziZO1VtzZXOuh02K>BvP9MT`?C3M${SviU2QQ9zD-yO3*GBsVb`4`io#eP2LB=^cLt z89fyU6n(mZV$1&ZA|Zh4Bk3La|Hdb0>uotD-!(On-5K z*n5<}OYtVVJnwRs3u-MDLdtro35Oj28CnHpz@l#N((*^|>wS-x!|h(B5a}^T#072& zuQ00~u#k*$`DqNoZ5w7YIs6MJA(;f#5ZGgu;DYv~n}RACF9p88da=FF*bvXuc=vr$2GfKlA@bKrBp!RjpIzbrF_2R*qH4_iG_ zZ6JLJ_dC-|6s85Kl`DC*!#3e{7F0Z1qt~*L z<~cEY9tUq9@+x0^TBf-j3;8D|sM*O%_YhVr7P~6lgYMBK1Y`WhMTLsXhNY;Mk&Tw9%h6G26GfVr{$sXNRdRB(cj3Kvr=d7`!6+Pu&7usB^ z2~lj~^7~x{b$HZ0JaGvBAyxwzxTBAL&J|_E-(!Vbm@Fn{^Ea|VruTvO{ByCQR&r=! zxK(Xf7clP5)l1pziQJcubf)bfo7k=Kyi$UmeNu<uC&dfC?Ky+hWrFWk9cXJw}n@% z*}`48b$~|wP&;TqOCKPm;sL#Na)HQjIjIOtKkwfBnc+MTjd-S`f4Uo4_+ny;)=BV+ z_5hdky$XsQNKfu5KTIlXuL4YnE1cjn|J*UQ?G_hDLo-`$`rX`QYb(6eQ2Xhe@MVY2jajB?ky}$@3MXe zp9ITghLZu>xS8z;Ufapb<-9priEtd<5R*$lj{`rx0ziEFN24U`DMXpn4C8p8bHK)H z8uXG{MGTxSkK-<&X=PW=z&tk;4Sh7dlQ>(i7Mx#*wrpIBy(>dd<)wK|5g~xshK$BA z-u`hc26Ll_tU@1fToSYf~$b%siLc{nYn?wIAPPk$98Uh!4} zCk!T41u3={f1lI}1|f3NISHA@wSlA&<&+Rh*sD$i=$BF274065ld;!z(UI4$Ubu<_UAf?n z+NBruaCd9O*EpR}!pEdDjxH3=Kogx5GK8zI$(-TS?GSC&Zf?V+W0S^|S!y%S!dnDC zOrpf7a5I*@4i;r&H%3Z`o{pu<2VkNa)!0%yhgc75X=QTksIWXHj_O$L>r0-{dP#h> zugAvw-9tlto1X7l6!x%mKOpdNOB2;sMtvOVjOkripl!pG zC6?FM^bLjBAyUIW8+>G?sWn}ZxczbIrmw^LJoZ|T={k~kxoQde>YK4U1Murr)?k?J z|DVIi^&C}nchKL-PmM}!qIM)8x;jS1X;%WyW5dv}Avr*dN_~}r)x|v4tVy(DDW3|D z=XCY4S<OZd%XtP>_+I9;;J_MpuVx6>Z07(4i`>3(VoYek6Tr$i0O424x;! z08OMx_yb+5$tq&*Dd6Ff+p&HfQLS`$a-)Lmbt-51^S6m(oerf)i*AiSm$1J+!Qj*D zmgL@oU;KrtO%<~NxN?-Qn&1Eo;YIwyyru8^4SPq%jfGhHxf8ar(wCeZ^DInagKT-w zwO;V$5g;Vdm4cUddJhwR0=M^A%Jc^rhwDF=(kQhk?jTM9Yiz)wX2pR|kFaXdA-UZ? z1T)`xN#?nM7PnY?E`a38Llh`KUt6=G&9)Qs;rYq`uPvf58uCmj{-V{y>QMED)55Ci zDinfu^9yv!x?}w_F&qb82)BU3h5b=y03v}xD?T!Tsmv$nU%}?oSA|Pbws8x+Gff`b zGd@-3@$W{sshW&nPPQYqG_inDx z?@oONgm1)A*64j}_>p()eI^&>xTylm^pO1=xy8; z=9!AYbHQYUhd>=ra_LyzPTOQ%SROeMHuDDFFN}JshnIQl^%HE|A|8dP9#qCO z;_>mT3SFXNA)%=74~l+-i|w+MfI(JF!^n^7_Qh%2`UO*iz_Ew*UT?if#$|HDHw{B7 z|6mWQ@8{@1xKdi1Hf2iZ2(}L##}xYYq>s3CPqpK!dzy-4sjo z%Q>>RD3+ohx4*W_k109O4_NSs-^773GrDERZRBY1a*-&{X{N6kN%*8228mwrZ6TOS z5QWJ^_@4Z^c$%`{^}=<_o66u3o~XO|=T)f07@Q+%xN;FxJF53uj6mB}{wy^;fRVVxKSdFDg`g zBX>wnik2-3dxKwZhnsxm2U}gm1A$exS6Ec61n|11ZhU~cg*_QvZ{r)@X|!nn5{&-$ zsdwCoiwOyLj%d|e$wSHYYHAyBswmFLTpsJO}eOojF zU$WtyfdVQeI47{l?7|i8d7{tBfm_f``0Mzfc&lf5JJ@``s-fuwbJ6J#kj81K6!&)U zEso(WC$v50s@@hLxwC>yBiXwv^bg58cP|vl6K^#gxw8(?`w#jng<4Yl(#~tw^NOv) z0rcZ~PNSh3dvmOT;c5PpM4W6;!uDJREc)Jzit?nrl-I$F6@-bLwlbVQx(+QV8RUdy zi8_QASe8G!k!p8izX=b`QA(7HA!=6WLu(5{1U)(7#~%T!^|qSVn{cSD<*G~xLIG;I zGD$8glFZD`pemve)>82~Ej3F5eU!lrQ%(TvkVvg{r>s>WIH70-L|7>| zzZDUud}3DHfDfQDLTzd@9DsB;U@q} z95JUbHX{zRr+B|xVT)Xq%sZ(ZQa3pn-A(q%#Qv8wGYB4?V?`&Sr9m1c&mZ7Zx{0Ks<3KnrE4+>ou8`V}A!H2oPW%UgUoU^>VkdD~dU71*Wds1i2-mKlF%; z&^Hkvr1Utx+63U-liD2AO0N7(VteDx2*lBxuUjYRyVhsCK(@ZV*Gn!p(zF+iFjs#U zYqE7Dc3^6#+Ne@ajIkMXP}jD=E$Puh>>u#?U-@hB>>3>1vVjoz|3R*(?mmnF#=00- zq~C%e`jvkyIxk;~2&+aHpS--FYcByFnx@{j)%u@}*?zJCP9Xh5l%@@n8XlCo;4ht-27hynlgEx}yz ztgCw3hK%RgJ7wqW;d|F^!Z(hSM$0uOs&Q_WGwUeXK}nq7q+F@^ZZkH{5`1ruB|p8^ z8o1Xl$TT?>Br_R?dp;7-p#<7VFqurSexhyrDBuP?A`AeOHd;m?^(da?GWa(EE!*-1 zpP?NH_hUF6gkXj06_tY>R$0YYa`d{SDhpvXftM_MOH|LkE+E6HJgpVxW*Q=m9PDGA z0BJ?uXvrn@`8nDEBLsmXK3@*_^X=c@Biln68J-Vgj8R52m72XpvxXmQLXF=E_Sj4G zAhQAp@tUJ`2^HANTJf20cUeeeq1HiD+NXL(|o6 ziqbijEG!VEKI)lSwhk)sTzrmy*kFzR9hu||0pL`VeW)0Kj$8S z3rrL`+ug=4v(ZM=w%Wq^o`9zn0J9R6IS%&=q~4I0+#$7LG|{oG4tBFR|NJ8%--ddU z7>=FnzY!2DNtqwIdChU>}y`5{BYj?jc)lUh>H{n?Ju8GAE@f{%sGtSu|ItybxO zGpmSA{!Z~e?VvYPdj**?g~l1$RQOd5GAAV+TU5qMnhb?3kRs5Lx;^ zeaT2%bsqh~>#a3o(@vY-XE#p0BLr1~e(!f}JYz24VhG|Q@xyYv4o8Jpx0f)OyEfWq zjrC)0+g4}1im~k%OZIK`%z|u!;|9#~ZX#SD_6V%(6=w?5H>T zR%rH^Mj+{`N@C~Dsi4aDU|z@-rG*T{I*f{dU#Yko_18yjjQAJtQ0(9+`692D`}xI- zvRw3u1dOEKTnl5jM*_6{v$^s9cw#v6jRKj`#9*5pxEQr^>4{a(&OSO@iIoI(I^Xu? z^m(zhYbtG3)K6_*{WKwr32%F7p;LyU>Z+U57|j$HZ|MlN*a|`JF~(l41%Zc`+iSQN zrL$57pus}TXbW;0C7}Ev3+)ff#!{+cRt=2?4bu8PqwH~e)i#r0u4(l% zoy39Pmj0o^v`W?$N9=}z#Mxv8JPmz88p3s)(Oc5s4MOP2ln58m#n%GWu8lC{6{~ZG zs(VbAtm4EF(WEEI`zI*500+wowykoyA%>4vqjGXrCJAlA=~9rEEj<(?CJ+z`vcfgZ zOl(ST+NJnS*cnk+Gl-dW{@Ia$LCo1-{{-6nq1sGS^})jGUOxm;ZXT!xbvzJOBIzQx zL(->^Fw6{QPik!~tB9^@O0!&R#FW82(4Ll)#6_&>=Q!jDf6c{s5w7HGnW8kkMoYFW zb463atBu$>WPp1r0^~B~ZETS)KFmX9>*!O&gjf}4OSxy}fIk6Wt}&dsl)VA1l^)6c zx?h<|yR+I=sef4zrKAsQ#}6OpG`c+ zxv3$dMa{(g_D9Jbkk1(n2sHSp?(iStBt2cJbXD0f_=(8#1IRA2-PB_(9~i?G7L>de zX39b46UT_=O;w}N^2pctrIf~GYo%MkjwlweQ!aS5fmqP)ixe^0EQViG&D3TUau0dMIhP?BtwircKE zv}wlt^@&}`G>_rFk0|5^>!sZ;X)>xm))X12ctQEH+|bLHJshd4yk*Ns4ucVZ26)YQ zLvM|`q8yuVUkgfBqCjh-haX<4J0*ojGSyaEBde59u_IL}(giN$XBp^*P~+dez8WNg zS!t0s$Oh}@ZE5wC%2tvw;zuH0gnEdsR!za=2A0;1MY$}xALewyID|AgPrN?lSw7jU z)XkK`$v{|tbMO4G`e^vi%xa{#MK$4F6l>ki?z}yHl;<%8;Fg}$C<2r5Vw+} zp@WJ*{ot(&>_PS{2h#hY2`e7mb6)+0_A9^MPD>;H#m0v`(jYQOzGc$0-G+~FN1kr) z##Mh_MN+;B>WFOAOdwbJ(its;>Rh|Bvd1htA)tbkj*_{}vnI>T1CH1Eb_~jadIm%< z-l1EA)J!ts;k?7kEe)`vp+7`oO+ryh95c%KL37`Q=uFK zk2zF=0mO!}Bm1F@vls#0VVY)JEh6Q)ko+PMCrZWqV30O~Nz$FR{crsz2w>_!XE^x^ zaIFNA7tKNnpAh3*lf`m8_s^N!;7|be*RJ!(5aeGT1-HmYj|GH(C9QS#KbVpeh9RFS zc}&qEVj-ozxM%tL5krS9P~`i=)RZ5{h@dFe=V*Gi*gnbYLOP!0`-lqZka zg;TmUF+xXdfwuCHez4@pM5L+|Y3YjRm6%wDS<{p~#Su9VM~;!w+IdQEcOjWjWvwPo z(t)Qsamrc4c}^9l{9snUaqy0TXVV!usq80T9K2L_lV|OJs8DV(p0(!3SS{ZNt-&(5 zZ;ai2kwA%aG-t&C&3Kpax|`lEu4ZHOjBY28tD6?ib5k!bA#T!YjG)vj&*Zg9uUxQn zTCnAgSNB9F81mtq;NaZzhJ6KElFg;}Gr`cPs0(89kLA-=SVaeIa**TB7bh2aDPm&< ziF-sJP(_~fUlf@eMaqZle&>}2;GF_jMd@ATL2km~S7_T4rm%GRRg$9(rt`M+KL#*g z?Ls2uUoWcjrT&D$qcPUTYbq(_SkhhmE|2J*Y=awp1$NEdlhAM(6m&tALlHa-#~SIM z7?n4sVri|0da>9+Y|Lx*w6TI`f=N#Fr-aRXw{{X*Ar^O|61Uoa)8>Y`cu!|ah)Wa) zVCwMacnU6gnLS?O3bIV5Xe*d6m*?8hBPQAJjlk#^BwiZmb4dtFoy(UySa8-8SGmS6 zgnVdIx33Qj6r)G-#(n8ihy3$<`ztxGVHSMi$yvFv#CRC6EPmp5`5A7xvL^<$z-#q2 zhs_(sny90oEkPJYK=a#A=)(p)#qK6Mup8gl3Js)phX7m7)Bx0pZ9SeM4Gr6W?n=*0 zxU2!oI3Tg6!r_KUVy?|22hhuN$tw2fmK&rmic-h10?(X=4bR^^nAz40|0;1QB4myX z(US}DG1a3H%4_~prMz80F3*_v&0zwL+V{mcn$vt)h>8o!$J1Jljd*xsZ_8o#^HH1Z zn6dBxs>Z^>s-veQAob2e>s3)ai`**gtYV`DJxyys-&wjaqlzcRp7t{tD|hJFCw88^ zG~`H1WuX*M_JIh!Y$a|x6Mc-vPW;gBR@;kIhBySBXZ|$W2{hSBvG{7J1EYFC8~)9= zufN(dT*k1QP?%!Fn5XFC&|sc3XENYfq^^p)Ks&o=trL%WW8}*&q4*?Un=5Ic zi(HY2`%FH+o+p0(2~6FN!B`=aVNf!9pDbh`Uxu;4n~)s*av~m?Ydwo-G&1vpW)q`h zRBp6Bh*cf^mv(^s##*%p9UI*7yIX8+#7@+LjS1Lu`}89|_2vH1b>-Q{_(WLBz}`1j z=`9MelLN{F`6^1?fE;R}9m8eiN!WdR!T0;Ce6KplP*^mF?$@0o;~fVgwk`Q-UedaQ zWqD^C1*-qBF&3I2PwvetJLXosW?H_{Wq>nN17XOfWNVZnFOPN`ywr!D zrPhwlZN++3STgAo=o@FUu9trJOjh~4n4ET}IIZC6cVEaY!uJJg_@(X~=SblhmyPBR z!>V6q-}<~jvjQ^mhdD7iIL(sQ*0l|(B+FFZzd;gQZB*%@O_=J_kd}G?&Moln_vnjY zFzBwH5Ohe~2KN;Jid*1TZbF(q!Qrj~L9@gk_3_LX4VXm9Z{`0v>%{j<8qxRv*Y;3T<-PImv0DQ1cXAlsKBe4Fa80E_igRsYFc)niO1-d7V5`$`q#vS3YpoEpQd}` zQnvn>ZuVjBq;qJ2ah%BR^Huw%YC?kTcy)7Z{qZgbVRYh{TtupG@ZqV3GvaK2b$E{0 zu;W|HcUY*uczNIruy@;L3Djgj8;!lidg4>6mrSVlwyt8rK(i>I0L#>nK$@qO0np`hc(8~PdebWXA8TSnV@#o}Be-Rlj87nXl3S$Jh(GMnJo%`rg zY3KR+!gp*{C|%88IlDX>Id@JmL!$^qLIrQQhKX;u%!{zdw_oWmI;aqJ@(?>+JNTEn zyv&m(AXH$`pPNf0#^7aP_m(7`IhPk0qMG;%9UfgBAJSf37Ez#CLD@s_;6OokNZK05 z-cIF!O=Vz38?e_`3c`j=hPJBYwMleZSL!|o&D6yC9+_sk$E~_) z`GS6U790Fm;NeFRwbAcQQzFWXJY`y|4D2wa@p{L*0EL#%+AJ%8Zt5A`vbtQvd)??8 zKVXrHK|Mal(xTUd(!G+=HYt5pC4*?qWZwShT?WtIPrHBZi&%@3WH=fH!mpi2FPy31?>;gvP!+X_`x20O{*KV0NU#X@gT27+sG8<(z;g-o{{Z z|F{z-E zjMfd$=)_!8ywF6aPkhCLAtIZ24WZY)k^)m0?o_-DrjmkpxL{M0KLn)rtWa`<5c||@ z_rn3z91n44rq!*=oGj%vjQ=;Tath)Bo|Bp_nr zP+jH6#++mOqPiTyNuu<~(D(Mw7Pfx1fDE)@4$IWljY!b$q3O_BSt=WKvq>Jm!g2Mp zw-U+efvBpDa@pQeEB%BwBzq+&WuwsAN??NiMhS$7;f!GN7Bc|XQy(GeXUm}8gk0>1 zBtv_ZIK=3Ytf9^rXF6G3kx|5d!*o)A^|sHW^e~H#-`p3gL!kQQ z^skO8!Dh<5d^#hu2%hSK@hG=D_vNT#ETX1&B4{|X2T#oF<_ZmKl%+;A2+jt0qYTxi ztHn!a>LJc672%d(om8U+e{`19lPQ-rp?p^wr2_?UPf0dy%N7E>9vDKs*oT!!7grGN zPp}YhIVE(wBV;{jNR9?eys3UYy?S?*LR`sHq$=4%BiG%4Dn<|Nm<6V?90X2IjjvB3 zlofpMgR>7Tm+n_pnyh(^@CQy8c8v zIR!{2_MRXl74!nK!uluH`l~hdNVR>;&Puf0%2|17Rms;!n^#0xi0>zC5f>u;KqHGW zKA^wIaKd-6=pMYQD!rd5iRXvmI{?|r!0oN|NvglI;0EV2p0*?%ng2GiVc9}Q!UWD9h;@iIWdtC=$H2)-R7Cc0=L$bf>ay$t6h+HE9l zS$s=wVpDW)p4ogkJ1QYY-Pie|`i{DuZhA8@p|efiy?nqOvY(~<6VdwoPMOUs%ino9 zhfbv_Iwhb|!9tI!m^*U#91_9}YXtEC^LxWR1>e`k>!0tW4LOx&NF4!5px2d#2G`{=UD&|I9o_$6jV$T0r_;060xJ! zr^-v{miqbNUmk1%wVp$~#ciq> zy~Hp0$T-qbW0F&^CMx^i)UKwM%d;F&-&Zf`I{y@QOw@zt8;$NsGT1}O27hd|)ydqH zUv?rgH_NJ_!uuw)mvbLJmF{hQHkVoDA&faIMP`D?lX8vtu{OY%|v!f0aslk zLRkM?V8vU{@UUj2q|~Y60ACh>2?#q`twuetg(<iFjzbY(XB%{)a;^Xf+15dCYAMcA#8<7?3j_T`zWjNvTF? zY^xg~cN9Rugxxs$IdhJU_&MXElypS_W2HX;t25F3D_jC5E!$MSwLNDN!#Hq>5~*~( z{j~`0bP1s^7MF2Iy6X;m${)hB1aJGZO%c3M3pIjscYhlW^PM0H+S)k%KJ@59h#z%QSu}XEU`$0*@`v5Tc%@;lKRzy(g|*?Px+Us171z zWv{4dVq|@~vZ#ZFJ00r6WCu84O4m}i(ssPn=5U=-K!iR{fpL?1p;i0)oixmd3TNN3 zUipC(KMhFWFSq7g;p*znvMBl4$9^O{v}F_YykRX#rVCim?*QU~>F!^+on zfwYXaOd%Xz&}>6)4erV$J-P(YdK>QQ#~YvwHyR#ZMIe9_PI)UiBH0C!>wnFrwIx4A zs@Rz)E{)hM^BAc}HO(Oqgo0Hwg<0)tddD(4!s6wkir^+orJW>@*=u9pv0Ro#if0Gs zK>d~-E?E)Mz95pnDxHw81W*$^wmv%iHrJ&xc_r!OIpO-cu_}p{OHp_Z=W-E8WpfQ) z><9x1Ys=wmc;Z~@ITv`tLNDC6ke3_9h@yew^P9HJUXtt?6q_^@5=Wh*TuCG7X9mv+ zHG_>d#EY9}s6vM&m+FOs>TU`Tg^-4xcQi+s6(AYb{&5>HF^)3}4UkiRsZFpDaP-q; zBJ=1LzL1SJ=ZiG_?LLTy{cCpXa3Jb5@=3ZlEvXJm36>w?5g*%M{u#S&R}mn&!s(-k zZwA9)o%}W4xA#CCFbyH|inN#ibdK@}CARcJPiIg}ffs3X2A6-B8;f}QxUq}3vicb0 zF82lx?JB&bg8bH`trFojXgFfzt~0NCzYMlpf>9b1(b4kUhTjh{0hk!mJeBUKh{po& zW{IzjwUhXFgi|Hk81lZ*SYzN%A@7JfdS#{ROkY6UEuD#D<1zjl$Y#^L;Sc<#FmKT_ z#XP|7l$;L7pYwWqIRi4+1EH|z|>bUKW2(2Si9 zBQMc@tZt%=X`J&92p2=*%eO0TP6GdaLaUff3ngc1)zC2C&3x{Fsmhho9foDt7Y1s9 zY#VuV;Ck+(!;XV|i2Zc0h%Bx5aBWOtc>>W1;U`a7k2m0ZBcG2D<7ODlXnZhNMHhj6 zQnR65YNxk^y!xw=kY%Xtc1MhWO%9c@`{vU<*_zjY0e$)gApavk?lu|o0RVzN7;AdK zIcmUn{eg%DxT8Bh<|rk7ZE&0ZDlq%#d#jqF(k~98Cy@8|A9}^Lj}Z)L{=tWNTodIj zxzAH|)(XA_t!dhPd#9u(o;F+f^U|nv+c=TrZb}8!x268qby4=ThiOhueYDo1Ujx|3 zW?Um2yn^idUmm+ z{t?fYVS6;U|F5#L?odz)Y`)pK{yPh8o|K#jXNn;;m?WN1S4j!;Xx!f`?J5D}Y=cF5 zQUDD{)YH0(g)3E_u$MPg{Ijn$mA zWa57YMP)r`6)npRl<@=%RacraJJHe5BWdB7DuhkvgK~k4$vj8lr@6;*PnyhuqZaW( zLDB%N9nROi6G((bGK#Cd*w@;n^o>H=#xI+)x zJzu^}tY{>wWJzId8(~3bA!J}rQ5Zr*5-B{);PjxZhQ-+a1q(IFa@gD4&`dAGVM?HT zhI-bUlG-xav^3&$tH49oMlDec2D@a~6^|?Z_)q~wI|KbF3Ph*$)dwZC2kyPY2TxCbpMAE3Ecsjc=%K=99We+PJ~ z`JRH+2Py9(6wSm@7v86T3X<(-vEZicx%v6BpE@kk3<{P+5kq2#a`L#jFHl*+F!ZHI z5T0wtE9!0NEu7+n`zZ_%k_t+7*P6aP{sO{zcIabaouukN$8KDW-Ny5%qkI;l!IOwt z(e}1JNku{xMz@nzBgUkz0Rnr9zZL;l?KWyRfwFf*`a6Q5rBbB)Si|;07m#riv_NzG zAKZU>a48B2t6KaVisU};YSQtLIAQwnX0iR*X|HIU61mp;TvX+{vD&Iv24C297euAS zr+tw=;?RMh3s|f(KnxKL0w6G-T-D?Fu@nx>QT?9@75jE*$2_Q5#~C%?2UgA+sZ=z) z-Zb^a+8GqB+73&z2Z-{87;mK)t_LQ0xNe25H}+*yzGt};C+098(+e^{IrrA=>d#06 zg-OF0D;L)g>MuJC_s`|mOU{W^{H1_yp0-m?n;@exWTfgO0tacNuGa7vlRhJ{Ukk7% z;ES}j!6x*>_BzpR+JRE$I2;Kx2=mBvsD=0Zk}5)W@&XRh_v4$$`wrwVn?>ohek z;mhDY0!7lE)s)u&G3XnGO(?fm9CcZ#ZJ2%pUF*1RoAZ22+Ia`b;`B7=^YpAgIXhbR zO;XeRu-;?gN=-y%G59wwv{~$qyTFx%)$ZVzVRiJ(xpP2`H zxq*osK|aGWgPe69oxONeucq3^4+%P-97Re*L|zx{6{`Rs3@)xHU&ev`lnhsXg;)@k zIDk(oGENSI4uAALbQPTCC5>Kt@-%~uy!e?8sI)Rj8ayfYTy4Lo(!E?~>#qS$)92c`v-gaRL#9nv_P)5}a_I^q4j`BiN6 zh7(!!?m~+tV>9~h+i#uaWd!}QS5`>BwFKOT*|wA- z->zh7-*BD)><;%kP=BZ*`%u;wFl%f(zLxLZE0}%+@sI>x`+iruw}iit7Y2HXP-%n7 zQ`O8^FKZex5vp)8!3C_0#G4g7xxb}OM0vAexcoC)RuFMj9@ZN|-El(tR?gRdvIYGv zyJbKs!yL-nJ>^fmTG113SfHfhClh}$4F{;cEpcSTVu3p=S+ta8Ho4xo);Bmtr@pL> z)Fb0j4Ds3lK^wV93#%&1i-Tzgkx)kE@E+i$La}Rr_@u2f+;73#@JIen(2N)<&kG8@ zUBXTJ1>+&r`qiE3`(x?miv;SbM(7v!`3ZX2`-k~6N-#+d!ohH7Fu-Dr&kaoTQX|}g z`R|%rM(JNV;b~b_#6{zvs619tg1K<4WEznAhdQ?->k@G&XmS0@cdRM4L?ilVBOaNX1HZs9LZt{E;=k~kbPn1L=tF@ zg>7b&cTt5aN#r1aG|*b^a}M@vGj!-5M0-ok4_6_|BdMjj7^t$<@?o!76a?c~-7w|% z7d|77CGZVBkMSq11}h%jF82}x7Sufh7TV#TIAbmbUeZt#g9CO^7MB$%vPV*xDIxqy zX+p8hK{a%`{7y1q zN>3ksi@$EqWz;0#5kG|m3pU!}?A7Pj@WyBj5+CM@o4n9j8>i~l z9e^cT+D2IFk#J{o0MUZVY1D>5eD(|%>rrHT>P@akG*PKBhAO;uP^~ed%II+il=4ek zob=;TiqO9$DAS80?y7ql!p`A_c-Q3}uy*g;yUEFVxFOKTUT7U4>p$vTRV7Mj9i;3i z=AtxYFZQVi%M%^i>4M_|d8D;z&&Xz2j5By07`Sb@$OHHY9q1rVYwallYxO8GAlgX{ z^zq3ccldk4>i1j>#CLs+UE?1fXn?tz_V|oBn@vnP6VdfqlL!FC44xWfn89YzY#>=nL`H8GxS#lQ3&Y*7vV*Z4i0Nd$bi%`Y z9WJH(nr{Ih7K>{TsSMvX*aMzX6Am<~0lm6Dz!<`%;01VGplw-v)7++}s{)b@57ZvK zjSi@!xD^^KdRwR4vh#orZuDWpw|8)&NQ&y>r%235SCLYmmHg2;i3l|zHfPJ^4V%K5 zsy|N!@QkybD5VNA61*<$FbN_P_$C=vAmXDCSY8xT@V{qoCL^vtwkK2ZGcE?Jf2TZ5 zf;&6sInPor)(B%XX_TvAIEXQul%{_dKXi4aUY`sNWj8)+Q~$Q1jg|sB&cS~t)(Vl_ z`B?r-&8eGO1etrfpD+?$qly8G|vFrO^snJ27xf}%@4*b)J@7ntsavZ)1 zD7YS5B5kTm|3MDC;}713I34!t{WFR{`B;Me1tVycG;bZt)WYfN$A*8U70e}?cMpW+ z-~`5?#j2*`AggH3>^6D8WlxWis9gUDqHo!l!=wLDwgV+%3StR*&})%|H>;nA35V`F zr8gzEm;h~qVABTO%kRl#U!b8&uSaJ{x-0p}=D}e_vyioTrO8!?Q@eWtbxf_&)(@d;DH)2T3`+%1u@b4QKh_tUtWfq$b)_DvWVmv1{GYng3_Z z+q>R@W4GwrfuDr=R1=x?dTVd$`&!kkSZY-B5J^#kI<&Q1Fuf~rDpF|3@aJVxQLo0u zT*FMh|DJu;Q+8DWCzeda#67xjKGDmB2rAT=i#eTK10)Y0(=iaalB?%*y)$8`0m)uR z{P>@L^$;DbqYyKh!pY!rE~$M9U3yBDu2WN?z)JaSklmnw{l3>#2)eJ&hUfRma|q(^ z)C(ur)V%db%nGK`Zex3I-p{uv7KYXhEy3ZkDc3$=4kBEwZLq!NyC99!*rv?=Pvr-so z5YFNq(2}1A_DKK8-xNa(igNh^+mmS81f2G*S{0niar6iWdv7^E<1#l^l?2iSfxt zQRG>Qa$bzN+;lQ=CcV!Qg-yDt8=l~-7};b7zOGavpCj7U(N6%FcQ~h~i|ty7S8DQ% zeEJrg7c5_z&*%@sv(b}z9-n)S{t(K%=2@PsvfVRRp<@Nilwz2r0UP?xZ{bip0aiKy z&!kL3(4cJH{bXW8c{aahLB0MoiTGI_ru{s28=EJ(OEyC%7YZ3Q+7+*O=Hn`US!#QK zQ(@pA@5U~v_>FjVzF+gc_(5`LMFbZK^;5+S{`PPbKnrdVT#f)0%0>ZG`<;6() zEhMHFGeg8;&JRS2#9}lg^77K=ustQHY@6xQ8=!6yT`JV*Ka@88&1wsa%feI5P-wv# zDd+gXvifZdwk`^s@x#oBpje&sZisw3+kZgUQ#NP|l{V2=X!&b`q%DdIeW%UXm$IS{ z<6|Ylx+czp#onwqPTHsa7UL=sKUu?N{r!Vy8r%pIc5&|s(k~!AIPstiWRV6QwOe>3 zFwUZqN||F!a>-#z#vUsE28urg?^{2i11>C$oxxZnDR3mfup>yB^(C#gAoFo)*13u8 z4s}g`>5GyEz|4M~P0?cgniln--a$?truE`;Il9K3)eo=?(9wu-9TJ=H+f>%D+=CFGK^?~~`-#48w(cTmKC6}AbZl{8| z=grH$xSoVbw9B(*lb`->$*T)J#+EHsWx>Adsh%(8Th~g-PvQ`ZQ!=^P7jO%|1=1oj z7Xc0!jsTpL#bVjjBNxqx#B)StEK;niHou&h&?i-VjjKmO`w@Te?!3OU|I#>pQX)y0 zl`LRF`eBoMb&rvl<%fim{fun=p}?QN&WA>)2pt!N71{(T;XNJlcsgYdV&insHAP0G z0%*X1LVY81BjkJl`DN<1Sz1;*F?ML7*UN=ex4!G9VBmk&v*Jx*vNdzrN# zWdK|OHIlkmTF0vr+t1+hk8Wu^pcP1Yy?b~!-WRdc^|XvM&^}~`c!9ROm-`bTn<$KD zPq9*g=M(eEW+MH+qJVyDqTOLW?8r3U+v{Qs+b}T*($t|fVWOuJH}DlpE+!d_qZ@4ko9p&PAk|42K4y_!jf>)QDzD$kX$r8YXW+&B)jEi2K=L5l_C^{SHJpd~{_{~H z6>q3Aety5F;~;+NJ}6q4qG#Fw!JP={VD;=DUOfFcg(=HPvA4Db`Q;n#@#4R_rbSyw z%Vq&B@NY>7JTYSZ_Gl!te}u#z@AtxH`pQ9Nz3}l;Z3ravSB>r)#OS2*$!*yzC%WZ4 zQWaP5VAaUfo$pHlWPiKG;f?3>8s4c-A919z89jG4{a3-$W$8C1j@GL!;eNN)j%>Q^ zPS9%e@Hft7rcH5Fs!NDmMU@5M$#y-w-s$XvfFB&b$}jTj<%yB)A$$4I5#~p7Todkk zOh%bF9a*fpLW|%C^UyU>6sgZaI?0^<3`BdEX;4*}x`jTQ!H$9lzZ=7Rk!<31NUImd z`jQ#=`~7XG8B$ptNAhp^o6SW{)`PlhqUMM12Q*~wKH1!B8C4G&)(vt``Sqt7g?N}< zdOo^y;Hq6X;4`G4p$2@zh40u|!+OITg%-N!Y~uP2>;Ovz&PcaV?13>!Kuijf{z=|Z z!$x9YbZpvnGlrX?tD;E<{8Pm!>c{x7m*~ZL64JLBr`^X7%h(orwD(`sleDr7jUzW2 z?X6p%fJPzEvBIxfAlLT)V3Mo&qE$hm!8oUQf3Bs>M#9uZVGDB0$@{dAbu3GxR0?~9 zh-n@l?DKs!N}U%-IJ_>%2VjuCq!Q!72>k-P?RuptmBKs}5I}q4+)>VA@q=5}okq8< zTC)vt-;)mG0SBFeb*1X0^IM1mZa9^0UwTS{?Flak89`IFvEO;uRj;*J=mz}-!i+9h zCdF+qJ4tMdF#iHn?}~-uL2mcYW(laY1j|>Mo?@60kAtR~hK?G&_qjqih%fe)Owhi^d zJNQTK=I*d?(VG)+Gxd5jrwv+pwX7yNajm?{e@xRNv$Inuv~SiAPo3xDB>1#~0`m#M zJgngx*~_Phad@a=p9=+GvC;Ayq$bBmEm+kOikAR_pRsa}XGTVamYSxS2DP~#l=oM* zO|{D8yFC;*R1ON$|Cz%0uQ809y{Qu+mZ!y^e>&2RvC{oMdyd z&ch_=63DBk@+DJxBbk`iv65*IUpCBhNkh3&(@VwNkRa-}Jmdoth_zo9d3#Ek2xQx- z?Hi1YQ`cfRqTsR;@V+|V{#RCqc;ZUa2D{lizSKFmC{x6KN#scXc0s!w+Iw^$+f&djEA&)gL|Yd`(rb@~RjS_igt~TU*|6 zGA^!eyt3;2e0|ty6!`1-Dfbt7GX0$xIIz;yT+n)q|;|!eZ`ST~A;kqAw(jF4Szg0DJz9N`!=_QEz#D zui=c?(YY4={k*JtRR^4{@$Uh0T5hWnRt+Wn!?^r*l~y^;>0uCJKMLAUOnD}fvrcxc z)YJn=GpKzxb5WR)2@O(G94xzV^ttgfcq>Q}VH4vHw#OV=kdur>9H&_N&( zwauAEXDL{M4eDXQ?Qj_@3Om8iW>?MO3)3fry2!%{gxm^w`w^Ja*ePP8MF}GSsX;TG zZ5TXwP)rE^xSCiu@z1hj!zE;ri*!+w^cL0_##}$WoFX*?BDJ%c?jxSs_HFK~8I<)+ zAoNgEFeAeGjWA?w44CHpm19r%2|jnL@-FG?M-QQUVo8vu|KyisKObyuFi%d|NNwB1 z55(7qCRC|l8I)C%U;J(2GmTfwX&6G6E-l_b{t2oS1kznFf5%|2Ht!6R#SY0-<;Ab| z#;6pdaHV}>(Wzw6l|j_+TZ~dn9mWyNQVMijbBvVS2cDzpMycoh9hq}=-d1#?^ZqZ1 zIC#ut)mh1;Y;Dpq5VnUrinnKB%-@stcqLf)aUmc_Ks60xA;t(BG#iBmhYXCW_aB_` zBf9%l0l)kNs75bnhnlkmt2p~gyLVIoe!^fgMyBpigZKsc!7m`pLC|Y_Yh+O9djS;W z`m;Pv2APk!Y!kk|%V4>%7N}u@qD|h|#|(CnwFN`Q z@vAdYU*gwVy+`E)2dKCQvH_WwUv>gH@^!cKxq5p=0{{do`|hfOcl>eIIoeGN%jaw? z;~SNph)~>fGR7bC+>;j4tp4GyH`&^Y(FhSz^5L_i&qs?DjsEg8!QN-!wER$SQ*Uyd z&gu-YN#VtR3lMIT?*Y0ZC;Cr>d;$v;$QA!JQP$KSWZFmVET;3%ktOZpk2h5Wz1^dT zYO=6$!ZZNRIB1orD@l0pZ8HDZ760TOAk|9`abS&pSnqn5GgAsSR>_7FjuR=g_Fj)= z*gQ_hY!l>gAEQrtG<_au+X1jlmQ5-E%#`Pi!y$&VO0Z4;EYOq;Lvllx2nO3eYf}X$ zJ-B4-;VDlE*}Pd>xuxdT0yErk&{=6cq(v6q*er&;cvKM+0Bm_Ayj^FYdd`X6jNY+@lLFcox;4$2MmU6|9->x zn`N+qcK`h+Q(Gx-U#=*1nK3V*3EV2j^#`Z0`C^qdX$Y+4_mjnTRO(#MPnbi;*%V#d zcuw$PqvB6tRTU45R;V*#UD6ym2uEE^qD;}JQ@D7OHKM?T4nh^*sX5F!Rpui~%Mr-| zK}*mK-WM=sy<7q?A5u*S2)bYc@-K!Z#e5JoyoC4EPe^~F30?Jm&vQg!Bq?F1yv8Z7 zicEGLa)+-)l?`I`Hs^qIOyjBC zIy-r~VaHK4XtAD2SZnPntF_LKz0kVM-n2UQl!2$ciFsu+G^V!|dyALflyB|RW*fI= zAkEuP$n2=j`CyP)JBq$rSCe)_6LYp3Hh0#O;3mt&8Z)F%lyu>er=YQ>n?WK*xS~qG z%2c5izg6qjG=CN;`&ky`YXQM#_9QNxT&!yvON`jmx0_{nRVZBobdvRIyd#jvOg~$c zcpw(>WxXUhPbl$`xKxouJ3zCLWZp#laXR*1P45qXJWmsQTth+$IkX)dfy$0T2-w?8 zyjj@d4V4o7UN2a_RHlx~uB-yJwvx1de=h^LUfvx{OR$FX)E(X|v=>CYR{>zJ8}6`Y zGt+})EYu=r>i%DP*VKCN1Em-y$V>KZn08N_+0AJ zOe&h+((RqTK3CN7Zn`Shk78~LGvAthFAPB9Y{HZ0tMEdst}cAvN$^;ckvGGTxaI$k z>Eu0lMA*BY2oL65xnt{{7}>s)uy_2T4dES~4Gge3WcnH_KZmG6L_$dCy|Es=&OvzIy8(!&=B0u3)6Ed?f;40qGf%2TelXCSkB0u9B2MyU}G$0W6dp|PHXYLlIex? zFNT1LD|y32&kMe_U?ZaLPaeYpJxc7=B303B`lJll_i5XxxQ>2}1bL}l?7>pxG#1D| zfy?KB8ZqQ(?_xKXHR(s$n;>*59lP$wr~NQ@Y6Y;bqVzI;r3>^d zpn}+}zCO)u@B8a-tBo5yzxz->(&c*XTR-(%x!Bn)*SDD6b&p1Ls^DA0pmWOt@MH^P zFGzD@?o=_8cE7M3?e|(X4+m_rlS!Hj3CiI_06eI#zlM5YsLc8HF27cVNagi!rY!hp z)PD^aT|e;3%VFOJs#45an-OnjVPMVc-2qd`K;%x=a($Wnu5x`CC^@nN;x?x6Nab{g z{J$`oT(QOTISKUWcP;Ed%qZP}{=L8=uXlS#3@iU6Q=H4Sa(+Wkuw+)#C-r7?6$nVv zy^>;BBf{xtSnaX>i+hwpvmdgXn2eIk4?BiYj%)aEAMkaXBv+~}pu1(RJ_uyHTVSDN ztdsj!P#fX?{jl_$W>%VdRoQfBwE*;R;Jb2Ysjd50!@YTTO1RP zc3&OYA_8XuRvkGaUqK?@;@~qgBN*KihVZ_36Rm-uYu7bjwU|l& zDLn~ng++Tu#`}?w7u9+Cbo{j!-jKwr{Q)9Km?x$UC~rZ?```YNv(7XGQWqd2u4eB2 z5D&Tsd%i5lt_7?A&p39~<#{ui8yqf_A$fgXU>IVZTvS}B$kP}2rnSkBM-LfwyY<5k z;C*cOasznDGd00vQ}UA$|BtcHdm#yy1Y=bR0I623au3^DFZ$b#$^hCFF(s5vs8X(O zrI{`8MkKdtC^qWY295bQyxQOx z-N`c{qGnNj%8($FXi(r~ZSKUd2YsDB>yVU?nauLbBGgGGOsQapdHGAV5qe;<_HDYj zP`ZP{0*DF4oY>yS--euo!31x6!Y!sSgx>9#>@-HLz1z_JQRtWC^UsBB`98YD_mon7 zom}6&HkDcgen9;7qr%&@3{pyT-DklhBx=>hy$((VMi{$KmtdJ0@X4(ZXmIC4*YZA` z(QK{8`0R~9+t{5L%URfj`*&Z{gJ#q@Tf@`fI)k;$rcf)>OU4}W(E{ba(gn$$#wkZJ zpX!*Px&QkK%@DAiEmCf?%e>pS6`X}8!J#q#c;ky8P5F$WcAN_wcjlQ>_|XmGE0vMD zKsFMd?rD_9payFmkYANtwicx(VkZf_9(aBr3{e!SnCL6PhH*r3*WG};LP*T;Wzi%& z9bN*rAiZYQ^(J3)nfsXem*4a;GUJX~{%)k9R9j<@&F zIK{0;QxQ$f2+a z2$7&qX%L}Z8QzHenV0HA!$H3nkZ2cuk|@6E$SjY&9h`-b^#~;8a=wz7?+MpnzO{}3 znMmg4kAU)#uJ4+eRQgDDIrkzte;MTPgVSKO`k%9z-?}6zgjPyW;wEzn;cwkh^O8z$TXV&i= z)ScKdNx=DY*Uoslp?ddXNJAUuPQ+GEcxYOD&XsA+>mg!K9oh5w&9zh_<;zl7yM*da zig+59+Mrji;x4@;5J&|%thGgp;_6{V4-k-S2arxNh`)QJian%3fqw_Jl?icm7Gl%m+?hnM4<`tnB6_KG>%)eTj)A#12V)`(2eXFvO!EALlgL?^6+ z5IEmwkNdRvC%9PHS|eiTW00M)c#bVeRRMqqn%>m+Va$awGrlmz3WJAN+{=;tk3*yf zM3r;6jJJ>4R-_T>+Z-vKa>wMp58(l%s!R$A;}&D_BL`POQnM_5*{nIYx&P>7?uF4b*tJMi{ zCv4x8S{|?-^!_QiBd(1mVl(n5Ho7?kzUf$CrFS6IJWgV!KO`1(&SZAdfwoKO*%G9b zC5p7mat+Pj$VWguBaq#@>_&9~(C|Q}>pV5#4W+FQS(DpO0V{iI69Yu4faf&u4wz46 z@wDP&8zP`3bZ#zxH4A=}s4&bO!$u6i`*~gg1NSDKQ^qsExpAHetK$d2aSD^Pspa_o z6EedH%6jp;k5?V9lp{adV4ljw&t0CE@p9!lB7h8DaN?wY_xwK}g1;U`&x^rO9@$!E zS?j!t860Klxico3xppYLx821+oT_WkCxt~jCQZgSv_T-zhdSE>V~pw3UwfEM?Q4^o zK>u>&4OjK331nYG4V=mYVJDo@Zn2|m_};nM@v=5GUOFcCY;kQCXlj7Wg1;7Kglg#7 zr|P(H1T@~GnrqeJEl05VvDapI-x2hIJ%#?vSq7sZr1ot{|XKk|J(0odDW+nimzuyY%97wpo4*Hdtvz#$beJ_`Q#zV|cfF+* z_BcVO@}eck(41IkkNC=E|D%!Vd2aqcf`(jzi|HnD*j{-BtS;lrE62~-2BO3Y%IfTkkPr2lF*drX8&s`8_aEucNC8ljFj>`n7MO!@yt534gD)N4TGoZ zK33V#i>kCzS~H6c13?>Zp!Wc6Xl3vrg`?O(yTpE{rr6)qEjMGtuF!ZO?v(IPjsPW_ z2+}u@yAye`#S)X8G6~M-fw$7yB)K%dJe z2PffY29T&qe*{5qO5vr>)%?{W-I=CcFt04H7$?^H^~R@H+ebYVnA{3h}Jiwd68-FRx$ zrWDEJSvjo1h`)tc?mmgi7ljpboLrgT(F$c#8p*Fu0bO&4^%_19ZDM}T8E0i1)O4R` zPlNgbx;_DPUCsqC|0n1tkB(fV7be^aofR%O`)@xXxvjXLaA1gQGOtml012!JUtU4Y zss&h>)TZT5H>akR9ALixa^1921!|jfH;$3v4&e0++u!Il;-PQFG-$$axtliGVqJ7^DS zaUKXPysYQEzTS1R^fk}>aLG4BMyYcjaIYpJXrO2@jyT8X;Y%xE*5;Z)h(-Cy~StJ;JmeZRmUwY77&_1P2wdpD8H2T z?#&q6Cn8qyzJezO22TgT>p>Rn?y+NQ!IP$aGR1;-ij=w%Vr+S3kM{TKk)rZRy8Gj) zLkUi94+d`$=#iXWZShRy4jD^`{J?s6Kp3uND-q|xO(sUn!bLeBi^U%C8Jct=Mtdx* zJ>R3)c)SBIwE65?8UQ79BAr~*25ze-pRctjL9&SFR<6e4%+P<<`%f|5o-NPRmQ>`8 zr!E|E*vG={O7HZ}K|^8amkPKXW)HLB=1==$@sa>b)n`)ihOs#@L>l-EGmVk3w8-97 zR;++TuGF5rY2vw}=3QE#dwL^O$3h1-CR)ttRUUn7u6BL)(p%CnR0xaYW-4@@@18}F z`x32D?-|0!^*vnNEfL<)*yh!wa%T@#8cHKoDe8UN_yE$Od(6CK>V2DF=de%f@KF(E z(qfD5NMBHPAS6NsUI7#((;bRoF24T%Pc$|?>bZtrT3HmsEjS=#2pJ@x&ClnhYE{cK zcEUHdTP!YleFvX-5Vf}#{QMIBj%+81f`!}Hw2{vzDGsxk*DF!63+0hNIzT-a0OuR5 zgBoWcu!a#k70bEd-6H0-@_h@fTAx=iIji%jO2JyyQPdn@T{D_82Q1_LM8&CrT6;

    iiREymh&FOaRrNCVK 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 GyZt{GFl&AQ diff --git a/_local/pull_all.sh b/_local/pull_all.sh deleted file mode 100644 index 8240c0802..000000000 --- a/_local/pull_all.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -# This script will update all local images -# See: https://github.com/yeasy/docker_practice/blob/master/_local/pull_all.sh -# Usage: pull_all -# Author: yeasy@github -# Create: 2014-09-23 - -for image in `sudo docker images|grep -v "REPOSITORY"|grep -v ""|awk '{print $1":"$2}'` -do - sudo docker pull $image -done - diff --git a/_local/push_all.sh b/_local/push_all.sh deleted file mode 100644 index 2ec1aee00..000000000 --- a/_local/push_all.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# This script will upload all local images to a registry server ($registry is the default value). -# This script requires the push_images, which can be found at https://github.com/yeasy/docker_practice/blob/master/_local/push_images.sh -# Usage: push_all -# Author: yeasy@github -# Create: 2014-09-23 - -for image in `sudo docker images|grep -v "REPOSITORY"|grep -v ""|awk '{print $1":"$2}'` -do - push_images $image -done - diff --git a/_local/push_images.sh b/_local/push_images.sh deleted file mode 100644 index 5e7516f27..000000000 --- a/_local/push_images.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh - -# This script will upload the given local images to a registry server ($registry is the default value). -# See: https://github.com/yeasy/docker_practice/blob/master/_local/push_images.sh -# Usage: push_images image1 [image2...] -# Author: yeasy@github -# Create: 2014-09-23 - -#The registry server address where you want push the images into -registry=127.0.0.1:5000 - -### DO NOT MODIFY THE FOLLOWING PART, UNLESS YOU KNOW WHAT IT MEANS ### -echo_r () { - [ $# -ne 1 ] && return 0 - echo -e "\033[31m$1\033[0m" -} -echo_g () { - [ $# -ne 1 ] && return 0 - echo -e "\033[32m$1\033[0m" -} -echo_y () { - [ $# -ne 1 ] && return 0 - echo -e "\033[33m$1\033[0m" -} -echo_b () { - [ $# -ne 1 ] && return 0 - echo -e "\033[34m$1\033[0m" -} - -usage() { - sudo docker images - echo "Usage: $0 registry1:tag1 [registry2:tag2...]" -} - -[ $# -lt 1 ] && usage && exit - -echo_b "The registry server is $registry" - - -for image in "$@" -do - echo_b "Uploading $image..." - sudo docker tag $image $registry/$image - sudo docker push $registry/$image - sudo docker rmi $registry/$image - echo_g "Done" -done From f60f4dd9751e77dc45e02082c3d58cefbad0a77f Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 8 Dec 2017 23:32:53 +0800 Subject: [PATCH 254/611] Release v0.9-rc2 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73270c452..1b43c58c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ * 替换 `docker ps` 命令为 `docker container ls` * 替换 `docker images` 命令为 `docker image ls` + * 移除历史遗留文件和错误的文件 * 优化文字排版 * 调整目录结构 * 修复内容逻辑错误 From 9face881c79085fc832686c5de8fb55c295a4c5a Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 9 Dec 2017 00:12:02 +0800 Subject: [PATCH 255/611] Update install docker --- install/centos.md | 18 +++++++----------- install/debian.md | 26 ++++++++++++-------------- install/raspberry-pi.md | 26 ++++++++++++-------------- install/ubuntu.md | 26 ++++++++++++-------------- 4 files changed, 43 insertions(+), 53 deletions(-) diff --git a/install/centos.md b/install/centos.md index 70b916e89..fb0907d45 100644 --- a/install/centos.md +++ b/install/centos.md @@ -27,9 +27,7 @@ $ sudo yum install -y yum-utils \ lvm2 ``` -鉴于国内网络问题,强烈建议使用国内源,下面先介绍国内源的使用。 - -#### 国内源 +鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 执行下面的命令添加 `yum` 软件源: @@ -37,16 +35,12 @@ $ sudo yum install -y yum-utils \ $ sudo yum-config-manager \ --add-repo \ https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo -``` ->以上命令会添加稳定版本的 Docker CE yum 源。从 Docker 17.06 开始,edge test 版本的 yum 源也会包含稳定版本的 Docker CE。 -#### 官方源 - -```bash -$ sudo yum-config-manager \ - --add-repo \ - https://download.docker.com/linux/centos/docker-ce.repo +# 官方源 +# $ sudo yum-config-manager \ +# --add-repo \ +# https://download.docker.com/linux/centos/docker-ce.repo ``` 如果需要最新版本的 Docker CE 请使用以下命令: @@ -55,6 +49,8 @@ $ sudo yum-config-manager \ $ sudo yum-config-manager --enable docker-ce-edge ``` +如果需要测试版本的 Docker CE 请使用以下命令: + ```bash $ sudo yum-config-manager --enable docker-ce-test ``` diff --git a/install/debian.md b/install/debian.md index 151d3592b..b6a9ce555 100644 --- a/install/debian.md +++ b/install/debian.md @@ -56,14 +56,16 @@ $ sudo apt-get install \ ``` -鉴于国内网络问题,强烈建议使用国内源,下面先介绍国内源的使用。 - -#### 国内源 +鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。 ```bash $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add - + + +# 官方源 +# $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - ``` 然后,我们需要向 `source.list` 中添加 Docker CE 软件源: @@ -73,21 +75,17 @@ $ sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/$(. /etc/os-release; echo "$ID") \ $(lsb_release -cs) \ stable" -``` - ->以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要最新版本的 Docker CE 请将 stable 改为 edge 或者 test。从 Docker 17.06 开始,edge test 版本的 APT 镜像源也会包含稳定版本的 Docker CE。 -#### 官方源 -```bash -$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - - -$ sudo add-apt-repository \ - "deb [arch=amd64] https://download.docker.com/linux/debian \ - $(lsb_release -cs) \ - stable" +# 官方源 +# $ sudo add-apt-repository \ +# "deb [arch=amd64] https://download.docker.com/linux/debian \ +# $(lsb_release -cs) \ +# stable" ``` +>以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要最新或者测试版本的 Docker CE 请将 stable 改为 edge 或者 test。从 Docker 17.06 开始,edge test 版本的 APT 镜像源也会包含稳定版本的 Docker CE。 + Debian 7 需要进行额外的操作: 编辑 `/etc/apt/sources.list` 将 deb-src 一行删除或者使用 # 注释。 diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index a85b83e60..bd2d3884b 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -28,14 +28,16 @@ $ sudo apt-get install \ software-properties-common ``` -鉴于国内网络问题,强烈建议使用国内源,下面先介绍国内源的使用。 - -#### 国内源 +鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。 ```bash $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian/gpg | sudo apt-key add - + + +# 官方源 +# $ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add - ``` 然后,我们需要向 `source.list` 中添加 Docker CE 软件源: @@ -45,21 +47,17 @@ $ sudo add-apt-repository \ "deb [arch=armhf] https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian \ $(lsb_release -cs) \ stable" -``` - ->以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要最新版本的 Docker CE 请将 stable 改为 edge 或者 test。从 Docker 17.06 开始,edge test 版本的 APT 镜像源也会包含稳定版本的 Docker CE。 -#### 官方源 -```bash -$ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add - - -$ sudo add-apt-repository \ - "deb [arch=armhf] https://download.docker.com/linux/raspbian \ - $(lsb_release -cs) \ - stable" +# 官方源 +# $ sudo add-apt-repository \ +# "deb [arch=armhf] https://download.docker.com/linux/raspbian \ +# $(lsb_release -cs) \ +# stable" ``` +>以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要最新版本的 Docker CE 请将 stable 改为 edge 或者 test。从 Docker 17.06 开始,edge test 版本的 APT 镜像源也会包含稳定版本的 Docker CE。 + #### 安装 Docker CE 更新 apt 软件包缓存,并安装 `docker-ce`。 diff --git a/install/ubuntu.md b/install/ubuntu.md index df7a91615..cb60aae5e 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -52,14 +52,16 @@ $ sudo apt-get install \ software-properties-common ``` -鉴于国内网络问题,强烈建议使用国内源,下面先介绍国内源的使用。 - -#### 国内源 +鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。 ```bash $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - + + +# 官方源 +# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ``` 然后,我们需要向 `source.list` 中添加 Docker 软件源 @@ -69,21 +71,17 @@ $ sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable" -``` - ->以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要最新版本的 Docker CE 请将 stable 改为 edge 或者 test。从 Docker 17.06 开始,edge test 版本的 APT 镜像源也会包含稳定版本的 Docker。 -#### 官方源 -```bash -$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - - -$ sudo add-apt-repository \ - "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ - $(lsb_release -cs) \ - stable" +# 官方源 +# $ sudo add-apt-repository \ +# "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ +# $(lsb_release -cs) \ +# stable" ``` +>以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要最新或者测试版本的 Docker CE 请将 stable 改为 edge 或者 test。从 Docker 17.06 开始,edge test 版本的 APT 镜像源也会包含稳定版本的 Docker。 + #### 安装 Docker CE 更新 apt 软件包缓存,并安装 `docker-ce`: From c44f4d78b12d9175c02e6fd4f95b07a375a7dba3 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 9 Dec 2017 00:12:30 +0800 Subject: [PATCH 256/611] Update install docker --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b43c58c9..5c33154ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ * 替换 `docker ps` 命令为 `docker container ls` * 替换 `docker images` 命令为 `docker image ls` + * 修改 `安装 Docker` 一节中部分文字表述 + * 移除历史遗留文件和错误的文件 * 优化文字排版 * 调整目录结构 From 6af58b6c4a3836b8eaed77d4794d14314b702f97 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 10 Dec 2017 10:51:40 +0800 Subject: [PATCH 257/611] Move DNS to network #278 --- CHANGELOG.md | 2 ++ README.md | 6 +++--- SUMMARY.md | 2 +- {advanced_network => network}/dns.md | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) rename {advanced_network => network}/dns.md (86%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c33154ba..7dd199aa3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ * 0.9-rc3: 2017-12-20 + * 调整目录结构 + * 0.9-rc2: 2017-12-10 * 增加 Docker 中文资源链接 diff --git a/README.md b/README.md index 8d17eacdd..882859046 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ [![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://img.shields.io/docker/pulls/yeasy/docker_practice.svg)](https://store.docker.com/community/images/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://badges.gitter.im/docker_practice/Lobby.svg)](https://gitter.im/docker_practice/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -0.9-rc1(2017-11-29) +0.9-rc2(2017-12-09) -*修订说明:本书内容将基于 Docker CE v17.x 进行重新修订,计划 2017 年底发布 0.9.0 版本。旧版本(Docker 1.13-)内容,请阅读 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支的内容。* +*修订说明:本书内容将基于 Docker CE v17.MM 进行重新修订,计划 2017 年底发布 0.9.0 版本。旧版本(Docker 1.13-)内容,请阅读 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支的内容。* [Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! @@ -18,7 +18,7 @@ * pdf 版本 [下载](https://www.gitbook.com/download/pdf/book/yeasy/docker_practice) * epub 版本 [下载](https://www.gitbook.com/download/epub/book/yeasy/docker_practice) -Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新版的 Docker (v17.x) 进行学习实践。欢迎 [参与维护项目](CONTRIBUTING.md)。 +Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新版的 Docker (v17.MM) 进行学习实践。欢迎 [参与维护项目](CONTRIBUTING.md)。 * [修订记录](CHANGELOG.md) * [贡献者名单](https://github.com/yeasy/docker_practice/graphs/contributors) diff --git a/SUMMARY.md b/SUMMARY.md index da8be8a07..18a476499 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -57,9 +57,9 @@ * [使用网络](network/README.md) * [外部访问容器](network/port_mapping.md) * [容器互联](network/linking.md) + * [配置 DNS](network/dns.md) * [高级网络配置](advanced_network/README.md) * [快速配置指南](advanced_network/quick_guide.md) - * [配置 DNS](advanced_network/dns.md) * [容器访问控制](advanced_network/access_control.md) * [端口映射实现](advanced_network/port_mapping.md) * [配置 docker0 网桥](advanced_network/docker0.md) diff --git a/advanced_network/dns.md b/network/dns.md similarity index 86% rename from advanced_network/dns.md rename to network/dns.md index 973ea3138..00b71610a 100644 --- a/advanced_network/dns.md +++ b/network/dns.md @@ -33,7 +33,7 @@ nameserver 114.114.114.114 nameserver 8.8.8.8 ``` -如果用户想要手动指定容器的配置,可以利用下面的选项。 +如果用户想要手动指定容器的配置,可以在使用 `docker run` 命令启动容器时加入如下参数: `-h HOSTNAME` 或者 `--hostname=HOSTNAME` 设定容器的主机名,它会被写到容器内的 `/etc/hostname` 和 `/etc/hosts`。但它在容器外部看不到,既不会在 `docker ps` 中显示,也不会在其他的容器的 `/etc/hosts` 看到。 @@ -41,4 +41,4 @@ nameserver 8.8.8.8 `--dns-search=DOMAIN` 设定容器的搜索域,当设定搜索域为 `.example.com` 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 `host.example.com`。 -*注意:* 如果没有上述最后 2 个选项,Docker 会默认用主机上的 `/etc/resolv.conf` 来配置容器。 +>注意:如果在容器启动时没有指定最后两个参数,Docker 会默认用主机上的 `/etc/resolv.conf` 来配置容器。 From 6bcce7e562c98443f65ae54db9b8d9f4d008e682 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 10 Dec 2017 11:00:24 +0800 Subject: [PATCH 258/611] Remove img --- compose/_images/docker_compose.jpg | Bin 12251 -> 0 bytes compose/introduction.md | 2 -- machine/_images/docker_machine.png | Bin 118297 -> 0 bytes 3 files changed, 2 deletions(-) delete mode 100644 compose/_images/docker_compose.jpg delete mode 100644 machine/_images/docker_machine.png diff --git a/compose/_images/docker_compose.jpg b/compose/_images/docker_compose.jpg deleted file mode 100644 index d5fa64a1c151ffeef6c2c4a0c3a6cc8b8f3b86b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12251 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

    I-a|8m^y|+GLpyeH>OX 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 Date: Sun, 10 Dec 2017 11:52:09 +0800 Subject: [PATCH 259/611] Update compose #288 --- CHANGELOG.md | 2 + compose/demo/app/Dockerfile | 5 + compose/demo/app/app.py | 13 ++ compose/demo/app/docker-compose.yml | 10 + .../compose-haproxy-web/docker-compose.yml | 29 --- .../compose-haproxy-web/haproxy/haproxy.cfg | 32 --- .../demo/compose-haproxy-web/web/Dockerfile | 5 - compose/demo/compose-haproxy-web/web/index.py | 68 ------ compose/usage.md | 204 ++++-------------- 9 files changed, 66 insertions(+), 302 deletions(-) create mode 100644 compose/demo/app/Dockerfile create mode 100644 compose/demo/app/app.py create mode 100644 compose/demo/app/docker-compose.yml delete mode 100644 compose/demo/compose-haproxy-web/docker-compose.yml delete mode 100644 compose/demo/compose-haproxy-web/haproxy/haproxy.cfg delete mode 100644 compose/demo/compose-haproxy-web/web/Dockerfile delete mode 100644 compose/demo/compose-haproxy-web/web/index.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 7dd199aa3..1326ad76d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ * 0.9-rc3: 2017-12-20 + * 精简示例代码 + * 调整目录结构 * 0.9-rc2: 2017-12-10 diff --git a/compose/demo/app/Dockerfile b/compose/demo/app/Dockerfile new file mode 100644 index 000000000..7c4b8c7a8 --- /dev/null +++ b/compose/demo/app/Dockerfile @@ -0,0 +1,5 @@ +FROM python:3.6-alpine +ADD . /code +WORKDIR /code +RUN pip install redis flask +CMD ["python", "app.py"] diff --git a/compose/demo/app/app.py b/compose/demo/app/app.py new file mode 100644 index 000000000..f0dfc2080 --- /dev/null +++ b/compose/demo/app/app.py @@ -0,0 +1,13 @@ +from flask import Flask +from redis import Redis + +app = Flask(__name__) +redis = Redis(host='redis', port=6379) + +@app.route('/') +def hello(): + count = redis.incr('hits') + return 'Hello World! 该页面已被访问 {} 次。\n'.format(count) + +if __name__ == "__main__": + app.run(host="0.0.0.0", debug=True) diff --git a/compose/demo/app/docker-compose.yml b/compose/demo/app/docker-compose.yml new file mode 100644 index 000000000..f2a202f2d --- /dev/null +++ b/compose/demo/app/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3' +services: + + web: + build: . + ports: + - "5000:5000" + + redis: + image: "redis:alpine" diff --git a/compose/demo/compose-haproxy-web/docker-compose.yml b/compose/demo/compose-haproxy-web/docker-compose.yml deleted file mode 100644 index 46c08413d..000000000 --- a/compose/demo/compose-haproxy-web/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: "3" -services: - - weba: - build: ./web - expose: - - 80 - - webb: - build: ./web - expose: - - 80 - - webc: - build: ./web - expose: - - 80 - - haproxy: - image: haproxy:latest - volumes: - - ./haproxy:/haproxy-override - - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro - ports: - - "80:80" - - "70:70" - expose: - - "80" - - "70" diff --git a/compose/demo/compose-haproxy-web/haproxy/haproxy.cfg b/compose/demo/compose-haproxy-web/haproxy/haproxy.cfg deleted file mode 100644 index 99251ed27..000000000 --- a/compose/demo/compose-haproxy-web/haproxy/haproxy.cfg +++ /dev/null @@ -1,32 +0,0 @@ -global - log 127.0.0.1 local0 - log 127.0.0.1 local1 notice - -defaults - log global - mode http - option httplog - option dontlognull - timeout connect 5000ms - timeout client 50000ms - timeout server 50000ms - -listen stats - bind 0.0.0.0:70 - stats enable - stats uri / - -frontend balancer - bind 0.0.0.0:80 - mode http - default_backend web_backends - -backend web_backends - mode http - option forwardfor - balance roundrobin - server weba weba:80 check - server webb webb:80 check - server webc webc:80 check - option httpchk GET / - http-check expect status 200 diff --git a/compose/demo/compose-haproxy-web/web/Dockerfile b/compose/demo/compose-haproxy-web/web/Dockerfile deleted file mode 100644 index d0e74cd66..000000000 --- a/compose/demo/compose-haproxy-web/web/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM python:2.7 -WORKDIR /code -ADD . /code -EXPOSE 80 -CMD python index.py diff --git a/compose/demo/compose-haproxy-web/web/index.py b/compose/demo/compose-haproxy-web/web/index.py deleted file mode 100644 index d274ec94f..000000000 --- a/compose/demo/compose-haproxy-web/web/index.py +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/python -#authors: yeasy.github.com -#date: 2013-07-05 - -import sys -import BaseHTTPServer -from SimpleHTTPServer import SimpleHTTPRequestHandler -import socket -import fcntl -import struct -import pickle -from datetime import datetime -from collections import OrderedDict - -class HandlerClass(SimpleHTTPRequestHandler): - def get_ip_address(self,ifname): - s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - return socket.inet_ntoa(fcntl.ioctl( - s.fileno(), - 0x8915, # SIOCGIFADDR - struct.pack('256s', ifname[:15]) - )[20:24]) - def log_message(self, format, *args): - if len(args) < 3 or "200" not in args[1]: - return - try: - request = pickle.load(open("pickle_data.txt","r")) - except: - request=OrderedDict() - time_now = datetime.now() - ts = time_now.strftime('%Y-%m-%d %H:%M:%S') - server = self.get_ip_address('eth0') - host=self.address_string() - addr_pair = (host,server) - if addr_pair not in request: - request[addr_pair]=[1,ts] - else: - num = request[addr_pair][0]+1 - del request[addr_pair] - request[addr_pair]=[num,ts] - file=open("index.html", "w") - file.write("

    HA Webpage Visit Results

    ") - for pair in request: - if pair[0] == host: - guest = "LOCAL: "+pair[0] - else: - guest = pair[0] - if (time_now-datetime.strptime(request[pair][1],'%Y-%m-%d %H:%M:%S')).seconds < 3: - file.write("

    #"+ str(request[pair][1]) +": "+str(request[pair][0])+ " requests " + "from <"+guest+"> to WebServer <"+pair[1]+">

    ") - else: - file.write("

    #"+ str(request[pair][1]) +": "+str(request[pair][0])+ " requests " + "from <"+guest+"> to WebServer <"+pair[1]+">

    ") - file.write(" ") - file.close() - pickle.dump(request,open("pickle_data.txt","w")) - -if __name__ == '__main__': - try: - ServerClass = BaseHTTPServer.HTTPServer - Protocol = "HTTP/1.0" - addr = len(sys.argv) < 2 and "0.0.0.0" or sys.argv[1] - port = len(sys.argv) < 3 and 80 or int(sys.argv[2]) - HandlerClass.protocol_version = Protocol - httpd = ServerClass((addr, port), HandlerClass) - sa = httpd.socket.getsockname() - print "Serving HTTP on", sa[0], "port", sa[1], "..." - httpd.serve_forever() - except: - exit() diff --git a/compose/usage.md b/compose/usage.md index 6001b2f41..593b7540f 100644 --- a/compose/usage.md +++ b/compose/usage.md @@ -1,6 +1,7 @@ ## 使用 ### 术语 + 首先介绍几个术语。 * 服务 (`service`):一个应用容器,实际上可以运行多个相同镜像的实例。 @@ -10,197 +11,64 @@ 可见,一个项目可以由多个服务(容器)关联而成,`Compose` 面向项目进行管理。 ### 场景 -下面,我们创建一个经典的 Web 项目:一个 [Haproxy](http://www.haproxy.org/),挂载三个 Web 容器。 -创建一个 `compose-haproxy-web` 目录,作为项目工作目录,并在其中分别创建两个子目录:`haproxy` 和 `web`。 +最常见的项目是 web 网站,该项目应该包含 web 应用和缓存。 -### web 子目录 +下面我们用 `Python` 来建立一个能够记录页面访问次数的 web 网站。 -这里用 Python 程序来提供一个简单的 HTTP 服务,打印出访问者的 IP 和 实际的本地 IP。 +#### web 应用 -#### index.py +新建文件夹,在该目录中编写 `app.py` 文件 -编写一个 `index.py` 作为服务器文件,代码为 ```python -#!/usr/bin/python -#authors: yeasy.github.com -#date: 2013-07-05 - -import sys -import BaseHTTPServer -from SimpleHTTPServer import SimpleHTTPRequestHandler -import socket -import fcntl -import struct -import pickle -from datetime import datetime -from collections import OrderedDict - -class HandlerClass(SimpleHTTPRequestHandler): - def get_ip_address(self,ifname): - s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - return socket.inet_ntoa(fcntl.ioctl( - s.fileno(), - 0x8915, # SIOCGIFADDR - struct.pack('256s', ifname[:15]) - )[20:24]) - def log_message(self, format, *args): - if len(args) < 3 or "200" not in args[1]: - return - try: - request = pickle.load(open("pickle_data.txt","r")) - except: - request=OrderedDict() - time_now = datetime.now() - ts = time_now.strftime('%Y-%m-%d %H:%M:%S') - server = self.get_ip_address('eth0') - host=self.address_string() - addr_pair = (host,server) - if addr_pair not in request: - request[addr_pair]=[1,ts] - else: - num = request[addr_pair][0]+1 - del request[addr_pair] - request[addr_pair]=[num,ts] - file=open("index.html", "w") - file.write("

    HA Webpage Visit Results

    ") - for pair in request: - if pair[0] == host: - guest = "LOCAL: "+pair[0] - else: - guest = pair[0] - if (time_now-datetime.strptime(request[pair][1],'%Y-%m-%d %H:%M:%S')).seconds < 3: - file.write("

    #"+ str(request[pair][1]) +": "+str(request[pair][0])+ " requests " + "from <"+guest+"> to WebServer <"+pair[1]+">

    ") - else: - file.write("

    #"+ str(request[pair][1]) +": "+str(request[pair][0])+ " requests " + "from <"+guest+"> to WebServer <"+pair[1]+">

    ") - file.write(" ") - file.close() - pickle.dump(request,open("pickle_data.txt","w")) - -if __name__ == '__main__': - try: - ServerClass = BaseHTTPServer.HTTPServer - Protocol = "HTTP/1.0" - addr = len(sys.argv) < 2 and "0.0.0.0" or sys.argv[1] - port = len(sys.argv) < 3 and 80 or int(sys.argv[2]) - HandlerClass.protocol_version = Protocol - httpd = ServerClass((addr, port), HandlerClass) - sa = httpd.socket.getsockname() - print "Serving HTTP on", sa[0], "port", sa[1], "..." - httpd.serve_forever() - except: - exit() -``` +from flask import Flask +from redis import Redis -#### index.html -生成一个临时的 `index.html` 文件,其内容会被 `index.py` 更新。 -```bash -$ touch index.html +app = Flask(__name__) +redis = Redis(host='redis', port=6379) + +@app.route('/') +def hello(): + count = redis.incr('hits') + return 'Hello World! 该页面已被访问 {} 次。\n'.format(count) + +if __name__ == "__main__": + app.run(host="0.0.0.0", debug=True) ``` #### Dockerfile + 编写 `Dockerfile` 文件,内容为 + ```docker -FROM python:2.7 -WORKDIR /code +FROM python:3.6-alpine ADD . /code -EXPOSE 80 -CMD python index.py +WORKDIR /code +RUN pip install redis flask +CMD ["python", "app.py"] ``` -### haproxy 目录 -编写 `haproxy.cfg` 文件,内容为 -```bash -global - log 127.0.0.1 local0 - log 127.0.0.1 local1 notice - -defaults - log global - mode http - option httplog - option dontlognull - timeout connect 5000ms - timeout client 50000ms - timeout server 50000ms - -listen stats - bind 0.0.0.0:70 - stats enable - stats uri / - -frontend balancer - bind 0.0.0.0:80 - mode http - default_backend web_backends - -backend web_backends - mode http - option forwardfor - balance roundrobin - server weba weba:80 check - server webb webb:80 check - server webc webc:80 check - option httpchk GET / - http-check expect status 200 -``` -### docker-compose.yml -编写 `docker-compose.yml` 文件,这个是 `Compose` 使用的主模板文件。内容十分简单,指定 3 个 `web` 容器,以及 1 个 `haproxy` 容器。 +#### docker-compose.yml + +编写 `docker-compose.yml` 文件,这个是 Compose 使用的主模板文件。 ```yaml -version: "3" +version: '3' services: - weba: - build: ./web - expose: - - 80 - - webb: - build: ./web - expose: - - 80 - - webc: - build: ./web - expose: - - 80 - - haproxy: - image: haproxy:latest - volumes: - - ./haproxy:/haproxy-override - - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro + web: + build: . ports: - - "80:80" - - "70:70" - expose: - - "80" - - "70" + - "5000:5000" + + redis: + image: "redis:alpine" ``` -### 运行 compose 项目 -现在 `compose-haproxy-web` 目录结构如下: -```bash -compose-haproxy-web -├── docker-compose.yml -├── haproxy -│ └── haproxy.cfg -└── web - ├── Dockerfile - ├── index.html - └── index.py -``` -在该目录下执行 `docker-compose up` 命令,会整合输出所有容器的输出。 +#### 运行 compose 项目 + ```bash $ docker-compose up -Recreating composehaproxyweb_webb_1... -Recreating composehaproxyweb_webc_1... -Recreating composehaproxyweb_weba_1... -Recreating composehaproxyweb_haproxy_1... -Attaching to composehaproxyweb_webb_1, composehaproxyweb_webc_1, composehaproxyweb_weba_1, composehaproxyweb_haproxy_1 ``` -此时访问本地的 `80` 端口,会经过 `haproxy` 自动转发到后端的某个 web 容器上,刷新页面,可以观察到访问的容器地址的变化。 - -访问本地 `70` 端口,可以查看到 `haproxy` 的统计信息。 +此时访问本地 `5000` 端口,每次刷新页面,计数就会加 1。 From 8dbaa7ea33b2fb880cf81fadca60f531c30900ec Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 10 Dec 2017 12:19:24 +0800 Subject: [PATCH 260/611] Update cloud: add images --- cloud/alicloud.md | 1 + cloud/qcloud.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/cloud/alicloud.md b/cloud/alicloud.md index 53f29207e..b024b24e2 100644 --- a/cloud/alicloud.md +++ b/cloud/alicloud.md @@ -8,3 +8,4 @@ 阿里云容器服务提供了高性能、可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。 +![](https://img.alicdn.com/tps/TB10yjtPpXXXXacXXXXXXXXXXXX-1531-1140.png) diff --git a/cloud/qcloud.md b/cloud/qcloud.md index 9cd9bf67c..9221470a0 100644 --- a/cloud/qcloud.md +++ b/cloud/qcloud.md @@ -7,3 +7,5 @@ 具体包括云服务器、云存储、云数据库和弹性 web 引擎等基础云服务;腾讯云分析(MTA)、腾讯云推送(信鸽)等腾讯整体大数据能力;以及 QQ互联、QQ 空间、微云、微社区等云端链接社交体系。这些正是腾讯云可以提供给这个行业的差异化优势,造就了可支持各种互联网使用场景的高品质的腾讯云技术平台。 腾讯云容器服务是高度可扩展的高性能容器管理服务,用户可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,将无需安装、运维、扩展用户的集群管理基础设施,只需进行简单的API调用,便可启动和停止Docker应用程序,查询集群的完整状态,以及使用各种云服务。用户可以根据用户的资源需求和可用性要求在用户的集群中安排容器的置放,满足业务或应用程序的特定要求。 + +![](https://mc.qcloudimg.com/static/img/0581dbeb97c869bbe6e62025dbc592d7/image.png) From a3267d1b3aa7d97826668afba77de4bb9301d73c Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 10 Dec 2017 12:41:08 +0800 Subject: [PATCH 261/611] Update book.json [skip ci] --- .travis/book.json | 18 +++++++++--------- book.json | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.travis/book.json b/.travis/book.json index 07a348b47..c9f0ea4bc 100644 --- a/.travis/book.json +++ b/.travis/book.json @@ -10,8 +10,9 @@ "plugins": [ "-livereload", "image-captions", - "github-buttons", - "page-treeview" + "github", + "page-treeview", + "editlink" ], "pluginsConfig": { "image-captions": { @@ -20,13 +21,12 @@ }, "caption": "图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER_ - _CAPTION_" }, - "github-buttons": { - "buttons": [{ - "user": "yeasy", - "repo": "docker_practice", - "type": "star", - "size": "small" - }] + "github": { + "url": "https://github.com/yeasy/docker_practice" + }, + "editlink": { + "base": "https://github.com/yeasy/docker_practice/blob/master/", + "label": "编辑本页" }, "page-treeview": { "copyright": "Copyright © yeasy", diff --git a/book.json b/book.json index 07a348b47..c9f0ea4bc 100644 --- a/book.json +++ b/book.json @@ -10,8 +10,9 @@ "plugins": [ "-livereload", "image-captions", - "github-buttons", - "page-treeview" + "github", + "page-treeview", + "editlink" ], "pluginsConfig": { "image-captions": { @@ -20,13 +21,12 @@ }, "caption": "图 _PAGE_LEVEL_._PAGE_IMAGE_NUMBER_ - _CAPTION_" }, - "github-buttons": { - "buttons": [{ - "user": "yeasy", - "repo": "docker_practice", - "type": "star", - "size": "small" - }] + "github": { + "url": "https://github.com/yeasy/docker_practice" + }, + "editlink": { + "base": "https://github.com/yeasy/docker_practice/blob/master/", + "label": "编辑本页" }, "page-treeview": { "copyright": "Copyright © yeasy", From 3ab7f6dfb8ff855c14f2c398f82452337c0f4253 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 10 Dec 2017 12:53:57 +0800 Subject: [PATCH 262/611] Update docker-compose.yml --- docker-compose.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 88bf1ae13..583d0e0b7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,6 @@ version: "3" services: server: - # build: ./.travis image: yeasy/docker_practice:latest ports: - 4000:4000 @@ -27,7 +26,7 @@ services: development: build: ./.travis - image: yeasy/docker_practice:development + image: yeasy/docker_practice:latest ports: - 4000:4000 volumes: From e9c9b8391d7e5f1411eea28bba30f7eb8b9f2020 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 10 Dec 2017 13:21:52 +0800 Subject: [PATCH 263/611] Update install: add logout and login user after install --- install/centos.md | 2 ++ install/debian.md | 2 ++ install/raspberry-pi.md | 2 ++ install/ubuntu.md | 2 ++ 4 files changed, 8 insertions(+) diff --git a/install/centos.md b/install/centos.md index fb0907d45..56324fef5 100644 --- a/install/centos.md +++ b/install/centos.md @@ -98,6 +98,8 @@ $ sudo groupadd docker $ sudo usermod -aG docker $USER ``` +退出当前终端并重新登录,进行如下测试。 + ### 测试 Docker 是否安装正确 ```bash diff --git a/install/debian.md b/install/debian.md index b6a9ce555..b757a84b6 100644 --- a/install/debian.md +++ b/install/debian.md @@ -144,6 +144,8 @@ $ sudo groupadd docker $ sudo usermod -aG docker $USER ``` +退出当前终端并重新登录,进行如下测试。 + ### 测试 Docker 是否安装正确 ```bash diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index bd2d3884b..93c27b768 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -102,6 +102,8 @@ $ sudo groupadd docker $ sudo usermod -aG docker $USER ``` +退出当前终端并重新登录,进行如下测试。 + ### 测试 Docker 是否安装正确 ```bash diff --git a/install/ubuntu.md b/install/ubuntu.md index cb60aae5e..e6c78a813 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -132,6 +132,8 @@ $ sudo groupadd docker $ sudo usermod -aG docker $USER ``` +退出当前终端并重新登录,进行如下测试。 + ### 测试 Docker 是否安装正确 ```bash From 154a42bd699e59ac5c5de031676eda76dc48a5e4 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 11 Dec 2017 17:44:48 +0800 Subject: [PATCH 264/611] Fix error:secret to config --- swarm_mode/config.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/swarm_mode/config.md b/swarm_mode/config.md index f34343cc1..3e88dceef 100644 --- a/swarm_mode/config.md +++ b/swarm_mode/config.md @@ -26,9 +26,11 @@ $ docker config create redis.conf redis.conf ### 查看 config -使用 `docker config ls` 命令来查看 `secret` +使用 `docker config ls` 命令来查看 `config` ```bash +$ docker config ls + ID NAME CREATED UPDATED yod8fx8iiqtoo84jgwadp86yk redis.conf 4 seconds ago 4 seconds ago ``` From 8615cbf2862b493f594498efd24f3377e7b33b50 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 11 Dec 2017 20:22:51 +0800 Subject: [PATCH 265/611] Add registry auth TLS #180 --- CHANGELOG.md | 2 + SUMMARY.md | 1 + repository/demo/auth/nginx.htpasswd | 2 + repository/demo/config.yml | 35 ++++ repository/demo/docker-compose.yml | 13 ++ repository/demo/root-ca.cnf | 4 + repository/demo/site.cnf | 7 + repository/demo/ssl/docker.domain.com.crt | 35 ++++ repository/demo/ssl/docker.domain.com.key | 51 ++++++ repository/registry.md | 2 +- repository/registry_auth.md | 210 ++++++++++++++++++++++ 11 files changed, 361 insertions(+), 1 deletion(-) create mode 100644 repository/demo/auth/nginx.htpasswd create mode 100644 repository/demo/config.yml create mode 100644 repository/demo/docker-compose.yml create mode 100644 repository/demo/root-ca.cnf create mode 100644 repository/demo/site.cnf create mode 100644 repository/demo/ssl/docker.domain.com.crt create mode 100644 repository/demo/ssl/docker.domain.com.key create mode 100644 repository/registry_auth.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 1326ad76d..997157209 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ * 0.9-rc3: 2017-12-20 + * 增加 `私有仓库高级配置` + * 精简示例代码 * 调整目录结构 diff --git a/SUMMARY.md b/SUMMARY.md index 18a476499..ffab2bf85 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -51,6 +51,7 @@ * [访问仓库](repository/README.md) * [Docker Hub](repository/dockerhub.md) * [私有仓库](repository/registry.md) + * [私有仓库高级配置](repository/registry_auth.md) * [数据管理](data_management/README.md) * [数据卷](data_management/volume.md) * [监听主机目录](data_management/bind-mounts.md) diff --git a/repository/demo/auth/nginx.htpasswd b/repository/demo/auth/nginx.htpasswd new file mode 100644 index 000000000..4a9e7f9f5 --- /dev/null +++ b/repository/demo/auth/nginx.htpasswd @@ -0,0 +1,2 @@ +username:$2y$05$TRWvCC6ilpKpY3ICifw32Ok3.8SpG3etq8O5WGdCm9wvyDhtSbRgy + diff --git a/repository/demo/config.yml b/repository/demo/config.yml new file mode 100644 index 000000000..086ac0b36 --- /dev/null +++ b/repository/demo/config.yml @@ -0,0 +1,35 @@ +version: 0.1 +log: + accesslog: + disabled: true + level: debug + formatter: text + fields: + service: registry + environment: staging +storage: + delete: + enabled: true + cache: + blobdescriptor: inmemory + filesystem: + rootdirectory: /var/lib/registry +auth: + htpasswd: + realm: basic-realm + path: /etc/docker/registry/auth/nginx.htpasswd +http: + addr: :5000 + host: https://docker.domain.com + headers: + X-Content-Type-Options: [nosniff] + http2: + disabled: false + tls: + certificate: /etc/docker/registry/ssl/docker.domain.com.crt + key: /etc/docker/registry/ssl/docker.domain.com.key +health: + storagedriver: + enabled: true + interval: 10s +threshold: 3 diff --git a/repository/demo/docker-compose.yml b/repository/demo/docker-compose.yml new file mode 100644 index 000000000..86820de4a --- /dev/null +++ b/repository/demo/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3' + +services: + registry: + image: registry + ports: + - "443:5000" + volumes: + - ./:/etc/docker/registry + - registry-data:/var/lib/registry + +volumes: + registry-data: diff --git a/repository/demo/root-ca.cnf b/repository/demo/root-ca.cnf new file mode 100644 index 000000000..b87de32c7 --- /dev/null +++ b/repository/demo/root-ca.cnf @@ -0,0 +1,4 @@ +[root_ca] +basicConstraints = critical,CA:TRUE,pathlen:1 +keyUsage = critical, nonRepudiation, cRLSign, keyCertSign +subjectKeyIdentifier=hash diff --git a/repository/demo/site.cnf b/repository/demo/site.cnf new file mode 100644 index 000000000..608538b1f --- /dev/null +++ b/repository/demo/site.cnf @@ -0,0 +1,7 @@ +[server] +authorityKeyIdentifier=keyid,issuer +basicConstraints = critical,CA:FALSE +extendedKeyUsage=serverAuth +keyUsage = critical, digitalSignature, keyEncipherment +subjectAltName = DNS:docker.domain.com, IP:127.0.0.1 +subjectKeyIdentifier=hash diff --git a/repository/demo/ssl/docker.domain.com.crt b/repository/demo/ssl/docker.domain.com.crt new file mode 100644 index 000000000..a88a83775 --- /dev/null +++ b/repository/demo/ssl/docker.domain.com.crt @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +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 +7zJA +-----END CERTIFICATE----- diff --git a/repository/demo/ssl/docker.domain.com.key b/repository/demo/ssl/docker.domain.com.key new file mode 100644 index 000000000..4545ed476 --- /dev/null +++ b/repository/demo/ssl/docker.domain.com.key @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +oKnsMQKCAQEA0iurbnOyrF050SfRdQcnG4shZs/HeBT2EB3CsR1OocWwXBeUkBlO +OKl+d1cYan1ppw+qGlbdQr+t3u7lLPFLUBghf+I/8CmSyiCbZlR4/LrePOmw551r +YXU1uvtFu/mQq3ieV+k4GOyHq3lhCDd61QFedyESfbkVK8f4ihvvX3izZAAtZfwU +HcmZ174vpwZploWQPsrL9A2B+Na42ccLM2qA45nPwXv1Jr/U6b/CzPw7r/4DvTXv +FIeolrELDkCgWBQ8lxB7Lt96BZy9Rbiwi1TzcP++BQu4IOwbAfq23tCybu8vDde4 +Z15KVf7qyBansdqKx0njxWNu2/dpgKCPqQKCAQEAzWV4aajox7eeTi3iudP1Oxu3 +OBiu8xie4xq0mlM13tMxAQry/uOAuTxbaQ48mNsSXdeYeSgmT45lUvFWROqdVScK +8gh04G1NiRAkITzXwCCwKkAQxvQppgypZ+aksBHkFQFBAIg2/mLizS4cicXNEY4G +vb+RImfn8MSqSMLu3cJ8zgFyqfRg6F0oHg9EgEwvbnCLYglN6Xm5KlZutjW4eu7m +Q+1y0lg05e7vFyj2UIVylfzT/aoF/xzXzNt9/LZs0klO3vMmaVyTjuF/71+AyphH +FTmpNs1wpZU2IRqKOMrimIhk6TTxvMSaN4pxKdLPqgHYLWhwkbsdmqtTnCljRg== +-----END RSA PRIVATE KEY----- diff --git a/repository/registry.md b/repository/registry.md index 51d68c42a..7010734b9 100644 --- a/repository/registry.md +++ b/repository/registry.md @@ -95,7 +95,7 @@ REPOSITORY TAG IMAGE ID CREAT 如果你不想使用 `127.0.0.1:5000` 作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。你就得把例如 `192.168.199.100:5000` 这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。 -这是因为 Docker 默认不允许非 `HTTPS` 方式推送镜像。我们可以通过 Docker 配置来取消这个限制,或者配置能够通过 `HTTPS` 访问的私有仓库。 +这是因为 Docker 默认不允许非 `HTTPS` 方式推送镜像。我们可以通过 Docker 配置来取消这个限制,或者查看下一节配置能够通过 `HTTPS` 访问的私有仓库。 #### Ubuntu 14.04, Debian 7 Wheezy diff --git a/repository/registry_auth.md b/repository/registry_auth.md new file mode 100644 index 000000000..0a626e8a4 --- /dev/null +++ b/repository/registry_auth.md @@ -0,0 +1,210 @@ +## 私有仓库高级配置 + +上一节我们搭建了一个具有基础功能的私有仓库,本小节我们来使用 `Docker Compose` 搭建一个拥有权限认证、TLS 的私有仓库。 + +新建一个文件夹,以下步骤均在该文件夹中进行。 + +### 准备站点证书 + +如果你拥有一个域名,国内各大云服务商均提供免费的站点证书。你也可以使用 `openssl` 自行签发证书。 + +这里假设我们将要搭建的私有仓库地址为 `docker.domain.com`,下面我们介绍使用 `openssl` 自行签发 `docker.domain.com` 的站点 SSL 证书。 + +第一步创建 `CA` 私钥。 + +```bash +$ openssl genrsa -out "root-ca.key" 4096 +``` + +第二步利用私钥创建 `CA` 根证书请求文件。 + +```bash +$ openssl req \ + -new -key "root-ca.key" \ + -out "root-ca.csr" -sha256 \ + -subj '/C=CN/ST=Shanxi/L=Datong/O=Your Company Name/CN=Your Company Name Docker Registry CA' +``` + +>以上命令中 `-subj` 参数里的 `/C` 表示国家,如 `CN`;`/ST` 表示省;`/L` 表示城市或者地区;`/O` 表示组织名;`/CN` 通用名称。 + +第三步配置 `CA` 根证书,新建 `root-ca.cnf`。 + +```bash +[root_ca] +basicConstraints = critical,CA:TRUE,pathlen:1 +keyUsage = critical, nonRepudiation, cRLSign, keyCertSign +subjectKeyIdentifier=hash +``` + +第四步签发根证书。 + +```bash +$ openssl x509 -req -days 3650 -in "root-ca.csr" \ + -signkey "root-ca.key" -sha256 -out "root-ca.crt" \ + -extfile "root-ca.cnf" -extensions \ + root_ca +``` + +第五步生成站点 `SSL` 私钥。 + +```bash +$ openssl genrsa -out "docker.domain.com.key" 4096 +``` + +第六步使用私钥生成证书请求文件。 + +```bash +$ openssl req -new -key "docker.domain.com.key" -out "site.csr" -sha256 \ + -subj '/C=CN/ST=Shanxi/L=Datong/O=Your Company Name/CN=docker.domain.com' +``` + +第七步配置证书,新建 `site.cnf` 文件。 + +```bash +[server] +authorityKeyIdentifier=keyid,issuer +basicConstraints = critical,CA:FALSE +extendedKeyUsage=serverAuth +keyUsage = critical, digitalSignature, keyEncipherment +subjectAltName = DNS:docker.domain.com, IP:127.0.0.1 +subjectKeyIdentifier=hash +``` + +第八步签署站点 `SSL` 证书。 + +```bash +$ openssl x509 -req -days 750 -in "site.csr" -sha256 \ + -CA "root-ca.crt" -CAkey "root-ca.key" -CAcreateserial \ + -out "docker.domain.com.crt" -extfile "site.cnf" -extensions server +``` + +这样已经拥有了 `docker.domain.com` 的网站 SSL 私钥 `docker.domain.com.key` 和 SSL 证书 `docker.domain.com.crt`。 + +新建 `ssl` 文件夹并将 `docker.domain.com.key` `docker.domain.com.cer` 这两个文件移入,删除其他文件。 + +### 配置私有仓库 + +私有仓库默认的配置文件位于 `/etc/docker/registry/config.yml`,我们先在本地编辑 `config.yml`,之后挂载到容器中。 + +```yaml +version: 0.1 +log: + accesslog: + disabled: true + level: debug + formatter: text + fields: + service: registry + environment: staging +storage: + delete: + enabled: true + cache: + blobdescriptor: inmemory + filesystem: + rootdirectory: /var/lib/registry +auth: + htpasswd: + realm: basic-realm + path: /etc/docker/registry/auth/nginx.htpasswd +http: + addr: :443 + host: https://docker.domain.com + headers: + X-Content-Type-Options: [nosniff] + http2: + disabled: false + tls: + certificate: /etc/docker/registry/ssl/docker.domain.com.crt + key: /etc/docker/registry/ssl/docker.domain.com.key +health: + storagedriver: + enabled: true + interval: 10s +threshold: 3 +``` + +### 生成 http 认证文件 + +```bash +$ mkdir auth + +$ docker run --rm \ + --entrypoint htpasswd \ + registry \ + -Bbn username password > auth/nginx.htpasswd +``` + +> 将上面的 `username` `password` 替换为你自己的用户名和密码。 + +### 编辑 `docker-compose.yml` + +```yaml +version: '3' + +services: + registry: + image: registry + ports: + - "443:443" + volumes: + - ./:/etc/docker/registry + - registry-data:/var/lib/registry + +volumes: + registry-data: +``` + +### 修改 hosts + +编辑 `/etc/hosts` + +```bash +docker.domain.com 127.0.0.1 +``` + +### 启动 + +```bash +$ docker-compose up -d +``` + +这样我们就搭建好了一个具有权限认证、TLS 的私有仓库,接下来我们测试其功能是否正常。 + +### 测试私有仓库功能 + +登录到私有仓库。 + +```bash +$ docker login docker.domain.com +``` + +尝试推送、拉取镜像。 + +```bash +$ docker pull ubuntu:17.10 + +$ docker tag ubuntu:17.10 docker.domain.com/username/ubuntu:17.10 + +$ docker push docker.domain.com/username/ubuntu:17.10 + +$ docker image rm docker.domain.com/username/ubuntu:17.10 + +$ docker pull docker.domain.com/username/ubuntu:17.10 +``` + +如果我们退出登录,尝试推送镜像。 + +```bash +$ docker logout docker.domain.com + +$ docker push docker.domain.com/username/ubuntu:17.10 + +no basic auth credentials +``` + +发现会提示没有登录,不能将镜像推送到私有仓库中。 + +### 注意事项 + +如果你本机占用了 `443` 端口,你可以配置 [Nginx 代理](https://docs.docker.com/registry/recipes/nginx/),这里不再赘述。 From 047755b702e2a43b18dc634fe95154743a3e1522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Sat, 16 Dec 2017 13:56:57 +0800 Subject: [PATCH 266/611] Update content (#294) --- CHANGELOG.md | 2 +- coreos/intro.md | 4 ++-- repository/registry_auth.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 997157209..bc479efb4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ * 0.9: 2017-12-31 -* 0.9-rc3: 2017-12-20 +* 0.9-rc3: 2017-12-30 * 增加 `私有仓库高级配置` diff --git a/coreos/intro.md b/coreos/intro.md index 7e5adedfe..23f250d0c 100644 --- a/coreos/intro.md +++ b/coreos/intro.md @@ -1,4 +1,4 @@ -# CoreOS介绍 +# CoreOS 介绍 提起 Docker,我们不得不提的就是 [CoreOS](https://coreos.com/). @@ -14,7 +14,7 @@ CoreOS 被设计成一个基于容器的最小化的现代操作系统。它比 利用主动和被动双分区方案来更新 OS,使用分区作为一个单元而不是一个包一个包的更新。这使得每次更新变得快速,可靠,而且很容易回滚。 -## Docker容器 +## Docker 容器 应用作为 Docker 容器运行在 CoreOS 上。容器以包的形式提供最大得灵活性并且可以在几毫秒启动。 diff --git a/repository/registry_auth.md b/repository/registry_auth.md index 0a626e8a4..67af8f88e 100644 --- a/repository/registry_auth.md +++ b/repository/registry_auth.md @@ -80,7 +80,7 @@ $ openssl x509 -req -days 750 -in "site.csr" -sha256 \ 这样已经拥有了 `docker.domain.com` 的网站 SSL 私钥 `docker.domain.com.key` 和 SSL 证书 `docker.domain.com.crt`。 -新建 `ssl` 文件夹并将 `docker.domain.com.key` `docker.domain.com.cer` 这两个文件移入,删除其他文件。 +新建 `ssl` 文件夹并将 `docker.domain.com.key` `docker.domain.com.crt` 这两个文件移入,删除其他文件。 ### 配置私有仓库 From 95d063dbd143e507a89ec17a39a02fffcc65c8c5 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 16 Dec 2017 15:08:02 +0800 Subject: [PATCH 267/611] Update compose --- SUMMARY.md | 2 +- compose/{yaml_file.md => compose_file.md} | 101 +++++++++++++++++----- 2 files changed, 82 insertions(+), 21 deletions(-) rename compose/{yaml_file.md => compose_file.md} (80%) diff --git a/SUMMARY.md b/SUMMARY.md index ffab2bf85..5da12cb77 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -73,7 +73,7 @@ * [安装与卸载](compose/install.md) * [使用](compose/usage.md) * [命令说明](compose/commands.md) - * [YAML 模板文件](compose/yaml_file.md) + * [Compose 模板文件](compose/compose_file.md) * [实战 Django](compose/django.md) * [实战 Rails](compose/rails.md) * [实战 WordPress](compose/wordpress.md) diff --git a/compose/yaml_file.md b/compose/compose_file.md similarity index 80% rename from compose/yaml_file.md rename to compose/compose_file.md index 5dd4f8f23..23778ad53 100644 --- a/compose/yaml_file.md +++ b/compose/compose_file.md @@ -27,7 +27,39 @@ services: 指定 `Dockerfile` 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。 `Compose` 将会利用它自动构建这个镜像,然后使用这个镜像。 ```yaml -build: /path/to/build/dir +version: '3' +services: + + webapp: + build: ./dir +``` + +你也可以使用 `context` 指令指定 `Dockerfile` 所在文件夹的路径。 + +使用 `dockerfile` 指令指定 `Dockerfile` 文件名。 + +使用 `arg` 指令指定构建镜像时的变量。 + +```yaml +version: '3' +services: + + webapp: + build: + context: ./dir + dockerfile: Dockerfile-alternate + args: + buildno: 1 +``` + +使用 `cache_from` 指定构建镜像的缓存 + +```yaml +build: + context: . + cache_from: + - alpine:latest + - corp/web_app:3.14 ``` ### `cap_add, cap_drop` @@ -78,7 +110,7 @@ cgroup_parent: cgroups_1 container_name: docker-web-container ``` -需要注意,指定容器名称后,该服务将无法进行扩展(scale),因为 Docker 不允许多个容器具有相同的名称。 +>注意: 指定容器名称后,该服务将无法进行扩展(scale),因为 Docker 不允许多个容器具有相同的名称。 ### `deploy` @@ -114,6 +146,8 @@ services: image: postgres ``` +>注意:`web` 服务不会等待 `redis` `db` 「完全启动」之后才启动。 + ### `dns` 自定义 `DNS` 服务器。可以是一个值,也可以是一个列表。 @@ -189,9 +223,7 @@ environment: - SESSION_SECRET ``` -注意,如果变量名称或者值中用到 `true|false,yes|no` 等表达布尔含义的词汇,最好放到引号里,避免 YAML 自动解析某些内容为对应的布尔语义。 - -`http://yaml.org/type/bool.html` 中给出了这些特定词汇,包括 +如果变量名称或者值中用到 `true|false,yes|no` 等表达 [布尔](http://yaml.org/type/bool.html) 含义的词汇,最好放到引号里,避免 YAML 自动解析某些内容为对应的布尔语义。这些特定词汇,包括 ```bash y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF @@ -211,7 +243,9 @@ expose: ### `external_links` -链接到 docker-compose.yml 外部的容器,甚至并非 `Compose` 管理的外部容器。参数格式跟 `links` 类似。 +>注意:不建议使用该指令。 + +链接到 `docker-compose.yml` 外部的容器,甚至并非 `Compose` 管理的外部容器。 ```yaml external_links: @@ -272,7 +306,7 @@ labels: ### `links` -不推荐使用该指令。 +>注意:不推荐使用该指令。 ### `logging` @@ -303,7 +337,7 @@ options: ### `network_mode` -设置网络模式。使用和 `docker run` 的 `--net` 参数一样的值。 +设置网络模式。使用和 `docker run` 的 `--network` 参数一样的值。 ```yaml network_mode: "bridge" @@ -343,7 +377,7 @@ pid: "host" 暴露端口信息。 -使用宿主:容器 `(HOST:CONTAINER)`格式,或者仅仅指定容器的端口(宿主将会随机选择端口)都可以。 +使用宿主端口:容器端口 `(HOST:CONTAINER)` 格式,或者仅仅指定容器的端口(宿主将会随机选择端口)都可以。 ```yaml ports: @@ -357,7 +391,26 @@ ports: ### `secrets` -仅用于 `Swarm mode`,详细内容请查看 [`Swarm mode`](../swarm_mode/) 一节。 +存储敏感数据,例如 `mysql` 服务密码。 + +```bash +version: "3" +services: + +mysql: + image: mysql + environment: + MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password + secrets: + - db_root_password + - my_other_secret + +secrets: + my_secret: + file: ./my_secret.txt + my_other_secret: + external: true +``` ### `security_opt` @@ -448,12 +501,6 @@ hostname: test mac_address: 08-00-27-00-0C-0A ``` -指定容器中 - -```yaml -ipc: host -``` - 允许容器中运行一些特权命令。 ```yaml @@ -478,21 +525,35 @@ read_only: true stdin_open: true ``` -模拟一个假的远程控制台。 +模拟一个伪终端。 ```yaml tty: true ``` -### 读取环境变量 +### 读取变量 -Compose 模板文件支持动态读取主机的系统环境变量。 +Compose 模板文件支持动态读取主机的系统环境变量和当前目录下的 `.env` 文件中的变量。 -例如,下面的 Compose 文件将从运行它的环境中读取变量 ${MONGO_VERSION} 的值,并写入执行的指令中。 +例如,下面的 Compose 文件将从运行它的环境中读取变量 `${MONGO_VERSION}` 的值,并写入执行的指令中。 ```yaml +version: "3" +services: + db: image: "mongo:${MONGO_VERSION}" ``` 如果执行 `MONGO_VERSION=3.2 docker-compose up` 则会启动一个 `mongo:3.2` 镜像的容器;如果执行 `MONGO_VERSION=2.8 docker-compose up` 则会启动一个 `mongo:2.8` 镜像的容器。 + +若当前目录存在 `.env` 文件,执行 `docker-compose` 命令时将从该文件中读取变量。 + +在当前目录新建 `.env` 文件并写入以下内容。 + +```bash +# 支持 # 号注释 +MONGO_VERSION=3.6 +``` + +执行 `docker-compose up` 则会启动一个 `mongo:3.6` 镜像的容器。 From 7d7b4f2afce2532fb9b6da05e2c8ad631879a8ad Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 17 Dec 2017 22:57:11 +0800 Subject: [PATCH 268/611] Rename enter.md to attach_exec.md --- SUMMARY.md | 2 +- container/{enter.md => attach_exec.md} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename container/{enter.md => attach_exec.md} (100%) diff --git a/SUMMARY.md b/SUMMARY.md index 5da12cb77..f6e9edb4a 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -45,7 +45,7 @@ * [启动](container/run.md) * [守护态运行](container/daemon.md) * [终止](container/stop.md) - * [进入容器](container/enter.md) + * [进入容器](container/attach_exec.md) * [导出和导入](container/import_export.md) * [删除](container/rm.md) * [访问仓库](repository/README.md) diff --git a/container/enter.md b/container/attach_exec.md similarity index 100% rename from container/enter.md rename to container/attach_exec.md From 8f92f3b114cca64befe64a2081a73c5acbb560f0 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 17 Dec 2017 23:02:42 +0800 Subject: [PATCH 269/611] Remove some content in data_management --- data_management/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/data_management/README.md b/data_management/README.md index 553de4e05..3942f99ed 100644 --- a/data_management/README.md +++ b/data_management/README.md @@ -7,5 +7,3 @@ * 数据卷(Volumes) * 挂载主机目录 (Bind mounts) - -Docker 在 1.13 版本引进了新的管理命令(management commands),在 Docker 1.13+ 推荐使用 `docker volume` 子命令来管理 Docker 数据卷。 From 4fa76da7f8fe898f955d36fd3429c0d6fd0ee617 Mon Sep 17 00:00:00 2001 From: ysykzheng Date: Tue, 19 Dec 2017 16:33:37 +0800 Subject: [PATCH 270/611] fix link --- mesos/framework.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/mesos/framework.md b/mesos/framework.md index dde1e1170..23ad759d8 100644 --- a/mesos/framework.md +++ b/mesos/framework.md @@ -11,14 +11,14 @@ Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 P ### 长期运行的服务 #### [Aurora](http://aurora.incubator.apache.org) -项目维护地址在 http://aurora.incubator.apache.org。 +项目维护地址在 http://aurora.incubator.apache.org 。 利用 mesos 调度安排的任务,保证任务一直在运行。 提供 REST 接口,客户端和 webUI(8081 端口) #### [Marathon](https://github.com/mesosphere/marathon) -项目维护地址在 https://github.com/mesosphere/marathon。 +项目维护地址在 https://github.com/mesosphere/marathon 。 一个私有 PaaS 平台,保证运行的应用不被中断。 @@ -29,7 +29,7 @@ Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 P 提供 REST 接口,客户端和 webUI(8080 端口) #### [Singularity](https://github.com/HubSpot/Singularity) -项目维护地址在 https://github.com/HubSpot/Singularity。 +项目维护地址在 https://github.com/HubSpot/Singularity 。 一个私有 PaaS 平台。 @@ -39,70 +39,70 @@ Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 P ### 大数据处理 #### [Cray Chapel](https://github.com/nqn/mesos-chapel) -项目维护地址在 https://github.com/nqn/mesos-chapel。 +项目维护地址在 https://github.com/nqn/mesos-chapel 。 支持 Chapel 并行编程语言的运行框架。 #### [Dpark](https://github.com/douban/dpark) -项目维护地址在 https://github.com/douban/dpark。 +项目维护地址在 https://github.com/douban/dpark 。 Spark 的 Python 实现。 #### [Hadoop](https://github.com/mesos/hadoop) -项目维护地址在 https://github.com/mesos/hadoop。 +项目维护地址在 https://github.com/mesos/hadoop 。 经典的 map-reduce 模型的实现。 #### [Spark](http://spark.incubator.apache.org) -项目维护地址在 http://spark.incubator.apache.org。 +项目维护地址在 http://spark.incubator.apache.org 。 跟 Hadoop 类似,但处理迭代类型任务会更好的使用内存做中间状态缓存,速度要快一些。 #### [Storm](https://github.com/mesosphere/storm-mesos) -项目维护地址在 https://github.com/mesosphere/storm-mesos。 +项目维护地址在 https://github.com/mesosphere/storm-mesos 。 分布式流计算,可以实时处理数据流。 ### 批量调度 #### [Chronos](https://github.com/airbnb/chronos) -项目维护地址在 https://github.com/airbnb/chronos。 +项目维护地址在 https://github.com/airbnb/chronos 。 Cron 的分布式实现,负责任务调度,支持容错。 #### [Jenkins](https://github.com/jenkinsci/mesos-plugin) -项目维护地址在 https://github.com/jenkinsci/mesos-plugin。 +项目维护地址在 https://github.com/jenkinsci/mesos-plugin 。 大名鼎鼎的 CI 引擎。使用 mesos-jenkins 插件,可以将 jenkins 的任务被 Mesos 集群来动态调度执行。 #### JobServer -项目维护地址在 http://www.grandlogic.com/content/html_docs/jobserver.html。 +项目维护地址在 http://www.grandlogic.com/content/html_docs/jobserver.html 。 基于 Java 的调度任务和数据处理引擎。 #### GoDocker -项目维护地址在 https://bitbucket.org/osallou/go-docker。 +项目维护地址在 https://bitbucket.org/osallou/go-docker 。 基于 Docker 容器的集群维护工具。提供用户接口,除了支持 Mesos,还支持 Kubernetes、Swarm 等。 ### 数据存储 #### [Cassandra](https://github.com/mesosphere/cassandra-mesos) -项目维护地址在 https://github.com/mesosphere/cassandra-mesos。 +项目维护地址在 https://github.com/mesosphere/cassandra-mesos 。 高性能的分布式数据库。可扩展性很好,支持高可用。 #### [ElasticSearch](https://github.com/mesosphere/elasticsearch-mesos) -项目维护地址在 https://github.com/mesosphere/elasticsearch-mesos。 +项目维护地址在 https://github.com/mesosphere/elasticsearch-mesos 。 功能十分强大的分布式数据搜索引擎。 一方面通过分布式集群实现可靠的数据库,一方面提供灵活的 API,对数据进行整合和分析。ElasticSearch + LogStash + Kibana 目前合成为 ELK 工具栈。 #### Hypertable -项目维护地址在 https://code.google.com/p/hypertable。 +项目维护地址在 https://code.google.com/p/hypertable 。 高性能的分布式数据库,支持结构化或者非结构化的数据存储。 #### Tachyon -项目维护地址在 http://tachyon-project.org/。 +项目维护地址在 http://tachyon-project.org/ 。 内存为中心的分布式存储系统,利用内存访问的高速提供高性能。 From c0fb7f3af0e4fcb4355c3d75ea35ebc89088fba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Tue, 19 Dec 2017 18:08:52 +0800 Subject: [PATCH 271/611] Update framework.md --- mesos/framework.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/mesos/framework.md b/mesos/framework.md index 23ad759d8..29c732bef 100644 --- a/mesos/framework.md +++ b/mesos/framework.md @@ -11,14 +11,14 @@ Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 P ### 长期运行的服务 #### [Aurora](http://aurora.incubator.apache.org) -项目维护地址在 http://aurora.incubator.apache.org 。 +项目维护地址在 http://aurora.incubator.apache.org 利用 mesos 调度安排的任务,保证任务一直在运行。 提供 REST 接口,客户端和 webUI(8081 端口) #### [Marathon](https://github.com/mesosphere/marathon) -项目维护地址在 https://github.com/mesosphere/marathon 。 +项目维护地址在 https://github.com/mesosphere/marathon 一个私有 PaaS 平台,保证运行的应用不被中断。 @@ -29,7 +29,7 @@ Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 P 提供 REST 接口,客户端和 webUI(8080 端口) #### [Singularity](https://github.com/HubSpot/Singularity) -项目维护地址在 https://github.com/HubSpot/Singularity 。 +项目维护地址在 https://github.com/HubSpot/Singularity 一个私有 PaaS 平台。 @@ -39,33 +39,33 @@ Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 P ### 大数据处理 #### [Cray Chapel](https://github.com/nqn/mesos-chapel) -项目维护地址在 https://github.com/nqn/mesos-chapel 。 +项目维护地址在 https://github.com/nqn/mesos-chapel 支持 Chapel 并行编程语言的运行框架。 #### [Dpark](https://github.com/douban/dpark) -项目维护地址在 https://github.com/douban/dpark 。 +项目维护地址在 https://github.com/douban/dpark Spark 的 Python 实现。 #### [Hadoop](https://github.com/mesos/hadoop) -项目维护地址在 https://github.com/mesos/hadoop 。 +项目维护地址在 https://github.com/mesos/hadoop 经典的 map-reduce 模型的实现。 #### [Spark](http://spark.incubator.apache.org) -项目维护地址在 http://spark.incubator.apache.org 。 +项目维护地址在 http://spark.incubator.apache.org 跟 Hadoop 类似,但处理迭代类型任务会更好的使用内存做中间状态缓存,速度要快一些。 #### [Storm](https://github.com/mesosphere/storm-mesos) -项目维护地址在 https://github.com/mesosphere/storm-mesos 。 +项目维护地址在 https://github.com/mesosphere/storm-mesos 分布式流计算,可以实时处理数据流。 ### 批量调度 #### [Chronos](https://github.com/airbnb/chronos) -项目维护地址在 https://github.com/airbnb/chronos 。 +项目维护地址在 https://github.com/airbnb/chronos Cron 的分布式实现,负责任务调度,支持容错。 @@ -75,34 +75,34 @@ Cron 的分布式实现,负责任务调度,支持容错。 大名鼎鼎的 CI 引擎。使用 mesos-jenkins 插件,可以将 jenkins 的任务被 Mesos 集群来动态调度执行。 #### JobServer -项目维护地址在 http://www.grandlogic.com/content/html_docs/jobserver.html 。 +项目维护地址在 http://www.grandlogic.com/content/html_docs/jobserver.html 基于 Java 的调度任务和数据处理引擎。 #### GoDocker -项目维护地址在 https://bitbucket.org/osallou/go-docker 。 +项目维护地址在 https://bitbucket.org/osallou/go-docker 基于 Docker 容器的集群维护工具。提供用户接口,除了支持 Mesos,还支持 Kubernetes、Swarm 等。 ### 数据存储 #### [Cassandra](https://github.com/mesosphere/cassandra-mesos) -项目维护地址在 https://github.com/mesosphere/cassandra-mesos 。 +项目维护地址在 https://github.com/mesosphere/cassandra-mesos 高性能的分布式数据库。可扩展性很好,支持高可用。 #### [ElasticSearch](https://github.com/mesosphere/elasticsearch-mesos) -项目维护地址在 https://github.com/mesosphere/elasticsearch-mesos 。 +项目维护地址在 https://github.com/mesosphere/elasticsearch-mesos 功能十分强大的分布式数据搜索引擎。 一方面通过分布式集群实现可靠的数据库,一方面提供灵活的 API,对数据进行整合和分析。ElasticSearch + LogStash + Kibana 目前合成为 ELK 工具栈。 #### Hypertable -项目维护地址在 https://code.google.com/p/hypertable 。 +项目维护地址在 https://code.google.com/p/hypertable 高性能的分布式数据库,支持结构化或者非结构化的数据存储。 #### Tachyon -项目维护地址在 http://tachyon-project.org/ 。 +项目维护地址在 http://tachyon-project.org/ 内存为中心的分布式存储系统,利用内存访问的高速提供高性能。 From 38070099d890bca1cb49a3d8433b91c2cc1d7ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Tue, 19 Dec 2017 18:11:08 +0800 Subject: [PATCH 272/611] Update framework.md --- mesos/framework.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mesos/framework.md b/mesos/framework.md index 29c732bef..55f9695a7 100644 --- a/mesos/framework.md +++ b/mesos/framework.md @@ -70,7 +70,7 @@ Spark 的 Python 实现。 Cron 的分布式实现,负责任务调度,支持容错。 #### [Jenkins](https://github.com/jenkinsci/mesos-plugin) -项目维护地址在 https://github.com/jenkinsci/mesos-plugin 。 +项目维护地址在 https://github.com/jenkinsci/mesos-plugin 大名鼎鼎的 CI 引擎。使用 mesos-jenkins 插件,可以将 jenkins 的任务被 Mesos 集群来动态调度执行。 From 19f8ec965415a61356422bb402085b2bb85c73db Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 20 Dec 2017 10:14:53 +0800 Subject: [PATCH 273/611] Update mesos/framework.md --- mesos/framework.md | 35 ++++++++--------------------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/mesos/framework.md b/mesos/framework.md index 55f9695a7..34ba1d439 100644 --- a/mesos/framework.md +++ b/mesos/framework.md @@ -11,14 +11,12 @@ Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 P ### 长期运行的服务 #### [Aurora](http://aurora.incubator.apache.org) -项目维护地址在 http://aurora.incubator.apache.org -利用 mesos 调度安排的任务,保证任务一直在运行。 +利用 Mesos 调度安排的任务,保证任务一直在运行。 提供 REST 接口,客户端和 webUI(8081 端口) #### [Marathon](https://github.com/mesosphere/marathon) -项目维护地址在 https://github.com/mesosphere/marathon 一个私有 PaaS 平台,保证运行的应用不被中断。 @@ -29,7 +27,6 @@ Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 P 提供 REST 接口,客户端和 webUI(8080 端口) #### [Singularity](https://github.com/HubSpot/Singularity) -项目维护地址在 https://github.com/HubSpot/Singularity 一个私有 PaaS 平台。 @@ -39,70 +36,54 @@ Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 P ### 大数据处理 #### [Cray Chapel](https://github.com/nqn/mesos-chapel) -项目维护地址在 https://github.com/nqn/mesos-chapel 支持 Chapel 并行编程语言的运行框架。 #### [Dpark](https://github.com/douban/dpark) -项目维护地址在 https://github.com/douban/dpark Spark 的 Python 实现。 #### [Hadoop](https://github.com/mesos/hadoop) -项目维护地址在 https://github.com/mesos/hadoop 经典的 map-reduce 模型的实现。 -#### [Spark](http://spark.incubator.apache.org) -项目维护地址在 http://spark.incubator.apache.org +#### [Spark](http://spark.apache.org) 跟 Hadoop 类似,但处理迭代类型任务会更好的使用内存做中间状态缓存,速度要快一些。 -#### [Storm](https://github.com/mesosphere/storm-mesos) -项目维护地址在 https://github.com/mesosphere/storm-mesos +#### [Storm](https://github.com/mesos/storm) 分布式流计算,可以实时处理数据流。 ### 批量调度 #### [Chronos](https://github.com/airbnb/chronos) -项目维护地址在 https://github.com/airbnb/chronos Cron 的分布式实现,负责任务调度,支持容错。 #### [Jenkins](https://github.com/jenkinsci/mesos-plugin) -项目维护地址在 https://github.com/jenkinsci/mesos-plugin 大名鼎鼎的 CI 引擎。使用 mesos-jenkins 插件,可以将 jenkins 的任务被 Mesos 集群来动态调度执行。 -#### JobServer -项目维护地址在 http://www.grandlogic.com/content/html_docs/jobserver.html +#### [JobServer](http://www.grandlogic.com/content/html_docs/jobserver.html) 基于 Java 的调度任务和数据处理引擎。 -#### GoDocker -项目维护地址在 https://bitbucket.org/osallou/go-docker +#### [GoDocker](https://bitbucket.org/osallou/go-docker) 基于 Docker 容器的集群维护工具。提供用户接口,除了支持 Mesos,还支持 Kubernetes、Swarm 等。 ### 数据存储 -#### [Cassandra](https://github.com/mesosphere/cassandra-mesos) -项目维护地址在 https://github.com/mesosphere/cassandra-mesos -高性能的分布式数据库。可扩展性很好,支持高可用。 - -#### [ElasticSearch](https://github.com/mesosphere/elasticsearch-mesos) -项目维护地址在 https://github.com/mesosphere/elasticsearch-mesos +#### [ElasticSearch](https://github.com/mesos/elasticsearch) 功能十分强大的分布式数据搜索引擎。 一方面通过分布式集群实现可靠的数据库,一方面提供灵活的 API,对数据进行整合和分析。ElasticSearch + LogStash + Kibana 目前合成为 ELK 工具栈。 -#### Hypertable -项目维护地址在 https://code.google.com/p/hypertable +#### [Hypertable](https://code.google.com/p/hypertable) 高性能的分布式数据库,支持结构化或者非结构化的数据存储。 -#### Tachyon -项目维护地址在 http://tachyon-project.org/ +#### [Tachyon](http://tachyon-project.org/) 内存为中心的分布式存储系统,利用内存访问的高速提供高性能。 From d9fe0cc0d41de84c4f141d41f0f93678b3f3b125 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 20 Dec 2017 10:24:36 +0800 Subject: [PATCH 274/611] Update install --- install/centos.md | 2 +- install/debian.md | 4 ++-- install/raspberry-pi.md | 4 ++-- install/ubuntu.md | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/install/centos.md b/install/centos.md index 56324fef5..515fd9433 100644 --- a/install/centos.md +++ b/install/centos.md @@ -17,7 +17,7 @@ $ sudo yum remove docker \ docker-engine ``` -### 使用 yum 源 安装 +### 使用 yum 安装 执行以下命令安装依赖包: diff --git a/install/debian.md b/install/debian.md index b757a84b6..2c542989b 100644 --- a/install/debian.md +++ b/install/debian.md @@ -24,9 +24,9 @@ $ sudo apt-get remove docker \ Debian 7 的内核默认为 3.2,为了满足 Docker CE 的需求,应该安装 [`backports`](https://backports.debian.org/Instructions/) 的内核。 -### 使用 APT 镜像源 安装 +### 使用 APT 安装 -由于官方源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 +由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 Debian 8 Jessie 或者 Debian 9 Stretch 使用以下命令: diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 93c27b768..6f2beffa7 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -12,9 +12,9 @@ Docker CE 支持以下版本的 [Raspbian](https://www.raspberrypi.org/downloads *注:* `Raspbian` 是树莓派基金会为树莓派卡片电脑设计的 Linux 发行版,其基于 Debian。 -### 使用 APT 镜像源 安装 +### 使用 APT 安装 -由于官方源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 +由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 ```bash $ sudo apt-get update diff --git a/install/ubuntu.md b/install/ubuntu.md index e6c78a813..1b2bd15a9 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -38,9 +38,9 @@ $ sudo apt-get install \ linux-image-extra-virtual ``` -### 使用 APT 镜像源 安装 +### 使用 APT 安装 -由于官方源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 +由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 ```bash $ sudo apt-get update From b2427b1742cfba6f124dff10d729d66e1e0f4c7c Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 20 Dec 2017 23:44:09 +0800 Subject: [PATCH 275/611] Add tips #265 --- advanced_network/README.md | 3 +++ image/commit.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/advanced_network/README.md b/advanced_network/README.md index a169fda44..33408baa3 100644 --- a/advanced_network/README.md +++ b/advanced_network/README.md @@ -1,4 +1,7 @@ # 高级网络配置 + +>注意:本章属于高级 `Docker` 配置,如果您是初学者,您可以暂时跳过本章节,直接学习 [Docker Compose](../compose) 一节。 + 本章将介绍 Docker 的一些高级网络配置和选项。 当 Docker 启动时,会自动在主机上创建一个 `docker0` 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。 diff --git a/image/commit.md b/image/commit.md index 68ae6a64a..6872a796b 100644 --- a/image/commit.md +++ b/image/commit.md @@ -1,3 +1,6 @@ + +>注意:如果您是初学者,您可以暂时跳过后面的内容,直接学习 [容器](../container) 一节。 + ## 利用 commit 理解镜像构成 注意: `docker commit` 命令除了学习之外,还有一些特殊的应用场合,比如被入侵后保存现场等。但是,不要使用 `docker commit` 定制镜像,定制镜像应该使用 `Dockerfile` 来完成。如果你想要定制镜像请查看下一小节。 From 1ea4934758d22fcdcc3f6ea1167eb2bfeafdb4ea Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 20 Dec 2017 23:44:38 +0800 Subject: [PATCH 276/611] Update swarm mode --- swarm_mode/config.md | 2 +- swarm_mode/secret.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/swarm_mode/config.md b/swarm_mode/config.md index 3e88dceef..484e94349 100644 --- a/swarm_mode/config.md +++ b/swarm_mode/config.md @@ -4,7 +4,7 @@ 在 Docker 17.06 以上版本中,Docker 新增了 `docker config` 子命令来管理集群中的配置信息,以后你无需将配置文件放入镜像或挂载到容器中就可实现对服务的配置。 ->注意:`docker config` 仅能在 Swarm 集群中使用。 +>注意:`config` 仅能在 Swarm 集群中使用。 这里我们以在 Swarm 集群中部署 `redis` 服务为例。 diff --git a/swarm_mode/secret.md b/swarm_mode/secret.md index e9d9a0d65..4d8476568 100644 --- a/swarm_mode/secret.md +++ b/swarm_mode/secret.md @@ -4,6 +4,8 @@ Docker 目前已经提供了 `secrets` 管理功能,用户可以在 Swarm 集群中安全地管理密码、密钥证书等敏感数据,并允许在多个 Docker 容器实例之间共享访问指定的敏感数据。 +>注意: `secret` 也可以在 `Docker Compose` 中使用。 + 我们可以用 `docker secret` 命令来管理敏感信息。接下来我们在上面章节中创建好的 Swarm 集群中介绍该命令的使用。 这里我们以在 Swarm 集群中部署 `mysql` 和 `wordpress` 服务为例。 From 9d196a2022e1b2935d07e9ac299184ce83ae637c Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 20 Dec 2017 23:44:47 +0800 Subject: [PATCH 277/611] Update image --- SUMMARY.md | 2 +- image/other.md | 2 +- image/pull.md | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index f6e9edb4a..5156706ff 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -21,6 +21,7 @@ * [使用镜像](image/README.md) * [获取镜像](image/pull.md) * [列出镜像](image/list.md) + * [删除本地镜像](image/rm.md) * [利用 commit 理解镜像构成](image/commit.md) * [使用 Dockerfile 定制镜像](image/build.md) * [Dockerfile 指令详解](image/dockerfile/README.md) @@ -39,7 +40,6 @@ * [参考文档](image/dockerfile/references.md) * [Dockerfile 多阶段构建](image/multistage-builds.md) * [其它制作镜像的方式](image/other.md) - * [删除本地镜像](image/rm.md) * [实现原理](image/internal.md) * [操作容器](container/README.md) * [启动](container/run.md) diff --git a/image/other.md b/image/other.md index 97c234b4d..a42228db4 100644 --- a/image/other.md +++ b/image/other.md @@ -1,4 +1,4 @@ -## 其它生成镜像的方法 +## 其它制作镜像的方式 除了标准的使用 `Dockerfile` 生成镜像的方法外,由于各种特殊需求和历史原因,还提供了一些其它方法用以生成镜像。 diff --git a/image/pull.md b/image/pull.md index 5daf529f1..f2f4236c3 100644 --- a/image/pull.md +++ b/image/pull.md @@ -1,6 +1,6 @@ ## 获取镜像 -之前提到过,[Docker Hub](https://hub.docker.com/explore/) 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像并运行。 +之前提到过,[Docker Hub](https://hub.docker.com/explore/) 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。 从 Docker 镜像仓库获取镜像的命令是 `docker pull`。其命令格式为: @@ -37,7 +37,7 @@ Status: Downloaded newer image for ubuntu:16.04 ### 运行 -有了镜像后,我们就可以以这个镜像为基础启动一个容器来运行。以上面的 `ubuntu:16.04` 为例,如果我们打算启动里面的 `bash` 并且进行交互式操作的话,可以执行下面的命令。 +有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。以上面的 `ubuntu:16.04` 为例,如果我们打算启动里面的 `bash` 并且进行交互式操作的话,可以执行下面的命令。 ```bash $ docker run -it --rm \ @@ -56,7 +56,7 @@ SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" ``` -`docker run` 就是运行容器的命令,具体格式我们会在后面的章节讲解,我们这里简要的说明一下上面用到的参数。 +`docker run` 就是运行容器的命令,具体格式我们会在 [容器](../container) 一节进行详细讲解,我们这里简要的说明一下上面用到的参数。 * `-it`:这是两个参数,一个是 `-i`:交互式操作,一个是 `-t` 终端。我们这里打算进入 `bash` 执行一些命令并查看返回结果,因此我们需要交互式终端。 * `--rm`:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 `docker rm`。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 `--rm` 可以避免浪费空间。 From b2e0b720ac50104c85658206155a9b0bcdea036b Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 20 Dec 2017 23:46:46 +0800 Subject: [PATCH 278/611] Update registry --- repository/registry.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/repository/registry.md b/repository/registry.md index 7010734b9..eb8786a32 100644 --- a/repository/registry.md +++ b/repository/registry.md @@ -95,7 +95,7 @@ REPOSITORY TAG IMAGE ID CREAT 如果你不想使用 `127.0.0.1:5000` 作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。你就得把例如 `192.168.199.100:5000` 这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。 -这是因为 Docker 默认不允许非 `HTTPS` 方式推送镜像。我们可以通过 Docker 配置来取消这个限制,或者查看下一节配置能够通过 `HTTPS` 访问的私有仓库。 +这是因为 Docker 默认不允许非 `HTTPS` 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,或者查看下一节配置能够通过 `HTTPS` 访问的私有仓库。 #### Ubuntu 14.04, Debian 7 Wheezy @@ -126,6 +126,8 @@ $ sudo service docker restart } ``` +>注意:该文件必须符合 `json` 规范,否则 Docker 将不能启动。 + ### 其他 对于 Docker for Windows 、 Docker for Mac 在设置中编辑 `daemon.json` 增加和上边一样的字符串即可。 From 8589701bea604ed62f26085f705e98bbcba3c921 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 20 Dec 2017 23:46:55 +0800 Subject: [PATCH 279/611] Update volume --- data_management/volume.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_management/volume.md b/data_management/volume.md index 4a0485fbc..65b056bb1 100644 --- a/data_management/volume.md +++ b/data_management/volume.md @@ -10,7 +10,7 @@ * `数据卷` 默认会一直存在,即使容器被删除 -*注意*:`数据卷` 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的 `数据卷`。 +>注意:`数据卷` 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的 `数据卷`。 ### 选择 -v 还是 -–mount 参数 From d307ac54f65e2c6e2f01f6197c82651714604849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Wed, 20 Dec 2017 23:49:49 +0800 Subject: [PATCH 280/611] Update advanced_network --- advanced_network/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/advanced_network/README.md b/advanced_network/README.md index 33408baa3..df6d5b766 100644 --- a/advanced_network/README.md +++ b/advanced_network/README.md @@ -1,6 +1,6 @@ # 高级网络配置 ->注意:本章属于高级 `Docker` 配置,如果您是初学者,您可以暂时跳过本章节,直接学习 [Docker Compose](../compose) 一节。 +>注意:本章属于 `Docker` 高级配置,如果您是初学者,您可以暂时跳过本章节,直接学习 [Docker Compose](../compose) 一节。 本章将介绍 Docker 的一些高级网络配置和选项。 From 7753df7681b6c504b9d76b0017186f71a1671c60 Mon Sep 17 00:00:00 2001 From: shawxr Date: Tue, 26 Dec 2017 16:05:26 +0800 Subject: [PATCH 281/611] Update bind-mounts.md --- data_management/bind-mounts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_management/bind-mounts.md b/data_management/bind-mounts.md index cef682191..daec753b6 100644 --- a/data_management/bind-mounts.md +++ b/data_management/bind-mounts.md @@ -33,7 +33,7 @@ $ docker run -d -P \ 加了 `readonly` 之后,就挂载为 `只读` 了。如果你在容器内 `/src/webapp` 目录新建文件,会显示如下错误 ```bash -/src/webapp # touch new.txt +/opt/webapp # touch new.txt touch: new.txt: Read-only file system ``` From 8a43919e51ef4cfea778384a2ff6a7b921b07276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Tue, 26 Dec 2017 16:12:28 +0800 Subject: [PATCH 282/611] Update bind-mounts.md --- data_management/bind-mounts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_management/bind-mounts.md b/data_management/bind-mounts.md index daec753b6..dad2214ed 100644 --- a/data_management/bind-mounts.md +++ b/data_management/bind-mounts.md @@ -30,7 +30,7 @@ $ docker run -d -P \ python app.py ``` -加了 `readonly` 之后,就挂载为 `只读` 了。如果你在容器内 `/src/webapp` 目录新建文件,会显示如下错误 +加了 `readonly` 之后,就挂载为 `只读` 了。如果你在容器内 `/opt/webapp` 目录新建文件,会显示如下错误 ```bash /opt/webapp # touch new.txt From c726aa30dff6b095fb67fcbfe254357f7139e1bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Fri, 29 Dec 2017 09:22:07 +0800 Subject: [PATCH 283/611] Fix spelling error --- basic_concept/repository.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basic_concept/repository.md b/basic_concept/repository.md index 83e50b873..ecd62f9ae 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -16,7 +16,7 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像 最常使用的 Registry 公开服务是官方的 [Docker Hub](https://hub.docker.com/),这也是默认的 Registry,并拥有大量的高质量的官方镜像。除此以外,还有 [CoreOS](https://coreos.com/) 的 [Quay.io](https://quay.io/repository/),CoreOS 相关的镜像存储在这里;Google 的 [Google Container Registry](https://cloud.google.com/container-registry/),[Kubernetes](http://kubernetes.io/) 的镜像使用的就是这个服务。 -由于某些原因,在国内访问这些服务可能会比较慢。国内的一些云服务商提供了针对 Docker Hub 的镜像服务(`Registry Mirror`),这些镜像服务被称为**加速器**。常见的有 [阿里云加速器](https://cr.console.aliyun.com/#/accelerator)、[DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc) 等。使用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub 下载速度会提高很多。在 [安装 Dcoekr](../install/mirror.md) 一节中有详细的配置方法。 +由于某些原因,在国内访问这些服务可能会比较慢。国内的一些云服务商提供了针对 Docker Hub 的镜像服务(`Registry Mirror`),这些镜像服务被称为**加速器**。常见的有 [阿里云加速器](https://cr.console.aliyun.com/#/accelerator)、[DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc) 等。使用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub 下载速度会提高很多。在 [安装 Docker](../install/mirror.md) 一节中有详细的配置方法。 国内也有一些云服务商提供类似于 Docker Hub 的公开服务。比如 [时速云镜像仓库](https://hub.tenxcloud.com/)、[网易云镜像服务](https://c.163.com/hub#/m/library/)、[DaoCloud 镜像市场](https://hub.daocloud.io/)、[阿里云镜像库](https://cr.console.aliyun.com) 等。 From c5c8b7d20a2a6850c83f85faecb4e4b48d5466a8 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Sun, 31 Dec 2017 09:44:51 +0800 Subject: [PATCH 284/611] Update introduction and read links --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 882859046..51576571b 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,11 @@ 无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker,节约有限的时间。 -本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍一些高级操作;第 10 章给出典型的应用场景和实践案例;11、12 章介绍关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍一些相关的热门开源项目。 +本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等热门开源项目。最后,展示了使用容器技术的典型的应用场景和实践案例。 -* 在线阅读:[GitBook](https://www.gitbook.io/book/yeasy/docker_practice) 或 [Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) -* [国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) +* 在线阅读:[GitBook](https://www.gitbook.io/book/yeasy/docker_practice),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) +* 下载:[pdf](https://www.gitbook.com/download/pdf/book/yeasy/docker_practice),[epub](https://www.gitbook.com/download/epub/book/yeasy/docker_practice) * [离线阅读](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) -* pdf 版本 [下载](https://www.gitbook.com/download/pdf/book/yeasy/docker_practice) -* epub 版本 [下载](https://www.gitbook.com/download/epub/book/yeasy/docker_practice) Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新版的 Docker (v17.MM) 进行学习实践。欢迎 [参与维护项目](CONTRIBUTING.md)。 From dddfcf2832db67f10f0f6d8eb596d7eef59d9fb3 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 31 Dec 2017 10:12:25 +0800 Subject: [PATCH 285/611] Add shell script for offline read --- bin/offline | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 bin/offline diff --git a/bin/offline b/bin/offline new file mode 100755 index 000000000..dccf5ed28 --- /dev/null +++ b/bin/offline @@ -0,0 +1,20 @@ +#!/bin/bash + +if [ -f offline ];then echo "请在项目根目录执行 $0"; exit 1; fi + +command -v docker-compose > /dev/null 2>&1 + +if [ $? != 0 ];then echo "请安装 docker-compose"; exit 1; fi + +if [ "$1" = update ];then + status=`git status -s` + if [ -z "$status" ];then + git fetch --depth=1 origin master + git reset --hard origin/master + else + echo "您已修改项目,请提交或恢复原状!" + exit 1 + fi +fi + +docker-compose up server From c2f14bb2da5236a83da073e0f9fe75140262b3cd Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 31 Dec 2017 10:30:53 +0800 Subject: [PATCH 286/611] Update project docker image Dockerfile --- .travis/docker-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis/docker-entrypoint.sh b/.travis/docker-entrypoint.sh index 7302ef35f..6cb04ae04 100755 --- a/.travis/docker-entrypoint.sh +++ b/.travis/docker-entrypoint.sh @@ -12,7 +12,7 @@ cd ../gitbook main(){ if [ "$1" = build ];then gitbook build; cp -a _book ../gitbook-src; echo $START; date "+%F %T"; exit 0; fi - gitbook serve + exec gitbook serve exit 0 } From 5f32d8f5ea0bc2490ce00387db77869037a28878 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 31 Dec 2017 10:33:52 +0800 Subject: [PATCH 287/611] Fix spelling error --- kubernetes/concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubernetes/concepts.md b/kubernetes/concepts.md index 829610119..aa29a173f 100644 --- a/kubernetes/concepts.md +++ b/kubernetes/concepts.md @@ -67,7 +67,7 @@ Kubernetes 校验节点可用依赖于 ID。在当前的版本中,有两个接 ## 容器组 在 Kubernetes 中,使用的最小单位是容器组,容器组是创建,调度,管理的最小单位。 -一个容器组使用相同的 Dokcer 容器并共享卷(挂载点)。一个容器组是一个特定运用的打包集合,包含一个或多个容器。 +一个容器组使用相同的 Docker 容器并共享卷(挂载点)。一个容器组是一个特定运用的打包集合,包含一个或多个容器。 和运行的容器类似,一个容器组被认为只有很短的运行周期。容器组被调度到一组节点运行,知道容器的生命周期结束或者其被删除。如果节点死掉,运行在其上的容器组将会被删除而不是重新调度。(也许在将来的版本中会添加容器组的移动)。 From cb18e6f08f3ee8f37d2a123281241ee17922d339 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 31 Dec 2017 14:20:04 +0800 Subject: [PATCH 288/611] Change debian to alpine --- appendix/best_practices.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appendix/best_practices.md b/appendix/best_practices.md index 2d6e83712..21f9c7c65 100644 --- a/appendix/best_practices.md +++ b/appendix/best_practices.md @@ -64,7 +64,7 @@ RUN apt-get update && apt-get install -y \ ### FROM -尽可能使用当前官方仓库作为你构建镜像的基础。推荐使用 [Debian](https://hub.docker.com/_/debian/) 镜像,因为它被严格控制并保持最小尺寸(目前小于 150 mb),但它仍然是一个完整的发行版。 +尽可能使用当前官方仓库作为你构建镜像的基础。推荐使用 [Alpine](https://hub.docker.com/_/alpine/) 镜像,因为它被严格控制并保持最小尺寸(目前小于 5 MB),但它仍然是一个完整的发行版。 ### LABEL From 6822561fd1627d318ea88d7069329559775947c2 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 31 Dec 2017 14:26:03 +0800 Subject: [PATCH 289/611] Update appendix repo wordpress --- appendix/repo/wordpress.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/appendix/repo/wordpress.md b/appendix/repo/wordpress.md index 4243cfa77..4cded1ec5 100644 --- a/appendix/repo/wordpress.md +++ b/appendix/repo/wordpress.md @@ -14,12 +14,11 @@ $ docker run --name some-wordpress --link some-mysql:mysql -d wordpress ``` -启动 WordPress 容器时可以指定的一些环境参数包括: +启动 WordPress 容器时可以指定的一些环境变量包括: -* `-e WORDPRESS_DB_USER=...` 缺省为 “root” -* `-e WORDPRESS_DB_PASSWORD=...` 缺省为连接 mysql 容器的环境变量 `MYSQL_ROOT_PASSWORD` 的值 -* `-e WORDPRESS_DB_NAME=...` 缺省为 “wordpress” -* `-e WORDPRESS_AUTH_KEY=...`, `-e WORDPRESS_SECURE_AUTH_KEY=...`, `-e WORDPRESS_LOGGED_IN_KEY=...`, `-e WORDPRESS_NONCE_KEY=...`, `-e WORDPRESS_AUTH_SALT=...`, `-e WORDPRESS_SECURE_AUTH_SALT=...`, `-e WORDPRESS_LOGGED_IN_SALT=...`, `-e WORDPRESS_NONCE_SALT=...` 缺省为随机 sha1 串 +* `WORDPRESS_DB_USER` 缺省为 `root` +* `WORDPRESS_DB_PASSWORD` 缺省为连接 mysql 容器的环境变量 `MYSQL_ROOT_PASSWORD` 的值 +* `WORDPRESS_DB_NAME` 缺省为 `wordpress` ### Dockerfile From 36b793408bd256ca69f6dc8ef6b01436fbeab621 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 31 Dec 2017 14:27:55 +0800 Subject: [PATCH 290/611] Update faq --- appendix/faq/README.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/appendix/faq/README.md b/appendix/faq/README.md index d9a183eac..a9590e58b 100644 --- a/appendix/faq/README.md +++ b/appendix/faq/README.md @@ -96,17 +96,6 @@ $ docker run --network=my-net --ip=172.25.3.3 -itd --name=my-container busybox 注册服务器是存放实际的镜像文件的地方。注册索引则负责维护用户的账号、权限、搜索、标签等的管理。因此,注册服务器利用注册索引来实现认证等管理。 -### 从非官方仓库(例如 non-official-repo.com)下载镜像时候,有时候会提示“Error: Invalid registry endpoint https://non-official-repo.com/v1/……”? - -答:Docker 自 1.3.0 版本往后,加强了对镜像安全性的验证,需要添加私有仓库证书,或者手动添加对非官方仓库的信任。 - -编辑 Docker 配置文件,在其中添加: - -```sh -DOCKER_OPTS="--insecure-registry non-official-repo" -``` -之后,重启 Docker 服务即可。 - ## 配置相关 ### Docker 的配置文件放在哪里,如何修改配置? From eb081e5dfaa4e9014455c0ae83297784166e3671 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 31 Dec 2017 14:32:22 +0800 Subject: [PATCH 291/611] Release v0.9.0 --- CHANGELOG.md | 42 +++++++++++++++++------------------------- CONTRIBUTING.md | 10 +++++++--- README.md | 4 ++-- 3 files changed, 26 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc479efb4..e5b7fcee7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,8 @@ ## 主要修订记录 -* 0.9: 2017-12-31 +* 0.9.0: 2017-12-31 -* 0.9-rc3: 2017-12-30 - - * 增加 `私有仓库高级配置` - - * 精简示例代码 - - * 调整目录结构 - -* 0.9-rc2: 2017-12-10 +* 0.9.0-rc2: 2017-12-10 * 增加 Docker 中文资源链接 * 增加介绍基于 Docker 的 CI/CD 工具 `Drone` @@ -35,7 +27,7 @@ * 修复内容逻辑错误 * 修复`404` 链接 -* 0.9-rc1: 2017-11-29 +* 0.9.0-rc1: 2017-11-29 * 根据最新版本(v17.09)修订内容 @@ -94,23 +86,23 @@ * 0.3.0: 2014-11-25 - * 完成仓库章节; - * 重写安全章节; - * 修正底层实现章节的架构、命名空间、控制组、文件系统、容器格式等内容; - * 添加对常见仓库和镜像的介绍; - * 添加 Dockerfile 的介绍; - * 重新校订中英文混排格式。 - * 修订文字表达。 - * 发布繁体版本分支:zh-Hant。 + * 完成仓库章节 + * 重写安全章节 + * 修正底层实现章节的架构、命名空间、控制组、文件系统、容器格式等内容 + * 添加对常见仓库和镜像的介绍 + * 添加 Dockerfile 的介绍 + * 重新校订中英文混排格式 + * 修订文字表达 + * 发布繁体版本分支:zh-Hant * 0.2.0: 2014-09-18 - * 对照官方文档重写介绍、基本概念、安装、镜像、容器、仓库、数据管理、网络等章节; - * 添加底层实现章节; - * 添加命令查询和资源链接章节; - * 其它修正。 + * 对照官方文档重写介绍、基本概念、安装、镜像、容器、仓库、数据管理、网络等章节 + * 添加底层实现章节 + * 添加命令查询和资源链接章节 + * 其它修正 * 0.1.0: 2014-09-05 - * 添加基本内容; - * 修正错别字和表达不通顺的地方。 + * 添加基本内容 + * 修正错别字和表达不通顺的地方 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c38c897de..0a2460660 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,17 +6,19 @@ ```bash $ git clone git@github.com:docker_user/docker_practice.git + $ cd docker_practice -$ git config user.name "yourname" -$ git config user.email "your email" ``` 修改代码后提交,并推送到自己的仓库,注意修改提交消息为对应 Issue 号和描述。 ```bash # Update the content + $ git commit -a -s + # In commit msg dialog, add content like "Fix issue #235: describe ur change" + $ git push ``` @@ -26,9 +28,11 @@ $ git push ```bash $ git remote add upstream https://github.com/yeasy/docker_practice + $ git fetch upstream -$ git checkout master + $ git rebase upstream/master + $ git push -f origin master ``` diff --git a/README.md b/README.md index 51576571b..e92ad8215 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ [![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://img.shields.io/docker/pulls/yeasy/docker_practice.svg)](https://store.docker.com/community/images/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://badges.gitter.im/docker_practice/Lobby.svg)](https://gitter.im/docker_practice/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -0.9-rc2(2017-12-09) +0.9.0(2017-12-31) -*修订说明:本书内容将基于 Docker CE v17.MM 进行重新修订,计划 2017 年底发布 0.9.0 版本。旧版本(Docker 1.13-)内容,请阅读 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支的内容。* +*修订说明:本书内容已基于 Docker CE v17.MM 进行了重新修订,2017 年底发布了 0.9.0 版本。旧版本(Docker 1.13-)内容,请阅读 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支的内容。* [Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! From 8a276c859556cb7e0b159041c1559e9569520d4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Wed, 3 Jan 2018 01:08:24 +0800 Subject: [PATCH 292/611] Fix git url error --- cases/ci/drone.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/ci/drone.md b/cases/ci/drone.md index 59bdf1512..0d617e839 100644 --- a/cases/ci/drone.md +++ b/cases/ci/drone.md @@ -105,7 +105,7 @@ $ cd drone-demo $ git init -$ git remote add origin git@github.com/username/drone-demo.git +$ git remote add origin git@github.com:username/drone-demo.git ``` 这里以一个简单的 `Go` 程序为例,该程序输出 `Hello World!` From be6840b9c2363e522aae5a646ff15f46d0c4fb0c Mon Sep 17 00:00:00 2001 From: khs1994 Date: Thu, 4 Jan 2018 15:41:34 +0800 Subject: [PATCH 293/611] Add cover in root --- cover.jpg | Bin 0 -> 218606 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 cover.jpg diff --git a/cover.jpg b/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad6fa3281e95761ce8e10fc11d0f1450ea15a622 GIT binary patch literal 218606 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%0Ai&CisiM^u8NYIrR!oA1R!p5Kr7N(l*Iw{LV~cL z5#T>Qy6YcP;q7ThA6Fm^GXX}25YUq|n}tBgv`D7H*B#eZbQUlLBD3o{2cSQSC^7el z24U8p+lGM5;sXH-KvP-m&}YZZbrPQDj)>CZp>j0O2>MM~Ow$18BqF*Z0^{~{TKIYj zAZm7U56C1wJwVI|qlny!vC|u65TFsxjH^cp*LaO*b!q{jL{;FVrTvh{kk|5w*L3(M zA~g~7C5R}0VVgLx7u~~6Df88Uc0}sEP?$seso7nFZ~HFaDUpjf)M?Xc3n0n_%IyE3 zecm1i{L`ko?hq!BU+<1hv~03@cX`FN%FD-e0(~mI5_bR^&ELT4w3Pe=pV`i4DCTwD zL+%CJo*iNBhg|UGfOU9OdP)|AqkW|N$DJ=CK6~47+LHWgSU-Bp<2}*I%6bZTK;3Mb zb>_f3RAwzc^N zp;g9u-V%F=nC?GwLRs z=Y?3wQ^g8c`zLglS9&n&h?uWQaP152>$6629S!IcnAhIsHFWTt|52%PGCn%#`;aY2 zE}A5apmG82JOG_lQ!yaqwI#*Z01h@AF2r`HF630(r}gpZs1?``$ZI**{H41NN_`*r z6m&hzNB03KvPPa-3A-pXg>Kgx-SD5~;MsC5rrV*Fy_I07PrO%ioQpJ_@ zp!WM|8q3`MG_yvf;b+YfnGuBrq8GQfv@Ek+dL-nIaWZ@Ob?yXe{4e>!e}SL>FHCR$ zyB#n8Ebm=H5Z8k-waSFQJn`gB#kp9>d?rE&Q|zbNyJA|_cgV_| zoy3K(zz`l}r#k;&Z@braTV$06S^0#<*X&9R{V^&x{_xDau2>)S1SX3f?s4BMcoGm7 zl_AwEcj_d+PDs|-(ONo+U8@vZyKCHYgL&$t|CNu3tf5KV2fFk(ZYXEUmbS*3JdyZ_ zxJX08nE~rEhB^ON?_zxh?#oP$KP;q#GBXx{K25zzVNEfy&B|-cXtDGowsR#Gc(vad zaMbIFKg(>!h^;p#PPZw_eSsfmzI;UfKFWYzXK<|!>3O*$@3C;AWXNJP)m>r|7p2;P zJ+8zsQd>=F^;v!+l05w#5$x?3aADI~H%jC^3r8m|VXyUG$B(;p4j+xJcc{WT`mc@U zID1Fh#E>#;3gRpbL(m_9Oyy3EM*sQOsN_fdc{346ZWZ}w#LLg_tFaQlWYQ}6v>%@Q zO09_ob?oKDKX~?`J=I30_1>rsIH&)sirUjbG;o(e)e< zNh@S*kxayJtrjvG$74QvR==v)jr_0ckT3U%8E+9r9C{hVAPoH zq$8>+Qt(h((JE#n_vfLQ&$v3L1eKvO-D3C!9rQEfnNQj^qe&gZ&ddyJYdlX|+%KWA&7?rS zesdwv=MWd2?`d#tWept#j8gwqz67NH)~x_jfc$GopzTBd?gj?`XAl-e4xn@c-W}S{ z0_LADBD*NZz3LbdLV&XqGhG5>b0l@VE%iL_ia3m-3b=(3Oh$p3t`&^udL(MX14t2H zVIp8-l4~}^`dW6_bxGCDVcOYkoA}CLpMXgEE%MVm!fP6I0Xa~2&((hm@!Z72-eEjC zz2?lmhTTi;9z;$hA`pywj;i96f0yL$)GioQBP%D1}w%xjq1o6bOq0~CDl3|I$*wm8Nf@nCL-Ul9?k!#TvM{)rS<0H z^}=|&bT!V@rUk(&p&0C&?M{(r#FbunNtIcRXRO3cX@MrKd5w%Wi+hT4v7gJdR$vca zR4aWb;5~o2#k%f6zqp`wcUNE}-&plPR@Hm&Tx01@E_cdl#WWV1?sYGv++eZiGV!+f z4G+0Ol_%ND{j^lx+YG57xx87(2@9{btu^Qm4^6f$8yD}@E2t3q8915N#CzVcAXQz; zY8}2V1*o+ZeScmWZrF&GV@q-QW0y-`q|4Sg?5ui)`=>0j4=jjI^eutf{fqEBO$qvUCzhh;I(av|>*U>PMwlbw_`K( zQTe994OxWj_iv-HQxXe|>)#L`eNxevdAhY2<>oAT-&uI&n?sBf%Y43k9!E3nq4D`a zwBh7XJHRFvB6Y54C4XC8gRp(dvT`k*2RW$sW7Md@6sw6qp zwyAPuFlK0x?*)4_pX2K!+8}vCvzR(Jlev13iIWPwdkh-986Ipdd z*m8j6Sy$DMIGaTk3#nNwrg-hzHHle)aLhMM0-B`2ajPnBSA$TGzGmI6cf-9Mj_JkZ zP&9tLN&k+xLO<1$OVQQS-gDl9^hYKkOPUO`uwt9C*`LF=`gH%#hwq>L_rGI*^1tgE zy$b8VX-3oi>D@Q9PgF4q#OvltYpQ6anU_SGjLbFV8HVULOljxULguS_q`$IHw~t^_ zKf>rNTNLSKpA@X$)cM!4>KFZ^S9kkt(8q~()N_FpNqgUzS`CmQKsk!_nIqh4FeUIY zHR#?sFt!q2xs`{OA%}Q#dVGKqxmYa5KQ&K$BFE6>sJ>n(`iW<>q&3){fMB`GjP19* zK^m5bJcVfNg&eVa69us-u?|FTi#1L!KUBG7T&tHJnXwxSDG$n7{^{Zjg!KAQ(g2&0 zzR2NSfQqSwv|(O90fcnpY8i4Yo&`a_TGd3FT6z}lsRJ*DsPKC#IvdCQMCFe-LmiD#Wx^Cm7vZa_dsfK(5tLpn#(U3i!}Q+P(UmECm*C9@@4TsR1CG zUu}~dN5NPVzXQ-<*|0N^Y&N=2*?A!;NvUS!t}kerkPd%et$$=<@ZtGbxhj{@cwGx^tHZPPE4FwJn^ zaqmkQo2Cqz9Oc_8+=}S7zEI3*IT#!1)$ab`L+*kpZ+$tI{8x67M_gG%db!2U6r4qT zpssDdYczP{_2L0*-IOCeo7OzME&(aUjDESQ9G&QBjV>_Mo;w`$>C8|h%GjuQet3Ch0wt<~eyAt-&*UNPWLbbR}Nww>K z>M!T0y@?<&2 z#jdJub;>ns5Eu>0=ACA?@p8mlm{L@fL`iTE1mK==dGZF>=~nJSla*CGc=cCz-ST_d z#nXDve`%L6#o`(z_f!LuNM+dQ2sl1=Dok<~Vq}JOZuIA#Y}OHHBaJR(OqbW^asDja z1#B~0Q22Wj0aK?#v|y86bh%PL$8UUeS!fU9{R&B}Ep~8B)ep4~M*Dca-uCAQ zm3h5Gs;`)VZ6hPSyY@%%M=PkDV!9_z`(^{O(S?R1ZvbFNkSwJz-t7Dcce&?=#AG43 z`K^F$KN=#voyXnsfjtD^bA)!UVsp3Of!h*0VH?cUz#uxa@ytbr9?TnS`uiR_mlb3t z8^VltEOBs+L<}+=fSRh)@I35gg;yXXU@=Q31ffNjtbebBp#b?=3>mjl@zVV^gD2O% z2AIkvG&2x2;82XG*DV4aW}i-HE+Jf0Ya7P*(R={{vSrki=pO1w-vLvZ5Fa{?8VV&0 z%vk}7jTaF^ZVuU&;}!SiqhbJu+gD%wj>aSABtIO0(B6PEOwu6GPJe=+b?|T;WM>0% z0OHW|DtoJ1e2Ox~cdCqlV#B9RrDal$6c z+%s>t6Nih|Ki3Le!<*OFLrpn<3a?EHj54^KaMw|3(l6w;7tN!fsmM0iky1DKY3=!x zF!<00tL<#qnZ-=6y_bFuXPZ65Um3a!YcW#A@`hFHG9~c)Zmy{_qg#?Xk?H67^x^K5 zEtRg~({0K()_$x`Jc>gwG5YoX^x4b*R#UaA+=t6W^^5W4 zphNrtWeavyJx2rc>Ft!FivX z^Z&;}`JeSQFU;RA($LExe`93#o$=t`w4%%odVX|vn#w)0xj8y>qIlQd^y>4r-V>1d zPw0sodp!X_{Al#_kROEDNjO@C)wu;aWU*gCDdv=}uuiz=C=5q8uA#sU{ikv>{Dix8w6qkrR- zbq8Rw)h)K__C)5~D6quR;0H;>xkbumYD!HY$6()(gtM(D#CwWrHKHN)7 z8T<<1Gw3;Eyv0vGmLfe!I|r2j*58iolPA*0IkgAmVyNHd+!v;($O5s2nvjn?bw&*IKpLC0cEPb%L6P$9lU>Sm~wnTx975 zbMoNpiU&f1l~=r;yz8Qyx38<7gGAKoaIZxqP6a#$V&V}TAwQPK>}ikuJbqn*Q{MY; z?FEh^1I*n>I#Y3egFzfl38eNmi55ulSj?v8sEv7fcTj^}`x?z-4nSR*Kot8h%?>6N zKP`s60)_-)IN+>Ng%|E9BRaNNV>!%AQ3O3$SeU3+t)rLH8Vhv&ti!c7=?je+amL24 zJ07^m3{>TM@xQGokZJ`EwbW16a`g+~I{@vABRZ(JP;{n2qL=BJ8R8oG+-_9fyBZ(_ zcv3yyAVqM;vPidf$OZVms0y{S_3-QJ?0MvmB<3SJ%0N++-*|RGCxv9Rlc9Nx5#VG0x zwO)7=XNt`Zja4Q4(&gsu?Cz0*VRsT#mX54qz_J7BN8$nKqPrm(>iW#XJ>mdV@t5QE z9j3QJN>!^S{H*gTD&jBMP0~9trRMG-$QE*yK)*Ju-}SopY;5|btnGX{O)Lc6zj6^i z34FW(h_ammQIO0mPK_x)G<_0z01`yVRijq>DOzT82&a|P!0LCOs8}L$#$b&LF3h+0 zz!mVJw>bbY(^L7{nt$jm|*R>Bo z<9Sr%LV$BHSYS=?n8BL8K4kG7YWCrGk`cZj$ZwY~|NWT*kg*5}x;^2iIunY!EwewY z4H$jjP16%`lLg958Bf0t45x-5bkl^R{*9_>YbU7ZXSYL4dwPyz)6X2-0oNc$L4Zg_j zr?hL*VOTF6RFC@4dgY49(p1JeH&rVHUARP;h=?#)&m?)gAZ^V38ognI;wZKNt~>H& zF^~vE)IG#&6qEVf0~BQ$)Alv7|C_;V9*O@d*=8srVDK1yk8Zc61(=R5L3~A;;UVqT z3_zYJ*X&h-AI=JLaxAF5L72csBw+cTezW7h-GTmTK<5N97yGmD2R4Y>U#o-BV1jWU zh^j=ulAsjsp_T#f{duHNmLYszv9IB0l?hDc8Qf2Psk*cV{K*Tx{VBvZW#HRSE5610 z3LjI6y-hXoeiiE(*trJ9v&W^$2isdpZH(7!c4T;TI@HIkdEZ&&xPhp391$l;AwlGhU0eR&kbOqB4cZ{ zDe^yk9N+QClLwJkHxJ`VRip_VMzPWtt7}m2cVG_Wv+W9_Z2{9#3O!E(cjK}v{CV~Tba)ykZ}vCPhn=pwn!WXt8=AG4 z#yS}kiVZu*&f8*-&m@_c#qcoJ`LlXCGx7^D?qRmn+_E_FU#c?Y_M|pd7Nm~Df68m+ zepCCHmq45jRJkD;f^rzS6e}fbb;9KYn{Q^RjQ6t%XbM$x$f;oa0dDdDBmo_qs@l@c zVqq1}82klKUN!fKoQT&PX1lOCcls%kxshJNf->gA?IooG>lr1T`2}&`Sg{Jix!Asp zp3*(u!Z$ZW--a(Y+IT@jU%&HIa^0s(JQmKB_%JUvb2~$664jJ161etJAGGg7E&ItW zA9 zE9ksstn)Cvs9$2^+E@Sy{R})Rkv=C<=T2QBOR5#X6xu$#5Qv5v-nov_Yxt0GrQBWr zgeiDw2Z-^{2k`?4D-6p+P5I#1z37ilXGVWk&qR(c0?WW0x9Lr^7!~D5JWidGWcLwU zIkE!J1R95@OvL_InM#~sOfpv&DZSOy;PvzJ5xFm7%qgc;^+39`SMsUPp5#}XBwYaIt%qS z`TgU>^~|NdMF^c~`W#?Xdi;6oBx>6mD3utsMFZdG)5u9wU^e{9dAe+|sYi|X#EgWk z3h=HqEDgN*ou-EDdDW~HCMh_I}RE(H|pKZeIXe&pZkCLm1Y$Ao@~ zR{Eehi+YbMqH}n?a^_f$F}Lij8+#D@gP*<31p$6k6?J-Hvf)%)K%Is|t^~4;@X*1l zH6+^?8oKkqqod{RnvyxSc4Xwl05h)Mh@?k6Eg^aYIzRsG!OV#&uJvlIXbHKh7L(bR zBIj_WS)RpT?B9;28EQ*;cqm&14jIuc>W*qE-JL2WT&v1e;nz6oI`HiFX!SJ6~nJjytY5-uecJf6r&qq zB(dEuctb)Y2*?YyM|aRudG}KM;rjrg_NvyQ+s|nB!Ts&ZN}yCQKn&k278eSa0!kT| zZ_`7_QnMD8(rI75!N|9e$bd7FvZMz)jda_(6J*`)x+oU}D+9j(6T2>W0bWyccaXgx zfZ^Q%sH*upy}cJk@i2hy$Aqz*ZjfD!3`z>Kmc(<7?0lcmO7SzOy!r!cg9ps_ zJW%Wxui4ii8NHXcxfW5}a|q$yiPT$|S<7I;u5g65I08dE>UBnG%eKTKmWuq+HgNCT zqiG;3k$JI=Dt&1NmXlwuH)lwax-SQ;H`d*q1VzEr#U}PM3QJ}4n@_4Qa^b-|PDfq{ zUQ!Z#f+xtWmKRzCyho?fC3{)dcrx;+d5t)qluBN(deghAVxm@&pR5Ee*u@~5ZagH! z9beVzj$rGLyMa>epc{YxeC=De!Lho?>Mk~&L24h5^e7i}C}F7RNKmSSjH;O8S2Cv1dI}JYulDR+BG%$(g#}g)(;uZ!}AKfD>1j{OwbRaBv=_#0^5flwYQCcd` zd@;MO*an%;gJMmnqFkHptMTwl=mwgk==IQKVEK)YoO&Vz6KSv^=<~~J3Lcvm({ugP z=vYmmc*EcjgCj+N_1yAuZTX@zUabeN>>2N8nOVs#TZD- zsivfuynr4=$xiL{+6!xQ;Tt+1GT-Jz@e}8Z&m4Ih5Wj<_@+j}pM*{f0?o+Q2^yXU& z7D}A6mm6|5yJ~Zy+~4Y7gKq-S3rZ2vbDxzE+KnNlom0RL4|$%_apO(U92aWCT)yCS zm+=m{_tb3Ff?_=T*D||ruAZmWC7Q1zaXx~mka{+%FD-edjMQ$I2lvSj&&ktsR*LJ= zG{0@F$gkLlUUsH40g3rhNkaSDq0eJ}*NJ5ds4Te2$k!gZ;z|J@l6fOR3LDFgMxCGO-o2W0b2~ zDJ_jGqNknCD6YV~+f&$>Wlcnmmztqa1Rnn0GS86KI?Hyl>Wyo+0~?Ph2&I0`LIX9w zk2kQW8?+3%fa!{l^|vRlwT^^Xd`f(9FL|8?U-$YESGtRC?Zb9H{T%*JyVv6HSi|`@ z-7)iP$WHAeDKgIk7In4-?yB1f0J~tJfw*bCkwo{0%wUQdMOJ$XYrAUrbbztk%nBIP z!A9o{2=hyQ3!cD?-Rmn=q1fj9dKvIwYVpy|9e@%(pnIH2!W9Yi3?y@61FCv$v%?7IP1BKB$B* zfY2&x9mxkjm3p~PV4Lror{k+~#e4~usnS18g}0KXzTq=vPo-)I>8e_4e!vNc1X)%W zz13ln>WY?uiT)hnc|m^t#bT`QCVX4xUU~F}L4vqn%j0@MQp^_%d((_q=}Qkg&TxIU zPu~_`?@m{`u6NO!f2TR}O+&9}%!7%EFMImeN7dQh@mP1WL{E&=x`-d=3em7xn*13M zx;A7SvzSO$KkMFjZj>$iM-N=qJvXjsaTD!ceLEE*E-4m-8KgFE6}4wtLs_c|qq1>6 z*AQ&fha)NqPDNuGHi5`w$oC;ErnSJV#Z!8DPY1lAW+{Uj8s*8xj+v@gS+kC{a}7}? zNxts5I!iH}{BawGg=0nYzCz3-KmN6nlKBr;QUw$k?Gk=eDh@> zyN=xgEXh--n4`pBbme#_Gs~u{;rf|YCqD%l3!f-ZQh@iq7Eo^R>E-dAOx8oamrtig z2AJ_f`WE$A)!jrr!|fmGyWVgJ*c^hA4X<934%d9-W4Lh$!OWDS;09OYk)r~uH;pD` zM`}r7vt4e@d!D1fJQ$2#{xZ3C`nE%5MbxU_Q#hwV2Q%-lq>%- zXs3|{t@bO?sM04unR&+?9W2;7`vVyH;rmHT6+y0BFXZ~XE@5z~q0X2sx$j51U+ql@cO{N_)26cdns!7G69XedX+q0h1rnzn%fNsDf-VH7Eh4D`BK-V6QMKxe$dMsn=^)lGTmW_E4{xwsXvCrAIBn=AT%gI%n;U*HM7akt- z#nrozvaX>{_c$$ru8j_G=bJw1EAxvYKHf&RoXvBOdzHntrDCV1d)PTYajq|a=8oFn zRlpWENiBzPDq8i}bM+MbzDX{m*ZsQ*&zmWPEofK+62w={MuzGL3}_GYajKA~ViwO0yVVhXg~*cI*6h*RR(O2`bDn1dU*1 ziB2!R@omxWk*8lhpC~Dvw%eDXIjXTO!^U9jYvM13;1I^iD4&UIZP%C=*avb3-otc-Ahfi)1f7YAwHd3C%aGyg2VyY?`iJ#$j)ybwf)p?%g&?5g`qF_{}Sk8^LM6-e>;jsO8K zL42zx>zg93Bb|Ezwk*BJchK5?*2n4r?7T|!dWCO-d{uZO=WBAAs9Mjwv*6Xf^ND?y zvKvDmr{!Rr9u8iKQ=33 zz+?uTqPJp|NtoSNBXTQ)b?GDN@10iSRj>P!8F+Q7{{ZyTyvO2 zXO^DHJImV6)|$V^T1;SiQpu}ChVIcQqAThxkdloMk5_JXWs`ldTKGQ8o2x8r5g#vo zr?<>b__oZK>M?zKDbL$pH2U_FA*-mNmp;JQAe!l_;Mn(_ z=-#JD&9zQAR0G{w!GlSXeGPi7MFVEKmu?!){lTXdr{ zNh<2?5X83bnTXPW8F-HXZNWmRTv<5V9IwM(>PA0&BSM7^KpN1v04%r^(t^V7&Bpfy z34KSevbCbd_KLlWW6vu7!1UIciyX0aPjbmP05LSTdm-a)O3LJ8z?%>W$V|#r?3kCy z6!x*YL<)v{9iv@g-v+CPZzj(|R-1|Av(ML)>~=G<1*HS|Yr~b!@AkZ??h8WLe^iii z{<7kE&W`0sef>8$P&W!Wxinv8d`|WGV5FgsS_H5pbg9;m;C?pQ^_U3wb)JBBXIbt# zr8M9j;xqRp)0CrCGknxfmBSE+D4`2}A~;@R`$=Fap~d7Du&93ka)`R@3}L5g$WKk_ z9)PG0_4R5B^Kg7JC6lhzsI!De`G@iVn>K)&fLMs-Yge?oc993y{&7^97BD#|>_P^o zUWjwfcaKKxw&i03#-|0ufB2(k<*Wbr`Op?jxmkBdP0q%!LJkUqsy<+pR>4kd1zZmI zD>VX^B4&ZL1aRSvvjvPU&qn9OD^oz!Y!&?X*5l|wKgV(y$_n>?|gx|hmFfv9X$wr@p3_3VJz5gW-@ipQjUWU+pw4BVsPa|UsGvpT6QSEYT{ zj>BrcyC}B$SLu1dXg%NbvO5Q>V+HRVl9127>YIFDP-Bs+hHs6sTwp=d9nc@ zg!#JxHgwlxsNUYAfbXQgv)~3Pe9y%Xo;ZYPMNT0dWZi#iYn=*8P1Pk9JjN0$F6yM< zs^VsPJWW2FJ`;8XAG89~$5LHriR|pK#iE%nr}bCr$5}0IFXskvQkZupfdz6}+3z;|1VaN=)wdx#;*5 zQ~C*2Z89<~%O>vtf{Yc@vC8cfu+%D*yuhAfz5Ku)2b^~^`>CH%mZDl*8)Da?wEjHF zSI9A<<%PIGMki2;VnXaKDwx#sU+k;qI=%O4lm^gr9kud{Nv=;+2D!JIVp*H>#~}k6 zzp7s}=xvA{pVxZZj}QeO>Q@0yyL*GzB5UuObo6%iA1cFvM{|H>9~bnt61{Zes}i`T z%m3)}wtUO(UPH6D8>Uu5FC5x`IN!zzLxN?0{8a3ya3}HcKPVVOmkr+z4o`g-eM6Vo zbIb$0zZ*y2mqppuH}=#Z8-Pm?7*PEduQ`=b?3WN6T7VFORnR|SF>NbeUTXRUE{Z_a zNg2&m)>G_}j%HV1+721Id5B`0H$nAz#}J#;+NNb5usyoPGjJ!J9Dlj6AmAyzmdtMi z8-JhlF^w!!NqDUW4V?wU7R^r8v)Ja4T#aSVRGbs=qUu?wpE%2^gnrrFyyv3x74nIA zt?psPWGrK}QSg_h!`)XdC&(&SL_0ivBXbDc4S$eVYNdK=bFXF01jZqlI?6zX4hV3L z12pJ<`yS>KI-&mj{+3ru3umN$ZGiFiUZ}=oMd*h}am@|&B{4k7V_LdJ*1wNKD^a5P zR^{CfObn4jPM_+P2Zd@XS+xVJvNLPn@h_ZKU0E?SQMtW7Plj0f5umI8T>+6N_fKnN~5eFsBtY#I|6d8LbPR{rJX`}c|6eE*d3+9SDy~Q zwr^4}^VDiFPFEUEE}1U5zS+q)Gmxlj17(*iNE33;Z3IfY(4^sqa?59_IVnMj#)vhz1j$HG6r zHnf&f!Sg?|ukQ$P7w|Y&p$36S`W4ztiQqERcB-(0_%qVGEaAB6u~8g2L?UT#cFstb zSa@Gsinotn8k_qQL%8c4I%4>~;B&bmeGLl?EQOZNBvGkg$9-;T-E>mGh|(@4o~-7q z9wL49`AXTQ0TmhES!{kUI4S1_BpJ5gZ$-I=XjI2MMT{vJhY#Y8aGNAVoGfL#oS?-QrL=JL2Tqlt-3R~#g?&@6mv5oFwCy8~3Kz{hPtU@sG zUlVueg4QaK$1)!BQov2+q33UYa2#HJ%&+glNNZ#HoOm zDZ%hb7GBe#muk-YUT=2MO<7DD*gM^{sgJjN+%+b_opw}?PZ^j~JDWbVYB22t#>MZ> zapJj`WcE2RBFpZfNP8HU+=@2c862;<6=KYqr_^ZG0J)0806}pKtrgb{IZRbf|Mpr%e*Cr&-7foc1NJM1hBp#buq{@&iz+9hJ^SZ2ysXIXBO(+jTyM9uWWN zD|$+i{GA~?gSFuMLc&YtU*zXM(U%Hr_w4~F&Xc%7i%80%$Lhd3RS{<3(okwL28mcT zABJqln$oqG82(-Mf?pBUW{Fub90X^AywR*oo=>6gkCj#u^#LHEDXhcT?R#>8<&%2=^Tb7qA%O3IA-DX$0UdV5ii>|Q)$f+(Y4rR$h@2?0j6^JEb3T2FDf4I zlUYR1-j_T8StCzAEvOz5;3R%vS|&l)SQS=B(#8~At~5=X1s`1l@facdOM|uX*=9 zAL#16n!z(x+Z}x~kf!(31mtaqZ+b&OE~Ke8iGFkzGv8OU$G;u$j&~q_#mI2~*F0BH z7K0VRmxnQbKI_tj+P6y@L5!E|BEL7@^1aKLfAIihN_!wLaPln`D_21yK$>!TW>H5h z+{mhE8UZtFzS4jVGnKriey^c%f4{(Q~JKcK80MYum5 zB|l9hO4LJErhyVn*e7>C6#`d733XyH!qcLcmRrW$5BtUY?>-| z28eh_Wfa0hEz8X@?3-#=N&$kPh_wG+3n8nt5#da)^C$;YBjC$FB+~^Sk!vkZ_G zxRsz0VA>&Yc4(rDJ)#A68$x+vXVfgdkm7A$@4Pa!T|`%P$sdls^ z72TS3?9BSiENJC{f+=h@2&ZkTgDhKj@;VPqFbD36toSZhQ2RA0{!b9G{>NC_CAly);qMS@z;M4QQldvu325`F6f56b zz|$Uq2dbj9cDZTD9n`cs|FXC{y^?*|lGh(#B7P8u(Hr8mt_b1j^@eHci>e6p4+Fg9 z`#V^#IOCKPuWtgA6$`(0tJwsXdT~Aqo^Cf}rSfEUUwN<_yAuf{n7cK=R_CnM=IjgH zt`=J>Kq@j)=zb5lMfa(Em9NV`u(hj4PS7p#TA{nvwDjjz5%4HmKlc_x1o6JkEISt6 z99BNAH7ZGLXA*I4*g+pN=LpNd_`gPoLB1^x%~G`+hV1Wl5AIY`$AImT+JNFmM*Hf? z4pkX91Sx582TZzzc{97H9h9XvDneMh@95`2dGs`@hJI4-g`ZCtgcM|911XbQbDrJa z0?%5Os7(b}pYMgN#k)v?Uwfv>E%T6tCe2}2BKEv;4R_u_7lnG(fmNs!1n+ZVl-ij# zRXY(fR8?fvfTFiNAU@)17L~Fk3OuD`c3>9wDllLW>sMJvQpi2YNK{7B(k+qJz(6HS zYJRjrODFiuYkE(Mf+?Dnu8PMSEm5Vg-Brv!hg}j*Bt4iHm`VXT&>S){gTzjOEp5!1 zwZnt)i6Y2v#bq$Y0PK`N6}v-%7lTSHeA}sy&YYFk)J%cSKECC<9~X_;Td0F*0!{eh z#l3!mRyX6zVwJ)n(c}U-lgIoZ^6`rYVeRu5-HkJ*>s0FB)m>sFmuv3UBXRMRg^mMg`!$&cC-at&iYY9lD0zP0W@$SR?zRE!+oz#? zgq2tZMVsguk}fg+9GEkCjN(*&#@&myLL>vz#D;c0=}c zvJRms+t~M=Va7Vl()oP<|99s)FV1=Q|D6|Jxh~hoEYEX4_jBL(^A0E+z7rx;w#bEH zWYzPW>)5x!bl(%>#V53I*OAIa#HH&DbMCQt+QzYdcN()rc1d;zdI(vPP!$V?ex zv~*Wsud@K4kwc#;OV9IZ;~5tJF}MLyK?Oqp&9Wep(PfEkPSjJx$-$)KY~7NfApLLs z=6^Xk2b+sKyiS;^wY&FGZ0lasW*47LR2l5+VhQrxv`{>!dELi7r1*QnmQz|R_W+M< zO$;X8$+fD&JZ#C5O4{=@~Z+7_JlToZ!;cPEZB=;ndt%99&>A*4z5gb$E{t?=@iri2F$nR7SNs3E} zRMqxowJr##^e$b<(oB3V#l-hiEom~R=3oUy+<96i5q>vMuE4JY$rbd75B5Xb&Ph#HqJ33EEtaiwoRlmKY{(5>-7iEl7Ell~&m*V#}_& zH3ZEC*C}s;jLVr5KlCuSn|K+4f1)eE5}-LYO*_8RCl(jC^9A1dn8 z=oFLkX6NRy%y#|7D7NLOPq%NreK6FhBG=chDi{owm}8MYDA6I#oV>*c^neM7gOc@> z00~$2Gmqc~14a~{Q`J|X4muw^riuwwbH$$D@BFeX5?ZY!X6S^n00g@#Cl?pkD4g#n9!Veq2V2#NY#KXQS1E|s7O-pl84p8W z^PpelDpk3y77Vs+hv~%UT)SqHci6CPUeMm*UZm^Lu}s|6MX2n-1wOk)0jJE|@UWkWKZvYKu#xcqi?&e@3ChO++drdS zq2XaS8(C|D^*&uv)RM`P^)cwXw?6xEsq;;Jx|ny)0EP2qAgX#M>{1hd<)$3$+9cru zbp18Oj_la1Pr0|Dcvq~xN1QCee-r3u+W#2t12S%b=^DsHnig%IS2kEC0kca?p%vjdW>{r&aOMIeeLhI)nk?FaeVA;Fo=ki(s`5m;{21stJg+%H2W z&^cRi*O1FGG<1iHes!NK(A3k(*yu5TeQAs@U4v2LDYD7)WvdLH&@4V59Bt>KT-nP* zn*OxV_*5>P4mAMY5NTz6oc7=!16!-OdPL>O_7m4@h(3|HvvWw31N55c-eDj4)Euw_WtvX50vn)F#HSWV!|wS=z>)98ixdVf^9mQ+HtqJc#}abKPfWELf|imZCBn&(fK-{0&0&%J!!)2Y7AV z2P94A=}BlWdkGS^qHv7ig2JKrEHR$)DKqeN>!-BnfiLtgv^2 zj#)zZG%`h1qb{4>oJpW0{?GupH66j4mtDl}$r3ua{AN<{xpq=Zww|A!E> zhv0wzKZ)P}FU3He!5c1F$7#*m1OS(-2=jjo3i=aHoois?3;pOLAqJJHSS-y4s7acx zuSa!nc@7iMdw5!lGQ=|v(e_vwQU2<^XW_lx^}aBg*uLaNF-6Nq;iw~w8X)rLc}vmb z=hj zCg*-G;tY=?*6ExQ-m{01fBo!jY>+mS=hMf5e9tS3mIe*OMeJxpCXc zM7=nPtM+T7O-}8H?2?#05L>_k|2g0IUk57s`L-`%rd3G>4ao&%vby^!F@bUt9;-2b z4tQyA@Y?eAzojN8a)+o!_AtN6i1i!<&3CUZPT8a}$NH*N_3F7QWu}rUDA%d!59=Az zhVdwC5j{W9q@l=f9HxiK?%;)Yh$HLz42Q61*yU|4g9xT%vJA9R(@$*CUb#K z3}|%$@V!x2cCc~5-z&GVm0yl_wK_8LWn1#+#1yyrA&T~=iwt5+o^oWqwb7s3VX?aU zrmk0Yr6F@C6qq&+9>tc3PdC_Fzgq*T=~N<`ofBG(HNG7sPHIYZ8qxVRT3v`uJL5WY zt%X2*LYwd^&DNB?=)WKm23cV-xtIdT{z%D2b}pqmRDM1_AcZU@Swhuzq$X~^uE)vc zyF0{W02>S8_pDXpK zNN$-~5U{>+%bh4#Kws&2y6A+M14d?8QZCA z%tWQ5Xe{^vPg#V$5lij}rso9C(H`vdvPd-=?l4}}d$S+fqHwNCq&hxVn03TY!zjer&OyA;JYTbY9{+ul73U`dv_tl_{pH9SX#6v-~__$qN9|B7da*hE zH-jgBLsUe|698_P1@l&JWVTO?e~U#Yi$!STI17#AppEgIyw;#`>xiZPv!hY@7aG zP_^#{fwd3*j^+$r`-yHU(v~sFXoM(-o3&9&8_o`{e=N(7Ffe`yj%4Rc^R|rB_I`0h zU=u?%i#exz#X0+mhmEEPKGYL^n73b)dTDyY<(J#0L3Asm-qQqAC+TV{RRt?+`&kIp zb5KsUgvKZ%=8=)3l10vGTFl*LBELQEh24sjFb-5=*W-j0Sr#pV#`k~)bT{R3t5}sq z9O_=0SC~-32noA&GIO2w3F8F11iMLoAXxFI#yO?2F#<9Zk=Xm#Um!~mEkPckAl7GY zk3fGSF7eDhZ%k0XY2)4G%;LZhltBY}S*R7g-TDp@8@^1!b*)Lb_+Brp>1y`=t`+s| z@*|P&-q3h*G|GM`vNF^V<$Z`|^4rsF-%Gl`+ z9yLJ~U|&1%e_|5j`dQ{gmDYu-9r*xG;ivznL(Esl=vmg@4*XJsb&iiy2(b~U8AN1ANT=4CH;6%Hp?jSKK^uh5VGHww(uM z(d<+m@=z(Qz#M6_Evj4~__|@+nY6cn4cmcTB<&aui?Fby#h|2cCQK)$1O-F{W?c3j zdHmO|A$}X~up1$=en&0ZldCit#P((Wd*gO9ay|1WUOaHF;f?UB5PII?Z9$)5$XQRs z1-DDMj&(bJe_%sbt=1^ZPlB$evEni>av+idb3Vs>ban*24vPt3-X<}M z?8pEGK~HP-MM+-pr445nvz{^D?H7_z-)Td5)Tn~Wn(BH)Kd~>i?q$C z(H*1kg+=Bq6^~l4*DP3>fUnl4KkC8F9HAAPQto%(o(=F9I1o$?HmYWB8~y%3RFmXs zddI5_Gu+15OEwJ6);7jb7W-K8ax47JrT;@y_d5&x~WS z&Xf2SWQ?t^`=?uhCmDw-ObY_(&UVFvECj}Ue_e0QX{9}u6w3J*xxBT=mj>ATaZI+B zsVR#(A=aIz={ z$1tKhA(KVY6?7e7xYY2az+C0MhyHy+y~4mf-vSwj_m5OZ{BAV3=72_LDHWA8vE$dY z8gyAXT-+KPmrXnXAc-?{cqUJuDwwfD3$ELhrKZBif+rWQ9VUHk8gM{Y~X z9?P8I))FY1bMzI(4GT7yRf_G>g{fbcJq#BgL*2RPCfqK%1eZi zP|+FRBmuL=?#+;LTcio;tR*j1eL|rg(7eCAC)lV0inCsgVA-RSD0YxnMsJ-kV0`hxiv< zqeW<9_R+EPpv46h=tc;Z2R-#VEs2`QqA79?UGdms@x&hK;J%Tb>cT z<2lyq9?fFx8-It+Y*aN7{0%06SZ9=Wo9RFkB zQd+zRaGwv3QTfCth%rwu`X&w3Sa3NK>GZx!ZZn08>U0s8`qpz@x8Co3!6@c&PJHg( z?WU6C;%?Bddm&E4r7Vv$Elr--Eygr+*B=#qKVc23!l{Z)-K=|O4Ip6^Hb6hRsCrs3 zWAa6c#=YnCh-&(MeH2Tt3!=5)co4==b8l^;w5;1i8X^R}erpx=81xO1th#YQEz(J+ zIc@dY$os@{Eu;4_A8$*hwG|S26JtTzEq%_tfC1H868qpqv-L;U(;y0kBP8(<7gSGS;1Gr;}s94WC(}p8ohKD8iaK*&Kg8 zy!>WOO^TV!$Bi$m9~B1RiI&ru>jV4gcc<(Qic@PVUYct*F?BRGBrOujTPHej-CuhmtW zc3#-<(e1oLK>f5xF{F>r@?hRVIIPxYu2t8j_6;OF2{;nEeEH6{5}wsQ^Dd-;t3l_- zgO2&Nddf3nV?F+9j0tiB+=Z#GYe%1XOn`r1`@(c&0fPCzhTadzq%+$R)gJjrQmz?( z`mSM{ATtE;WXq;oHz{n7NNo?vNY6l*9k2B$JNgwax7AV17ih#RQ4JSio{)W(p6y*U z(4uyAP~;g+Y|nDB)5VWR?^m;&>PV7N zn=f;%Ofcc1AvVhb9z;Xts&menDQAmysNR_Bd}lJFssdRqLukQy0Z=DFl^iOAr2`=q z3OI?#y1~}>L=o!M$T>_zf!R{<53di~V?p42ST=&K>HXy?0JY*I(aZ%|7b(B6`}d#G0G-2{D%osi|#p6-ZySs~MV5H?wI8H1*Q+M5f-_ zVs)l85s$WB6VuvzzWq_SIOJ7;Xm7!HsGcI?!dtEGXc~+>q_ik9A5S5;ZAqd-sOhi! zW{7ih_kI(@X}*v%Kz28Zr~x`hz5Sz(1R-4b?x-p_GQ*_hCN#4(&?E}Cvkt|4a3r%5z8zTG641b=cCHn9p96nYBKNL$pkOyQtOv`z zIvhjzxqRR$%PuO_6oQnL|4nQNxnSd&{5*66SLKVk?5HSUKU{8jB@4F2iRy0l?gCf4 zx9_k{Xzy*BSfqG|DTYA@z*sQ(c4Qae-^%#Z=$b|R%*X_8WDc?|gNFq4I00t|WSk7I zTKQ#NRYC>PssxEjyw=PC>0YRA%fS7a9Id2m3@AP#R58~FO1rD{GtT=g z58iXVoSe`H{^L+McY262DH*Y~FAlKg@8JI!0)T9LPEh2Wd&S#9{p?w<{R9+|nYu$R z09gBIa`@spRP(Qo?qjTnA-|+$f@&gi6$(PX^ZD?QbrDZS## zrT&3U)gd52cFuzScfa7+?~50_3fAeGR~B&5D4tePr*6t~yf4?+91V9-EjtemwJa~q z-69`ExJjSFNX@9(l4nHV%m*R9};6Bj*6@n7>j1bCnKt}^CgSF^oUv$EX+eHiWDikk5!Z4DjrJ9kv{B=r_`x%vNshH^LkV`zeAko4JX zNT24443|Uwn}TSg5HywlMEQA7rA+r?rSd@*oUNL&a{{hGoR)z9B@Vt3B4c;i*PS%l zVo0;&gC@!Id4Mi`Zy0gix?ARtDX_ozTYHY_c%;+70E{yz68! z{VVX~P5D@M5VN$txz%df{padtxAw0L4Lncpdea)l_DkcT$V3h6sfCoMOt)fN!`qv` zm2tpUNxbbl*E9u{+Pwb+o2JWVsE@%Pw>FVDQZwSyxq2BAC$mg{rzwgL#n3;3}wm>tZlFxt$TLS^F8!Q&DYwRH}Fj7PO8I_;{E6> zlFk*a+fyg~H~sHeeBCQ=OuL6`xquakX^Wu0TJ0A`KEpc{I$i(VPE%kXu*z?g%)D?M zAK+`V;}fEON5bO1N83K|YG2q0 z{J;?=Qg9>ch2w_z!jBEvmW{+F)u_P(CE%dYMrH2Pw#>Msm!yH<)|9!6MMC;=6bHso z$jLz@F>^j4*Ws0HY~E=*?}UK1(=AFyL(Tdtx9cv1i=YdZt*TdT=Vb2AsN%=w^OCG1 z5pz3Cw~##jLl-J@#x}|LF9NJ$QN#}?S#sZI_PBc2tr~=Poi(<%;jZb%S;Y`Xu?ig5 z7a%*`sE%(Xv8_K0rLBix_WwNlAJ*5Z|MPZ3V$nli8(R29%KB4&w8EG0n^R>awK#@N z+`8Lr4}MpNVm_OP;oVsj`^TV+*f%#lC_`ssK(L4UR0?Dly<~fs2d#nm4492HxF9^%%>WUHWqD5x7!1CB-A2 zbnWMRrZv$#8L4-Y#5jDR& z6{`Yk<4UHmPGbk?_pNM|X$$bCoQe1U82(1Il1DAoZ3fn3$c%Fb9l9hX>!|>q|MeS; z%%c9$7Ej3R61?o^6~K_T<$`I%$n2~mw-t?RjFl`@&OY)VsN>r&5MgPlM-Q4zfKzHU zm80y$5*%wIX?LXM&n3;R*oazih_pis)$c&SNnsk!5(r37s0&!py%@vLWt3hwTga9s{eLD~C?Kb@%>JO;D zZ_U=~e)4Me1|2NeNtY)+D3?w{b*SC@`Yhz zvt>Rv?h^A4+iurQl&{1TD459em+ULX2BXr3MsH_`n5@;8oYPN#0V;bD<1ochn)Iw> z$A~{ArlesW#VaiS=CH5r7kJf5vQ0h%41%sUYEt99Fx;!N#j=(34W4~e_}?ue;U~E3 zDnj)5*(Ft%U9TB3G^_8$4v+pN~lGJq*ktr^AbdlDi z(V|_-FMJ%lKVL&(-O|0&86`HK^DVaRCS+f>d?JwDwL@ofqIqY*yBp3AO#yU|{}>*# z_on|IGsny$l9hI&pq%QE6=;SkK#+$@zvbchN?b4XwhbO|OhxA{_J&{ab6oqaI!CS&c(#N^O` z@+z!(3^ZVS`Nb-yA&3ea?N8USHySn__DHqTA8#aB>z6>@t0uu5zmCug zYR}0QuRYG6-P>C7&;LPoJd|d6MqVW2oTy>oIdyLB{bI8qL>r{i3tCXRKB&X~cn42E zMQfgg;}I8M10;!y**$=yODU~~IM0R;s$Mgy0%ik<7_^%Oeu*W=vY-6F5r^}5fa3Yx z2MznjNHSi8`cS@b)AT>Y5riT^hL@GpE*7AvjFb>!9pMTQ*U5awyz8^D!)aexg1Je_ z>*7h?Y(@L@Q{B&(Oo`a}iy{6Ub*C3KVV9-$q-0N!|B3b=wu+K9jcSQGHNd@}z+G~b zR5!yW*|gIW97Zm^Yq_SAfh7nCgh>8~o5*vt61^39g zk*_x0FFSIi@DnZJTsgdD@CVi(ihA2Ea!+srY|N0Mh@Lu%rKh z>5+HhPy7o;C8K0-4(?~hR(&*-d-V_}_@?}dYhF}|!D9(`JD4ZMiW(3(ZyNE2qWtwH zOW0{6?&Aa{)7^1WFjiHNgpU#)u5r~4v^BG{)4J)vWt+v4lV!S|MrG4nV4uMhTTWOu zyshNyt7iPDpAVPZ;7ofU{iDb0OIC;&MW|f>^fjXG?u*61J|YAQ&Igb)7Zod)Y8;sv z&*is?rm`-IF@ zhw=G+?=_uSxB&4RQhNQ|E_ofQ08=NUihI2#L_%|&#}fw6Hf7IHnfIYFGs38j)YKrq zEV_l$^<1}8OkZ{m&_xiN*>UeSBQ2&_s`HzwDf)qqaJhUBmhp6}QuLnFC&21Zu{{_P z3?8&*2r$!BF5hFpngi0PlREDeZ58X@iQjF#0^2*vpGK|8aT|6RzJ#%{%Zn$`(d3LE`)=f`_DeF)B8FK>g;4A}F_Jf( zc`>&J8+t$UkbAc5Nf4q^B#8Doe%xYN_IMl^DsGXD7QoT7%sx%}Ecczg-3x`c>_oU; zF6}cllvYJ)zx2!fv+orXZEA`029WTZu^A|XHqaURtWodK9&)>puW{^T(wsXI!wF}x z;OFf$RnMKVyTN5#zosB)nv10bDGT=oxFskqZ~?i{2Q-I|0okb?7xkpGt2Yo?mZo$1 zSDM>v%wM>3Y?mQ+A=Euy=L)hKaV0?|@|*gBYwT!huu5sSaWRwP5KU=R|q3Mxq!X|Q+n z0%f1U&ZWOygWtuZ`^(#l7vQpJ{uJ`eA`z=T>DU>HIc`2 zz!G||LujVL7Ydq~UNKf@;+j|YlX5J9NLi}kC^n@?(2S2x)Kg&IGeJ$f_(B)r;lkNV zy#3XGyxN(;-fphNCpzmJ$vDw!K{AOhc99}{%u(W@T}QPa8Qn3D525WO z6?6IgY^@9j?hIR?+*3VM6t#ySH*2hzp0mI;aVjOLbnK{r{+%0%m1|-LL7Q_0k#9l< ze}bTkPCD+PGfXuIDFW*@8EA<-OWCp_+b9F@W#Uw(5-Q__vjcq9Y42OCV{LNW)<6i7 z*f)1JrTSuE$!(L{tin;gROj_F$iqMTAJ2Zc`&nT_f3GaH@r?mko^4UBX!jV)W8*2c zl-FRu-cpvD%~e|${TMKpF|bQ<#Ap90!c`RhXkoje$5kGF1_l+XEqxn0#otqmd3Z-x z-W7WzkGUY@jhmwN(tV?G&w=Y)b3>expC|6X&Gl}J59$;eX!5TIe6frTPM;BxCwnej z`^TV%rj{IErhVJ)g9Q#7M8IES_RpXF-jgW&4q?!Mq4*YC0`#U)A7b=0WB$;`rLQ`^QV7J?H?=W9EG3_wHFIqXXnf3P-O6 z`eQxzkBN&GXsoRbr-1%c6ih`Ik{6Kl!R2 z#zL(JDoIH!V!{+~wahR4XaV#KAbm1BASsGv)SAeD(dzK$wY-iLTEOYPFkKxNN9s|2 z{+ET;i8dz(J9=|QEV&5SsGXR0{x3WFTNTbO>+7yY9jW-Y`34%~h=9$h(WCHIW%A0Z zuA*DY>K(fmykEK2u}z4aJgG4R959yTyr+A0`}UESa!=Hp=Y))PRW7^-Rf~=tH^;vi`lPCQ zQoo6N>s)RvG@nt!IlG5gac*eemzDtem4g=QkjfIu7lLgs zb>7lA|ByxIDAMVqHB?V^Czvlgl%d8JH&7!D59|yS8&%Y*VT4rm;L8?T; zqo=Me%xiHi=GnG*ERZ{RqjE)GcAGNM^kA}Qo& z=(@lZV)h9=Wk1DZ&m%cz4JN(7cb56@VU5XZr!^1hHA%A5c}cQa;>+ey)yO~yf8q6n z<$3Hg(-l+)DC)#LLfP22#3@$jf;-EsAXEJKw)5r{iaJ@w5EJNU37aX-1sW;3V%||P zK$hp%AOwftm2M=@2$saOOE|f@9|-^n(V`ExS~fon!S4h>43uoNG(tQehfdq#lKTWb zmBX@kflENwDKfq`MpZ07T_(Ap{!L%DYT%i@TW3s`WH zUAjU3%u2a%|M?Cc99DswTGX~={VA_p{)Ok%_Wc$s0vjI(VYFpv{>g-1P1)q}f|AjS zEA9*uMuLiCJ@3tBF%z1_%4$;r`G5ARMr@hhS_aqs&`NVqavQx}nF6gqqWi|1id@z<#$N z9zi>E1ec-4-S>|iC}I1s1svg7#?|<(B${sV?Qa+e1pa@D+4KLs(er;`(y3TFDeg5@ z3La!Lqfa}7*L~TzZ=-v4S0QTRuRQgSA4Re}8~n}TGtNAo!blrW& zsw7(e>!v8O*9n8?#iqJBqcV6Iy@M`WNAeFBjF4`Sl$>7uF1EY4fQ+uz=LmSACnP#r z(R7K-^ik29U=4KXGiWlBeZO|XxG!a8jykF7xsySijalsd{MgwMo(ic~jd@w5Bi8xq zdnxd!N>ztuBkD`*G`!G3Vb;enzL>wQwNjS7p4==|Qm^ZBM8CZY5Dc>p*}`pbu1E## zJ!`5MI(SNr*S-3b!o+|a&3|?3YiPxBgy~@ZW<6ny1m&R*KrT`(97VPTO?zgO{w zUZOsvMZs=53fIXM?WWpxK0T*^9`3rpMH}mSD1&O^0Xz}p_e8lN!w8E3 zZlTzB40p!~2k2O3-Fbp@`w`Op4%gJL^Gx77N2gnN82OsG!J+-f%^E`dkwHzld;TwI zao;Bf3UD6!Tobue=e`5nI4AZ{>i*%;gSD6o^A(VNQJQhpu&kN=?!xEO=Yp7zhZZHf z^f>?y>w|NLjIzH>k@~Bc4iAXh`nuU0OQqDoyp3MjHP?3oB;QR@Z7FyO{SEj0D+*3br!~4C; zP4%u=${>Wy)3CS+8n1hv@w61CBroFe`*3H7Zq9RDU`FO8W_C)a-=|&q!xyrWT=zHL znO4&2bH8KZ8yzqoJ)z>If09EC>hAKPm)+@4X$-_jDqEfYXbNn&`pidFia%9sO&4^C z|0DZ0Wl8R5BB~kDjuF0(8sF@g2nuZUjZCXc?9Xnk8Jwg-T85_bi;rKi__%L~5u{u1 zFWdyrPFP1SjpG=2(xfwaUDHlguwS7gUI3O-thfW zY0cE^5g&MZbqF$VWn9n+K0AB+?at!rkjmz9E{P3VE!*%QLk`2Do%>Z?1fqWz&&b&g zn#g=qzYFa=^-liywb~GU9G_;2Et*G(yWDSa!5j;1dhO);aSEgjdseJ$P5wvWZ?uX# zbfhVF1%X!0wN$faH&&;i{g;pgXUZdTKwx7$ZQv(AtjSIRM`bX5Z4bOh@}#;*D@3iU zucNVNc5U<@-~IAt@Su>m+gQZ>24?3gKmCv$kA3NB96)?H18hO9z`hsSb@VWBWXoY4YL1X zC=nFp_xa7sAD(-?TmZ2V9|AY+9^-=&oo>PXGl(3nVMA9UKe;Xi>kIyYsyGW^yHq)c zKi%gEuj^-`*60CTjeEhNUEgOkq4zLR{{WpIu%SZ`S}K1235wxp)p!uY3g-=oLLMI= zmZ3e7gmYTtgThrxC1ULY6pxQ_nFn7|e)4zf$?O{X@B1z18msK>0Z6=X`A zZgui-*qEOav;s|rRM4Z?uXZkCIskigPD{|sb-yskZX4ob@nJ7L<^kBesn|kSAlt5l z`drf8sl?gV`~Imj#RbFoejP2>zd(fLr?e)F>G3D=S64zG;bgy6iLzuF*Eh@f3Ejn4 zum;x`O5C@rdn9~ROGv2qG@CG3b6UQj@*CQj0M+y6+6QJhzp6qpD2~D|7rqeVqNp*N2nY zo6r?<7St8O+}D9)+BS>khlfqH))O(*E6#@>NLKj6gp$(rXS=U|;H3A+YS8Ba5c+vd zlG}cGgVYhME(Xi8ovjKR;m*DC; zq}IPTE}Sg|y+`hKdHW-{YGQNl?vtYkVbDP|Fl)|*XWR_!5{XLFLAedKxw$D|q4Vtf zX~5nP390IieP8<4FWFXM(ia#{yG#p|JEBS?66r0hTuXd1k2V8?5FNS4=SJM=w*vY! z>xZ^{dKprsQ9_7-SEd){z~k1kkqNf!pwh8pL*n8IH%Z zlGF8BwAm6odJR*>wAC_S!HSyy_JPGt_s%9RP^`P#que$w%W0uRtgH+u^}*waYxV)m zhF?E?A&BqbNsy>bfO?uG2rYC!vv8V0iLC<6XG>oPf~bi|IGL_Cn!Z($|5NzChsPf# z7Lb+ZIa0dQ@|ra(XRrk$C53g(L#|9I-@E@7u7L_xtt#d|KNv7CLCEA3@cxoo&egaR z1nw0HN6bZ7%QpLlSk*}3loCPo-_9F2MxffTR$H7O-YE0X<5Zf9+uxkQ*UwXJ97#OorKau{Pn+QEM>}Z}JPhH*Qu{o7Ocf$xOQDY=0LQ zWTxz`L=19-zR`PU8GRVemgOf3f{*>;d{+ls1aR|+4qg7o)InOIL5G{C)UX2WH2iAbT2=;MEvHhZnc87+KaIltNe55yMb$B1oT-t zPJr(Z`_0x+5ql9OD+*oq;Mjrnm-(a`iRu^f*>>hfwSEEt1|o@d8(t{4YdX~<>@Kns zq8qq_MMP#`+R==NcH<%)IoMKEGzct(Ekff7;3t24+Lp)Fs@#|igW$5q-av0sAXQY6 zomG+bg)zJ1mEDR(I~F7jo*YK8vS{d4J#1N9mWV!ohCv5@L=L?cB0~|QcXNVys?Urp z?iO-Dei*zoPP0uW2Pq6`nVo<9vEeA1InsWv~9~1nHdKJTY z&2pr(&H>*(x<74SO;^#(*LMe=A%>h-N+$R^CX@)EeD69H-OLl!ysoFeI)llnundgO z3c>fEpvvA@Gd~(l`PwItwhBJ z!Gd3bet=L%F~RSVgBO{?ZAP~krQa1&VpjdSY>%`K%7OfRYzNITL)`l3uV8AYH(54B z?pnN*nAP87J%{;(bGq#YReO-MX~o$EXk?Zq!cmGLd9QAM(<&d`X=U^CY-^42nyT$F zexJVxj)O8DxTO17CS#?w4(JDgkZ6bv^25X&WIV&p;K9IAei}w^rR9VV;jkmQxdTz^ zr(S3q)lb4hcwJhByL{lnw!ui*HdwdZ4vr_FRV6cH-k__-9Y{RUeprP4qu^y0#jZwW!>^p2SLTVuBH)`)g$5EZBtO9}8T?9O!fFKI3>uJsWZP1}>l<2S6p|_p#_Yk!u zHdp3$NS%4|!$nF%L(x~3c4tDPV)7g45w&F3=#Y2tKJYCzvH->m(|umaqQGhHdzFZ`cqiv1s$ zgD&=&6#ru?z=`51KR8Mno6y5DEyW`uiRjI3{>6aTKQ?^UN}9k+?g9bacM+HIU5f>8 zXVv%M&!`qe{8scLidR1KWo?dN2c#*5NeH=PI{d#nMzG_R#{vgvnVj7_Kt9FrXQ01^ z^;K3peMsMUuOA!@jT$TSSPVdOn^8?P2kq#*_FT6MhYGy+PVk3J#7{a61323L_mYj- z{|=6wpK0&oZdm>M(R58dX@^TXg9Yy-{}G=~tBj_5uOmjbIK^8sfbIp1v)=z`52FqA3;^k)vFvwK)8uDRk`Rl#l#& z4X`8oub-kw4)fpco>MZbF1dXr+MTaAxRo{Y3W%=Q9Ck~--B}VtRU$(v zKASkC5b(YG={Ve`EdC4QK+vsg4QGrU(RW?n2d+F}9DZ+ZP53IT<}SvRneBByKf7W9KB4*9-YGLd#+$Dct_KZIafh+E=VP0vkd2KP&0kE^ZeL z>zaXsu1b;p9tv-67>ns>AlG>|yC9dSLh~;rZZ*ENVF8p%+)MkXfw)jSC4g+vUTZi` z_S%>*9Xo%CE&cZv!haCM?~9y(ENCLBkaJ-Uo`vV)`%)#AE_*3~gJRpEOw`v4l>AJq z3@!H0VXI;SQaN)+r9^JNV&R!4FlyCW*tqD9L7T>mgDpw&u!3~dnR)zr=!v>nuYj5T zT%14p<{+J)`jC`)+!!Z)xic=B3EyNot$LA$x_^n|{AyFg_#`7l5XZD`y;!go#PO*~ zoFK%tx@-V-4x9g+zk|AHdMT>24|PQeb(O4iXjRv4=_Gc~Jte_Rf3!9FPwT}s9_cd^ zSnv$9^H_h3>PypChYRWHdS2t`paiH!MzsN6jZx#`6R)DVva9mcnnyUWkEvuaO!O~0 z+9S{I@F)5?ZM969Tk)Fp2T^VCsd4?Z%3aeaI1~12b!yKlql!uM0}HZek-3uC!^dIo zyfBN-YLn^?I=Oe)+80VGd})vI8vk z+Sz;>7t?wN-itU#JwMo+yBYMp-gLYsyYkNo$ceg3l6z4-gfLjWUBDO~~!4 zmW!QOkS&0kw@l6^$=TtX^^08+eD?gTG_S7;AwT<~2i*ZZBT;`ga)w!5u`D6e|3;;2 z`&s2H37gPV8?s@7oaH{gGBRx+hkr}*Zr4mLE72K1bbxywbO5f@!(`{%XbIQyj?W{N zhhO7J^yv`b%MCp&CXV!QWVj?TKoaKlp=5r9Wsv?Bg}AA!o}hB8NA%sj8wNwf@?YRE z1hZ81zSu3*?`)94mMsZ`$o8(gsy9rn5P7hO2iNp@AN*hJz2#fe?H@lZq9P(92-2X^ zEg&6Jxo83DW*`mH4Pz6Oln@Y5RHlS9lWs=0OuB27^hS)q;`)8A`#-p!+{f>G9QVWV zfa6o|^E}`0SBdH~h=KN+hz0XRT~g(#&#hfW2^@#0_}biwP60-ebV;1Wg1TYzu144m zvcMEXHPOkGilI-FLQ{`CMLL7OMc&|jnU44FZ0vum3GlY3`HKj05W4AXdkpRiH{=u0 z%%DBrf(ldmiUs1mG<|k^eS!Id^LU9Oi#oH)KJ3mVDgo){`QAE$UFFu&ykJl0;x`S@ ze0dpN9J~&k1ok2F6f+**(q+MsNic7-l`42Ajdg0B?vEX#fEI4o)c=lP|BScafH3@F z6y;)>z_Sc>vYe9-!tjZfZ6SmaHLbJ9wbjasq-9oF*j+Z*z6?PJ|2--wUq7nxLi`oi zzgJceUYLF&!##BWdxsP~eUzcbYli!WqPM@opvao3aWdWC!PdWKX%u@Lo(DTNbn!rD zJTE4?F`C9AaXZFs<~yn)?B6T9A+@mf(oIr0SF*lbQEcjANgvJS3FtHII;``$L>=H3 z>s}_PfVwo%Y#{Wt|H6QYcQe+^-VFMcX_w>+nY|vQ-w4{tAvB=l4$jy9y+Wrh<@SYa z+j#6^x8a&^-VGH8cDI;Nq-om3iwr~Cg}7nKqf?Jl44Hd%=}QbM<+rkbpmidAG175$ z1j$X$iIn1ye95^ zCh#J9_bPss;$$cy(yF}{!+fw^u$#^s@>|$B^>Q$-sKs361+7Ky7EP-E<)z&SNyDc> z=mJlKU7q&2Qr_-AL41Qq614FGcK^_Z+{#)w|M>#IB(5S}O|<%~eS1k)v(zzn3QXJp z?O3{MUW%heW$i}F_do^yk8hZRq?F!UnoBA+aK_6#D*JU2R-V%C?8jJ|qBwq$Ooow6 z+D+g~plwY4P__!~^(tjRDFq^z(tL%%F@?tkhqRJ74QZb1mw)bbQBj>cwppdnBv1{t zhHN!)f_uqqV~?bkmb%^ryEDS1!S^6;B!D=x`nRxteCvdRn(ENSuGCji##2A3uv)pb zTfW;NZ`;h8J9w{M7z2BEkUZKJw9zQfRCQUqvdC1<8|SMSMPtuQE-AC^%9M3hnW2F;Ls}{ECt2Tww_9yO5y`*T|NDuZYM| z<)Yh&H?)Onj%^4%igib7*UI6>@zZC>cy8vi67PcBgVJGe-gk8R?+7#FaO!`rxHgs- zq!3I~o(}aKo1~~m@~t9ca=9^eA74-Zk=|eEx&q4#H@eU&^!oDvhekdfu9i1CFKWVm z^j|=_TP}T`cgb)lur91C6`cPOej97`w4p+d6J@1+XOh>vsXnfT#;RvJxmsuwdiAR3 z1s14;bWdh(24YwVM0~;;lIzuS@Z9tlJ)LnBxGh&{3XPe0i#QXyvuHK=K%rkNo1I@34nxjYgP&B&Y)>G+VfdD{vdh=H)OX*z3{6}lM z(*Aj5HQyj8z3KdXE5{Sj-!jeHad4cQ1#m*?Jb3S+0kW0=X0YZ+E> zrmudna;(XhOJVgBe=f4gH-8h<7Qd)yb}F8AB{)rcn=&;>&ZmhhY`|z?x)N+(nd zHK(d|L>*{fGavw?n+IIih*D1smuziEOsUlsQuMXf$B}g_x0hhFIVaBf~b_Ufac0JkFw`F`yEql`j^MS%l~wK4DdicJC}W z(*N1i(O*H?xGv?mb%o62(J{|nD_+*1jJ1p_^mLn!wa)Y|%hgaE_foehHvU-X6!{** zHJF3be(-GbqYW2T0QiRv-B4uN2J%f#P^tSaq$-2uAn|h1-VdDUCo3@j$}SFvh;4%X z8h-F)(Mm9{{Wa;D;QuALU;i&MzWxUjK1681pYy8x6}@~mt?P6ynVRa;WltZ~78Yc< zn4%ZiG`CXwU1PU)Uu*|6U(5`p-qM(}A{gKj#-_*Jxm1w?&yK*%!{=3po;WgRabc_; zH{i|vGE;d-CnB+khjG_~B58ah2oZ?aeXpgVAvmz7=F0I>BrUBv^e6Z6$W}W*MT|}+ zav8jbQ5~M)A4uyvCj>MKc2VxCNA_qK!*ya$bZW4mxRq|U#InAghNCME7i^<-ER%1G z#EZ=6n1q>r*eUhGhXA|p>FrLoxCGUQkcZgUl{q8lRXdkXLM^lp!i?SRWm6W@uSY(_ z%5}k6kuHGI8ftBYeXiFte<6+SzU08dqBohL|GNxU0?3ai8KR-(22&-&lxk%+l{zT5bN7Hq}@q(@$71BMIrS9$#5Z-U^l9@){4)fj6 z9#rw%#CyK?yAXdkkuS!qpISoV{JLQYg+;~km-~#=c?RM@w~mOM81r?$d{~zdZ_RSl zFN(GsCn#Sk4-6dxLr+l#%>xF38JVZIY`01SYyVelE4%D;OnbOr69 zX;wz{W~1M~Ci%ZzZdaUW=MT;32occ4Cl~2&(Qnp(y={=~Wc+WK)&}&EGi%-^g3t_) z+klDrfuld|i++0{(Z(%?62PDiB(OCdM#3+!4~(q0UM^1^G=qqY(rB?_`W4%b#w)NA z6eu&;Y`&o@HU8Hphxd9>E1T=X0x6!Vu(^pYw)dWVEd%C79onz@7|gg*+gM?--3*(ho&PZR%Mw}6EkFLOgjR7^d8947N?uX zH4iXv~Pt8fJ=#i)9sudNAdgnS4=Z;S4IaG zg?6Tqj`l6lB=yN__LtmN?bN^55<3NO==to@KbK^wwOQxc88*XO-VD1`BY(@;>?55U z@&zdQLPX{33)Po-i9(NF1I{iFErf2~$VzmyjiY+tCBI-7fks_*&)MhKd)Ih7RDNUT zJCKFS!QqOjC>ebT8FNWcjoaQ%Y!!=KYZ*`Fn(g4!Qt|9leP}alWv%Js27~#QGty5r zA|`DEI_p*WlJlJOdSHR~dZD&^&ARGXws9074KmAie(KjJM`t%R_02WSg4NdJRAn)P z>b9w!PU()v=sgWQXuTqMFsR9^#!FD%epi7TBRb=Si9@?4s9yD~`fbniY%9UwQ=a~3 zuCvRuRT3pYU5)W_c@)hc$MrlF=5Y*XB~t%6YYC1Be5X2*Ty@oRwXj=vuB0dgxeWQK zL~Had%%rp3G%`EwOajQ{5fo2DvkN{!-UmPb@@kNplI{x+p$r_34?t&kBbd~_2_F== z$a9O_2|vGz%t>V;-o|RidE0GkX02)LQ!q$j@n&3USP}G06#vWW-4~_0kr&JersL4X zSRM1K(>cxf#&ShmXyX$1l#{P!@Q;cxszM7kv5O4>ZbR_zl{lmqGTur{OT2wP_|2WY zI8N1{Z7KcaTNG%m1FRri^<0cBv#Bdmnj1IcK-3=Il?VgeIT1YPQMH~^tU>)i4a}6v zi8$D|oZS!xaqobmni~#)rl@I9*TFwLHER>u*P7actY_{yh!FB5egFOeYPq3OH9Msy zTzvWnnegc*gt~zg#{CBr50wC{TzX!g&r~Mm3v32Vqzr@khz6wQcJ5GTJ25IF_Ng}) zKR%opMN~iqmP5awSCXAnU(ct<4Qv)Tpkx|;KyG2P;|uP2WGvlXgiEqEbA%vt>AFv{ z{$AL?66BkQv+1rO5ys0qBR!ft7JYjpBk?!0?}`kT6E}% z1BqPU>#vARSTmTb(W#n0N6RUoP$^X3U{GjwGbqA~$vlfS|Rn?_G zThwiT^qP1MpuhW5Xj(lpFDt5tHSpzBvTz%r8&pFVCz@$@Oigj2eQ|OIF#hUv-9RCX zI#*5^kEB&@i2N;fW^@=|(-kS?JX0>y!ON`CDli%Gv!IM~0N8)cCe&i}6N+gz?a*D8 zkaNoOJZFw`C`KkvlT)A@Ml&E=>&i6j0lKdIFti}-g};jDbUh)*ci^vwYuwNC=UH5E z6G#HuXD*}ryr-_5flHf!C)c5ySN8jh=eG1zm-XR*gf$tOanTa$kmGR7$8IOXvuI8W z`I)RYHf$_baHiA0VY~9Coi|h;R%@v-#G}Ca;r}5=R;E73UtnRKM$w#i#lzn$d7fUL zbX)O%FLaHT_`;J(RpFb{(22OUD+mjEEuDJd^0T#cQ3~EQYGE&8M838kn)(*G`n_Fs zd?3}NB}Q`yH04?Z&^Y0-$kqJdWVU1j!z2z4^bPWRuri=xs?pC3Y$+$!?VUStkGFm? zBxRpn`&idnNo8Nf2ABZ%%&1Lw``z(WbFYUM{e?FibuUc)dqsCL8xsS#wR z)j!BQ1sx>8iRw_LL4sUp?p(K8kZ&74xfBp<)bzi%I3$=3qDayn8`-qO5nPGu`%@w^ z0HXQ%vIuQ}7xa1O_1$H>j#q%g1=zFDo?G0k|Lp?GhCy3u`F35yClrJXe2^hnatBnS z(V|3GXY-;P)XR#n{{wQ-Wii#;2Hzm21a%^i z%qyZX-nWK5e`=TcdCefYT^yUd);_)F!XO`zK&82Hj`$-+vx==-AQA7kOQn{%6It@F&I3b2g)|%5gMU2@d2noXPtAG7e@% zeQ3?lub>qejK1)x)S?%ECUzbkKE@RCioM!jRhZPO%G0?Dj|u2Vzwp;Bvb}OsAdMA= z7&XB20Su>w-dwR?_!bz~dcd{6P6JmCM87HGPAdh-x9G8z+x>tutY|yuj`&D5*v68c z<4YeWF7gjdhxC&4mQ1gPX~6}Jtu-czjp)hqCttsUT-VCbs&D~2GG~Z_ss_v$+*8!C zcR>~-&nw<2^UO|}JGAG6g-VqOZQ%C63rF2$68o^Xxm>l%^z_DkbjILbd?}{v6I$4K z4tWg9$G3kiS$kYt3ef>=1xj*MdgyqF_x6gbTVnDitmVKzo6Md=Fv+_dC{rV|;*56pEnSy5R^ zGk>npJ!ZqA-rYxd6=+y1_bJX)m(c!(GUrUTg>f$uC3G_=^}_DtC5nuwzWE>QMaIY* zAmFTfAqS&?%{CPR5vaVT2TW+7cws=A${Xaq4M1@@O&7-f-;=H^+`6JHB?{r-9xXQx z-JsW#d;;Mks97u%PqYX4K;Iy&{z(~Ji#a4K{F(#j=!dlrT;_F9OK^`7IcVd}Hf9Uy zu)43Q$~8SpeujN35$H!eZyUO`dfOP6^y(8b0#hWlvDMy4%pS4LXDR%7aN(!_{R;N? zKh^AEs*`b4g}N`1%is05A3zttHO#SqFu))>oD2_g5)TqQ-HSia)f%{#UVQo>h_VuJ zyeGwg+3QnujJxTj@flCiXg_B3}d~1Ytq}jPYalMO} zSzRGAA#jx33{MtPli+ke8p#ta?eW#K9W<}C;2Xe>R7LQTL0+n0)y`Lj@~hmRTql-zV)odopr5aH&W!H6DWEWVDBNSV_JHPR^$3X0tRtrlMD~VOMD0R*hHL)GvD;< zPmx0ALbJP6#p@03g>t`)dl|jAt>(SEQ+s}08{PgY*}~L3f-G>*n0W7pi27gh`b7jV zXb1X{EK)v{Q@MGjQ^Z=y!XfFgm}1kiHC3G0?96s`!S`Ti%5 z-{QZKC(5_G9}QQPkxCPNngOTbG@|AXuz0-``Ihp z*i34=+rGtRc)Vp*VCgbnT7`Iw3KHrb0VxP@`Xo#MZ~2kl5NPJd#fmGzj>tIqR8m_` zwYdAz{3Ws$)Fl?6*;o_CEAn6=`X<5{OGUi9j2{}e*tG)egRAK!&s{KJ`)2Q6G0 z6^H}gZF*VIDcdER9mu?{)B$x1@#d4+kpaC=8UQ0`_NY>0iVhS?@hv*EY`X?N-pT3y zI{lrfM#RGV9;`t(lBT=TlPahvjiYFYVwB^GV#rpz7YX3*uEui7k3qR-@kq^<8S%=4 z%AUh(xAkY!zVOD3s#;xolBt!j+uiW{`-ONRZ0dg2jMT1_wZH8u*8qt(cYb2RYlSVkj@8qIq-kdlcp=7Z7~0g0{R{j0pYFKsYH zgA&Rc97fxTLu0K5t4N0ViW%Hj$)Tr?Y|R)0@4C{x`_fL!{+B79r*(XSMfY=#LDD(t z!Ra;k3MJMIf$(RE?Q@{ER*0ENs7*GT3TEX^e;$w^CI$2WTtEla}UfE@}{zqrXUUk z2K*(6e(u?tkfofO4{uC}bECZ?R0e0Yp+wm)Gm-Ad6W=*e3je2lJsZ@iOP5rlcaB^h z>&m)q(X{}*1>2Lv?4DFM9Vsig+#YvL$UB6y zyV(9^dRQ6~U%JId$~qOgaa1jSboqCMXd3CO8+AO^ggvr3?ilkX7V!-KRe24`bS8*} zhEpx#JZC_A>_E^Y;-4`xMJUL?aN8>IH2CatrqMea0MRdZo;jYEl+!YvCIn&v^Z#r= zIl2ynOg+q^$D6?{L@h^SCvZeD!;{X{#O zYFL}FPwLk14)jYD*I7*S7B@ZwvJpPo*__MRC5F6uKl#hM5EP1iL3lp-RE))Dn=!4R zXzPUppWWSYm8ouw2ZxvhOYf7;;Ssfy)UN?gUn&&lWsYogrF=9>5wiK%{p4eCFHb#% zN3aAmk8tN_D?2V9U*(F4SPd>j-+&J`Hn_#xQ{H7$w|mEJb*^1mQ9EoYqclTbpyR}s za)Z%n<|G1GiiAi%5UQdOwKlxr>fH1$O-rcO{c2_fy-MFwEixOv5`+%jv<%!uq*$qk z)uNg(=P}MXTfPP4n{`4U-YJwSDOZ`g0{UmA_9ixR;&z6B99 zj3{zMYiSo54cvH@%!e>a;TYPEfqt8rqW)F`1Cb7$qJ^vkE`h7Q8#NrSO*K9IrfQ~< ztBJ@fbtsO|oISKzl{bggo}62yMaiu{(el?^kIZrO422DG`?YR(f?yvIWP+FjT0Pmv2-&&CPgCp>8l?emR77@z9u~NA?p=6_b`51J8H6-lO5ES}@cU1F80rM^^dk0}BSJ@Go23x+XwuqmG$4oK*1(DtjxLs7enu>>dDBYYbI_}+ z^^Ih2q%+1kFGZRm1x*g4nlcwM==Y{|QvxRI;wz&_d*u*{49#G!Jme!t@JP_-f8Mf$ z^lyU;Fk=qlJpJv9l4`bfpv&x%MHl@HdjTcJjpK*u`m9`!x8 z5FI15aRX^_y$m7)lfPCZ--%caA?vG z%eUsIQ#MLFfv&2AWJTBi@+;nu|{>pB^^EKdZ8M_ZfVo2#1~xC*>dT{QP?=weMP8 z;)-b-;_pLqCm=P72-}Jv+ja@VzgqC+_1$T9@X5Ir^+|85Z?7bX-l;J9r@*- zFYdO-e9k?beLzK^hrmeix{@Gv-A~T7mb@SMs%zt%AnS+lu6CPhQc2Je#ULpI?J4%p zz}Kw%8+QQDsYTkE{=RX*K8Z94BXpPpXpS0T2yYremkH7pD=~B#Z5VhwR3- zAMvk`tWY>>Af#-$FW^*PF#5)+!0a;f+zJ|ZBDs1rAJVnV|7`o>SNhYQ7W0aT+|TQ< zTONkg499oEwoCx3!8sy%1@jynyUc%rsO5CDw!Ecanu2CzPXQDFqPY3lPxM5k;=M@RHk?BY5Ch9A98gPYy1S5h3)r1HtlsycbZjlz#$f zk#F-NTWM$L;UomuG8Q`_oKD)Xx&R#mgVI$ESMD`EP!5onaTdrfCB0QdItBGbPd{+_ z&2sq*xF2H9uPWe*W0ak=SHJk7i01}mkjW;-fXFCe^|eQt`6erwJ-(lcyf9;pZQ-|; zJD1Mly0LYzV9>^0A%!YfKhM5P7NUao)priO|u}EmUusM^=|_*}Imwd{>qE)}-!! z(e}Vioo}*-6(qL^g^;M(T~kN1LX#XQpuh`&4gd)<`w&{f^Oe8HL)WxlnRtmL)f5GQ z>*a1GCHPTalV9pr@x)Bv27!Bn?ZK<$65xGzzZ~W6va8GhZiCy`|Gl#Li3%hJt+Mch ziei@EIu@(FPIvEOib(jnQAGKD6sCj5AbKF8O&FGz(s=sUJf%Tt`RX9DEeo?%tzR(YD=h$TD~dK5Q*mLN!}C zavn%aE90J8B^44W`TkbLZdwk%W(iafNKru80HgW$r>MK%LpiR_5qg3VYf7u|_@Ehl z|5`Bu;d;D1d60R+!*%<8?is0RCDLPbOEtXn=qChme|%#^Q4cLHH-7pl6a zDKR>`x#Fp!VC$7rkliRb**lkWvdeTU-P&q~Xz)@ce*1~va%<{ZNRJ5O?$YiuCzg$` z^)fK}rYXfR$1kN+o?oX3n_I)j0}6lA6t!Hx<1LMzGbI0ZiJ4FyID4ua9X6! znq?2~Uj8BK&!nJ$5czLF-vztc&g!Aq*A)26_IcI7`$sibIj3OnA}%LiNizPO$n>Zj zOKfq~=cZAda@0s{E!a<2H6t}3-MysOT%*08lv#fE7SKMJ8J=H}?W25q1Z-Qsd^!vm zi2nGPBBBM>s<6j-J0a)kz^q9Shxql-{)96`Jg7dTKkW2?pH9i3VG4r5sG^pX8%KE^ zXHR=!hTs}hr=GxSYScqaTYCLQaE3%}!*7)7Rb;OJfC;*MeJ}IgWgGJ$4$yO9=>CpO zSBNtVn%(+hKyT@}Bm(PH@#$t0L&Q9xvE}Mi{`ITi1qCl8pL0)t>lme7Cug3-#H^yl zL6&i5-V$A|L&I5!G!a;;e=^h(3X)l;8vg0DP70ABQQG+zsuSdw3iCj@f)mMBgC?07 z;WfR=wrE?m^^n8|n1(oUGZs5FcY$xULW>LGmjTnrS0G2^9AOpJ0iv@Ch4)gs@|TE8 z+)h{b*XC^!InM5X5sc_Z-G+{ot@TJflNk(tSnXu9jbUPrCtnRs-_mHQYe({a2!5Y* zhpG^Iy+`?Bu47rNshfaTCJtoVwRK^tNJI4;AsXJ|0YJc)F?Cq3sB*~Ia>uGKvejn2 zLCuO+Lu1e74ropRu`xddRfR}?^x)#COULFZy~%|{8w{h4s5~x#mquh#!o9(phv!J7 zoT^C8|Ca4@3QE`L^Y7pMcuZ9X;d01c_k|ysSlN#IoGR{Y1nwbl!eiN)+7WLEw>NG3d*n>7XN+W zTJP7Yur3_VG$tX*q}k^yrLVoe`s21EJDFLe>$tDKI)2o z4LUoibr_qa0O!PfuM-BuV3C^55G^pLf%4Ik^H3GwJA713vZ; zkTs@AG^olWxGpts|JnUw_DbO;&07aax6+ZE8I$Ce#A+>ItgZh42ZsEAz%vrMslZbB z{iOFvM>qC5ay}53x{MSgOSw_L003V5fpIRXM#S`9W4HB384ULU-P$;VQZa?neKP@` zluVp5XW|B8I1)7gu^VE7(ADm7pJ;Y(Fe*h%CiyopP74HcWh$EQ4Uqrwn5T{&67tnS zXC_cSO0!J926(LbO6sa>5MXS#HlJs63d`E&kETTzwW$>^Tew--T;dwHM3hXVbXJ|- zaq3gaTyPT%V4doxdQ!M`U}${J`v37#Yv76hUh!NC z3IgA?8l-H#U_V5AUr}mtOvIq#K^Oy{B-l+au^^wg9C#)#UE_NqGvmkt`8rln z^s(5ZB#BCe631!p*niSAIvW*O5lv7Ur}VrXJvng_O!^Dmx_*F0X(qd%L=B1OV*Nkb z_jNi_4a|k4L1XKGZkw|_TO&K0h#0-eX}pXC8z9t!au|8p_4z>L;2~rzg}^?RSXik7G%5w&H>*Ct){QsAZqho!eb84%o;zm z9Ng=9-;|RR2hXI~@d#+s9GGGu>6pgFiVj7!HGhXWRw zPcFREIl^4Fj#Zy+Y~TKNV#^%|b3eih3G8EXjosL^QpBHSnFYjLz+(NtAGef2U+h=J z1?VJ9z9D(elyA6ZtUoGz*VA{D53J9h$sc^d?#J0X9Yg@Zt{OnrX7}W z1a}m5OW-8{1`-CN>3~&S(5MZxEoWel>%PCJy5HX*bE$`clkX_w^@6HF@oZCt)%TTJ z%h>b$8g?UQqDX~$s#dvsCx6az)$JB1Nt>G`mkPl9FaSO~M?j1J8Dkxa?8Mdo@tBXW z0aMFL4>(!0+gu6X@B@#A?5h*Jh=5gibU4JI9W9GeGSaGYZRKK zMq4gvz3_xSQ~RIf3|@s%mh(#G7bW2N@f>8yj=f`iQe^C-FMg-9c}Djw zxO!M(&cQFM$Ga8alDJ|J2kbay;C>pQ!^qm;1Rr-8B5Rsg;!|GjH)fAiGpdUjvwM;; z>Mr{z(Br|iSfx0%6bPuXLG3P_nmiG{q%=GEEG z_GgczTAPX^hP(YmKKIn0K3A)4dpB=+q1))1VamaHk@bb===ohIbcsb=*(9+YxY-Kw z&@{MKuB#>>fBr|4?naY&AGBLAH6 z#^{uiHitQmacq9q>UEAOW^F8++c4E2ocsvp1Db>P{wLS?_XKdv_lAbI;L!Iem{>x&YDiGJOkoNNO9*Ep?6#o!aU39LyF2K4w&M&4 zCeiY?Hz{xF?@*wY5nqt*NIYL$w?X{lMNcS2NOcc~;NnB-PBDVZ&3EqP+T{QlaA%p@NwKOvb)3^}(_JXQGuFA)=25x;dNJ%Pwi+ zT8)OVJ3@NTZ3~@XAVBW*x$=6`^E-Y=j4KEu_s< zt1OAW!D?a7eME=-*$^9ax_6V0OMh5z0z`f&j-l)ka@(eMRf zFK|~obN2Q)gZ9wAROCkA<2FU}6IUz>M~m;rWcPt*&4cBP?x+4dUQ)k$=0e%`~BRA`LO#l1^HF`AjIh^o`Ue`FOm}JBG}4Tu14YX?d!Mlw_B7| zs#7@E4!Sw2HO>8PPd-G{xcff|Z1;S5UR|?XNG@)#J6<6&e!>008xWKrqOId~OPc%h zUjv>IYObZUIPu3D|ty>(i3`9iJ*ly;O9T;G0`lwTf*q|4N*6EmH5e*fWV+S8?( z$(f1p(wj$1ckOTCx!3sf(Xdo*#xr0Osde)TY&mO;T37N<*{oJ$2p5aogDEcBJ{j<* zh2@c%9QMWs+`8!__K;CalPlUJ63ghZ(7uwQZ2L6@^*H;npmAVdn2lab$*ppw! z$_3v($xm{L{xBo1?kNXJ4$=L#t&J-#nPt0uss0Yh0>8#)h?UPtZ zpSu7bf$|zd;(jekN0VnpDh@W<2HIx6wXZLO9DHV5p5nFFhGEQmxIfxq5zaKyUd~>4 zGv1A}-_Q@Wc>!%2R4a753r#RnY~i%vcKB!MpvF=9R^$ zJY{#Ya|evRP_9_+sTcGkTV{xyf&@7;U+$J1Jd;z4}?%20{OS-+nsb=Y;xz@z* z4&ggbq!aC?S@!9x9kLtZF z{wVUxM}7|m_J*csgUm00L)Zv2@t!Vj2J6}hj{gI>jz@c)5^k>N_z$G(iEnXBjFb#BuBViP36z2jOCY&^F`0WBXv* ziu~p&T}5JH1j+M^r?c6sl`YimalV2)kVc5ZORvq=X=fHJCBMT&k~1%D3*3Eorajrx z4LChd>>l@&m~6fvzsE!f`+nb*`O(12a!Xj}l_2GlOFTdHFTiMi@W1Cq_&=E#lz62g z2riQ1xwVpb`DkT_`Sx%N{oul+`Gn|?zG;LMb}0wuIC?05yizpYCR&N)GeN=8FBmFf zKY|^PHG9~=vqwue`y~4$Z7TKmZ=E3%^nC7DNMzkqiaSQ|i^{oHK=OH${#rv5Wd+BVQL8RlcfUuLzVO=lE!nokBu@Kj|Lw_tVuUsNN8^o((4NRY z{!Kr}SHq_S95oL6Yk%2@526?8D*V|{-E zl0wCkB9Sh=aBhjv8XON^44oy_{`uz($8^2s3_wK%SzqVI^B295xoP2swd~MIJq!MJ zvab&PB>d?@r;d|!3JziAsyq2arX8vR^?pw+>cF;p#_G3*danzrO{K9}a~ zdJBIBmX623;&ye83(vtsRAp!A0^HCHmrXzpke@<~35*cq=_4yIyDiL6xt6=w*RPjJ zIf%8RXn3tpCwo0^5odXWpUux)d;nP$z2+g8}S|zo{G!#R zbK%F-oxWPvovH98zFF zj^jrym6DcC@P$+V3NevvrAiOLEq!2$GeYs}x`>6m!yZ4k_3uoVUobV~TfYgaM2&il z>K3?YG1N_qaB)@%NLP%5jhJ2|=xLqroe7M*f;#ief4uvMOhm=i}AQ(eYP`;YRhN!y0 zDmO7FH^`1j71hR-w+r79zaCcI`!=xCKw2}aSk)8i{{1Ktu8^@smB?rC*?-`nVQ0xd zRd_8j`BhTQExghivD}$L2^BD?u-dNR$gp^^ADHaDO<}GPpr6p zB!)VI^>9&Pd{V`%P`&qMPedrmO=|w(XNb{%ucWMCbV1Q@`iJR}H~Mw!KG(1IyKrDn zJqV!H?cUVeL=Q|%b|M5M6nc1&-(-XFdlW4NVmn)iC|h8j^UzqE2#Sz3Fzzt=sxl1| zLZ>Av}f+jY^I3^8e}QafJkW=%7{2J-)&@RDRR}Y5r1FE`IJzB3K3~ajYz=d38f3 zD3cw)lD1$hIAonf-yHiOjMn4gj1SOOe>W9D&0DW8P5xY-=*}7Xx-No50)q1@fQ=j- zN*)k;koo#Z3bgb6KZU^a85{-agBSnF{3wtLLt6dsZ*BMrc%6?MlI~a@_{oMj4#62< z0XP(o9w!^ad`elUIZJcas^r;yhAuIDLi&49>Izo6?T4l!2_;j?79n0_st zWVYX8kF5BZ4Dgw`MY9IPT0)rlWKIU$Hg>|vMStgqGDwk%#c$jtPM%cAaj!Y z;5UgZYMdYgms{qlPwk3S>()SZ4c%hWT7N2ip3s;ise7hv3iulMf%ER9Y(wG@g<*)^ zqZ_?wB=xf81HN3beEv3lhEY2@$s#)g-TVP`dD-6QNF92sIrwmPFXEj$dP$a6P2BZJRIgsm|9_O2q0B z3)n)C(&&J*)Zvo7?F#4wO*}A(-GdYcj>dNKWT2xVR z_^X38a0P08wbdAy#wn40%8;Jy%s*+~xF;n=rCY=+eVeiihsdm~04&4D+8>a|@D=4A zA!g%-BJ{x?1e&zq5*l!Z-Ze?_p9BR=q^sFL@37oYgH~JQdeT`S;4VK#`80 zQPI{-d-{kuN0vTeNi)C>*_2O6L2vgmMqH00{Ey#!v{hv9U;*zRgR7rLDSEFDsqQ+y z51){1{IG4$-4h<^q5WWvqWMFN;jZV&5iW<+1i6lRHEt_xS-||dM))A9afy|(p)IVb z-Y>SpFbHd8nEH8V<3e138$9dqU{hfB@&s+rhl+#W2$U}OY`_H!whSNV1|~;6_@xZw zs*Ls@s1S@HFGz*0wtx`bwR;w^Uh{R(+iF@(F>*iUZup(+VG{2lk=PpC1h#b^7UPs? zEB-WtAG;~*cvW^cQX4V1GJB3=03h71C2@(np`(lMI~+eTet0}+7utE~iCMIZ_=L4} zeb*syTQPhXi6T=IrkNiMhiXLkxzHLgOs5?j0|bZA{{3eJiUqs}i*gY5Hs4h5Qqf3* zS)q;U=Iiu+1QUVI%h~#;y3ya&gB3I^IZx{Ii&nJ zc~_b&hiT?pZD2DfPfx4i``>w;qfOi>0{qnN;1}LvM9ebWEtiunc ze!5#NwqL=+oJl`||CVQ1+K9-NT`8sB$pJ6q<385mfr%+zbDwV^D0IT=!MxTo@PVl8 zeFfGOEnsULEox@cw1S$*svbaK78r= z*M_d6(cOOY%NFt~-aG_x!6m~BuG>y|=oO*ubJwb?d(=d0%b~7`@_{+W%3YYJ&sCd@ z(uL629iClQ=a&IzR^)LA2;;gM7Zd3A#8#F%x}TwEEhW@2Ri|qP=7OAS=@lF-onK5R z1=j=qiWeZ2Ybty2O;% znzu2_4n&~{p)e#~U?y0V7bDvotxM~T+S*UgkHE@b%$J>)Wt}r$ zSBa!u{ClN4_l`toE3EfzPH}4;iEatk@I3hQGw$u>f`+;p5x%yiaZ&%|ipC`SGn5Rz z&K-C(|6tywUHI@4kb6tWu8L=b@Zal%f^mr8F>8SX%L)xe_8QFU+yh^gt{xyH_6ci6fX62UEiqGCRWf?QAZCHzlY}cmZmCsABJ7~3S}bvAY3C_Op_mlnyqM0 zujWWQGnGI4>9tUOQ{Wn%4l$Ypd{ZunRPI_^qIomgy8ZJ5AN0+IjNFZxQ)hw#8Kns7 z=8f(*NXRljHZy?p_?xd09lzOQXN%r<_Gemyr4M{RDSmuBHjI_t&Iu3m`f*u^q0_2K z68k9Y|`Eo_y7Ot0E{frhvOk+R7-yNRQS0XAu>14Mg6X<$ zQT=ZhGVZjErV%&r~Nl;cdT8)D6V=%VjV zxOoBKaNW+${#(4euYR|sw%A8pdKC5sdtnYh9Mx1Q+qWdZOzKXK{hr0I+ zYAWjbz7ddKMCmOmAWcMiCn`!WQllV5rGxYiArX+?1O${SO_~sqUL!Shq)YF;CDH;U z@jcf&^UmD!KA)a%_x0fnnPEuwKJ1*m_FDh-|B0T0sk~%3YkwG>LZ=6p;@vANE!8*} zs|&8?REyLFrSTatGNM_R6RB6#_Uk`08;sUhlVi99KLemv$;BGON0aKcY=W%<%+Eip zFRsin7pG)s3pIFo)2NN5#XR8OKfK+$oE6hEDXl|qMaDf^BG|}LQKoBMWWrOcTO{VA zYJo*{43v;rIu4>~EU0pqo!cLX`RGZiUEfuu1U=-tnBHEG=I(u)Wy6%%(K6nRp!X&? z(*5Ykiyq;>gw%%)0p-kWlfB(fi4lh3kr`Fe|my-1k=G*oWdg*){jI z6mFF6T|h>Ow=spYVtwjl-~20Ivn7V_ijMZ!`swUcf4R_p-B_cx#W~_i*i{_-BnS ziZl0SaaVn4kaqRTKaxL9OXzgNrQIoP!#vlf9p&a86yPj{`E#2>3~uYS9iRZ>?+Xxf z)e8raFXLLiT8LzEe*+>d;Br%2=sxR^kvdGd$o7*P2;pB11yg{R^FcMmT?-<55;X_L z29oiaQ=95NL4n)#%L_cdJ5%o>k;YSPF>Ggm(frsg z23mC=g^8cvg|oN$BS#?v4zE@1{OCTa*%!gT@~Aqyv;KDBT|O!M+#I>l*r&e?*_U^_ z?(dt!`NCGm$9Vy$J6~iYSgRXX`Jl72BhKP~RRsvq09qZvhI;G9rM80Nda>xF2%`|a zBd{?3DD%y0+BZp&kH=*QUBrQ0jA8D~_*pfkM)5tCA*s-+f3WR|Rk!H-Ec?*n45B1l z96m^7##I$-iM5u+CN=4eNsxJwjlfSY#vOyNo)Eip?r^4mkkLFic+GuZc$2%YZ&&mJ znh4__{Hf6N$96>HFE~$LqYKuo6k25Y*9>T&L8=k7@BXZA32|*v@sy!@??+&zG`y)=vaUTdk!Fk0Xij!*&2VT8S%u|S)n}gMDvu#|rz#w^N6CL5*U=N^ypD}ka2 zKbaA^?oEg>}&)V(F@rNE6 zzWbH*q#7O28q_`xX6!mU{82M?VLod0zCK$c1xgsNvAlE(r@lSA^ir>ezB`*EXsrRc zL-91!e^5@RQL{(1yCwKa6=#fot|ajD$d)$kts?jIfimrC%}?BYSqZPlKKt;;Jw!GQ zkX&?ov);)eoFw+MSM-k$CId2!SILaSC=F$gD`vFAk;*6ckThi}&Wmv?LT0TccM2!E zNAcDoDrlhLSfrbOX97$;=nsCcdM1)IOuCSMeM2Kos0=7@Msf&F{PNliT;MHgjp+NV#oY%pzFH{G++LVl{?x zD+U9KM%98lz#n`)rFN&}yl%T&JAZgW7u=Lni>tzh5or)>U{3VCkQJ@NwE&ZAO#*zk zrxRe3I7V#b*_X)&KH^N4&!mkdd&$d;qoW1Co*@UlpsZ_V2(v!nhwK@I0|+NH60a(0AQ!31x$XHW<;}}?hqQ_5VI6|40qAzbAGK9Kw2KeS zdTn6u>Zz25``w260Je8Cb{uwAl-dM692pRw&SAtmnqO3&4hZq5>e!(9c)2KB;o;k} zu8}Ljsw$$7qdKbYqT|+K1*8p<0KOJ`k!>5dD!g=6{tWlxM2hj&4-QMpu$5kms}bn% zRv4avkgd#xvF?<;)V=Z8L-|g7dLLDnlIy8pVnr~ik_fC!{@0FyU9wt}amq9Jbm%X` zPGb`X^-+zLml4($ET&UP(Z2Y%%n&6kZFdHu(=9?VF}7BViFYE8mXCbpv$*kig?A`L z_Iv1xg3N^m5PIIn?fJb?f`NV)dK1U0WAqxXdsea^PuB+EwX!=O{4(ht$@e`~QDy73 z|6;xKdTsI>LA(^}_d!`;6*U)h_SJ%3LeN=E)I4ElP-AfwJHqyKxPb?>v7cD*DjnpiVbw z3>8rMV3BB`s_&29fTA0NO3l4`rl*V%Ay)|Q&F4OM(t!;iQp;kis6Ug0|HrV?Gt*rP zVeMo|Ve3~XNPYCLtNF#JQOD|Dw^A=nlYB&B^-ufT;{3}BDzv6IR2+2clD?GtLw+gZ z#TY6IX7!pwZJxPa96`Z2^w}evz#6L~m)f|s9skyT$%4A*4(kgvxp7FU#^JE2!q|uO zmiV2wPUBNq85g-^L%=*%adP)_oMv8#j}0MkWv3`oI2y3kye`yW$!GB8Qy%4hZ?TZq zuJg`{%r^UiVM}sfSENjqySH&u^f*MeThH9sg=uHjHKg#V7)-^QK0o1i33Od_iFnfy z!gl#n%4YTHLC&`pug*)qIV8E`bjDTra&c(#thH20uLIE1#Rcx^No7s^vCN&|pJih^ zwl%eQ;|D9JvQJ$4~Yx zvblRGM;}^;Be58;Hhv1Xw_I}nD1K0+;N8pRpbP?KnA8KUCgWZB^)+$2D|5qc<89ct zFC)?z3*{K+&;-cuv2yz`XmReKqiVtKJ-hgpUn1r2l_AGw zqD})98;3ypHqbyXP59C#I}2EgdEg9J8}q7VA98(*&W%;cRb{CLa@1`v~$OnrHr~$(u^B@60m%FytVDb96e_ScPeIvJaLu z=S3$D&J-Q!DyUNh3@ItwwS}Sw)n!}5cc$V34W}!_tv+!+Yp#-b?d~d8(O6ZYqQ6Gb}%{ofIe7i=XBwgfK$=zQY7cJs#JtWRIfmd4* zz+Nwpz7Zi>a~&=7S3I$W+HXZ8`Al=c+D_hX=NDcyqzXvxq~LBDVaXL$zGX{((Z6=H z5}XPJy5#erypCrPeKwlKUhg$;lcB#N#pzccSW=;^O|{NcGa|`0tCD?6<IBGkUH2sLWD~TkU*M)gVQdD&1N3_?q~Dpd(+RG zdUn)q5R$`!VGTb6@T-T)JK zXa5>8^;AagPS2G2ZiKaw$k4XX(6{fWV0KjrAc3X=Q(9}}pSZC&r*qXqN*X%=WI^1C zEC62&@n>%>vfV|imN5dmTVEFboEpSO?h5u6_kd11&zSd}|K=QM#pFiHNNg-xhyvuE z^B85hzG|BVb8X3Bv#lLK&b8>4CPOunAzA>=Mt)er7>UnSpZVl)S>)2pw%quce6A(M zeS2=!5c&gEosQ?$SS?`{WsLRMHaEU+BWv_rjg6gq5a4p07_h(x0G6AzD|T_GZvPci z8q_!gpn);sZyv2gw2b(D`}3!3|JQn+V8|)5Q!2OM>_O^Ax>?gcU=Wo!D~SSm?ha`@ zEa<;N;=C?7aE8D>Uq$!`^L!iGWd%T_3%%m_m`1%85(BR~+d*|l`z~uG$(Dj>RxjzV zOdAbbf-Lx3xK5z&a+Q&;-xV(w;O6?==3U$t|Jw9eO9UbUT5I3YoZZHaRsQ{54E-ri z-YVGn_*G}9)V?6rVIcs~nfrCwzdjP1+m5u~0=PAZqO&h+jN$ORap1_>@J7hCX{2jw zIb22J!L_S94;b|WFCiB-4v2d2!2)JjAVe8j1`^Fp;X|?<%!2T&v1cQgxknl4(K69> z2b5drg}vD}-~29Pq8MwUZ_dpRK#XB7egv>@33T8UmTA!EikV0!4-7K;(duY5w39L% zvD~&)qw+!1$3+8@PO^3WnV7miONr-JzzPmn2VRyRsB8iY2sjERzNpstWU@UDt~Lae zu0FCZ8OAGa%+|58fZ1(40t8sVQZo3@Ovo-66M>>9@g6`eSvg`~b6qg@v)*FFQf=nz(_$v+O1_V{-HORZ)=^G<@aNlnSBK`6_mA=rk5$hQEw2jOE<+? z0qvBIJMDv&`!1s+LyK(-I9niCs>JAJpaWKg?pJ~w$v+QkjqvOpN+KEL6S-VXdvm{F zzaXQyr9yBU!vw}ORp6$#KmAAY4moQF-AB;j)O$1q%%WNgJwxTZ_k@Y2Jvg#6N?azk zM|z4V(q6ig+)G~c_VrhZT~%8r!XFIdek-PPr6XGUKz2d%PTMo|-PWG#KYl!Rvt{iz zjAPU$*x$wQeh@R3D%-sB#wYgshoSq&^wUhW9{cTGR4==|&&3#^!k4H86AdlOo1?8g zf4yRU(~GuYIX}y}FU=)Ae$xCR^fv9smSuNEWA^IPBHB8XOTXuTBmXFrpUR1YsAG(X7Y>dlHa-G9gc+@e`Gykxd>6C z3zU>$WY&e-`d9<6lA?moe?0j$xUV47Ak0(78OiAmMP0b;v~`R{SjmuL-5A%+t{{M! zlLZ3+VYM;EpGE^UUcy-k2HTAEKack3E9*Q=gT~LTaX>d)-cbac8Ax|vpq;9mRYu9? zGmpt4dXADGDggfZzdzk^7db2tO5XS$dD-wHoaa4@f$v&aH%v}MOW^l~NQ$ez(Zb$& z{6+iRT#@EAL1q#Ijy(g)H=7aDkMk%NPgW(rib)H*ek!VqZ{1bDx;d)pl_30eYeSl* zkD|mXyff>Dd6ssJpI=II)y&C z^N-}-(c01#n~VX0KMj=}Nb>K$kUjJN#>R}==0cCu`;}WOpkgpvOkw(^_i=u*@^_ze znNz7y4VLJN?X#w$%+9-_6zuDE%^3E2_53fZ_7}PypB)YDS0khD^Z%Hz2}duy6=l&H zeg;_KHn$^YRBz|_7hLeF#XS(++`P^(3T?8*eV!~VzJ+s(lI&Z?dKJi2-=`5Sn<<7k zuD(c^Rj+N)sSK4}fTreR%s?~4=V&PP^lI@3m-U8;%2RfHdjt8ODy?4jkvEGdlP@}= z;uRVt4o&v)H5|%($gXtO-tW69^u1i9r`UzNc| zg8>ys-WBOg)Imzvqa=%B8BA{H5>ALU9eLrKasDB`pz(IgxTnP4=kDNum64d7>(~#} z%6_s_w!ioT-mm$&E{LAJYgTT5y9QG+0e0^}yuDPf#~)$ORYw^@z^nZcZ5PV~MmkH9 z-+O8JGdgh3H%0x=8i%#=OWTOc)4i*E{>ea>0)<1NOdcWCwS`b?aB(?~s1^g7xD&fU zTYDNm(_gzP$r={1e3gzRJ3r-z9-kHkD?N!N*i}(oCK06xanW(9gKJOJ?GeI?r{7*V z@v>I;5-00FUAltS4CkC=k4qbW+?l4_G|ruhdh*w>(JTG_s|uXd8h8$J7CGKV?Jv9I zvKjBn+u?XayQt09IN^gI3qA(#PsmfYz@~Ri`_;R!rQVOdEkR*r`si?y5Y~Am0~8nQ zhJYz+2buD8{~ufHBpoq$_mjLYv-Z{1H&^k~_bz-Qycc_x;ar86BDhyjsa z(CLx(+)#HX&~=zfWl3sg@6B5c)}g`W$LB<9AaWo#!4+WT))>N8k8Zu1pEEaKqFRqw zGq5uw5nlg7$$beqE51@A_F8cRRB#c0>rOb&_-l)1Dw_nym3pS?1CBnDEVvJD(=ZND zmgzSINu6aaUFX)nS;Sheu@>2>=b>!6Qa_Oz!lZ58kC7*9rUpQ$sOWcpi@(E5B=#d+rU4SGi6q7XPn1U z@!iG=ejUTmq~oOYsowIvFJ5#=CU?ed*$S1`+R*fB>+oknD;p0J1rvm4YHv zBU?yAej6UI9ldSoZ;?pTTYTY9KqDDMhJ>3nn8aJ~M8Kud;5)`nuyG&ew z|6BthYw@ut)M*|uZUe-Jq9-?`bC-(5gh2jNv|&H9iAYexb~>j$Tm6*4c`nNfM7tay zw4xQ7l5Lw*g}wxer%}j9qu@77Gb3v57%ONp1KeKifY5&l-Q?R;_!i(47_(i_`Nc=h z|9RrP*W{}1a6Swd9lS;P4MvMo%lmLeo+3MF?K?hRjG6xGIAzWnMe0}*N2%8@g)b8q zQxS&M?!}z$7!@;yQU~(#mrs`cBMFct=q0Vv78!l)yg^CGGJALK$EG1gqMAxY;$2ix zWY{`0q|X#rqed>GAb46zLK3R@To@5$X8-iaR5lW?Q5}@#SX`n)ar&~;+g+8Essl`qmaznSynP&cYx+074i_RGjd;g6>v{gm z+=wiJAYa~`?Ap7*<`lJ!gJ1272{$a_M07D5=NM^^IeEO^^glhWvN z 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�Z()*wF{e@3tV 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
    1^04N;Jv02d_XhMO=p33p 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 E0L6IcGynhq literal 0 HcmV?d00001 From 45e6dadac8c5c10675c64a0a92ceffdab9177d4b Mon Sep 17 00:00:00 2001 From: khs1994 Date: Thu, 4 Jan 2018 16:16:09 +0800 Subject: [PATCH 294/611] Update README.md about download pdf and epub [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e92ad8215..f559eb382 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等热门开源项目。最后,展示了使用容器技术的典型的应用场景和实践案例。 * 在线阅读:[GitBook](https://www.gitbook.io/book/yeasy/docker_practice),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) -* 下载:[pdf](https://www.gitbook.com/download/pdf/book/yeasy/docker_practice),[epub](https://www.gitbook.com/download/epub/book/yeasy/docker_practice) +* 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD), [epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) * [离线阅读](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新版的 Docker (v17.MM) 进行学习实践。欢迎 [参与维护项目](CONTRIBUTING.md)。 From 2d4841b7645b871f90aaece69265060063ebd2a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Fri, 5 Jan 2018 19:00:22 +0800 Subject: [PATCH 295/611] Update offline --- bin/offline | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/offline b/bin/offline index dccf5ed28..a786166d3 100755 --- a/bin/offline +++ b/bin/offline @@ -18,3 +18,5 @@ if [ "$1" = update ];then fi docker-compose up server + +docker-compose down From dcb821d56bab95657d50d43410e29546a1ba1002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Sat, 13 Jan 2018 00:34:33 +0800 Subject: [PATCH 296/611] Update ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 40 +++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index a6cadc40b..1f2fdb571 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,29 +1,37 @@ * [ ] Have u googled the problem? If no, pls do that first! ### Environment - + * [x] Linux * [x] CentOS 7 - * [ ] Ubuntu 16.04 - * [ ] Ubuntu 17.10 - * [ ] Debian 9 - * [ ] Debian 8 - * [ ] CoreOS -* [ ] macOS -* [ ] Windows 10 -* [ ] Raspberry Pi (ARM) -* [ ] Others (Pls describe below) + * [x] Ubuntu 16.04 + * [x] Ubuntu 17.10 + * [x] Debian 9 + * [x] Debian 8 + * [x] CoreOS +* [x] macOS +* [x] Windows 10 +* [x] Raspberry Pi (ARM) +* [x] Others (Pls describe below) ### Docker Version - - + + -* [x] 17.11 Edge -* [ ] 17.09 Stable -* [ ] 1.13.0 or Before +* [x] Edge (v18.01) +* [x] Stable (v17.12) +* [x] 1.13.0 or Before ### Problem Description - + + + + + + + + + From 24a24306ae20255bb0c5226079c359b76ad64165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Sat, 13 Jan 2018 00:38:30 +0800 Subject: [PATCH 297/611] Update QQ Group status --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f559eb382..8085aaaf0 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,9 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 * QQ 群 VII (已满):252403484 * QQ 群 VIII(已满):544818750 * QQ 群 IX (已满):571502246 -* QQ 群 X (可加):145983035 +* QQ 群 X (已满):145983035 + +>如果你有关于 Docker 的问题,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new) 来提出你的问题。 ## 进阶学习 ![](https://github.com/yeasy/docker_practice/raw/master/_images/docker_primer2.png) From 3de028af98b82b57aad182dd0a6cd723c1cc3a17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Mon, 15 Jan 2018 09:21:09 +0800 Subject: [PATCH 298/611] Remove content --- install/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/install/README.md b/install/README.md index 973c2b4b9..df618a519 100644 --- a/install/README.md +++ b/install/README.md @@ -7,8 +7,6 @@ Docker 在 1.13 版本之后,从 2017 年的 3 月 1 日开始,版本命名 |版本格式 | YY.MM | |Stable 版本 | 每个季度发行 | |Edge 版本 | 每个月发行 | -|当前 Docker CE Stable 版本 | 17.09 | -|当前 Docker CE Edge 版本 | 17.11 | 同时 Docker 划分为 CE 和 EE。CE 即社区版(免费,支持周期三个月),EE 即企业版,强调安全,付费使用。 From 3face791c64de5e8851124ba61553943964dea7c Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 15 Jan 2018 22:00:53 +0800 Subject: [PATCH 299/611] Change command docker ps to docker container ls #279 --- appendix/faq/README.md | 6 +++--- container/import_export.md | 2 +- container/stop.md | 2 +- image/dockerfile/healthcheck.md | 8 ++++---- mesos/installation.md | 2 +- network/dns.md | 2 +- network/port_mapping.md | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/appendix/faq/README.md b/appendix/faq/README.md index a9590e58b..108afb206 100644 --- a/appendix/faq/README.md +++ b/appendix/faq/README.md @@ -38,13 +38,13 @@ ## 容器相关 -### 容器退出后,通过 docker ps 命令查看不到,数据会丢失么? +### 容器退出后,通过 docker container ls 命令查看不到,数据会丢失么? -答:容器退出后会处于终止(exited)状态,此时可以通过 `docker ps -a` 查看。其中的数据也不会丢失,还可以通过 `docker start` 命令来启动它。只有删除掉容器才会清除所有数据。 +答:容器退出后会处于终止(exited)状态,此时可以通过 `docker container ls -a` 查看。其中的数据也不会丢失,还可以通过 `docker start` 命令来启动它。只有删除掉容器才会清除所有数据。 ### 如何停止所有正在运行的容器? -答:可以使用 `docker kill $(docker ps -q)` 命令。 +答:可以使用 `docker kill $(docker container ls -q)` 命令。 ### 如何批量清理已经停止的容器? diff --git a/container/import_export.md b/container/import_export.md index 1ee0886c8..143e0d1a5 100644 --- a/container/import_export.md +++ b/container/import_export.md @@ -4,7 +4,7 @@ 如果要导出本地某个容器,可以使用 `docker export` 命令。 ```bash -$ docker ps -a +$ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7691a814370e ubuntu:14.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test $ docker export 7691a814370e > ubuntu.tar diff --git a/container/stop.md b/container/stop.md index b4e358f4d..aa8c32af7 100644 --- a/container/stop.md +++ b/container/stop.md @@ -9,7 +9,7 @@ 终止状态的容器可以用 `docker container ls -a` 命令看到。例如 ```bash -docker ps -a +docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ba267838cc1b ubuntu:14.04 "/bin/bash" 30 minutes ago Exited (0) About a minute ago trusting_newton 98e5efa7d997 training/webapp:latest "python app.py" About an hour ago Exited (0) 34 minutes ago backstabbing_pike diff --git a/image/dockerfile/healthcheck.md b/image/dockerfile/healthcheck.md index 3a6e9564b..7daa2e3d9 100644 --- a/image/dockerfile/healthcheck.md +++ b/image/dockerfile/healthcheck.md @@ -46,18 +46,18 @@ $ docker build -t myweb:v1 . $ docker run -d --name web -p 80:80 myweb:v1 ``` -当运行该镜像后,可以通过 `docker ps` 看到最初的状态为 `(health: starting)`: +当运行该镜像后,可以通过 `docker container ls` 看到最初的状态为 `(health: starting)`: ```bash -$ docker ps +$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 03e28eb00bd0 myweb:v1 "nginx -g 'daemon off" 3 seconds ago Up 2 seconds (health: starting) 80/tcp, 443/tcp web ``` -在等待几秒钟后,再次 `docker ps`,就会看到健康状态变化为了 `(healthy)`: +在等待几秒钟后,再次 `docker container ls`,就会看到健康状态变化为了 `(healthy)`: ```bash -$ docker ps +$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 03e28eb00bd0 myweb:v1 "nginx -g 'daemon off" 18 seconds ago Up 16 seconds (healthy) 80/tcp, 443/tcp web ``` diff --git a/mesos/installation.md b/mesos/installation.md index 903ee2918..0a60a1857 100644 --- a/mesos/installation.md +++ b/mesos/installation.md @@ -381,7 +381,7 @@ Marathon 的更多 REST API 可以参考本地自带的文档:`http://marathon 任务执行后,也可以在对应 slave 节点上通过 Docker 命令查看容器运行情况,容器将以 `mesos-SLAVE_ID` 开头。 ```sh -$ docker ps +$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1226b4ec8d7d python:3 "/bin/sh -c 'python3 " 3 days ago Up 3 days 0.0.0.0:10000->8080/tcp mesos-06db0fba-49dc-4d28-ad87-6c2d5a020866-S10.b581149e-2c43-46a2-b652-1a0bc10204b3 ``` diff --git a/network/dns.md b/network/dns.md index 00b71610a..c0bca039e 100644 --- a/network/dns.md +++ b/network/dns.md @@ -35,7 +35,7 @@ nameserver 8.8.8.8 如果用户想要手动指定容器的配置,可以在使用 `docker run` 命令启动容器时加入如下参数: -`-h HOSTNAME` 或者 `--hostname=HOSTNAME` 设定容器的主机名,它会被写到容器内的 `/etc/hostname` 和 `/etc/hosts`。但它在容器外部看不到,既不会在 `docker ps` 中显示,也不会在其他的容器的 `/etc/hosts` 看到。 +`-h HOSTNAME` 或者 `--hostname=HOSTNAME` 设定容器的主机名,它会被写到容器内的 `/etc/hostname` 和 `/etc/hosts`。但它在容器外部看不到,既不会在 `docker container ls` 中显示,也不会在其他的容器的 `/etc/hosts` 看到。 `--dns=IP_ADDRESS` 添加 DNS 服务器到容器的 `/etc/resolv.conf` 中,让容器用这个服务器来解析所有不在 `/etc/hosts` 中的主机名。 diff --git a/network/port_mapping.md b/network/port_mapping.md index 1fff0972a..59b0690cc 100644 --- a/network/port_mapping.md +++ b/network/port_mapping.md @@ -9,7 +9,7 @@ ```bash $ docker run -d -P training/webapp python app.py -$ docker ps -l +$ docker container ls -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse ``` From 81ec7190d6e478ceb76439293aa9a458cbfad77e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Tue, 23 Jan 2018 21:34:32 +0800 Subject: [PATCH 300/611] Update offline read Update offline read (#312) --- .travis.yml | 8 ++++++++ bin/offline | 22 ---------------------- docker-compose.yml | 23 +++++++++++++++-------- 3 files changed, 23 insertions(+), 30 deletions(-) delete mode 100755 bin/offline diff --git a/.travis.yml b/.travis.yml index 00a89c678..66d9ea577 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,14 @@ script: - docker run -it --rm -v $PWD:/srv/gitbook-src yeasy/docker_practice build after_success: - sudo chmod -R 777 _book +- echo "FROM nginx:alpine" >> Dockerfile +- echo "COPY _book /usr/share/nginx/html" >> Dockerfile +- docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD" +- docker build -t dockerpracticecn/docker_practice . +- docker run -dit --rm -p 4000:80 dockerpracticecn/docker_practice +- sleep 5 +- curl 127.0.0.1:4000 +- docker push dockerpracticecn/docker_practice - cd _book - git init - git remote add origin "$REPO" diff --git a/bin/offline b/bin/offline deleted file mode 100755 index a786166d3..000000000 --- a/bin/offline +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -if [ -f offline ];then echo "请在项目根目录执行 $0"; exit 1; fi - -command -v docker-compose > /dev/null 2>&1 - -if [ $? != 0 ];then echo "请安装 docker-compose"; exit 1; fi - -if [ "$1" = update ];then - status=`git status -s` - if [ -z "$status" ];then - git fetch --depth=1 origin master - git reset --hard origin/master - else - echo "您已修改项目,请提交或恢复原状!" - exit 1 - fi -fi - -docker-compose up server - -docker-compose down diff --git a/docker-compose.yml b/docker-compose.yml index 583d0e0b7..509f2654f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,8 @@ version: "3" services: + # $ docker-compose up server => up a server,Only Support Linux or macOS + server: image: yeasy/docker_practice:latest ports: @@ -9,14 +11,7 @@ services: - ./:/srv/gitbook-src command: server - windows: - image: nginx:alpine - volumes: - - ./:/srv/www - - .travis/conf.d:/etc/nginx/conf.d - ports: - - 4000:4000 - command: ["nginx", "-c", "/etc/nginx/conf.d/nginx.conf", "-g", "daemon off;"] + # $ docker-compose up build => build gitbook build: image: yeasy/docker_practice:latest @@ -24,6 +19,18 @@ services: - ./:/srv/gitbook-src command: build + # $ docker run -it --rm -p 4000:80 dockerpracticecn/docker_practice + + # $ docker up offline + + offline: + # this image build by travis ci + image: dockerpracticecn/docker_practice + ports: + - 4000:80 + + # developer test docker image + development: build: ./.travis image: yeasy/docker_practice:latest From 37a9ed4b3baa60adc091ab8dc143b2ec1a437eeb Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 10 Feb 2018 18:00:14 +0800 Subject: [PATCH 301/611] Update macOS mirror #313 --- .../install-mac-preference-advanced.png | Bin 149615 -> 0 bytes install/mirror.md | 2 -- 2 files changed, 2 deletions(-) delete mode 100644 install/_images/install-mac-preference-advanced.png diff --git a/install/_images/install-mac-preference-advanced.png b/install/_images/install-mac-preference-advanced.png deleted file mode 100644 index d19c06264a00ea0fa16a358754a950fa526cfc9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149615 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%0D93zn<(CT2^zf!dR~IYd*|MFTY!Y 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 diff --git a/install/mirror.md b/install/mirror.md index bd2de42f5..cb5a8d622 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -62,8 +62,6 @@ $ sudo systemctl restart docker 对于使用 macOS 的用户,在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址即可。修改完成之后,点击 `Apply & Restart` 按钮,Docker 就会重启并应用配置的镜像地址了。 -![](_images/install-mac-preference-advanced.png) - ### 检查加速器是否生效 配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 `docker info`,如果从结果中看到了如下内容,说明配置成功。 From 9deb181814ecd5ff40f3289a05ba6641ee759e1b Mon Sep 17 00:00:00 2001 From: khs1994 Date: Thu, 8 Mar 2018 08:23:35 +0800 Subject: [PATCH 302/611] Update install --- install/centos.md | 12 +++++++++--- install/debian.md | 1 + install/mirror.md | 15 +++------------ install/ubuntu.md | 12 +++++++----- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/install/centos.md b/install/centos.md index 515fd9433..84bca5b9a 100644 --- a/install/centos.md +++ b/install/centos.md @@ -12,9 +12,15 @@ Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10 ```bash $ sudo yum remove docker \ - docker-common \ - docker-selinux \ - docker-engine + docker-client \ + docker-client-latest \ + docker-common \ + docker-latest \ + docker-latest-logrotate \ + docker-logrotate \ + docker-selinux \ + docker-engine-selinux \ + docker-engine ``` ### 使用 yum 安装 diff --git a/install/debian.md b/install/debian.md index 2c542989b..607016c2f 100644 --- a/install/debian.md +++ b/install/debian.md @@ -6,6 +6,7 @@ Docker CE 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统: +* Buster 10 (Docker CE 17.11 Edge +) * Stretch 9 * Jessie 8 (LTS) * Wheezy 7.7 (LTS) diff --git a/install/mirror.md b/install/mirror.md index cb5a8d622..32f34f505 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -10,7 +10,7 @@ ### Ubuntu 14.04、Debian 7 Wheezy -对于使用 [upstart](http://upstart.ubuntu.com/) 的系统而言,编辑 `/etc/default/docker` 文件,在其中的 `DOCKER_OPTS` 中添加获得的加速器配置: +对于使用 [upstart](http://upstart.ubuntu.com/) 的系统而言,编辑 `/etc/default/docker` 文件,在其中的 `DOCKER_OPTS` 中配置加速器地址: ```bash DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com" @@ -46,21 +46,12 @@ $ sudo systemctl restart docker >注意:如果您之前查看旧教程,修改了 `docker.service` 文件内容,请去掉您添加的内容(`--registry-mirror=https://registry.docker-cn.com`),这里不再赘述。 ### Windows 10 -对于使用 Windows 10 的系统,在系统右下角托盘 Docker 图标内右键菜单选择 `Settings`,打开配置窗口后左侧导航菜单选择 `Docker Daemon`。编辑窗口内的 JSON 串,填写加速器地址,如: -```json -{ - "registry-mirrors": [ - "https://registry.docker-cn.com" - ] -} -``` - -编辑完成,点击 Apply 保存后 Docker 服务会重新启动。 +对于使用 Windows 10 的系统,在系统右下角托盘 Docker 图标内右键菜单选择 `Settings`,打开配置窗口后左侧导航菜单选择 `Daemon`。在 `Registry mirrors` 一栏中填写加速器地址 `https://registry.docker-cn.com`,之后点击 `Apply` 保存后 Docker 就会重启并应用配置的镜像地址了。 ### macOS -对于使用 macOS 的用户,在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址即可。修改完成之后,点击 `Apply & Restart` 按钮,Docker 就会重启并应用配置的镜像地址了。 +对于使用 macOS 的用户,在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址 `https://registry.docker-cn.com`。修改完成之后,点击 `Apply & Restart` 按钮,Docker 就会重启并应用配置的镜像地址了。 ### 检查加速器是否生效 diff --git a/install/ubuntu.md b/install/ubuntu.md index 1b2bd15a9..3b4bebacc 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -6,12 +6,10 @@ Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作系统: -* Artful 17.10 (Docker CE 17.11 Edge) -* Zesty 17.04 +* Artful 17.10 (Docker CE 17.11 Edge +) * Xenial 16.04 (LTS) * Trusty 14.04 (LTS) - Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本,当前最新的 LTS 版本为 Ubuntu 16.04。 #### 卸载旧版本 @@ -38,9 +36,13 @@ $ sudo apt-get install \ linux-image-extra-virtual ``` +#### Ubuntu 16.04 + + +Ubuntu 16.04 + 上的 Docker CE 默认使用 `overlay2` 存储层驱动,无需手动配置。 + ### 使用 APT 安装 -由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 +由于 `apt` 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 ```bash $ sudo apt-get update @@ -54,7 +56,7 @@ $ sudo apt-get install \ 鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 -为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。 +为了确认所下载软件包的合法性,需要添加软件源的 `GPG` 密钥。 ```bash $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - From 3b59591f141ab80fb62e27e66e3fa33a0956fa08 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 10 Mar 2018 08:34:46 +0800 Subject: [PATCH 303/611] Update Swarm mode create #302 --- swarm_mode/create.md | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/swarm_mode/create.md b/swarm_mode/create.md index 0cfcc8f23..07450ec5e 100644 --- a/swarm_mode/create.md +++ b/swarm_mode/create.md @@ -1,13 +1,23 @@ ## 创建 Swarm 集群 -阅读 [基本概念](overview.md) 一节我们知道 `Swarm` 集群由管理节点和工作节点组成。本节我们来创建一个包含一个管理节点和两个工作节点的最小 `Swarm` 集群。 +阅读 [基本概念](overview.md) 一节我们知道 `Swarm` 集群由 **管理节点** 和 **工作节点** 组成。本节我们来创建一个包含一个管理节点和两个工作节点的最小 `Swarm` 集群。 ### 初始化集群 -我们使用 `docker swarm init` 在本机初始化一个 `Swarm` 集群。 +在 [`Docker Machine`](../machine) 一节中我们了解到 `Docker Machine` 可以在数秒内创建一个虚拟的 Docker 主机,下面我们使用它来创建三个 Docker 主机,并加入到集群中。 + +我们首先创建一个 Docker 主机作为管理节点。 + +```bash +$ docker-machine create -d virtualbox manager +``` + +我们使用 `docker swarm init` 在管理节点初始化一个 `Swarm` 集群。 ```bash -$ docker swarm init --advertise-addr 192.168.99.100 +$ docker-machine ssh manager + +docker@manager:~$ docker swarm init --advertise-addr 192.168.99.100 Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager. To add a worker to this swarm, run the following command: @@ -21,11 +31,11 @@ To add a manager to this swarm, run 'docker swarm join-token manager' and follow 如果你的 Docker 主机有多个网卡,拥有多个 IP,必须使用 `--advertise-addr` 指定 IP。 -执行 `docker swarm init` 命令的节点自动成为管理节点。 +> 执行 `docker swarm init` 命令的节点自动成为管理节点。 ### 增加工作节点 -上一步我们在本机初始化了一个 `Swarm` 集群,拥有了一个管理节点,在 [`Docker Machine`](../machine) 一节中我们了解到 `Docker Machine` 可以在数秒内创建一个虚拟的 Docker 主机,下面我们使用它来创建两个 Docker 主机,并加入到集群中。 +上一步我们初始化了一个 `Swarm` 集群,拥有了一个管理节点,下面我们继续创建两个 Docker 主机作为工作节点,并加入到集群中。 ```bash $ docker-machine create -d virtualbox worker1 @@ -64,5 +74,5 @@ $ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 03g1y59jwfg7cf99w4lt0f662 worker2 Ready Active 9j68exjopxe7wfl6yuxml7a7j worker1 Ready Active -dxn1zf6l61qsb1josjja83ngz * manager1 Ready Active Leader +dxn1zf6l61qsb1josjja83ngz * manager Ready Active Leader ``` From 7594e11f23e59af165a810f85cfdd270b1d2e679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Sat, 10 Mar 2018 08:45:09 +0800 Subject: [PATCH 304/611] Update Compose README Remove cluster --- compose/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/README.md b/compose/README.md index d265bc1a2..2e43b1c3d 100644 --- a/compose/README.md +++ b/compose/README.md @@ -1,5 +1,5 @@ # Docker Compose 项目 -`Docker Compose` 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用。 +`Docker Compose` 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。 本章将介绍 `Compose` 项目情况以及安装和使用。 From 0db00b966966beabf670f165071a4e44f19956f8 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 10 Mar 2018 09:16:43 +0800 Subject: [PATCH 305/611] Update Dockerfile multistage-builds #320 --- image/demo/multistage-builds/Dockerfile | 4 ++-- image/multistage-builds.md | 26 +++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/image/demo/multistage-builds/Dockerfile b/image/demo/multistage-builds/Dockerfile index c54c11dbe..1475e9e4b 100644 --- a/image/demo/multistage-builds/Dockerfile +++ b/image/demo/multistage-builds/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.9-alpine +FROM golang:1.9-alpine as builder RUN apk --no-cache add git @@ -10,7 +10,7 @@ COPY app.go . RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . -FROM alpine:latest +FROM alpine:latest as prod RUN apk --no-cache add ca-certificates diff --git a/image/multistage-builds.md b/image/multistage-builds.md index 44a93d8bb..fac70ca61 100644 --- a/image/multistage-builds.md +++ b/image/multistage-builds.md @@ -134,7 +134,7 @@ go/helloworld 1 f55d3e16affc 2 minutes ago 295MB 编写 `Dockerfile` 文件 ```docker -FROM golang:1.9-alpine +FROM golang:1.9-alpine as builder RUN apk --no-cache add git @@ -146,7 +146,7 @@ COPY app.go . RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . -FROM alpine:latest +FROM alpine:latest as prod RUN apk --no-cache add ca-certificates @@ -175,3 +175,25 @@ go/helloworld 1 f55d3e16affc 2 minutes ago 295MB ``` 很明显使用多阶段构建的镜像体积小,同时也完美解决了上边提到的问题。 + +#### 只构建某一阶段的镜像 + +我们可以使用 `as` 来为某一阶段命名,例如 + +```dockerfile +FROM golang:1.9-alpine as builder +``` + +例如当我们只想构建 `builder` 阶段的镜像时,我们可以在使用 `docker build` 命令时加上 `--target` 参数即可 + +```bash +$ docker build --target builder -t username/imagename:tag . +``` + +#### 构建时从其他镜像复制文件 + +上面例子中我们使用 `COPY --from=0 /go/src/github.com/go/helloworld/app .` 从上一阶段的镜像中复制文件,我们也可以复制任意镜像中的文件。 + +```dockerfile +$ COPY --from=nginx:latest /etc/nginx/nginx.conf /nginx.conf +``` From 2c9acf141c10c3a01216340442d924e40a90f509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Mon, 19 Mar 2018 16:04:23 +0800 Subject: [PATCH 306/611] Update Contents * Fix offlineread docker image * Add warning on install * Update install follow official --- .travis.yml | 2 +- install/centos.md | 2 ++ install/debian.md | 9 +++++---- install/raspberry-pi.md | 4 +++- install/ubuntu.md | 2 ++ 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 66d9ea577..210d7e64e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,7 @@ script: - docker run -it --rm -v $PWD:/srv/gitbook-src yeasy/docker_practice build after_success: - sudo chmod -R 777 _book -- echo "FROM nginx:alpine" >> Dockerfile +- echo "FROM nginx:1.13.8-alpine" >> Dockerfile - echo "COPY _book /usr/share/nginx/html" >> Dockerfile - docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD" - docker build -t dockerpracticecn/docker_practice . diff --git a/install/centos.md b/install/centos.md index 84bca5b9a..0f36c3a21 100644 --- a/install/centos.md +++ b/install/centos.md @@ -1,5 +1,7 @@ ## CentOS 安装 Docker CE +>警告:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker. + ### 准备工作 #### 系统要求 diff --git a/install/debian.md b/install/debian.md index 607016c2f..60898603c 100644 --- a/install/debian.md +++ b/install/debian.md @@ -1,5 +1,7 @@ ## Debian 安装 Docker CE +>警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. + ### 准备工作 #### 系统要求 @@ -73,19 +75,18 @@ $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-k ```bash $ sudo add-apt-repository \ - "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/$(. /etc/os-release; echo "$ID") \ + "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \ $(lsb_release -cs) \ stable" - # 官方源 # $ sudo add-apt-repository \ # "deb [arch=amd64] https://download.docker.com/linux/debian \ # $(lsb_release -cs) \ -# 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。 Debian 7 需要进行额外的操作: diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 6f2beffa7..1b07f3449 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -1,5 +1,7 @@ ## 树莓派卡片电脑安装 Docker CE +>警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. + ### 系统要求 Docker CE 不仅支持 `x86_64` 架构的计算机,同时也支持 `ARM` 架构的计算机,本小节内容以树莓派单片电脑为例讲解 `ARM` 架构安装 Docker CE。 @@ -56,7 +58,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。 #### 安装 Docker CE diff --git a/install/ubuntu.md b/install/ubuntu.md index 3b4bebacc..833115328 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -1,5 +1,7 @@ ## Ubuntu 安装 Docker CE +>警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. + ### 准备工作 #### 系统要求 From 0ccdc3fcfe7e3800fb82b930f35ddde1bf0b9a6a Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 21 Mar 2018 14:59:25 +0800 Subject: [PATCH 307/611] Minor update expression --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 8085aaaf0..cbd12aec5 100644 --- a/README.md +++ b/README.md @@ -2,21 +2,21 @@ [![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://img.shields.io/docker/pulls/yeasy/docker_practice.svg)](https://store.docker.com/community/images/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://badges.gitter.im/docker_practice/Lobby.svg)](https://gitter.im/docker_practice/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -0.9.0(2017-12-31) +0.9.1 -*修订说明:本书内容已基于 Docker CE v17.MM 进行了重新修订,2017 年底发布了 0.9.0 版本。旧版本(Docker 1.13-)内容,请阅读 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支的内容。* +*说明:本书自 0.9.0 版本(2017-12-30 发布)起基于最新的 Docker CE v17.X 特性进行讲解。Docker 旧版本(1.13-)使用,请参考 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支。* -[Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! +[Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! -无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker,节约有限的时间。 +无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker,节约有限的生命。 -本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等热门开源项目。最后,展示了使用容器技术的典型的应用场景和实践案例。 +本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 * 在线阅读:[GitBook](https://www.gitbook.io/book/yeasy/docker_practice),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD), [epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) * [离线阅读](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) -Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新版的 Docker (v17.MM) 进行学习实践。欢迎 [参与维护项目](CONTRIBUTING.md)。 +Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新稳定版本的 Docker 进行学习实践。欢迎 [参与项目维护](CONTRIBUTING.md)。 * [修订记录](CHANGELOG.md) * [贡献者名单](https://github.com/yeasy/docker_practice/graphs/contributors) @@ -33,14 +33,14 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 * QQ 群 VII (已满):252403484 * QQ 群 VIII(已满):544818750 * QQ 群 IX (已满):571502246 -* QQ 群 X (已满):145983035 +* QQ 群 X   (可加):145983035 ->如果你有关于 Docker 的问题,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new) 来提出你的问题。 +>如果有问题,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new) 来提出。 ## 进阶学习 ![](https://github.com/yeasy/docker_practice/raw/master/_images/docker_primer2.png) -《[Docker 技术入门与实战](http://item.jd.com/12121728.html)》第二版已经正式出版,针对初版进行内容升级,欢迎大家阅读使用并反馈建议。 +《[Docker 技术入门与实战](http://item.jd.com/12121728.html)》第二版已经正式出版,针对初版内容进行升级,欢迎大家阅读使用并反馈建议。 * [京东图书](https://item.jd.com/12121728.html) * [China-Pub](http://product.china-pub.com/5089907) From 717abe60e7181990d3b18df949fa175815d507f7 Mon Sep 17 00:00:00 2001 From: yl2014 <842237798@qq.com> Date: Thu, 22 Mar 2018 12:31:35 +0800 Subject: [PATCH 308/611] =?UTF-8?q?Fix=20=E6=96=87=E5=AD=97=E9=94=99?= =?UTF-8?q?=E8=AF=AF=20=E6=8B=89=E5=8E=BB=20->=20=E6=8B=89=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- compose/compose_file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/compose_file.md b/compose/compose_file.md index 23778ad53..fbbd9f092 100644 --- a/compose/compose_file.md +++ b/compose/compose_file.md @@ -285,7 +285,7 @@ healthcheck: ### `image` -指定为镜像名称或镜像 ID。如果镜像在本地不存在,`Compose` 将会尝试拉去这个镜像。 +指定为镜像名称或镜像 ID。如果镜像在本地不存在,`Compose` 将会尝试拉取这个镜像。 ```yaml image: ubuntu From 5cfe40a504e445d48d9ddfc06c703f834ea183ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Fri, 30 Mar 2018 10:04:01 +0800 Subject: [PATCH 309/611] Fix docker login docker ce 18.04-rc1+ * https://docs.docker.com/engine/reference/commandline/login/ --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 210d7e64e..7a68a804c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,7 @@ after_success: - sudo chmod -R 777 _book - echo "FROM nginx:1.13.8-alpine" >> Dockerfile - echo "COPY _book /usr/share/nginx/html" >> Dockerfile -- docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD" +- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - docker build -t dockerpracticecn/docker_practice . - docker run -dit --rm -p 4000:80 dockerpracticecn/docker_practice - sleep 5 From 4c2acb419b5712e0e912a2248804d88318385835 Mon Sep 17 00:00:00 2001 From: "Yang,Zhou" Date: Fri, 30 Mar 2018 20:55:02 +0800 Subject: [PATCH 310/611] fix a typo --- compose/rails.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/rails.md b/compose/rails.md index 7f40faa86..a57bbd640 100644 --- a/compose/rails.md +++ b/compose/rails.md @@ -65,7 +65,7 @@ Rakefile db test ```bash gem 'therubyracer', platforms: :ruby ``` -现在我们已经有一个新的 `Gemfile` 文件,需要再重新创建镜像。(这个会步骤会改变 Dockerfile 文件本身,仅仅需要重建一次)。 +现在我们已经有一个新的 `Gemfile` 文件,需要再重新创建镜像。(这个会步骤会改变 Dockerfile 文件本身,所以需要重建一次)。 ```bash $ docker-compose build From 9187715bf0abd195264baf534c96f9283b79cc90 Mon Sep 17 00:00:00 2001 From: Alex-WZ <32671340+Alex-WZ@users.noreply.github.com> Date: Sat, 31 Mar 2018 14:36:42 +0800 Subject: [PATCH 311/611] Update concepts.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 知道容器的生命周期结束或者其被删除 -> 直到容器的生命周期结束或者其被删除 --- kubernetes/concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubernetes/concepts.md b/kubernetes/concepts.md index aa29a173f..ddbfb3326 100644 --- a/kubernetes/concepts.md +++ b/kubernetes/concepts.md @@ -69,7 +69,7 @@ Kubernetes 校验节点可用依赖于 ID。在当前的版本中,有两个接 在 Kubernetes 中,使用的最小单位是容器组,容器组是创建,调度,管理的最小单位。 一个容器组使用相同的 Docker 容器并共享卷(挂载点)。一个容器组是一个特定运用的打包集合,包含一个或多个容器。 -和运行的容器类似,一个容器组被认为只有很短的运行周期。容器组被调度到一组节点运行,知道容器的生命周期结束或者其被删除。如果节点死掉,运行在其上的容器组将会被删除而不是重新调度。(也许在将来的版本中会添加容器组的移动)。 +和运行的容器类似,一个容器组被认为只有很短的运行周期。容器组被调度到一组节点运行,直到容器的生命周期结束或者其被删除。如果节点死掉,运行在其上的容器组将会被删除而不是重新调度。(也许在将来的版本中会添加容器组的移动)。 ### 容器组设计的初衷 From 79801a23892c71c382f7047efb0fab5fdb1d92ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Sat, 31 Mar 2018 19:22:16 +0800 Subject: [PATCH 312/611] Update docker version --- .github/ISSUE_TEMPLATE.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 1f2fdb571..beaf872ce 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -17,11 +17,11 @@ * [x] Others (Pls describe below) ### Docker Version - - + + -* [x] Edge (v18.01) -* [x] Stable (v17.12) +* [x] Edge (v18.04) +* [x] Stable (v18.03) * [x] 1.13.0 or Before ### Problem Description From fed0d4f65b3a6056bb6bde5ab17163df3afe3df8 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 8 Apr 2018 01:06:53 +0800 Subject: [PATCH 313/611] Add some file --- .editorconfig | 29 +++++++++++++++++++++++++++++ .gitattributes | 5 +++++ 2 files changed, 34 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitattributes diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..23433f4ab --- /dev/null +++ b/.editorconfig @@ -0,0 +1,29 @@ +# EditorConfig is awesome: http://EditorConfig.org + +root = true + +[*] + +indent_style = space + +indent_size = 2 + +end_of_line = lf + +charset = utf-8 + +trim_trailing_whitespace = true + +insert_final_newline = true + +[*.md] + +trim_trailing_whitespace = false + +[*.py] + +indent_size = 4 + +[Makefile] + +indent_style = tab diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..f43c04d94 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +* text=auto + +*.sh text eol=lf + +secrets/* text eol=lf From 58c6540cdfc975b499d55101da0f3eb6ed60b747 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 8 Apr 2018 21:00:11 +0800 Subject: [PATCH 314/611] Remove deprecated content --- cases/os/debian.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cases/os/debian.md b/cases/os/debian.md index 5d6ace09e..f54420eb6 100644 --- a/cases/os/debian.md +++ b/cases/os/debian.md @@ -44,10 +44,10 @@ Ubuntu 是一个以桌面应用为主的GNU/Linux操作系统,其名称来自 #### 使用 Ubuntu 官方镜像 -Ubuntu 相关的镜像有很多,这里使用 `-s 10` 参数,只搜索那些被收藏 10 次以上的镜像。 +Ubuntu 相关的镜像有很多,这里使用 `--filter=stars=10` 参数,只搜索那些被收藏 10 次以上的镜像。 ```bash -$ docker search -s 10 ubuntu +$ docker search --filter=stars=10 ubuntu NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Official Ubuntu base image 840 [OK] @@ -61,7 +61,6 @@ clue/ttrss The Tiny Tiny RSS feed reader allows you t. dockerfile/ubuntu-desktop Trusted automated Ubuntu Desktop (LXDE) (h... 14 [OK] tutum/ubuntu Ubuntu image with SSH access. For the root... 12 [OK] ``` -*注意,Docker 1.12 版本中已经不支持 --stars 参数,则可以使用 -f stars=N 参数。* 根据搜索出来的结果,读者可以自行选择下载镜像并使用。 From ca01158e1cbf1f8b83a904c7ba14741be6a09dda Mon Sep 17 00:00:00 2001 From: songjiayang Date: Tue, 17 Apr 2018 17:40:50 +0800 Subject: [PATCH 315/611] fix typo --- compose/rails.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/rails.md b/compose/rails.md index a57bbd640..ce3d132db 100644 --- a/compose/rails.md +++ b/compose/rails.md @@ -1,4 +1,4 @@ -## 使用 Rail +## 使用 Rails 本小节内容适合 `Ruby` 开发人员阅读。 From 274cb33e89b25e7e2e250312d7453be7b383d3d8 Mon Sep 17 00:00:00 2001 From: Shude Li Date: Mon, 23 Apr 2018 00:04:30 +0800 Subject: [PATCH 316/611] doc(compose_file): fix version number of secrets (#332) --- compose/compose_file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compose/compose_file.md b/compose/compose_file.md index fbbd9f092..fbb1955ee 100644 --- a/compose/compose_file.md +++ b/compose/compose_file.md @@ -393,8 +393,8 @@ ports: 存储敏感数据,例如 `mysql` 服务密码。 -```bash -version: "3" +```yaml +version: "3.1" services: mysql: From 122df6f2333570d08f31e15e624d3726ebc1922f Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Sun, 29 Apr 2018 15:46:38 +0800 Subject: [PATCH 317/611] Update gitbook read link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cbd12aec5..25253c07e 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 -* 在线阅读:[GitBook](https://www.gitbook.io/book/yeasy/docker_practice),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) +* 在线阅读:[GitBook](https://legacy.gitbook.com/read/book/yeasy/docker_practice),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD), [epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) * [离线阅读](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) From 9b9ab2349a0b4b3ab76aa25e17f6d13789473de2 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Mon, 7 May 2018 16:42:04 +0800 Subject: [PATCH 318/611] Update gitbook link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 25253c07e..0169efea5 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 -* 在线阅读:[GitBook](https://legacy.gitbook.com/read/book/yeasy/docker_practice),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) +* 在线阅读:[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD), [epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) * [离线阅读](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) From 255292cc01b2c4d31423201a2dc71ac383c1f03f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Wed, 9 May 2018 19:45:51 +0800 Subject: [PATCH 319/611] Change docker rmi TO docker image rm #279 --- image/rm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/rm.md b/image/rm.md index 5ea41f9dd..bf8155b70 100644 --- a/image/rm.md +++ b/image/rm.md @@ -62,7 +62,7 @@ Untagged: node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b16442 如果观察上面这几个命令的运行输出信息的话,你会注意到删除行为分为两类,一类是 `Untagged`,另一类是 `Deleted`。我们之前介绍过,镜像的唯一标识是其 ID 和摘要,而一个镜像可以有多个标签。 -因此当我们使用上面命令删除镜像的时候,实际上是在要求删除某个标签的镜像。所以首先需要做的是将满足我们要求的所有镜像标签都取消,这就是我们看到的 `Untagged` 的信息。因为一个镜像可以对应多个标签,因此当我们删除了所指定的标签后,可能还有别的标签指向了这个镜像,如果是这种情况,那么 `Delete` 行为就不会发生。所以并非所有的 `docker rmi` 都会产生删除镜像的行为,有可能仅仅是取消了某个标签而已。 +因此当我们使用上面命令删除镜像的时候,实际上是在要求删除某个标签的镜像。所以首先需要做的是将满足我们要求的所有镜像标签都取消,这就是我们看到的 `Untagged` 的信息。因为一个镜像可以对应多个标签,因此当我们删除了所指定的标签后,可能还有别的标签指向了这个镜像,如果是这种情况,那么 `Delete` 行为就不会发生。所以并非所有的 `docker image rm` 都会产生删除镜像的行为,有可能仅仅是取消了某个标签而已。 当该镜像所有的标签都被取消了,该镜像很可能会失去了存在的意义,因此会触发删除行为。镜像是多层存储结构,因此在删除的时候也是从上层向基础层方向依次进行判断删除。镜像的多层结构让镜像复用变动非常容易,因此很有可能某个其它镜像正依赖于当前镜像的某一层。这种情况,依旧不会触发删除该层的行为。直到没有任何层依赖当前层时,才会真实的删除当前层。这就是为什么,有时候会奇怪,为什么明明没有别的标签指向这个镜像,但是它还是存在的原因,也是为什么有时候会发现所删除的层数和自己 `docker pull` 看到的层数不一样的源。 From fcd9f49e2465834dbdf04bda557f55057d35bd73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Thu, 10 May 2018 08:09:39 +0800 Subject: [PATCH 320/611] Update raspberry-pi content Fix #337 --- install/raspberry-pi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 1b07f3449..86c01cc87 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -12,7 +12,7 @@ Docker CE 支持以下版本的 [Raspbian](https://www.raspberrypi.org/downloads * Raspbian Jessie -*注:* `Raspbian` 是树莓派基金会为树莓派卡片电脑设计的 Linux 发行版,其基于 Debian。 +*注:* `Raspbian` 是树莓派的开发与维护机构 [树莓派基金会](http://www.raspberrypi.org/) 推荐用于树莓派的首选系统,其基于 `Debian`。 ### 使用 APT 安装 From 86d532630f44e616055f400c517a015cee560ccd Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 23 May 2018 17:16:51 +0800 Subject: [PATCH 321/611] Update Swarm mode: add rolling_update --- SUMMARY.md | 1 + swarm_mode/deploy.md | 16 +++++++++++++ swarm_mode/rolling_update.md | 46 ++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 swarm_mode/rolling_update.md diff --git a/SUMMARY.md b/SUMMARY.md index 5156706ff..5ced268fe 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -88,6 +88,7 @@ * [使用 compose 文件](swarm_mode/stack.md) * [管理敏感数据](swarm_mode/secret.md) * [管理配置信息](swarm_mode/config.md) + * [滚动升级](swarm_mode/rolling_update.md) * [安全](security/README.md) * [内核命名空间](security/kernel_ns.md) * [控制组](security/control_group.md) diff --git a/swarm_mode/deploy.md b/swarm_mode/deploy.md index 18b71a94e..9d46c3720 100644 --- a/swarm_mode/deploy.md +++ b/swarm_mode/deploy.md @@ -44,6 +44,22 @@ nginx.1.pjfzd39buzlt@swarm2 | 10.255.0.2 - - [25/Nov/2017:02:10:27 +0000] "GE nginx.1.pjfzd39buzlt@swarm2 | 2017/11/25 02:10:27 [error] 5#5: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 10.255.0.2, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.99.101" ``` +### 服务伸缩 + +我们可以使用 `docker service scale` 对一个服务运行的容器数量进行伸缩。 + +当业务处于高峰期时,我们需要扩展服务运行的容器数量。 + +```bash +$ docker service scale nginx=5 +``` + +当业务平稳时,我们需要减少服务运行的容器数量。 + +```bash +$ docker service scale nginx=2 +``` + ### 删除服务 使用 `docker service rm` 来从 `Swarm` 集群移除某个服务。 diff --git a/swarm_mode/rolling_update.md b/swarm_mode/rolling_update.md new file mode 100644 index 000000000..767be2064 --- /dev/null +++ b/swarm_mode/rolling_update.md @@ -0,0 +1,46 @@ +## SWarm mode 与滚动升级 + +在 [部署服务](deploy.md) 一节中我们使用 `nginx:1.13.7-alpine` 镜像部署了一个名为 `nginx` 的服务。 + +现在我们想要将 `NGINX` 版本升级到 `1.13.12`,那么在 Swarm mode 中如何升级服务呢? + +你可能会想到,先停止原来的服务,再使用新镜像部署一个服务,不就完成服务的 “升级” 了吗。 + +这样做的弊端很明显,如果新部署的服务出现问题,原来的服务删除之后,很难恢复,那么在 Swarm mode 中到底该如何对服务进行滚动升级呢? + +答案就是使用 `docker service update` 命令。 + +```bash +$ docker service update \ + --image nginx:1.13.12-alpine \ + nginx +``` + +以上命令使用 `--image` 选项更新了服务的镜像。当然我们也可以使用 `docker service update` 更新任意的配置。 + +`--secret-add` 选项可以增加一个密钥 + +`--secret-rm` 选项可以删除一个密钥 + +更多选项可以通过 `docker service update -h` 命令查看。 + +### 服务回退 + +现在假设我们发现 `nginx` 服务的镜像升级到 `nginx:1.13.12-alpine` 出现了一些问题,我们可以使用命令一键回退。 + +```bash +$ docker service rollback nginx +``` + +现在使用 `docker service ps` 命令查看 `nginx` 服务详情。 + +```bash +$ docker service ps nginx + +ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS +rt677gop9d4x nginx.1 nginx:1.13.7-alpine VM-20-83-debian Running Running about a minute ago +d9pw13v59d00 \_ nginx.1 nginx:1.13.12-alpine VM-20-83-debian Shutdown Shutdown 2 minutes ago +i7ynkbg6ybq5 \_ nginx.1 nginx:1.13.7-alpine VM-20-83-debian Shutdown Shutdown 2 minutes ago +``` + +结果的输出详细记录了服务的部署、滚动升级、回退的过程。 From 20f19cbafd366bacde1c31e66b8c7c009ee18d41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Wed, 23 May 2018 17:45:41 +0800 Subject: [PATCH 322/611] Update docker machine on windows 10 * Set up an external network switch. If you plan at any point to use Docker Machine to set up multiple local VMs, you need this anyway, as described in the topic on the Hyper-V driver for Docker Machine. * https://docs.docker.com/machine/drivers/hyper-v/#example --- machine/usage.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/machine/usage.md b/machine/usage.md index a4af5f1d9..828067579 100644 --- a/machine/usage.md +++ b/machine/usage.md @@ -52,8 +52,10 @@ $ docker-machine create \ Windows 10 安装 Docker for Windows 之后不能再安装 VirtualBox,也就不能使用 `virtualbox` 驱动来创建 Docker Machine,我们可以选择使用 `hyperv` 驱动。 +> 注意,必须事先在 `Hyper-V` 管理器中新建一个 **外部虚拟交换机** 执行下面的命令时,使用 `--hyperv-virtual-switch=MY_SWITCH` 指定虚拟交换机名称 + ```bash -$ docker-machine create --driver hyperv vm +$ docker-machine create --driver hyperv --hyperv-virtual-switch=MY_SWITCH vm ``` 更多参数请使用 `docker-machine create --driver hyperv --help` 命令查看。 From e0791a61a275d8120784e77ec4c46eb2f0a56fd1 Mon Sep 17 00:00:00 2001 From: denwork Date: Thu, 31 May 2018 18:30:41 +0800 Subject: [PATCH 323/611] Create nexus3_registry.md --- SUMMARY.md | 1 + repository/nexus3_registry.md | 104 ++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 repository/nexus3_registry.md diff --git a/SUMMARY.md b/SUMMARY.md index 5ced268fe..541ec87cd 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -52,6 +52,7 @@ * [Docker Hub](repository/dockerhub.md) * [私有仓库](repository/registry.md) * [私有仓库高级配置](repository/registry_auth.md) + * [Nexus 3](repository/nexus3_registry.md) * [数据管理](data_management/README.md) * [数据卷](data_management/volume.md) * [监听主机目录](data_management/bind-mounts.md) diff --git a/repository/nexus3_registry.md b/repository/nexus3_registry.md new file mode 100644 index 000000000..7e2dbea29 --- /dev/null +++ b/repository/nexus3_registry.md @@ -0,0 +1,104 @@ +## Nexus3.x 的私有仓库 + +使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry 程序。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/download-oss-sonatype/) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 + +### 启动 Nexus 容器 + +```bash +$ docker run -d --name nexus3 --restart=always \ + -p 8081:8081 \ + --mount src=nexus-data,target=/nexus-data \ + sonatype/nexus3 +``` + +等待 3-5 分钟,如果 `nexus3` 容器没有异常退出,那么你可以使用浏览器打开 `http://YourIP:8081` 访问 Nexus 了。 + +第一次启动 Nexus 的默认帐号是 `admin` 密码是 `admin123` 登录以后点击页面上方的齿轮按钮进行设置。 + +### 创建仓库 + +创建一个私有仓库的方法: `Repository->Repositories` 点击右边菜单 `Create repository` 选择 `docker (hosted)` + +* Name: 仓库的名称 +* HTTP: 仓库单独的访问端口 +* Enable Docker V1 API: 如果需要同时支持 V1 版本请勾选此项(不建议勾选)。 +* Hosted -> Deployment pollcy: 请选择 Allow redeploy 否则无法上传 Docker 镜像。 + +其它的仓库创建方法请各位自己摸索,还可以创建一个 docker (proxy) 类型的仓库链接到 DockerHub 上。再创建一个 docker (group) 类型的仓库把刚才的 hosted 与 proxy 添加在一起。主机在访问的时候默认下载私有仓库中的镜像,如果没有将链接到 DockerHub 中下载并缓存到 Nexus 中。 + +### 添加访问权限 + +菜单 `Security->Realms` 把 Docker Bearer Token Realm 移到右边的框中保存。 + +添加用户规则:菜单 `Security->Roles`->`Create role` 在 `Privlleges` 选项搜索 docker 把相应的规则移动到右边的框中然后保存。 + +添加用户:菜单 `Security->Users`->`Create local user` 在 `Roles` 选项中选中刚才创建的规则移动到右边的窗口保存。 + +### NGINX 加密代理 + +证书的生成请参见 [`私有仓库高级配置`](registry_auth.md) 里面证书生成一节。 + +NGINX 示例配置如下 + +```nginx +upstream register +{ + server "YourHostName OR IP":5001; #端口为上面添加的私有镜像仓库是设置的 HTTP 选项的端口号 + check interval=3000 rise=2 fall=10 timeout=1000 type=http; + check_http_send "HEAD / HTTP/1.0\r\n\r\n"; + check_http_expect_alive http_4xx; +} + +server { + server_name YourDomainName;#如果没有 DNS 服务器做解析,请删除此选项使用本机 IP 地址访问 + listen 443 ssl; + + ssl_certificate key/example.crt; + ssl_certificate_key key/example.key; + + ssl_session_timeout 5m; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers HIGH:!aNULL:!MD5; + ssl_prefer_server_ciphers on; + large_client_header_buffers 4 32k; + client_max_body_size 300m; + client_body_buffer_size 512k; + proxy_connect_timeout 600; + proxy_read_timeout 600; + proxy_send_timeout 600; + proxy_buffer_size 128k; + proxy_buffers 4 64k; + proxy_busy_buffers_size 128k; + proxy_temp_file_write_size 512k; + + location / { + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Port $server_port; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + proxy_redirect off; + proxy_set_header X-Real-IP $remote_addr; + proxy_pass http://register; + proxy_read_timeout 900s; + + } + error_page 500 502 503 504 /50x.html; +} +``` + +### Docker 主机访问镜像仓库 + +如果不启用 SSL 加密可以通过前面章节的方法添加信任地址到 Docker 的配置文件中然后重启 Docker + +使用 SSL 加密以后程序需要访问就不能采用修改配置的访问了。具体方法如下: + +```bash +$ openssl s_client -showcerts -connect YourDomainName OR HostIP:443 /dev/null|openssl x509 -outform PEM >ca.crt +$ cat ca.crt | sudo tee -a /etc/ssl/certs/ca-certificates.crt +$ systemctl restart docker +``` + +使用 `docker login YourDomainName OR HostIP` 进行测试,用户名密码填写上面 Nexus 中生成的。 From 02d4c5704c97c300997a39c046265e19f9b60ac5 Mon Sep 17 00:00:00 2001 From: Xi ErDe Date: Sun, 3 Jun 2018 21:28:31 +0800 Subject: [PATCH 324/611] host file --- repository/registry_auth.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/registry_auth.md b/repository/registry_auth.md index 67af8f88e..ffd2ebd83 100644 --- a/repository/registry_auth.md +++ b/repository/registry_auth.md @@ -160,7 +160,7 @@ volumes: 编辑 `/etc/hosts` ```bash -docker.domain.com 127.0.0.1 +127.0.0.1 docker.domain.com ``` ### 启动 From b97e5e2a8b24f956576bd031afa3a8a49e445108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Sun, 3 Jun 2018 21:39:52 +0800 Subject: [PATCH 325/611] Update Docker version [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0169efea5..7609ecd90 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ 0.9.1 -*说明:本书自 0.9.0 版本(2017-12-30 发布)起基于最新的 Docker CE v17.X 特性进行讲解。Docker 旧版本(1.13-)使用,请参考 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支。* +*说明:本书自 0.9.0 版本(2017-12-30 发布)起基于最新的 Docker CE v18.X 特性进行讲解。Docker 旧版本(1.13-)使用,请参考 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支。* [Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! From 113b5c2d2068a9f04d0209623c9f874b23d48bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Sun, 3 Jun 2018 21:41:17 +0800 Subject: [PATCH 326/611] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7609ecd90..50b2e622a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ 0.9.1 -*说明:本书自 0.9.0 版本(2017-12-30 发布)起基于最新的 Docker CE v18.X 特性进行讲解。Docker 旧版本(1.13-)使用,请参考 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支。* +*说明:本书自 0.9.0 版本起基于最新的 Docker CE v18.X 特性进行讲解。Docker 旧版本(1.13-)使用,请参考 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支。* [Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! From d242aaf10ea01d4522c51b6f4db081c3c788b294 Mon Sep 17 00:00:00 2001 From: Li Zhaogeng Date: Thu, 21 Jun 2018 11:46:41 +0800 Subject: [PATCH 327/611] Fix a dismatch between table of contents and contents --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 541ec87cd..9c88cdda1 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -55,7 +55,7 @@ * [Nexus 3](repository/nexus3_registry.md) * [数据管理](data_management/README.md) * [数据卷](data_management/volume.md) - * [监听主机目录](data_management/bind-mounts.md) + * [挂载主机目录](data_management/bind-mounts.md) * [使用网络](network/README.md) * [外部访问容器](network/port_mapping.md) * [容器互联](network/linking.md) From 7bbc556e6e0f083759296fb2823491620dc2a094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Thu, 28 Jun 2018 11:15:25 +0800 Subject: [PATCH 328/611] Remove aliyun daocloud --- install/mirror.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/install/mirror.md b/install/mirror.md index 32f34f505..79d043251 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -2,11 +2,12 @@ 国内从 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) +* [Docker 官方提供的中国 registry mirror `https://registry.docker-cn.com`](https://docs.docker.com/registry/recipes/mirror/#use-case-the-china-registry-mirror) +* [七牛云加速器 `https://reg-mirror.qiniu.com/`](https://kirk-enterprise.github.io/hub-docs/#/user-guide/mirror) -我们以 Docker 官方加速器为例进行介绍。 +> 当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。 + +我们以 Docker 官方加速器 `https://registry.docker-cn.com` 为例进行介绍。 ### Ubuntu 14.04、Debian 7 Wheezy From 9f08baaa5cc1d187e1aa202539527453ee6a8608 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 10 Jul 2018 08:07:31 +0800 Subject: [PATCH 329/611] Update install --- install/mirror.md | 2 ++ install/ubuntu.md | 1 + 2 files changed, 3 insertions(+) diff --git a/install/mirror.md b/install/mirror.md index 79d043251..95284d083 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -7,6 +7,8 @@ > 当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。 +> 国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。 + 我们以 Docker 官方加速器 `https://registry.docker-cn.com` 为例进行介绍。 ### Ubuntu 14.04、Debian 7 Wheezy diff --git a/install/ubuntu.md b/install/ubuntu.md index 833115328..dbc91a57c 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -8,6 +8,7 @@ Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作系统: +* Bionic 18.04 (LTS) * Artful 17.10 (Docker CE 17.11 Edge +) * Xenial 16.04 (LTS) * Trusty 14.04 (LTS) From c6c0a6f1fe48a06d04211aacc340699f9cc07626 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 10 Jul 2018 08:08:21 +0800 Subject: [PATCH 330/611] Remove -v description --- data_management/bind-mounts.md | 4 ---- data_management/volume.md | 4 ---- 2 files changed, 8 deletions(-) diff --git a/data_management/bind-mounts.md b/data_management/bind-mounts.md index dad2214ed..73d1ed723 100644 --- a/data_management/bind-mounts.md +++ b/data_management/bind-mounts.md @@ -1,9 +1,5 @@ ## 挂载主机目录 -### 选择 -v 还是 -–mount 参数 - -Docker 新用户应该选择 `--mount` 参数,经验丰富的 Docker 使用者对 `-v` 或者 `--volume` 已经很熟悉了,但是推荐使用 `--mount` 参数。 - ### 挂载一个主机目录作为数据卷 使用 `--mount` 标记可以指定挂载一个本地主机的目录到容器中去。 diff --git a/data_management/volume.md b/data_management/volume.md index 65b056bb1..b96b624c5 100644 --- a/data_management/volume.md +++ b/data_management/volume.md @@ -12,10 +12,6 @@ >注意:`数据卷` 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的 `数据卷`。 -### 选择 -v 还是 -–mount 参数 - -Docker 新用户应该选择 `--mount` 参数,经验丰富的 Docker 使用者对 `-v` 或者 `--volume` 已经很熟悉了,但是推荐使用 `--mount` 参数。 - ### 创建一个数据卷 ```bash From 8f46e579f4b43dd689bf977df1040aef490e0359 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 10 Jul 2018 08:08:34 +0800 Subject: [PATCH 331/611] Update etcd --- etcd/cluster.md | 2 +- etcd/demo/cluster/docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/etcd/cluster.md b/etcd/cluster.md index d59abcfb3..64da7976c 100644 --- a/etcd/cluster.md +++ b/etcd/cluster.md @@ -5,7 +5,7 @@ 编辑 `docker-compose.yml` 文件 ```yaml -version: "3" +version: "3.6" services: node1: diff --git a/etcd/demo/cluster/docker-compose.yml b/etcd/demo/cluster/docker-compose.yml index 7d35acd82..0258269af 100644 --- a/etcd/demo/cluster/docker-compose.yml +++ b/etcd/demo/cluster/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3" +version: "3.6" services: node1: From fb66c7e5ee5343b61675f4587eaad5146475ca44 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 10 Jul 2018 08:09:10 +0800 Subject: [PATCH 332/611] Update demo image version --- network/dns.md | 2 +- repository/registry_auth.md | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/network/dns.md b/network/dns.md index c0bca039e..a84f90ea1 100644 --- a/network/dns.md +++ b/network/dns.md @@ -27,7 +27,7 @@ tmpfs on /etc/resolv.conf type tmpfs ... 这样每次启动的容器 DNS 自动配置为 `114.114.114.114` 和 `8.8.8.8`。使用以下命令来证明其已经生效。 ```bash -$ docker run -it --rm ubuntu:17.10 cat etc/resolv.conf +$ docker run -it --rm ubuntu:18.04 cat etc/resolv.conf nameserver 114.114.114.114 nameserver 8.8.8.8 diff --git a/repository/registry_auth.md b/repository/registry_auth.md index ffd2ebd83..e1a0fa4e3 100644 --- a/repository/registry_auth.md +++ b/repository/registry_auth.md @@ -182,15 +182,15 @@ $ docker login docker.domain.com 尝试推送、拉取镜像。 ```bash -$ docker pull ubuntu:17.10 +$ docker pull ubuntu:18.04 -$ docker tag ubuntu:17.10 docker.domain.com/username/ubuntu:17.10 +$ docker tag ubuntu:18.04 docker.domain.com/username/ubuntu:18.04 -$ docker push docker.domain.com/username/ubuntu:17.10 +$ docker push docker.domain.com/username/ubuntu:18.04 -$ docker image rm docker.domain.com/username/ubuntu:17.10 +$ docker image rm docker.domain.com/username/ubuntu:18.04 -$ docker pull docker.domain.com/username/ubuntu:17.10 +$ docker pull docker.domain.com/username/ubuntu:18.04 ``` 如果我们退出登录,尝试推送镜像。 @@ -198,7 +198,7 @@ $ docker pull docker.domain.com/username/ubuntu:17.10 ```bash $ docker logout docker.domain.com -$ docker push docker.domain.com/username/ubuntu:17.10 +$ docker push docker.domain.com/username/ubuntu:18.04 no basic auth credentials ``` From c3c182e6740505f53b16e1ecf8c87e681d73116c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Tue, 10 Jul 2018 12:24:42 +0800 Subject: [PATCH 333/611] Fix registry tls error --- repository/registry_auth.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/repository/registry_auth.md b/repository/registry_auth.md index e1a0fa4e3..60ed4316e 100644 --- a/repository/registry_auth.md +++ b/repository/registry_auth.md @@ -78,9 +78,17 @@ $ openssl x509 -req -days 750 -in "site.csr" -sha256 \ -out "docker.domain.com.crt" -extfile "site.cnf" -extensions server ``` -这样已经拥有了 `docker.domain.com` 的网站 SSL 私钥 `docker.domain.com.key` 和 SSL 证书 `docker.domain.com.crt`。 +这样已经拥有了 `docker.domain.com` 的网站 SSL 私钥 `docker.domain.com.key` 和 SSL 证书 `docker.domain.com.crt` 及 CA 根证书 `root-ca.crt`。 -新建 `ssl` 文件夹并将 `docker.domain.com.key` `docker.domain.com.crt` 这两个文件移入,删除其他文件。 +新建 `ssl` 文件夹并将 `docker.domain.com.key` `docker.domain.com.crt` `root-ca.crt` 这三个文件移入,删除其他文件。 + +由于自行签发的 CA 根证书不被系统信任,所以我们需要将 CA 根证书 `root-ca.crt` 移入 `/etc/docker/certs.d/docker.domain.com` 文件夹中。 + +```bash +$ sudo mkdir -p /etc/docker/certs.d/docker.domain.com + +$ sudo cp ssl/root-ca.crt /etc/docker/certs.d/docker.domain.com/ca.crt +``` ### 配置私有仓库 From 80cb2445fcb99ebce5597647397bab9168c2d8af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=B7=E6=80=80=E5=B8=85?= Date: Wed, 11 Jul 2018 08:13:17 +0800 Subject: [PATCH 334/611] CA should put client host folder --- repository/registry_auth.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/repository/registry_auth.md b/repository/registry_auth.md index 60ed4316e..9b5054400 100644 --- a/repository/registry_auth.md +++ b/repository/registry_auth.md @@ -82,14 +82,6 @@ $ openssl x509 -req -days 750 -in "site.csr" -sha256 \ 新建 `ssl` 文件夹并将 `docker.domain.com.key` `docker.domain.com.crt` `root-ca.crt` 这三个文件移入,删除其他文件。 -由于自行签发的 CA 根证书不被系统信任,所以我们需要将 CA 根证书 `root-ca.crt` 移入 `/etc/docker/certs.d/docker.domain.com` 文件夹中。 - -```bash -$ sudo mkdir -p /etc/docker/certs.d/docker.domain.com - -$ sudo cp ssl/root-ca.crt /etc/docker/certs.d/docker.domain.com/ca.crt -``` - ### 配置私有仓库 私有仓库默认的配置文件位于 `/etc/docker/registry/config.yml`,我们先在本地编辑 `config.yml`,之后挂载到容器中。 @@ -181,6 +173,14 @@ $ docker-compose up -d ### 测试私有仓库功能 +由于自行签发的 CA 根证书不被系统信任,所以我们需要将 CA 根证书 `ssl/root-ca.crt` 移入 `/etc/docker/certs.d/docker.domain.com` 文件夹中。 + +```bash +$ sudo mkdir -p /etc/docker/certs.d/docker.domain.com + +$ sudo cp ssl/root-ca.crt /etc/docker/certs.d/docker.domain.com/ca.crt +``` + 登录到私有仓库。 ```bash From 2e70663bf9a8d3185ca4c181a4c741db28ef4102 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 20 Jul 2018 09:31:19 +0800 Subject: [PATCH 335/611] Change Docker CE update channels #351 --- .../Bug_report.md} | 14 ++++-- .github/ISSUE_TEMPLATE/Custom.md | 43 +++++++++++++++++++ .github/ISSUE_TEMPLATE/Feature_request.md | 5 +++ CHANGELOG.md | 3 ++ install/README.md | 12 +----- install/centos.md | 8 ++-- install/debian.md | 2 +- install/raspberry-pi.md | 2 +- install/ubuntu.md | 2 +- 9 files changed, 70 insertions(+), 21 deletions(-) rename .github/{ISSUE_TEMPLATE.md => ISSUE_TEMPLATE/Bug_report.md} (76%) create mode 100644 .github/ISSUE_TEMPLATE/Custom.md create mode 100644 .github/ISSUE_TEMPLATE/Feature_request.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/Bug_report.md similarity index 76% rename from .github/ISSUE_TEMPLATE.md rename to .github/ISSUE_TEMPLATE/Bug_report.md index beaf872ce..72aebae60 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -1,3 +1,9 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + * [ ] Have u googled the problem? If no, pls do that first! ### Environment @@ -17,11 +23,11 @@ * [x] Others (Pls describe below) ### Docker Version - - + + -* [x] Edge (v18.04) -* [x] Stable (v18.03) +* [x] Edge (v18.06) +* [x] Stable (v18.06) * [x] 1.13.0 or Before ### Problem Description diff --git a/.github/ISSUE_TEMPLATE/Custom.md b/.github/ISSUE_TEMPLATE/Custom.md new file mode 100644 index 000000000..98a25d7fa --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Custom.md @@ -0,0 +1,43 @@ +--- +name: Custom issue template +about: Create a issue about Docker + +--- + +* [ ] Have u googled the problem? If no, pls do that first! + +### Environment + + + +* [x] Linux + * [x] CentOS 7 + * [x] Ubuntu 16.04 + * [x] Ubuntu 17.10 + * [x] Debian 9 + * [x] Debian 8 + * [x] CoreOS +* [x] macOS +* [x] Windows 10 +* [x] Raspberry Pi (ARM) +* [x] Others (Pls describe below) + +### Docker Version + + + +* [x] Edge (v18.06) +* [x] Stable (v18.06) +* [x] 1.13.0 or Before + +### Problem Description + + + + + + + + + + diff --git a/.github/ISSUE_TEMPLATE/Feature_request.md b/.github/ISSUE_TEMPLATE/Feature_request.md new file mode 100644 index 000000000..b7414799c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Feature_request.md @@ -0,0 +1,5 @@ +--- +name: Feature request +about: Suggest an idea for docker_practice + +--- diff --git a/CHANGELOG.md b/CHANGELOG.md index e5b7fcee7..104d12c2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## 主要修订记录 +* 0.9.1: 2018-07-31 + * 错误修正 + * 0.9.0: 2017-12-31 * 0.9.0-rc2: 2017-12-10 diff --git a/install/README.md b/install/README.md index df618a519..915f7f0d8 100644 --- a/install/README.md +++ b/install/README.md @@ -1,15 +1,7 @@ # 安装 Docker -Docker 在 1.13 版本之后,从 2017 年的 3 月 1 日开始,版本命名规则变为如下: +Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 -|项目 | 说明 | -|:--------------- | :------- | -|版本格式 | YY.MM | -|Stable 版本 | 每个季度发行 | -|Edge 版本 | 每个月发行 | - -同时 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 分为 **stable**, **test**, 和 **nightly** 三个更新频道。每六个月发布一个 **stable** 版本 (18.09, 19.03, 19.09...)。 官方网站上有各种环境下的 [安装指南](https://docs.docker.com/engine/installation/),这里主要介绍 Docker CE 在 Linux 、Windows 10 (PC) 和 macOS 上的安装。 diff --git a/install/centos.md b/install/centos.md index 0f36c3a21..339e06c15 100644 --- a/install/centos.md +++ b/install/centos.md @@ -51,16 +51,16 @@ $ sudo yum-config-manager \ # https://download.docker.com/linux/centos/docker-ce.repo ``` -如果需要最新版本的 Docker CE 请使用以下命令: +如果需要测试版本的 Docker CE 请使用以下命令: ```bash -$ sudo yum-config-manager --enable docker-ce-edge +$ sudo yum-config-manager --enable docker-ce-test ``` -如果需要测试版本的 Docker CE 请使用以下命令: +如果需要每日构建版本的 Docker CE 请使用以下命令: ```bash -$ sudo yum-config-manager --enable docker-ce-test +$ sudo yum-config-manager --enable docker-ce-nightly ``` #### 安装 Docker CE diff --git a/install/debian.md b/install/debian.md index 60898603c..feb392969 100644 --- a/install/debian.md +++ b/install/debian.md @@ -86,7 +86,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 改为 test 或者 nightly。 Debian 7 需要进行额外的操作: diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 86c01cc87..992cf9109 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -58,7 +58,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 改为 test 或者 nightly。 #### 安装 Docker CE diff --git a/install/ubuntu.md b/install/ubuntu.md index dbc91a57c..9f0e18fd8 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -85,7 +85,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 改为 test 或者 nightly。 #### 安装 Docker CE From c6ac96b64ed1164ef905a3c03b39c3a88120aef2 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 5 Aug 2018 08:04:49 +0800 Subject: [PATCH 336/611] Update Ubuntu LTS version to 18.04, Fix #352 --- .github/ISSUE_TEMPLATE/Bug_report.md | 8 ++++---- .github/ISSUE_TEMPLATE/Custom.md | 8 ++++---- install/ubuntu.md | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md index 72aebae60..1b5169447 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -12,10 +12,10 @@ about: Create a report to help us improve * [x] Linux * [x] CentOS 7 - * [x] Ubuntu 16.04 - * [x] Ubuntu 17.10 - * [x] Debian 9 - * [x] Debian 8 + * [x] Ubuntu 14.04 + * [x] Ubuntu 16.04 + + * [x] Debian 7 + * [x] Debian 8 + * [x] CoreOS * [x] macOS * [x] Windows 10 diff --git a/.github/ISSUE_TEMPLATE/Custom.md b/.github/ISSUE_TEMPLATE/Custom.md index 98a25d7fa..8ded2011e 100644 --- a/.github/ISSUE_TEMPLATE/Custom.md +++ b/.github/ISSUE_TEMPLATE/Custom.md @@ -12,10 +12,10 @@ about: Create a issue about Docker * [x] Linux * [x] CentOS 7 - * [x] Ubuntu 16.04 - * [x] Ubuntu 17.10 - * [x] Debian 9 - * [x] Debian 8 + * [x] Ubuntu 14.04 + * [x] Ubuntu 16.04 + + * [x] Debian 7 + * [x] Debian 8 + * [x] CoreOS * [x] macOS * [x] Windows 10 diff --git a/install/ubuntu.md b/install/ubuntu.md index 9f0e18fd8..db55c4454 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -13,7 +13,7 @@ Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作 * Xenial 16.04 (LTS) * Trusty 14.04 (LTS) -Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本,当前最新的 LTS 版本为 Ubuntu 16.04。 +Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本,当前最新的 LTS 版本为 Ubuntu 18.04。 #### 卸载旧版本 From ee656ff4bb43c99e145673e05815c05c27dc137f Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 14 Aug 2018 09:30:08 +0800 Subject: [PATCH 337/611] Update issue link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 50b2e622a..6c1a2b4b4 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 * QQ 群 IX (已满):571502246 * QQ 群 X   (可加):145983035 ->如果有问题,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new) 来提出。 +>如果有问题,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new/choose) 来提出。 ## 进阶学习 ![](https://github.com/yeasy/docker_practice/raw/master/_images/docker_primer2.png) From 276199aa37229e98d54a5f01ae49594bcc84f97b Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 25 Aug 2018 22:20:04 +0800 Subject: [PATCH 338/611] Fix wordpress compose file volume format --- compose/demo/wordpress/docker-compose.yml | 2 +- compose/wordpress.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/compose/demo/wordpress/docker-compose.yml b/compose/demo/wordpress/docker-compose.yml index 264aa6756..9438e1edc 100644 --- a/compose/demo/wordpress/docker-compose.yml +++ b/compose/demo/wordpress/docker-compose.yml @@ -24,4 +24,4 @@ services: WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress volumes: - db_data: + db_data: diff --git a/compose/wordpress.md b/compose/wordpress.md index 871e19992..84f04382f 100644 --- a/compose/wordpress.md +++ b/compose/wordpress.md @@ -10,7 +10,7 @@ ### 创建 `docker-compose.yml` 文件 -`docker-compose.yml` 文件将开启一个 `wordpress` 服务和一个独立的 `MySQL` 实例: +[`docker-compose.yml`](https://github.com/yeasy/docker_practice/blob/master/compose/demo/wordpress/docker-compose.yml) 文件将开启一个 `wordpress` 服务和一个独立的 `MySQL` 实例: ```yaml version: "3" @@ -39,7 +39,7 @@ services: WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress volumes: - db_data: + db_data: ``` ### 构建并运行项目 From 7005ba3d88ff2012cbf94140a64a5d0a260503c8 Mon Sep 17 00:00:00 2001 From: LeonGravel Date: Thu, 6 Sep 2018 14:43:10 +0800 Subject: [PATCH 339/611] fix typo --- kubernetes/intro.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kubernetes/intro.md b/kubernetes/intro.md index eb81af44a..5666fc997 100644 --- a/kubernetes/intro.md +++ b/kubernetes/intro.md @@ -11,10 +11,10 @@ Kubernetes 是 Google 团队发起的开源项目,它的目标是管理跨多 Kubernetes 构建于 Google 数十年经验,一大半来源于 Google 生产环境规模的经验。结合了社区最佳的想法和实践。 -在分布式系统中,部署,调度,伸缩一直是最为重要的也最为基础的功能。Kubernets 就是希望解决这一序列问题的。 +在分布式系统中,部署,调度,伸缩一直是最为重要的也最为基础的功能。Kubernetes 就是希望解决这一序列问题的。 -Kubernets 目前在[GitHub](https://github.com/kubernetes/kubernetes)进行维护。 +Kubernetes 目前在[GitHub](https://github.com/kubernetes/kubernetes)进行维护。 ### Kubernetes 能够运行在任何地方! -虽然 Kubernets 最初是为 GCE 定制的,但是在后续版本中陆续增加了其他云平台的支持,以及本地数据中心的支持。 +虽然 Kubernetes 最初是为 GCE 定制的,但是在后续版本中陆续增加了其他云平台的支持,以及本地数据中心的支持。 From cbe21e28ec109f425dfcf1cf1e5b31131e457d82 Mon Sep 17 00:00:00 2001 From: Xiaowei ZHAO Date: Sat, 8 Sep 2018 02:24:38 +0000 Subject: [PATCH 340/611] fix typos --- advanced_network/config_file.md | 4 ++-- kubernetes/quickstart.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/advanced_network/config_file.md b/advanced_network/config_file.md index 0cd476c57..43733b821 100644 --- a/advanced_network/config_file.md +++ b/advanced_network/config_file.md @@ -1,5 +1,5 @@ ## 编辑网络配置文件 -Docker 1.2.0 开始支持在运行中的容器里编辑 `/etc/hosts`, `/etc/hostname` 和 `/etc/resolve.conf` 文件。 +Docker 1.2.0 开始支持在运行中的容器里编辑 `/etc/hosts`, `/etc/hostname` 和 `/etc/resolv.conf` 文件。 -但是这些修改是临时的,只在运行的容器中保留,容器终止或重启后并不会被保存下来。也不会被 `docker commit` 提交。 +但是这些修改是临时的,只在运行的容器中保留,容器终止或重启后并不会被保存下来,也不会被 `docker commit` 提交。 diff --git a/kubernetes/quickstart.md b/kubernetes/quickstart.md index a2dddc5cf..a68f2fd44 100644 --- a/kubernetes/quickstart.md +++ b/kubernetes/quickstart.md @@ -1,6 +1,6 @@ # 快速上手 -目前,Kubenetes 支持在多种环境下的安装,包括本地主机(Fedora)、云服务(Google GAE、AWS 等)。然而最快速体验 Kubernetes 的方式显然是本地通过 Docker 的方式来启动相关进程。 +目前,Kubernetes 支持在多种环境下的安装,包括本地主机(Fedora)、云服务(Google GAE、AWS 等)。然而最快速体验 Kubernetes 的方式显然是本地通过 Docker 的方式来启动相关进程。 下图展示了在单节点使用 Docker 快速部署一套 Kubernetes 的拓扑。 From 1fdb8da8447590c1e8b98872b692c2853e130e87 Mon Sep 17 00:00:00 2001 From: Ma Huihuang Date: Fri, 14 Sep 2018 16:42:45 +0800 Subject: [PATCH 341/611] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `No help topic for 'put'· --- etcd/install.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etcd/install.md b/etcd/install.md index b15b4c9a4..ce3f67f2c 100644 --- a/etcd/install.md +++ b/etcd/install.md @@ -50,10 +50,10 @@ $ etcd 此时,可以使用 `etcdctl` 命令进行测试,设置和获取键值 `testkey: "hello world"`,检查 `etcd` 服务是否启动成功: ```bash -$ etcdctl member list +$ ETCDCTL_API=3 etcdctl member list 8e9e05c52164694d, started, default, http://localhost:2380, http://localhost:2379 -$ etcdctl put testkey "hello world" +$ ETCDCTL_API=3 etcdctl put testkey "hello world" OK $ etcdctl get testkey From 9919fd1c4321671c2276ba48dd3fc0836f2b1680 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 21 Oct 2018 09:43:53 +0800 Subject: [PATCH 342/611] Add Fedora --- SUMMARY.md | 1 + install/fedora.md | 170 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 install/fedora.md diff --git a/SUMMARY.md b/SUMMARY.md index 9c88cdda1..896586cf5 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -13,6 +13,7 @@ * [安装 Docker](install/README.md) * [Ubuntu](install/ubuntu.md) * [Debian](install/debian.md) + * [Fedora](install/fedora.md) * [CentOS](install/centos.md) * [Raspberry Pi](install/raspberry-pi.md) * [macOS](install/mac.md) diff --git a/install/fedora.md b/install/fedora.md new file mode 100644 index 000000000..fdfeef62c --- /dev/null +++ b/install/fedora.md @@ -0,0 +1,170 @@ +## Fedora 安装 Docker CE + +>警告:切勿在没有配置 Docker dnf 源的情况下直接使用 dnf 命令安装 Docker. + +### 准备工作 + +#### 系统要求 + +Docker CE 支持以下版本的 [Fedora](https://fedoraproject.org/) 操作系统: + +* 26 +* 27 +* 28 + +#### 卸载旧版本 + +旧版本的 Docker 称为 `docker` 或者 `docker-engine`,使用以下命令卸载旧版本: + +```bash +$ sudo dnf remove docker \ + docker-client \ + docker-client-latest \ + docker-common \ + docker-latest \ + docker-latest-logrotate \ + docker-logrotate \ + docker-selinux \ + docker-engine-selinux \ + docker-engine +``` + +### 使用 dnf 安装 + +执行以下命令安装依赖包: + +```bash +$ sudo dnf -y install dnf-plugins-core +``` + +鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 + +执行下面的命令添加 `dnf 软件源: + +```bash +$ sudo dnf config-manager \ + --add-repo \ + https://mirrors.ustc.edu.cn/docker-ce/linux/fedora/docker-ce.repo + + +# 官方源 +# $ sudo dnf config-manager \ +# --add-repo \ +# https://download.docker.com/linux/fedora/docker-ce.repo +``` + +如果需要测试版本的 Docker CE 请使用以下命令: + +```bash +$ sudo dnf config-manager --set-enabled docker-ce-test +``` + +如果需要每日构建版本的 Docker CE 请使用以下命令: + +```bash +$ sudo dnf config-manager --set-enabled docker-ce-nightly +``` + +你也可以禁用测试版本的 Docker CE + +```bash +$ sudo dnf config-manager --set-disabled docker-ce-test +``` + +#### 安装 Docker CE + +更新 `dnf` 软件源缓存,并安装 `docker-ce`。 + +```bash +$ sudo dnf update +$ sudo dnf install docker-ce +``` + +你也可以使用以下命令安装指定版本的 Docker + +```bash +$ dnf list docker-ce --showduplicates | sort -r + +docker-ce.x86_64 18.06.1.ce-3.fc28 docker-ce-stable + +$ sudo dnf -y install docker-ce-18.06.1.ce +``` + +### 使用脚本自动安装 + +在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装: + +```bash +$ curl -fsSL get.docker.com -o get-docker.sh +$ sudo sh get-docker.sh --mirror Aliyun +``` + +执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 最新版本安装在系统中。 + +### 启动 Docker CE + +```bash +$ sudo systemctl enable docker +$ sudo systemctl start docker +``` + +### 建立 docker 用户组 + +默认情况下,`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 + +建立 `docker` 组: + +```bash +$ sudo groupadd docker +``` + +将当前用户加入 `docker` 组: + +```bash +$ sudo usermod -aG docker $USER +``` + +退出当前终端并重新登录,进行如下测试。 + +### 测试 Docker 是否安装正确 + +```bash +$ docker run hello-world + +Unable to find image 'hello-world:latest' locally +latest: Pulling from library/hello-world +d1725b59e92d: Pull complete +Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 +Status: Downloaded newer image for hello-world:latest + +Hello from Docker! +This message shows that your installation appears to be working correctly. + +To generate this message, Docker took the following steps: + 1. The Docker client contacted the Docker daemon. + 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. + (amd64) + 3. The Docker daemon created a new container from that image which runs the + executable that produces the output you are currently reading. + 4. The Docker daemon streamed that output to the Docker client, which sent it + to your terminal. + +To try something more ambitious, you can run an Ubuntu container with: + $ docker run -it ubuntu bash + +Share images, automate workflows, and more with a free Docker ID: + https://hub.docker.com/ + +For more examples and ideas, visit: + https://docs.docker.com/get-started/ +``` + +若能正常输出以上信息,则说明安装成功。 + +### 镜像加速 + +鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 [国内镜像加速](mirror.md)。 + +### 参考文档 + +* [Docker 官方 Fedora 安装文档](https://docs.docker.com/install/linux/docker-ce/fedora)。 From 33bccf2ac44982107bacbc1cd06639b76ec3d84d Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 21 Oct 2018 09:51:36 +0800 Subject: [PATCH 343/611] Next version is 1.0.0 --- CHANGELOG.md | 2 +- README.md | 2 +- install/centos.md | 10 +++++----- install/debian.md | 10 +++++----- install/raspberry-pi.md | 8 ++++---- install/ubuntu.md | 11 +++++------ 6 files changed, 21 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 104d12c2d..4d046f9d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## 主要修订记录 -* 0.9.1: 2018-07-31 +* 1.0.0: 2018-12-31 * 错误修正 * 0.9.0: 2017-12-31 diff --git a/README.md b/README.md index 6c1a2b4b4..0bc0f1b8a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://img.shields.io/docker/pulls/yeasy/docker_practice.svg)](https://store.docker.com/community/images/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://badges.gitter.im/docker_practice/Lobby.svg)](https://gitter.im/docker_practice/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -0.9.1 +1.0.0 *说明:本书自 0.9.0 版本起基于最新的 Docker CE v18.X 特性进行讲解。Docker 旧版本(1.13-)使用,请参考 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支。* diff --git a/install/centos.md b/install/centos.md index 339e06c15..66623b5dd 100644 --- a/install/centos.md +++ b/install/centos.md @@ -115,8 +115,8 @@ $ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world -ca4f61b1923c: Pull complete -Digest: sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c +d1725b59e92d: Pull complete +Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 Status: Downloaded newer image for hello-world:latest Hello from Docker! @@ -135,10 +135,10 @@ To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: - https://cloud.docker.com/ + https://hub.docker.com/ For more examples and ideas, visit: - https://docs.docker.com/engine/userguide/ + https://docs.docker.com/get-started/ ``` 若能正常输出以上信息,则说明安装成功。 @@ -173,4 +173,4 @@ $ sudo sysctl -p ### 参考文档 -* [Docker 官方 CentOS 安装文档](https://docs.docker.com/engine/installation/linux/docker-ce/centos/)。 +* [Docker 官方 CentOS 安装文档](https://docs.docker.com/install/linux/docker-ce/centos/)。 diff --git a/install/debian.md b/install/debian.md index feb392969..07970232e 100644 --- a/install/debian.md +++ b/install/debian.md @@ -155,8 +155,8 @@ $ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world -ca4f61b1923c: Pull complete -Digest: sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c +d1725b59e92d: Pull complete +Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 Status: Downloaded newer image for hello-world:latest Hello from Docker! @@ -175,10 +175,10 @@ To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: - https://cloud.docker.com/ + https://hub.docker.com/ For more examples and ideas, visit: - https://docs.docker.com/engine/userguide/ + https://docs.docker.com/get-started/ ``` 若能正常输出以上信息,则说明安装成功。 @@ -189,4 +189,4 @@ For more examples and ideas, visit: ### 参考文档 -* [Docker 官方 Debian 安装文档](https://docs.docker.com/engine/installation/linux/docker-ce/debian/) +* [Docker 官方 Debian 安装文档](https://docs.docker.com/install/linux/docker-ce/debian/) diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 992cf9109..884f923f9 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -113,8 +113,8 @@ $ docker run arm32v7/hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world -ca4f61b1923c: Pull complete -Digest: sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c +d1725b59e92d: Pull complete +Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 Status: Downloaded newer image for hello-world:latest Hello from Docker! @@ -133,10 +133,10 @@ To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: - https://cloud.docker.com/ + https://hub.docker.com/ For more examples and ideas, visit: - https://docs.docker.com/engine/userguide/ + https://docs.docker.com/get-started/ ``` 若能正常输出以上信息,则说明安装成功。 diff --git a/install/ubuntu.md b/install/ubuntu.md index db55c4454..1e3425af6 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -9,7 +9,6 @@ Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作系统: * Bionic 18.04 (LTS) -* Artful 17.10 (Docker CE 17.11 Edge +) * Xenial 16.04 (LTS) * Trusty 14.04 (LTS) @@ -146,8 +145,8 @@ $ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world -ca4f61b1923c: Pull complete -Digest: sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c +d1725b59e92d: Pull complete +Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 Status: Downloaded newer image for hello-world:latest Hello from Docker! @@ -166,10 +165,10 @@ To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: - https://cloud.docker.com/ + https://hub.docker.com/ For more examples and ideas, visit: - https://docs.docker.com/engine/userguide/ + https://docs.docker.com/get-started/ ``` 若能正常输出以上信息,则说明安装成功。 @@ -180,4 +179,4 @@ For more examples and ideas, visit: ### 参考文档 -* [Docker 官方 Ubuntu 安装文档](https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/) +* [Docker 官方 Ubuntu 安装文档](https://docs.docker.com/install/linux/docker-ce/ubuntu/) From 627b17d2f5a993e3be4b2d2e7fa3c0abdf1d38c7 Mon Sep 17 00:00:00 2001 From: Xiangyu Wu Date: Mon, 22 Oct 2018 15:25:40 -0700 Subject: [PATCH 344/611] Update django.md Fix typo --- compose/django.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/django.md b/compose/django.md index 0137889b1..08ece0713 100644 --- a/compose/django.md +++ b/compose/django.md @@ -55,7 +55,7 @@ services: $ docker-compose run web django-admin.py startproject django_example . ``` -Compose 会先使用 `Dockerfile` 为 web 服务创建一个镜像,接着使用这个镜像在容器里运行 `django-admin.py startproject composeexample` 指令。 +Compose 会先使用 `Dockerfile` 为 web 服务创建一个镜像,接着使用这个镜像在容器里运行 `django-admin.py startproject django_example` 指令。 这将在当前目录生成一个 `Django` 应用。 From 08dc22871834c61ebbbb1fdd97f97392d2a94658 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Tue, 23 Oct 2018 21:35:18 +0800 Subject: [PATCH 345/611] Fix issue#362: update book info --- README.md | 10 +++++----- _images/docker_primer3.png | Bin 0 -> 53366 bytes 2 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 _images/docker_primer3.png diff --git a/README.md b/README.md index 0bc0f1b8a..1f59cfb0f 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://img.shields.io/docker/pulls/yeasy/docker_practice.svg)](https://store.docker.com/community/images/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://badges.gitter.im/docker_practice/Lobby.svg)](https://gitter.im/docker_practice/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -1.0.0 +v1.0.0 *说明:本书自 0.9.0 版本起基于最新的 Docker CE v18.X 特性进行讲解。Docker 旧版本(1.13-)使用,请参考 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支。* @@ -38,12 +38,12 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 >如果有问题,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new/choose) 来提出。 ## 进阶学习 -![](https://github.com/yeasy/docker_practice/raw/master/_images/docker_primer2.png) +![](_images/docker_primer3.png) -《[Docker 技术入门与实战](http://item.jd.com/12121728.html)》第二版已经正式出版,针对初版内容进行升级,欢迎大家阅读使用并反馈建议。 +《[Docker 技术入门与实战](http://item.jd.com/12453318.html)》第三版已经面世,介绍最新的容器技术栈,欢迎大家阅读使用并反馈建议。 -* [京东图书](https://item.jd.com/12121728.html) -* [China-Pub](http://product.china-pub.com/5089907) +* [京东图书](https://item.jd.com/12453318.html) +* [China-Pub](http://product.china-pub.com/8052127) ## 鼓励项目 diff --git a/_images/docker_primer3.png b/_images/docker_primer3.png new file mode 100644 index 0000000000000000000000000000000000000000..83878f259a8b345e70c59fb7cb99bc225bffc7b6 GIT binary patch literal 53366 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 literal 0 HcmV?d00001 From dfa885f4f049d051c7e7dbc04ff6d02d101444de Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 2 Nov 2018 08:01:29 +0800 Subject: [PATCH 346/611] Update supported os Signed-off-by: khs1994 --- install/debian.md | 6 +++--- install/fedora.md | 2 +- install/raspberry-pi.md | 2 +- install/ubuntu.md | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/install/debian.md b/install/debian.md index 07970232e..10d1fd0c0 100644 --- a/install/debian.md +++ b/install/debian.md @@ -8,10 +8,10 @@ Docker CE 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统: -* Buster 10 (Docker CE 17.11 Edge +) +* Buster 10 * Stretch 9 -* Jessie 8 (LTS) -* Wheezy 7.7 (LTS) +* Jessie 8 (LTS) (Docker CE v18.06 及以下版本) +* Wheezy 7.7 (EOL) (Docker CE v18.03 及以下版本) #### 卸载旧版本 diff --git a/install/fedora.md b/install/fedora.md index fdfeef62c..7d77d7930 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -8,7 +8,7 @@ Docker CE 支持以下版本的 [Fedora](https://fedoraproject.org/) 操作系统: -* 26 +* 26 (Docker CE v18.03 及以下版本) * 27 * 28 diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 884f923f9..0efc92415 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -10,7 +10,7 @@ Docker CE 支持以下版本的 [Raspbian](https://www.raspberrypi.org/downloads * Raspbian Stretch -* Raspbian Jessie +* Raspbian Jessie (Docker CE v18.06 及以下版本) *注:* `Raspbian` 是树莓派的开发与维护机构 [树莓派基金会](http://www.raspberrypi.org/) 推荐用于树莓派的首选系统,其基于 `Debian`。 diff --git a/install/ubuntu.md b/install/ubuntu.md index 1e3425af6..bb9f137f8 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -10,9 +10,9 @@ Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作 * Bionic 18.04 (LTS) * Xenial 16.04 (LTS) -* Trusty 14.04 (LTS) +* Trusty 14.04 (LTS) (Docker CE v18.06 及以下版本) -Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本,当前最新的 LTS 版本为 Ubuntu 18.04。 +Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。 #### 卸载旧版本 From 1b306447efe7b362f42f421e43a696ddb3a71b71 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 2 Nov 2018 08:26:50 +0800 Subject: [PATCH 347/611] Update Dockerfile Signed-off-by: khs1994 --- image/dockerfile/add.md | 9 +++++++++ image/dockerfile/copy.md | 13 +++++++++++-- image/dockerfile/expose.md | 2 -- image/dockerfile/user.md | 2 +- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/image/dockerfile/add.md b/image/dockerfile/add.md index b5b753b99..3c3a2dcf7 100644 --- a/image/dockerfile/add.md +++ b/image/dockerfile/add.md @@ -21,3 +21,12 @@ ADD ubuntu-xenial-core-cloudimg-amd64-root.tar.gz / 另外需要注意的是,`ADD` 指令会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。 因此在 `COPY` 和 `ADD` 指令中选择的时候,可以遵循这样的原则,所有的文件复制均使用 `COPY` 指令,仅在需要自动解压缩的场合使用 `ADD`。 + +在使用该指令的时候还可以加上 `--chown=:` 选项来改变文件的所属用户及所属组。 + +```Dockerfile +ADD --chown=55:mygroup files* /mydir/ +ADD --chown=bin files* /mydir/ +ADD --chown=1 files* /mydir/ +ADD --chown=10:11 files* /mydir/ +``` diff --git a/image/dockerfile/copy.md b/image/dockerfile/copy.md index a948a64e4..53914a46a 100644 --- a/image/dockerfile/copy.md +++ b/image/dockerfile/copy.md @@ -2,8 +2,8 @@ 格式: -* `COPY <源路径>... <目标路径>` -* `COPY ["<源路径1>",... "<目标路径>"]` +* `COPY [--chown=:] <源路径>... <目标路径>` +* `COPY [--chown=:] ["<源路径1>",... "<目标路径>"]` 和 `RUN` 指令一样,也有两种格式,一种类似于命令行,一种类似于函数调用。 @@ -23,3 +23,12 @@ COPY hom?.txt /mydir/ `<目标路径>` 可以是容器内的绝对路径,也可以是相对于工作目录的相对路径(工作目录可以用 `WORKDIR` 指令来指定)。目标路径不需要事先创建,如果目录不存在会在复制文件前先行创建缺失目录。 此外,还需要注意一点,使用 `COPY` 指令,源文件的各种元数据都会保留。比如读、写、执行权限、文件变更时间等。这个特性对于镜像定制很有用。特别是构建相关文件都在使用 Git 进行管理的时候。 + +在使用该指令的时候还可以加上 `--chown=:` 选项来改变文件的所属用户及所属组。 + +```Dockerfile +COPY --chown=55:mygroup files* /mydir/ +COPY --chown=bin files* /mydir/ +COPY --chown=1 files* /mydir/ +COPY --chown=10:11 files* /mydir/ +``` diff --git a/image/dockerfile/expose.md b/image/dockerfile/expose.md index ce9ade317..eb707b039 100644 --- a/image/dockerfile/expose.md +++ b/image/dockerfile/expose.md @@ -4,6 +4,4 @@ `EXPOSE` 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 `docker run -P` 时,会自动随机映射 `EXPOSE` 的端口。 -此外,在早期 Docker 版本中还有一个特殊的用处。以前所有容器都运行于默认桥接网络中,因此所有容器互相之间都可以直接访问,这样存在一定的安全性问题。于是有了一个 Docker 引擎参数 `--icc=false`,当指定该参数后,容器间将默认无法互访,除非互相间使用了 `--links` 参数的容器才可以互通,并且只有镜像中 `EXPOSE` 所声明的端口才可以被访问。这个 `--icc=false` 的用法,在引入了 `docker network` 后已经基本不用了,通过自定义网络可以很轻松的实现容器间的互联与隔离。 - 要将 `EXPOSE` 和在运行时使用 `-p <宿主端口>:<容器端口>` 区分开来。`-p`,是映射宿主端口和容器端口,换句话说,就是将容器的对应端口服务公开给外界访问,而 `EXPOSE` 仅仅是声明容器打算使用什么端口而已,并不会自动在宿主进行端口映射。 diff --git a/image/dockerfile/user.md b/image/dockerfile/user.md index cf8685f02..68af82200 100644 --- a/image/dockerfile/user.md +++ b/image/dockerfile/user.md @@ -1,6 +1,6 @@ ### USER 指定当前用户 -格式:`USER <用户名>` +格式:`USER <用户名>[:<用户组>]` `USER` 指令和 `WORKDIR` 相似,都是改变环境状态并影响以后的层。`WORKDIR` 是改变工作目录,`USER` 则是改变之后层的执行 `RUN`, `CMD` 以及 `ENTRYPOINT` 这类命令的身份。 From 49841871aa53961c4fc180262c9f49c9d69f02dc Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 8 Dec 2018 18:05:15 +0800 Subject: [PATCH 348/611] Add miniprogram --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f59cfb0f..8cac90c08 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,14 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 * [修订记录](CHANGELOG.md) * [贡献者名单](https://github.com/yeasy/docker_practice/graphs/contributors) +## 微信小程序 + +

    + +

    + +

    微信扫码 随时随地阅读~

    + ## 技术交流 欢迎加入 Docker 技术交流 QQ 群,分享 Docker 资源,交流 Docker 技术。 @@ -49,4 +57,8 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 欢迎鼓励项目一杯 coffee~ -![](https://github.com/yeasy/docker_practice/raw/master/_images/donate.jpeg) +

    + +

    + +

    欢迎鼓励项目一杯 coffee~

    From 2cc1207dc34108a3b5ff50dd56bc0a9186306301 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 8 Dec 2018 21:47:05 +0800 Subject: [PATCH 349/611] Update ubuntu version to 18.04 Signed-off-by: khs1994 --- .gitattributes | 2 +- .github/ISSUE_TEMPLATE/Bug_report.md | 8 +++---- .github/ISSUE_TEMPLATE/Custom.md | 8 +++---- README.md | 2 -- SUMMARY.md | 6 +++--- appendix/repo/ubuntu.md | 2 +- basic_concept/image.md | 2 +- basic_concept/repository.md | 2 +- container/daemon.md | 6 +++--- data_management/bind-mounts.md | 2 +- image/dockerfile/entrypoint.md | 4 ++-- image/list.md | 14 ++++++------- image/pull.md | 31 +++++++++++++++------------- repository/dockerhub.md | 8 +++---- 14 files changed, 49 insertions(+), 48 deletions(-) diff --git a/.gitattributes b/.gitattributes index f43c04d94..b8209fe86 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,4 +2,4 @@ *.sh text eol=lf -secrets/* text eol=lf +*.py linguist-language=go diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md index 1b5169447..b5064b22b 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -23,11 +23,11 @@ about: Create a report to help us improve * [x] Others (Pls describe below) ### Docker Version - - + + -* [x] Edge (v18.06) -* [x] Stable (v18.06) +* [x] Edge (v18.09) +* [x] Stable (v18.09) * [x] 1.13.0 or Before ### Problem Description diff --git a/.github/ISSUE_TEMPLATE/Custom.md b/.github/ISSUE_TEMPLATE/Custom.md index 8ded2011e..20de83682 100644 --- a/.github/ISSUE_TEMPLATE/Custom.md +++ b/.github/ISSUE_TEMPLATE/Custom.md @@ -23,11 +23,11 @@ about: Create a issue about Docker * [x] Others (Pls describe below) ### Docker Version - - + + -* [x] Edge (v18.06) -* [x] Stable (v18.06) +* [x] Edge (v18.09) +* [x] Stable (v18.09) * [x] 1.13.0 or Before ### Problem Description diff --git a/README.md b/README.md index 8cac90c08..681b885a5 100644 --- a/README.md +++ b/README.md @@ -55,8 +55,6 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 ## 鼓励项目 -欢迎鼓励项目一杯 coffee~ -

    diff --git a/SUMMARY.md b/SUMMARY.md index 896586cf5..aaf0a5c51 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -88,7 +88,7 @@ * [创建 Swarm 集群](swarm_mode/create.md) * [部署服务](swarm_mode/deploy.md) * [使用 compose 文件](swarm_mode/stack.md) - * [管理敏感数据](swarm_mode/secret.md) + * [管理密钥](swarm_mode/secret.md) * [管理配置信息](swarm_mode/config.md) * [滚动升级](swarm_mode/rolling_update.md) * [安全](security/README.md) @@ -104,7 +104,7 @@ * [控制组](underly/cgroups.md) * [联合文件系统](underly/ufs.md) * [容器格式](underly/container_format.md) - * [网络](underly/network.md) + * [网络](underly/network.md) * [Etcd 项目](etcd/README.md) * [简介](etcd/intro.md) * [安装](etcd/install.md) @@ -143,7 +143,7 @@ * [实战案例-CI/CD](cases/ci/README.md) * [Drone](cases/ci/drone.md) * [Docker 开源项目](opensource/README.md) - * [LinuxKit](opensource/linuxkit.md) + * [LinuxKit](opensource/linuxkit.md) * [附录](appendix/README.md) * [附录一:常见问题总结](appendix/faq/README.md) * [附录二:热门镜像介绍](appendix/repo/README.md) diff --git a/appendix/repo/ubuntu.md b/appendix/repo/ubuntu.md index 2461c6ec1..8a95bdf71 100644 --- a/appendix/repo/ubuntu.md +++ b/appendix/repo/ubuntu.md @@ -11,7 +11,7 @@ 默认会启动一个最小化的 Ubuntu 环境。 ```bash -$ docker run --name some-ubuntu -it ubuntu:17.10 +$ docker run --name some-ubuntu -it ubuntu:18.04 root@523c70904d54:/# ``` diff --git a/basic_concept/image.md b/basic_concept/image.md index e6b4d7547..6e4443e7f 100644 --- a/basic_concept/image.md +++ b/basic_concept/image.md @@ -1,6 +1,6 @@ ## Docker 镜像 -我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 `root` 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 `root` 文件系统。比如官方镜像 `ubuntu:16.04` 就包含了完整的一套 Ubuntu 16.04 最小系统的 `root` 文件系统。 +我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 `root` 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 `root` 文件系统。比如官方镜像 `ubuntu:18.04` 就包含了完整的一套 Ubuntu 18.04 最小系统的 `root` 文件系统。 Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 diff --git a/basic_concept/repository.md b/basic_concept/repository.md index ecd62f9ae..fcbecb4db 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -6,7 +6,7 @@ 通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 `<仓库名>:<标签>` 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 `latest` 作为默认标签。 -以 [Ubuntu 镜像](https://store.docker.com/images/ubuntu) 为例,`ubuntu` 是仓库的名字,其内包含有不同的版本标签,如,`14.04`, `16.04`。我们可以通过 `ubuntu:14.04`,或者 `ubuntu:16.04` 来具体指定所需哪个版本的镜像。如果忽略了标签,比如 `ubuntu`,那将视为 `ubuntu:latest`。 +以 [Ubuntu 镜像](https://store.docker.com/images/ubuntu) 为例,`ubuntu` 是仓库的名字,其内包含有不同的版本标签,如,`16.04`, `18.04`。我们可以通过 `ubuntu:14.04`,或者 `ubuntu:18.04` 来具体指定所需哪个版本的镜像。如果忽略了标签,比如 `ubuntu`,那将视为 `ubuntu:latest`。 仓库名经常以 *两段式路径* 形式出现,比如 `jwilder/nginx-proxy`,前者往往意味着 Docker Registry 多用户环境下的用户名,后者则往往是对应的软件名。但这并非绝对,取决于所使用的具体 Docker Registry 的软件或服务。 diff --git a/container/daemon.md b/container/daemon.md index c37c14441..5175c3557 100644 --- a/container/daemon.md +++ b/container/daemon.md @@ -7,7 +7,7 @@ 如果不使用 `-d` 参数运行容器。 ```bash -$ docker run ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" +$ docker run ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" hello world hello world hello world @@ -19,7 +19,7 @@ hello world 如果使用了 `-d` 参数运行容器。 ```bash -$ docker run -d ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" +$ docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" 77b2dc01fe0f3f1265df143181e7b9af5e05279a884f4776ee75350ea9d8017a ``` @@ -32,7 +32,7 @@ $ docker run -d ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep ``` $ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -77b2dc01fe0f ubuntu:17.10 /bin/sh -c 'while tr 2 minutes ago Up 1 minute agitated_wright +77b2dc01fe0f ubuntu:18.04 /bin/sh -c 'while tr 2 minutes ago Up 1 minute agitated_wright ``` 要获取容器的输出信息,可以通过 `docker container logs` 命令。 diff --git a/data_management/bind-mounts.md b/data_management/bind-mounts.md index 73d1ed723..a98165fbd 100644 --- a/data_management/bind-mounts.md +++ b/data_management/bind-mounts.md @@ -64,7 +64,7 @@ $ docker inspect web $ docker run --rm -it \ # -v $HOME/.bash_history:/root/.bash_history \ --mount type=bind,source=$HOME/.bash_history,target=/root/.bash_history \ - ubuntu:17.10 \ + ubuntu:18.04 \ bash root@2affd44b4667:/# history diff --git a/image/dockerfile/entrypoint.md b/image/dockerfile/entrypoint.md index 1dc7b70a2..64ef4b952 100644 --- a/image/dockerfile/entrypoint.md +++ b/image/dockerfile/entrypoint.md @@ -17,7 +17,7 @@ 假设我们需要一个得知自己当前公网 IP 的镜像,那么可以先用 `CMD` 来实现: ```Dockerfile -FROM ubuntu:16.04 +FROM ubuntu:18.04 RUN apt-get update \ && apt-get install -y curl \ && rm -rf /var/lib/apt/lists/* @@ -49,7 +49,7 @@ $ docker run myip curl -s http://ip.cn -i 这显然不是很好的解决方案,而使用 `ENTRYPOINT` 就可以解决这个问题。现在我们重新用 `ENTRYPOINT` 来实现这个镜像: ```Dockerfile -FROM ubuntu:16.04 +FROM ubuntu:18.04 RUN apt-get update \ && apt-get install -y curl \ && rm -rf /var/lib/apt/lists/* diff --git a/image/list.md b/image/list.md index 4c3e9e74c..037c61eff 100644 --- a/image/list.md +++ b/image/list.md @@ -9,18 +9,18 @@ redis latest 5f515359c7f8 5 days ago nginx latest 05a60462f8ba 5 days ago 181 MB mongo 3.2 fe9198c04d62 5 days ago 342 MB 00285df0df87 5 days ago 342 MB -ubuntu 16.04 f753707788c5 4 weeks ago 127 MB +ubuntu 18.04 f753707788c5 4 weeks ago 127 MB ubuntu latest f753707788c5 4 weeks ago 127 MB ubuntu 14.04 1e0c3dd64ccd 4 weeks ago 188 MB ``` 列表包含了 `仓库名`、`标签`、`镜像 ID`、`创建时间` 以及 `所占用的空间`。 -其中仓库名、标签在之前的基础概念章节已经介绍过了。**镜像 ID** 则是镜像的唯一标识,一个镜像可以对应多个**标签**。因此,在上面的例子中,我们可以看到 `ubuntu:16.04` 和 `ubuntu:latest` 拥有相同的 ID,因为它们对应的是同一个镜像。 +其中仓库名、标签在之前的基础概念章节已经介绍过了。**镜像 ID** 则是镜像的唯一标识,一个镜像可以对应多个**标签**。因此,在上面的例子中,我们可以看到 `ubuntu:18.04` 和 `ubuntu:latest` 拥有相同的 ID,因为它们对应的是同一个镜像。 ### 镜像体积 -如果仔细观察,会注意到,这里标识的所占用空间和在 Docker Hub 上看到的镜像大小不同。比如,`ubuntu:16.04` 镜像大小,在这里是 `127 MB`,但是在 [Docker Hub](https://hub.docker.com/r/library/ubuntu/tags/) 显示的却是 `50 MB`。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的大小是网络传输中更关心的流量大小。而 `docker image ls` 显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。 +如果仔细观察,会注意到,这里标识的所占用空间和在 Docker Hub 上看到的镜像大小不同。比如,`ubuntu:18.04` 镜像大小,在这里是 `127 MB`,但是在 [Docker Hub](https://hub.docker.com/r/library/ubuntu/tags/) 显示的却是 `50 MB`。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的大小是网络传输中更关心的流量大小。而 `docker image ls` 显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。 另外一个需要注意的问题是,`docker image ls` 列表中的镜像体积总和并非是所有镜像实际硬盘消耗。由于 Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于 Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多。 @@ -77,7 +77,7 @@ $ docker image ls -a ```bash $ docker image ls ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE -ubuntu 16.04 f753707788c5 4 weeks ago 127 MB +ubuntu 18.04 f753707788c5 4 weeks ago 127 MB ubuntu latest f753707788c5 4 weeks ago 127 MB ubuntu 14.04 1e0c3dd64ccd 4 weeks ago 188 MB ``` @@ -85,9 +85,9 @@ ubuntu 14.04 1e0c3dd64ccd 4 weeks ago 列出特定的某个镜像,也就是说指定仓库名和标签 ```bash -$ docker image ls ubuntu:16.04 +$ docker image ls ubuntu:18.04 REPOSITORY TAG IMAGE ID CREATED SIZE -ubuntu 16.04 f753707788c5 4 weeks ago 127 MB +ubuntu 18.04 f753707788c5 4 weeks ago 127 MB ``` 除此以外,`docker image ls` 还支持强大的过滤器参数 `--filter`,或者简写 `-f`。之前我们已经看到了使用过滤器来列出虚悬镜像的用法,它还有更多的用法。比如,我们希望看到在 `mongo:3.2` 之后建立的镜像,可以用下面的命令: @@ -149,7 +149,7 @@ IMAGE ID REPOSITORY TAG 05a60462f8ba nginx latest fe9198c04d62 mongo 3.2 00285df0df87 -f753707788c5 ubuntu 16.04 +f753707788c5 ubuntu 18.04 f753707788c5 ubuntu latest 1e0c3dd64ccd ubuntu 14.04 ``` diff --git a/image/pull.md b/image/pull.md index f2f4236c3..ede243838 100644 --- a/image/pull.md +++ b/image/pull.md @@ -16,18 +16,18 @@ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 比如: ```bash -$ docker pull ubuntu:16.04 -16.04: Pulling from library/ubuntu +$ docker pull ubuntu:18.04 +18.04: Pulling from library/ubuntu bf5d46315322: Pull complete 9f13e0ac480c: Pull complete e8988b5b3097: Pull complete 40af181810e7: Pull complete e6f7c7e5c03e: Pull complete Digest: sha256:147913621d9cdea08853f6ba9116c2e27a3ceffecf3b492983ae97c3d643fbbe -Status: Downloaded newer image for ubuntu:16.04 +Status: Downloaded newer image for ubuntu:18.04 ``` -上面的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub 获取镜像。而镜像名称是 `ubuntu:16.04`,因此将会获取官方镜像 `library/ubuntu` 仓库中标签为 `16.04` 的镜像。 +上面的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub 获取镜像。而镜像名称是 `ubuntu:18.04`,因此将会获取官方镜像 `library/ubuntu` 仓库中标签为 `18.04` 的镜像。 从下载过程中可以看到我们之前提及的分层存储的概念,镜像是由多层存储所构成。下载也是一层层的去下载,并非单一文件。下载过程中给出了每一层的 ID 的前 12 位。并且下载结束后,给出该镜像完整的 `sha256` 的摘要,以确保下载一致性。 @@ -37,32 +37,35 @@ Status: Downloaded newer image for ubuntu:16.04 ### 运行 -有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。以上面的 `ubuntu:16.04` 为例,如果我们打算启动里面的 `bash` 并且进行交互式操作的话,可以执行下面的命令。 +有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。以上面的 `ubuntu:18.04` 为例,如果我们打算启动里面的 `bash` 并且进行交互式操作的话,可以执行下面的命令。 ```bash $ docker run -it --rm \ - ubuntu:16.04 \ + ubuntu:18.04 \ bash root@e7009c6ce357:/# cat /etc/os-release NAME="Ubuntu" -VERSION="16.04.4 LTS, Trusty Tahr" +VERSION="18.04.1 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian -PRETTY_NAME="Ubuntu 16.04.4 LTS" -VERSION_ID="16.04" -HOME_URL="http://www.ubuntu.com/" -SUPPORT_URL="http://help.ubuntu.com/" -BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" +PRETTY_NAME="Ubuntu 18.04.1 LTS" +VERSION_ID="18.04" +HOME_URL="https://www.ubuntu.com/" +SUPPORT_URL="https://help.ubuntu.com/" +BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" +PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" +VERSION_CODENAME=bionic +UBUNTU_CODENAME=bionic ``` `docker run` 就是运行容器的命令,具体格式我们会在 [容器](../container) 一节进行详细讲解,我们这里简要的说明一下上面用到的参数。 * `-it`:这是两个参数,一个是 `-i`:交互式操作,一个是 `-t` 终端。我们这里打算进入 `bash` 执行一些命令并查看返回结果,因此我们需要交互式终端。 * `--rm`:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 `docker rm`。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 `--rm` 可以避免浪费空间。 -* `ubuntu:16.04`:这是指用 `ubuntu:16.04` 镜像为基础来启动容器。 +* `ubuntu:18.04`:这是指用 `ubuntu:18.04` 镜像为基础来启动容器。 * `bash`:放在镜像名后的是**命令**,这里我们希望有个交互式 Shell,因此用的是 `bash`。 -进入容器后,我们可以在 Shell 下操作,执行任何所需的命令。这里,我们执行了 `cat /etc/os-release`,这是 Linux 常用的查看当前系统版本的命令,从返回的结果可以看到容器内是 `Ubuntu 16.04.4 LTS` 系统。 +进入容器后,我们可以在 Shell 下操作,执行任何所需的命令。这里,我们执行了 `cat /etc/os-release`,这是 Linux 常用的查看当前系统版本的命令,从返回的结果可以看到容器内是 `Ubuntu 18.04.1 LTS` 系统。 最后我们通过 `exit` 退出了这个容器。 diff --git a/repository/dockerhub.md b/repository/dockerhub.md index 80f366b52..debfe9c7f 100644 --- a/repository/dockerhub.md +++ b/repository/dockerhub.md @@ -58,15 +58,15 @@ Pulling repository centos 以下命令中的 `username` 请替换为你的 Docker 账号用户名。 ```bash -$ docker tag ubuntu:17.10 username/ubuntu:17.10 +$ docker tag ubuntu:18.04 username/ubuntu:18.04 $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE -ubuntu 17.10 275d79972a86 6 days ago 94.6MB -username/ubuntu 17.10 275d79972a86 6 days ago 94.6MB +ubuntu 18.04 275d79972a86 6 days ago 94.6MB +username/ubuntu 18.04 275d79972a86 6 days ago 94.6MB -$ docker push username/ubuntu:17.10 +$ docker push username/ubuntu:18.04 $ docker search username From cb5813d10aef91864dcc8bcb43c600e4af3ef56d Mon Sep 17 00:00:00 2001 From: Devin-Li <973281395@qq.com> Date: Mon, 10 Dec 2018 18:20:10 +0800 Subject: [PATCH 350/611] update entrypotin.md --- image/dockerfile/entrypoint.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/image/dockerfile/entrypoint.md b/image/dockerfile/entrypoint.md index 64ef4b952..07e79e034 100644 --- a/image/dockerfile/entrypoint.md +++ b/image/dockerfile/entrypoint.md @@ -21,7 +21,7 @@ FROM ubuntu:18.04 RUN apt-get update \ && apt-get install -y curl \ && rm -rf /var/lib/apt/lists/* -CMD [ "curl", "-s", "http://ip.cn" ] +CMD [ "curl", "-s", "https://ip.cn" ] ``` 假如我们使用 `docker build -t myip .` 来构建镜像的话,如果我们需要查询当前公网 IP,只需要执行: @@ -38,12 +38,12 @@ $ docker run myip -i docker: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"-i\\\": executable file not found in $PATH\"\n". ``` -我们可以看到可执行文件找不到的报错,`executable file not found`。之前我们说过,跟在镜像名后面的是 `command`,运行时会替换 `CMD` 的默认值。因此这里的 `-i` 替换了原来的 `CMD`,而不是添加在原来的 `curl -s http://ip.cn` 后面。而 `-i` 根本不是命令,所以自然找不到。 +我们可以看到可执行文件找不到的报错,`executable file not found`。之前我们说过,跟在镜像名后面的是 `command`,运行时会替换 `CMD` 的默认值。因此这里的 `-i` 替换了原来的 `CMD`,而不是添加在原来的 `curl -s https://ip.cn` 后面。而 `-i` 根本不是命令,所以自然找不到。 那么如果我们希望加入 `-i` 这参数,我们就必须重新完整的输入这个命令: ```bash -$ docker run myip curl -s http://ip.cn -i +$ docker run myip curl -s https://ip.cn -i ``` 这显然不是很好的解决方案,而使用 `ENTRYPOINT` 就可以解决这个问题。现在我们重新用 `ENTRYPOINT` 来实现这个镜像: @@ -53,7 +53,7 @@ FROM ubuntu:18.04 RUN apt-get update \ && apt-get install -y curl \ && rm -rf /var/lib/apt/lists/* -ENTRYPOINT [ "curl", "-s", "http://ip.cn" ] +ENTRYPOINT [ "curl", "-s", "https://ip.cn" ] ``` 这次我们再来尝试直接使用 `docker run myip -i`: From 38097d47eb3fc5be362bdb9cd32fd43461671eb4 Mon Sep 17 00:00:00 2001 From: Maple Miao <522856232@qq.com> Date: Tue, 11 Dec 2018 14:30:59 +0800 Subject: [PATCH 351/611] fix: fix typos --- kubernetes/concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubernetes/concepts.md b/kubernetes/concepts.md index ddbfb3326..ab3185b3b 100644 --- a/kubernetes/concepts.md +++ b/kubernetes/concepts.md @@ -67,7 +67,7 @@ Kubernetes 校验节点可用依赖于 ID。在当前的版本中,有两个接 ## 容器组 在 Kubernetes 中,使用的最小单位是容器组,容器组是创建,调度,管理的最小单位。 -一个容器组使用相同的 Docker 容器并共享卷(挂载点)。一个容器组是一个特定运用的打包集合,包含一个或多个容器。 +一个容器组使用相同的 Docker 容器并共享卷(挂载点)。一个容器组是一个特定应用的打包集合,包含一个或多个容器。 和运行的容器类似,一个容器组被认为只有很短的运行周期。容器组被调度到一组节点运行,直到容器的生命周期结束或者其被删除。如果节点死掉,运行在其上的容器组将会被删除而不是重新调度。(也许在将来的版本中会添加容器组的移动)。 From 15ce0d8e0487b39da8161502792b2b97a0de23be Mon Sep 17 00:00:00 2001 From: khs1994 Date: Thu, 13 Dec 2018 18:01:45 +0800 Subject: [PATCH 352/611] Update storage drivers #378 #375 --- image/rm.md | 10 ++++++---- underly/ufs.md | 8 ++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/image/rm.md b/image/rm.md index bf8155b70..ff25e226a 100644 --- a/image/rm.md +++ b/image/rm.md @@ -88,10 +88,12 @@ $ docker image rm $(docker image ls -q -f before=mongo:3.2) ### CentOS/RHEL 的用户需要注意的事项 -在 Ubuntu/Debian 上有 `UnionFS` 可以使用,如 `aufs` 或者 `overlay2`,而 CentOS 和 RHEL 的内核中没有相关驱动。因此对于这类系统,一般使用 `devicemapper` 驱动利用 LVM 的一些机制来模拟分层存储。这样的做法除了性能比较差外,稳定性一般也不好,而且配置相对复杂。Docker 安装在 CentOS/RHEL 上后,会默认选择 `devicemapper`,但是为了简化配置,其 `devicemapper` 是跑在一个稀疏文件模拟的块设备上,也被称为 `loop-lvm`。这样的选择是因为不需要额外配置就可以运行 Docker,这是自动配置唯一能做到的事情。但是 `loop-lvm` 的做法非常不好,其稳定性、性能更差,无论是日志还是 `docker info` 中都会看到警告信息。官方文档有明确的文章讲解了如何配置块设备给 `devicemapper` 驱动做存储层的做法,这类做法也被称为配置 `direct-lvm`。 +> 以下内容仅适用于 Docker CE 18.09 以下版本,在 Docker CE 18.09 版本中默认使用的是 `overlay2` 驱动。 -除了前面说到的问题外,`devicemapper` + `loop-lvm` 还有一个缺陷,因为它是稀疏文件,所以它会不断增长。用户在使用过程中会注意到 `/var/lib/docker/devicemapper/devicemapper/data` 不断增长,而且无法控制。很多人会希望删除镜像或者可以解决这个问题,结果发现效果并不明显。原因就是这个稀疏文件的空间释放后基本不进行垃圾回收的问题。因此往往会出现即使删除了文件内容,空间却无法回收,随着使用这个稀疏文件一直在不断增长。 +~~在 Ubuntu/Debian 上有 `UnionFS` 可以使用,如 `aufs` 或者 `overlay2`,而 CentOS 和 RHEL 的内核中没有相关驱动。因此对于这类系统,一般使用 `devicemapper` 驱动利用 LVM 的一些机制来模拟分层存储。这样的做法除了性能比较差外,稳定性一般也不好,而且配置相对复杂。Docker 安装在 CentOS/RHEL 上后,会默认选择 `devicemapper`,但是为了简化配置,其 `devicemapper` 是跑在一个稀疏文件模拟的块设备上,也被称为 `loop-lvm`。这样的选择是因为不需要额外配置就可以运行 Docker,这是自动配置唯一能做到的事情。但是 `loop-lvm` 的做法非常不好,其稳定性、性能更差,无论是日志还是 `docker info` 中都会看到警告信息。官方文档有明确的文章讲解了如何配置块设备给 `devicemapper` 驱动做存储层的做法,这类做法也被称为配置 `direct-lvm`。~~ -所以对于 CentOS/RHEL 的用户来说,在没有办法使用 `UnionFS` 的情况下,一定要配置 `direct-lvm` 给 `devicemapper`,无论是为了性能、稳定性还是空间利用率。 +~~除了前面说到的问题外,`devicemapper` + `loop-lvm` 还有一个缺陷,因为它是稀疏文件,所以它会不断增长。用户在使用过程中会注意到 `/var/lib/docker/devicemapper/devicemapper/data` 不断增长,而且无法控制。很多人会希望删除镜像或者可以解决这个问题,结果发现效果并不明显。原因就是这个稀疏文件的空间释放后基本不进行垃圾回收的问题。因此往往会出现即使删除了文件内容,空间却无法回收,随着使用这个稀疏文件一直在不断增长。~~ -*或许有人注意到了 CentOS 7 中存在被 backports 回来的 `overlay` 驱动,不过 CentOS 里的这个驱动达不到生产环境使用的稳定程度,所以不推荐使用。* +~~所以对于 CentOS/RHEL 的用户来说,在没有办法使用 `UnionFS` 的情况下,一定要配置 `direct-lvm` 给 `devicemapper`,无论是为了性能、稳定性还是空间利用率。~~ + +~~*或许有人注意到了 CentOS 7 中存在被 backports 回来的 `overlay` 驱动,不过 CentOS 里的这个驱动达不到生产环境使用的稳定程度,所以不推荐使用。*~~ diff --git a/underly/ufs.md b/underly/ufs.md index e64bef5c5..44f834090 100644 --- a/underly/ufs.md +++ b/underly/ufs.md @@ -14,9 +14,9 @@ Docker 目前支持的联合文件系统包括 `OverlayFS`, `AUFS`, `Btrfs`, `VF |Linux 发行版 | Docker 推荐使用的存储驱动 | | :-- | :-- | -|Docker CE on Ubuntu | `aufs`, `devicemapper`, `overlay2` (Ubuntu 14.04.4 +, 16.04 +), `overlay`, `zfs`, `vfs` | -|Docker CE on Debian | `aufs`, `devicemapper`, `overlay2` (Debian Stretch), `overlay`, `vfs` | -|Docker CE on CentOS | `devicemapper`, `vfs` | -|Docker CE on Fedora | `devicemapper`, `overlay2` (Fedora 26 +), `overlay` (实验性支持), `vfs` | +|Docker CE on Ubuntu | `overlay2` (Ubuntu 14.04.4 +, 16.04 +) | +|Docker CE on Debian | `overlay2` (Debian Stretch), `aufs`, `devicemapper` | +|Docker CE on CentOS | `overlay2` | +|Docker CE on Fedora | `overlay2` | 在可能的情况下,推荐使用 `overlay2` 存储驱动,`overlay2` 是目前 Docker 默认的存储驱动,以前则是 `aufs`。你可以通过配置来使用以上提到的其他类型的存储驱动。 From 39b69945cceb895e9e0b1ccab761f68cb8773b48 Mon Sep 17 00:00:00 2001 From: long <764524258@qq.com> Date: Thu, 13 Dec 2018 18:13:08 +0800 Subject: [PATCH 353/611] Update docker save command info Signed-off-by: daixiang0 <764524258@qq.com> --- image/other.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/image/other.md b/image/other.md index a42228db4..46f1679a9 100644 --- a/image/other.md +++ b/image/other.md @@ -38,7 +38,7 @@ f477a6e18e98 About a minute ago 214.9 MB ### `docker save` 和 `docker load` -Docker 还提供了 `docker load` 和 `docker save` 命令,用以将镜像保存为一个 `tar` 文件,然后传输到另一个位置上,再加载进来。这是在没有 Docker Registry 时的做法,现在已经不推荐,镜像迁移应该直接使用 Docker Registry,无论是直接使用 Docker Hub 还是使用内网私有 Registry 都可以。 +Docker 还提供了 `docker save` 和 `docker load` 命令,用以将镜像保存为一个文件,然后传输到另一个位置上,再加载进来。这是在没有 Docker Registry 时的做法,现在已经不推荐,镜像迁移应该直接使用 Docker Registry,无论是直接使用 Docker Hub 还是使用内网私有 Registry 都可以。 #### 保存镜像 @@ -54,6 +54,18 @@ alpine latest baa5d63471ea 5 weeks ago 保存镜像的命令为: +```bash +$ docker save alpine -o filename +$ file filename +filename: POSIX tar archive +``` + +这里的 filename 可以为任意名称甚至任意后缀名,但文件的本质都是归档文件 + +**注意:如果同名则会覆盖(没有警告)** + +若使用 `gzip` 压缩: + ```bash $ docker save alpine | gzip > alpine-latest.tar.gz ``` From 86657b874235dfe1ec4e426d49a4f419f7378869 Mon Sep 17 00:00:00 2001 From: long <764524258@qq.com> Date: Thu, 13 Dec 2018 18:57:41 +0800 Subject: [PATCH 354/611] Update data root info --- appendix/faq/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appendix/faq/README.md b/appendix/faq/README.md index 108afb206..5883312eb 100644 --- a/appendix/faq/README.md +++ b/appendix/faq/README.md @@ -12,7 +12,7 @@ ### 本地的镜像文件都存放在哪里? -答:与 Docker 相关的本地资源都存放在 `/var/lib/docker/` 目录下,以 `aufs` 文件系统为例,其中 `container` 目录存放容器信息,`graph` 目录存放镜像信息,`aufs` 目录下存放具体的镜像层文件。 +答:与 Docker 相关的本地资源默认存放在 `/var/lib/docker/` 目录下,以 `aufs` 文件系统为例,其中 `container` 目录存放容器信息,`graph` 目录存放镜像信息,`aufs` 目录下存放具体的镜像层文件。 ### 构建 Docker 镜像应该遵循哪些原则? @@ -105,7 +105,7 @@ $ docker run --network=my-net --ip=172.25.3.3 -itd --name=my-container busybox ### 如何更改 Docker 的默认存储位置? -答:Docker 的默认存储位置是 `/var/lib/docker`,如果希望将 Docker 的本地文件存储到其他分区,可以使用 Linux 软连接的方式来完成,或者在启动 daemon 时通过 `-g` 参数指定。 +答:Docker 的默认存储位置是 `/var/lib/docker`,如果希望将 Docker 的本地文件存储到其他分区,可以使用 Linux 软连接的方式来完成,或者在启动 daemon 时通过 `-g` 参数指定,或者修改配置文件 `/etc/docker/daemon.json` 的 "data-root" 项 。可以使用 `docker system info | grep "Root Dir"` 查看当前使用的存储位置。 例如,如下操作将默认存储位置迁移到 /storage/docker。 @@ -126,7 +126,7 @@ lrwxrwxrwx. 1 root root 15 11月 17 13:43 docker -> /storage/docker [root@s26 lib]# service docker start ``` -### 使用内存和 swap 限制启动容器时候报警告:“WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.”? +### 使用内存和 swap 限制启动容器时候报警告:"WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded."? 答:这是因为系统默认没有开启对内存和 swap 使用的统计功能,引入该功能会带来性能的下降。要开启该功能,可以采取如下操作: From e3c46e3b0918cd2c3312610389d5492d09cbbc11 Mon Sep 17 00:00:00 2001 From: daixiang0 <764524258@qq.com> Date: Thu, 13 Dec 2018 18:43:55 +0800 Subject: [PATCH 355/611] Update stop cmd `docker stop` send SIGTERM, and then SIGKILL after grace period, while `docker kill` send SIGTERM directly, so `docker stop` is more safe and ensure the integrity of the data. Signed-off-by: daixiang0 <764524258@qq.com> --- appendix/faq/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appendix/faq/README.md b/appendix/faq/README.md index 5883312eb..0337d695e 100644 --- a/appendix/faq/README.md +++ b/appendix/faq/README.md @@ -44,7 +44,7 @@ ### 如何停止所有正在运行的容器? -答:可以使用 `docker kill $(docker container ls -q)` 命令。 +答:可以使用 `docker stop $(docker container ls -q)` 命令。 ### 如何批量清理已经停止的容器? From 3b798d1e644ebf5a04b71a7baf2fb67d171be420 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Thu, 13 Dec 2018 20:41:39 +0800 Subject: [PATCH 356/611] Update format --- appendix/command/README.md | 208 ++++++++++++++++++------------------- 1 file changed, 104 insertions(+), 104 deletions(-) diff --git a/appendix/command/README.md b/appendix/command/README.md index a549431b2..bb7ec866b 100644 --- a/appendix/command/README.md +++ b/appendix/command/README.md @@ -12,118 +12,118 @@ Docker 命令有两大类,客户端命令和服务端命令。前者是主要 ## 客户端命令选项 -* --config="":指定客户端配置文件,默认为 `/.docker`; -* -D=true|false:是否使用 debug 模式。默认不开启; -* -H, --host=[]:指定命令对应 Docker 守护进程的监听接口,可以为 unix 套接字(unix:///path/to/socket),文件句柄(fd://socketfd)或 tcp 套接字(tcp://[host[:port]]),默认为 unix:///var/run/docker.sock; -* -l, --log-level="debug|info|warn|error|fatal":指定日志输出级别; -* --tls=true|false:是否对 Docker 守护进程启用 TLS 安全机制,默认为否; -* --tlscacert= /.docker/ca.pem:TLS CA 签名的可信证书文件路径; -* --tlscert= /.docker/cert.pem:TLS 可信证书文件路径; -* --tlscert= /.docker/key.pem:TLS 密钥文件路径; -* --tlsverify=true|false:启用 TLS 校验,默认为否。 +* `--config=""`:指定客户端配置文件,默认为 `~/.docker`; +* `-D=true|false`:是否使用 debug 模式。默认不开启; +* `-H, --host=[]`:指定命令对应 Docker 守护进程的监听接口,可以为 unix 套接字 `unix:///path/to/socket`,文件句柄 `fd://socketfd` 或 tcp 套接字 `tcp://[host[:port]]`,默认为 `unix:///var/run/docker.sock`; +* `-l, --log-level="debug|info|warn|error|fatal"`:指定日志输出级别; +* `--tls=true|false`:是否对 Docker 守护进程启用 TLS 安全机制,默认为否; +* `--tlscacert=/.docker/ca.pem`:TLS CA 签名的可信证书文件路径; +* `--tlscert=/.docker/cert.pem`:TLS 可信证书文件路径; +* `--tlscert=/.docker/key.pem`:TLS 密钥文件路径; +* `--tlsverify=true|false`:启用 TLS 校验,默认为否。 ## dockerd 命令选项 -* --api-cors-header="":CORS 头部域,默认不允许 CORS,要允许任意的跨域访问,可以指定为 “*”; -* --authorization-plugin="":载入认证的插件; -* -b="":将容器挂载到一个已存在的网桥上。指定为 'none' 时则禁用容器的网络,与 --bip 选项互斥; -* --bip="":让动态创建的 docker0 网桥采用给定的 CIDR 地址; 与 -b 选项互斥; -* --cgroup-parent="":指定 cgroup 的父组,默认 fs cgroup 驱动为 `/docker`,systemd cgroup 驱动为 `system.slice`; -* --cluster-store="":构成集群(如 Swarm)时,集群键值数据库服务地址; -* --cluster-advertise="":构成集群时,自身的被访问地址,可以为 `host:port` 或 `interface:port`; -* --cluster-store-opt="":构成集群时,键值数据库的配置选项; -* --config-file="/etc/docker/daemon.json":daemon 配置文件路径; -* --containerd="":containerd 文件的路径; -* -D, --debug=true|false:是否使用 Debug 模式。缺省为 false; -* --default-gateway="":容器的 IPv4 网关地址,必须在网桥的子网段内; -* --default-gateway-v6="":容器的 IPv6 网关地址; -* --default-ulimit=[]:默认的 ulimit 值; -* --disable-legacy-registry=true|false:是否允许访问旧版本的镜像仓库服务器; -* --dns="":指定容器使用的 DNS 服务器地址; -* --dns-opt="":DNS 选项; -* --dns-search=[]:DNS 搜索域; -* --exec-opt=[]:运行时的执行选项; -* --exec-root="":容器执行状态文件的根路径,默认为 `/var/run/docker`; -* --fixed-cidr="":限定分配 IPv4 地址范围; -* --fixed-cidr-v6="":限定分配 IPv6 地址范围; -* -G, --group="":分配给 unix 套接字的组,默认为 `docker`; -* -g, --graph="":Docker 运行时的根路径,默认为 `/var/lib/docker`; -* -H, --host=[]:指定命令对应 Docker daemon 的监听接口,可以为 unix 套接字(unix:///path/to/socket),文件句柄(fd://socketfd)或 tcp 套接字(tcp://[host[:port]]),默认为 unix:///var/run/docker.sock; -* --icc=true|false:是否启用容器间以及跟 daemon 所在主机的通信。默认为 true。 -* --insecure-registry=[]:允许访问给定的非安全仓库服务; -* --ip="":绑定容器端口时候的默认 IP 地址。缺省为 0.0.0.0; -* --ip-forward=true|false:是否检查启动在 Docker 主机上的启用 IP 转发服务,默认开启。注意关闭该选项将不对系统转发能力进行任何检查修改; -* --ip-masq=true|false:是否进行地址伪装,用于容器访问外部网络,默认开启; -* --iptables=true|false:是否允许 Docker 添加 iptables 规则。缺省为 true; -* --ipv6=true|false:是否启用 IPv6 支持,默认关闭; -* -l, --log-level="debug|info|warn|error|fatal":指定日志输出级别; -* --label="[]":添加指定的键值对标注; -* --log-driver="json-file|syslog|journald|gelf|fluentd|awslogs|splunk|etwlogs|gcplogs|none":指定日志后端驱动,默认为 json-file; -* --log-opt=[]:日志后端的选项; -* --mtu=VALUE:指定容器网络的 mtu; -* -p="":指定 daemon 的 PID 文件路径。缺省为 `/var/run/docker.pid`; -* --raw-logs:输出原始,未加色彩的日志信息; -* --registry-mirror=://:指定 `docker pull` 时使用的注册服务器镜像地址; -* -s, --storage-driver="":指定使用给定的存储后端; -* --selinux-enabled=true|false:是否启用 SELinux 支持。缺省值为 false。SELinux 目前尚不支持 overlay 存储驱动; -* --storage-opt=[]:驱动后端选项; -* --tls=true|false:是否对 Docker daemon 启用 TLS 安全机制,默认为否; -* --tlscacert= /.docker/ca.pem:TLS CA 签名的可信证书文件路径; -* --tlscert= /.docker/cert.pem:TLS 可信证书文件路径; -* --tlscert= /.docker/key.pem:TLS 密钥文件路径; -* --tlsverify=true|false:启用 TLS 校验,默认为否; -* --userland-proxy=true|false:是否使用用户态代理来实现容器间和出容器的回环通信,默认为 true; -* --userns-remap=default|uid:gid|user:group|user|uid:指定容器的用户命名空间,默认是创建新的 UID 和 GID 映射到容器内进程。 +* `--api-cors-header=""`:CORS 头部域,默认不允许 CORS,要允许任意的跨域访问,可以指定为 "*"; +* `--authorization-plugin=""`:载入认证的插件; +* `-b=""`:将容器挂载到一个已存在的网桥上。指定为 `none` 时则禁用容器的网络,与 `--bip` 选项互斥; +* `--bip=""`:让动态创建的 `docker0` 网桥采用给定的 CIDR 地址; 与 `-b` 选项互斥; +* `--cgroup-parent=""`:指定 cgroup 的父组,默认 fs cgroup 驱动为 `/docker`,systemd cgroup 驱动为 `system.slice`; +* `--cluster-store=""`:构成集群(如 `Swarm`)时,集群键值数据库服务地址; +* `--cluster-advertise=""`:构成集群时,自身的被访问地址,可以为 `host:port` 或 `interface:port`; +* `--cluster-store-opt=""`:构成集群时,键值数据库的配置选项; +* `--config-file="/etc/docker/daemon.json"`:daemon 配置文件路径; +* `--containerd=""`:containerd 文件的路径; +* `-D, --debug=true|false`:是否使用 Debug 模式。缺省为 false; +* `--default-gateway=""`:容器的 IPv4 网关地址,必须在网桥的子网段内; +* `--default-gateway-v6=""`:容器的 IPv6 网关地址; +* `--default-ulimit=[]`:默认的 ulimit 值; +* `--disable-legacy-registry=true|false`:是否允许访问旧版本的镜像仓库服务器; +* `--dns=""`:指定容器使用的 DNS 服务器地址; +* `--dns-opt=""`:DNS 选项; +* `--dns-search=[]`:DNS 搜索域; +* `--exec-opt=[]`:运行时的执行选项; +* `--exec-root=""`:容器执行状态文件的根路径,默认为 `/var/run/docker`; +* `--fixed-cidr=""`:限定分配 IPv4 地址范围; +* `--fixed-cidr-v6=""`:限定分配 IPv6 地址范围; +* `-G, --group=""`:分配给 unix 套接字的组,默认为 `docker`; +* `-g, --graph=""`:Docker 运行时的根路径,默认为 `/var/lib/docker`; +* `-H, --host=[]`:指定命令对应 Docker daemon 的监听接口,可以为 unix 套接字 `unix:///path/to/socket`,文件句柄 `fd://socketfd` 或 tcp 套接字 `tcp://[host[:port]]`,默认为 `unix:///var/run/docker.sock`; +* `--icc=true|false`:是否启用容器间以及跟 daemon 所在主机的通信。默认为 true。 +* `--insecure-registry=[]`:允许访问给定的非安全仓库服务; +* `--ip=""`:绑定容器端口时候的默认 IP 地址。缺省为 `0.0.0.0`; +* `--ip-forward=true|false`:是否检查启动在 Docker 主机上的启用 IP 转发服务,默认开启。注意关闭该选项将不对系统转发能力进行任何检查修改; +* `--ip-masq=true|false`:是否进行地址伪装,用于容器访问外部网络,默认开启; +* `--iptables=true|false`:是否允许 Docker 添加 iptables 规则。缺省为 true; +* `--ipv6=true|false`:是否启用 IPv6 支持,默认关闭; +* `-l, --log-level="debug|info|warn|error|fatal"`:指定日志输出级别; +* `--label="[]"`:添加指定的键值对标注; +* `--log-driver="json-file|syslog|journald|gelf|fluentd|awslogs|splunk|etwlogs|gcplogs|none"`:指定日志后端驱动,默认为 `json-file`; +* `--log-opt=[]`:日志后端的选项; +* `--mtu=VALUE`:指定容器网络的 `mtu`; +* `-p=""`:指定 daemon 的 PID 文件路径。缺省为 `/var/run/docker.pid`; +* `--raw-logs`:输出原始,未加色彩的日志信息; +* `--registry-mirror=://`:指定 `docker pull` 时使用的注册服务器镜像地址; +* `-s, --storage-driver=""`:指定使用给定的存储后端; +* `--selinux-enabled=true|false`:是否启用 SELinux 支持。缺省值为 false。SELinux 目前尚不支持 overlay 存储驱动; +* `--storage-opt=[]`:驱动后端选项; +* `--tls=true|false`:是否对 Docker daemon 启用 TLS 安全机制,默认为否; +* `--tlscacert=/.docker/ca.pem`:TLS CA 签名的可信证书文件路径; +* `--tlscert=/.docker/cert.pem`:TLS 可信证书文件路径; +* `--tlscert=/.docker/key.pem`:TLS 密钥文件路径; +* `--tlsverify=true|false`:启用 TLS 校验,默认为否; +* `--userland-proxy=true|false`:是否使用用户态代理来实现容器间和出容器的回环通信,默认为 true; +* `--userns-remap=default|uid:gid|user:group|user|uid`:指定容器的用户命名空间,默认是创建新的 UID 和 GID 映射到容器内进程。 ## 客户端命令 可以通过 `docker COMMAND --help` 来查看这些命令的具体用法。 -* attach:依附到一个正在运行的容器中; -* build:从一个 Dockerfile 创建一个镜像; -* commit:从一个容器的修改中创建一个新的镜像; -* cp:在容器和本地宿主系统之间复制文件中; -* create:创建一个新容器,但并不运行它; -* diff:检查一个容器内文件系统的修改,包括修改和增加; -* events:从服务端获取实时的事件; -* exec:在运行的容器内执行命令; -* export:导出容器内容为一个 tar 包; -* history:显示一个镜像的历史信息; -* images:列出存在的镜像; -* import:导入一个文件(典型为 tar 包)路径或目录来创建一个本地镜像; -* info:显示一些相关的系统信息; -* inspect:显示一个容器的具体配置信息; -* kill:关闭一个运行中的容器 (包括进程和所有相关资源); -* load:从一个 tar 包中加载一个镜像; -* login:注册或登录到一个 Docker 的仓库服务器; -* logout:从 Docker 的仓库服务器登出; -* logs:获取容器的 log 信息; -* network:管理 Docker 的网络,包括查看、创建、删除、挂载、卸载等; -* node:管理 swarm 集群中的节点,包括查看、更新、删除、提升/取消管理节点等; -* pause:暂停一个容器中的所有进程; -* port:查找一个 nat 到一个私有网口的公共口; -* ps:列出主机上的容器; -* pull:从一个Docker的仓库服务器下拉一个镜像或仓库; -* push:将一个镜像或者仓库推送到一个 Docker 的注册服务器; -* rename:重命名一个容器; -* restart:重启一个运行中的容器; -* rm:删除给定的若干个容器; -* rmi:删除给定的若干个镜像; -* run:创建一个新容器,并在其中运行给定命令; -* save:保存一个镜像为 tar 包文件; -* search:在 Docker index 中搜索一个镜像; -* service:管理 Docker 所启动的应用服务,包括创建、更新、删除等; -* start:启动一个容器; -* stats:输出(一个或多个)容器的资源使用统计信息; -* stop:终止一个运行中的容器; -* swarm:管理 Docker swarm 集群,包括创建、加入、退出、更新等; -* tag:为一个镜像打标签; -* top:查看一个容器中的正在运行的进程信息; -* unpause:将一个容器内所有的进程从暂停状态中恢复; -* update:更新指定的若干容器的配置信息; -* version:输出 Docker 的版本信息; -* volume:管理 Docker volume,包括查看、创建、删除等; -* wait:阻塞直到一个容器终止,然后输出它的退出符。 +* `attach`:依附到一个正在运行的容器中; +* `build`:从一个 Dockerfile 创建一个镜像; +* `commit`:从一个容器的修改中创建一个新的镜像; +* `cp`:在容器和本地宿主系统之间复制文件中; +* `create`:创建一个新容器,但并不运行它; +* `diff`:检查一个容器内文件系统的修改,包括修改和增加; +* `events`:从服务端获取实时的事件; +* `exec`:在运行的容器内执行命令; +* `export`:导出容器内容为一个 `tar` 包; +* `history`:显示一个镜像的历史信息; +* `images`:列出存在的镜像; +* `import`:导入一个文件(典型为 `tar` 包)路径或目录来创建一个本地镜像; +* `info`:显示一些相关的系统信息; +* `inspect`:显示一个容器的具体配置信息; +* `kill`:关闭一个运行中的容器 (包括进程和所有相关资源); +* `load`:从一个 tar 包中加载一个镜像; +* `login`:注册或登录到一个 Docker 的仓库服务器; +* `logout`:从 Docker 的仓库服务器登出; +* `logs`:获取容器的 log 信息; +* `network`:管理 Docker 的网络,包括查看、创建、删除、挂载、卸载等; +* `node`:管理 swarm 集群中的节点,包括查看、更新、删除、提升/取消管理节点等; +* `pause`:暂停一个容器中的所有进程; +* `port`:查找一个 nat 到一个私有网口的公共口; +* `ps`:列出主机上的容器; +* `pull`:从一个Docker的仓库服务器下拉一个镜像或仓库; +* `push`:将一个镜像或者仓库推送到一个 Docker 的注册服务器; +* `rename`:重命名一个容器; +* `restart`:重启一个运行中的容器; +* `rm`:删除给定的若干个容器; +* `rmi`:删除给定的若干个镜像; +* `run`:创建一个新容器,并在其中运行给定命令; +* `save`:保存一个镜像为 tar 包文件; +* `search`:在 Docker index 中搜索一个镜像; +* `service`:管理 Docker 所启动的应用服务,包括创建、更新、删除等; +* `start`:启动一个容器; +* `stats`:输出(一个或多个)容器的资源使用统计信息; +* `stop`:终止一个运行中的容器; +* `swarm`:管理 Docker swarm 集群,包括创建、加入、退出、更新等; +* `tag`:为一个镜像打标签; +* `top`:查看一个容器中的正在运行的进程信息; +* `unpause`:将一个容器内所有的进程从暂停状态中恢复; +* `update`:更新指定的若干容器的配置信息; +* `version`:输出 Docker 的版本信息; +* `volume`:管理 Docker volume,包括查看、创建、删除等; +* `wait`:阻塞直到一个容器终止,然后输出它的退出符。 ## 一张图总结 Docker 的命令 ![Docker 命令总结](../_images/cmd_logic.png) From a50641d97381ba305936338dd8fd794b1e5c9df3 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 14 Dec 2018 19:08:14 +0800 Subject: [PATCH 357/611] replace docker store with docker hub --- README.md | 2 +- appendix/repo/centos.md | 4 ++-- appendix/repo/mongodb.md | 4 ++-- appendix/repo/mysql.md | 4 ++-- appendix/repo/nginx.md | 4 ++-- appendix/repo/nodejs.md | 4 ++-- appendix/repo/redis.md | 4 ++-- appendix/repo/ubuntu.md | 4 ++-- appendix/repo/wordpress.md | 4 ++-- appendix/resources/README.md | 2 -- basic_concept/repository.md | 4 ++-- compose/django.md | 2 +- image/build.md | 4 ++-- install/mac.md | 2 +- introduction/why.md | 2 +- 15 files changed, 24 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 681b885a5..55376a06a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Docker — 从入门到实践 -[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://img.shields.io/docker/pulls/yeasy/docker_practice.svg)](https://store.docker.com/community/images/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://badges.gitter.im/docker_practice/Lobby.svg)](https://gitter.im/docker_practice/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) ![](https://img.shields.io/docker/pulls/yeasy/docker_practice.svg) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://badges.gitter.im/docker_practice/Lobby.svg)](https://gitter.im/docker_practice/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) v1.0.0 diff --git a/appendix/repo/centos.md b/appendix/repo/centos.md index 4046c897f..96b7d7192 100644 --- a/appendix/repo/centos.md +++ b/appendix/repo/centos.md @@ -1,10 +1,10 @@ -## [CentOS](https://store.docker.com/images/centos/) +## [CentOS](https://hub.docker.com/_/centos) ### 基本信息 [CentOS](https://en.wikipedia.org/wiki/CentOS) 是流行的 Linux 发行版,其软件包大多跟 RedHat 系列保持一致。 -该仓库位于 https://store.docker.com/images/centos/ ,提供了 CentOS 从 5 ~ 7 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/centos` ,提供了 CentOS 从 5 ~ 7 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/mongodb.md b/appendix/repo/mongodb.md index 2890e97ae..1c5ea52be 100644 --- a/appendix/repo/mongodb.md +++ b/appendix/repo/mongodb.md @@ -1,10 +1,10 @@ -## [MongoDB](https://store.docker.com/images/mongo/) +## [MongoDB](https://hub.docker.com/_/mongo/) ### 基本信息 [MongoDB](https://en.wikipedia.org/wiki/MongoDB) 是开源的 NoSQL 数据库实现。 -该仓库位于 https://store.docker.com/images/mongo/ ,提供了 MongoDB 2.x ~ 3.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/mongo/` ,提供了 MongoDB 2.x ~ 3.x 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/mysql.md b/appendix/repo/mysql.md index 3b842f982..314b6b8f0 100644 --- a/appendix/repo/mysql.md +++ b/appendix/repo/mysql.md @@ -1,10 +1,10 @@ -## [MySQL](https://store.docker.com/images/mysql/) +## [MySQL](https://hub.docker.com/_/mysql/) ### 基本信息 [MySQL](https://en.wikipedia.org/wiki/MySQL) 是开源的关系数据库实现。 -该仓库位于 https://store.docker.com/images/mysql/ ,提供了 MySQL 5.5 ~ 8.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/mysql/` ,提供了 MySQL 5.5 ~ 8.x 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/nginx.md b/appendix/repo/nginx.md index 1d1b805e4..7cd7471c0 100644 --- a/appendix/repo/nginx.md +++ b/appendix/repo/nginx.md @@ -1,10 +1,10 @@ -## [Nginx](https://store.docker.com/images/nginx/) +## [Nginx](https://hub.docker.com/_/nginx/) ### 基本信息 [Nginx](https://en.wikipedia.org/wiki/Nginx) 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。 -该仓库位于 https://store.docker.com/images/nginx/ ,提供了 Nginx 1.0 ~ 1.13.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/nginx/` ,提供了 Nginx 1.0 ~ 1.13.x 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/nodejs.md b/appendix/repo/nodejs.md index 48b5e5114..229dd6bb7 100644 --- a/appendix/repo/nodejs.md +++ b/appendix/repo/nodejs.md @@ -1,10 +1,10 @@ -## [Node.js](https://store.docker.com/images/node/) +## [Node.js](https://hub.docker.com/_/node/) ### 基本信息 [Node.js](https://en.wikipedia.org/wiki/Node.js) 是基于 JavaScript 的可扩展服务端和网络软件开发平台。 -该仓库位于 https://store.docker.com/images/node/ ,提供了 Node.js 0.10 ~ 9.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/node/` ,提供了 Node.js 0.10 ~ 9.x 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/redis.md b/appendix/repo/redis.md index fe514df19..168ad92ef 100644 --- a/appendix/repo/redis.md +++ b/appendix/repo/redis.md @@ -1,10 +1,10 @@ -## [Redis](https://store.docker.com/images/redis/) +## [Redis](https://hub.docker.com/_/redis/) ### 基本信息 [Redis](https://en.wikipedia.org/wiki/Redis) 是开源的内存 Key-Value 数据库实现。 -该仓库位于 https://store.docker.com/images/redis/ ,提供了 Redis 3.x ~ 4.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/redis/` ,提供了 Redis 3.x ~ 4.x 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/ubuntu.md b/appendix/repo/ubuntu.md index 8a95bdf71..769ff2a06 100644 --- a/appendix/repo/ubuntu.md +++ b/appendix/repo/ubuntu.md @@ -1,10 +1,10 @@ -## [Ubuntu](https://store.docker.com/images/ubuntu/) +## [Ubuntu](https://hub.docker.com/_/ubuntu/) ### 基本信息 [Ubuntu](https://en.wikipedia.org/wiki/Ubuntu) 是流行的 Linux 发行版,其自带软件版本往往较新一些。 -该仓库位于 https://store.docker.com/images/ubuntu/ ,提供了 Ubuntu 从 12.04 ~ 18.04 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/ubuntu/` ,提供了 Ubuntu 从 12.04 ~ 18.04 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/wordpress.md b/appendix/repo/wordpress.md index 4cded1ec5..7b8037b7c 100644 --- a/appendix/repo/wordpress.md +++ b/appendix/repo/wordpress.md @@ -1,10 +1,10 @@ -## [WordPress](https://store.docker.com/images/wordpress/) +## [WordPress](https://hub.docker.com/_/wordpress/) ### 基本信息 [WordPress](https://en.wikipedia.org/wiki/WordPress) 是开源的 Blog 和内容管理系统框架,它基于 PHP 和 MySQL。 -该仓库位于 https://store.docker.com/images/wordpress/ ,提供了 WordPress 4.x 版本的镜像。 +该仓库位于 `https://hub.docker.com/_/wordpress/` ,提供了 WordPress 4.x 版本的镜像。 ### 使用方法 diff --git a/appendix/resources/README.md b/appendix/resources/README.md index 877392626..155038c3a 100644 --- a/appendix/resources/README.md +++ b/appendix/resources/README.md @@ -5,8 +5,6 @@ * Docker 官方主页:https://www.docker.com * Docker 官方博客:https://blog.docker.com/ * Docker 官方文档:https://docs.docker.com/ -* Docker Store:https://store.docker.com -* Docker Cloud:https://cloud.docker.com * Docker Hub:https://hub.docker.com * Docker 的源代码仓库:https://github.com/moby/moby * Docker 发布版本历史:https://docs.docker.com/release-notes/ diff --git a/basic_concept/repository.md b/basic_concept/repository.md index fcbecb4db..a6ba18ebc 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -6,7 +6,7 @@ 通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 `<仓库名>:<标签>` 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 `latest` 作为默认标签。 -以 [Ubuntu 镜像](https://store.docker.com/images/ubuntu) 为例,`ubuntu` 是仓库的名字,其内包含有不同的版本标签,如,`16.04`, `18.04`。我们可以通过 `ubuntu:14.04`,或者 `ubuntu:18.04` 来具体指定所需哪个版本的镜像。如果忽略了标签,比如 `ubuntu`,那将视为 `ubuntu:latest`。 +以 [Ubuntu 镜像](https://hub.docker.com/_/ubuntu) 为例,`ubuntu` 是仓库的名字,其内包含有不同的版本标签,如,`16.04`, `18.04`。我们可以通过 `ubuntu:14.04`,或者 `ubuntu:18.04` 来具体指定所需哪个版本的镜像。如果忽略了标签,比如 `ubuntu`,那将视为 `ubuntu:latest`。 仓库名经常以 *两段式路径* 形式出现,比如 `jwilder/nginx-proxy`,前者往往意味着 Docker Registry 多用户环境下的用户名,后者则往往是对应的软件名。但这并非绝对,取决于所使用的具体 Docker Registry 的软件或服务。 @@ -22,7 +22,7 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像 ### 私有 Docker Registry -除了使用公开服务外,用户还可以在本地搭建私有 Docker Registry。Docker 官方提供了 [Docker Registry](https://store.docker.com/images/registry/) 镜像,可以直接使用做为私有 Registry 服务。在 [私有仓库](../repository/registry.md) 一节中,会有进一步的搭建私有 Registry 服务的讲解。 +除了使用公开服务外,用户还可以在本地搭建私有 Docker Registry。Docker 官方提供了 [Docker Registry](https://hub.docker.com/_/registry/) 镜像,可以直接使用做为私有 Registry 服务。在 [私有仓库](../repository/registry.md) 一节中,会有进一步的搭建私有 Registry 服务的讲解。 开源的 Docker Registry 镜像只提供了 [Docker Registry API](https://docs.docker.com/registry/spec/api/) 的服务端实现,足以支持 `docker` 命令,不影响使用。但不包含图形界面,以及镜像维护、用户管理、访问控制等高级功能。在官方的商业化版本 [Docker Trusted Registry](https://docs.docker.com/datacenter/dtr/2.0/) 中,提供了这些高级功能。 diff --git a/compose/django.md b/compose/django.md index 08ece0713..e0447bba0 100644 --- a/compose/django.md +++ b/compose/django.md @@ -84,7 +84,7 @@ DATABASES = { } ``` -这些信息是在 [postgres](https://store.docker.com/images/postgres/) 镜像固定设置好的。然后,运行 `docker-compose up` : +这些信息是在 [postgres](https://hub.docker.com/_/postgres/) 镜像固定设置好的。然后,运行 `docker-compose up` : ```bash $ docker-compose up diff --git a/image/build.md b/image/build.md index 88a8254cb..e4f6533bb 100644 --- a/image/build.md +++ b/image/build.md @@ -27,9 +27,9 @@ RUN echo '

    Hello, Docker!

    ' > /usr/share/nginx/html/index.html 所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。就像我们之前运行了一个 `nginx` 镜像的容器,再进行修改一样,基础镜像是必须指定的。而 `FROM` 就是指定**基础镜像**,因此一个 `Dockerfile` 中 `FROM` 是必备的指令,并且必须是第一条指令。 -在 [Docker Store](https://store.docker.com) 上有非常多的高质量的官方镜像,有可以直接拿来使用的服务类的镜像,如 [`nginx`](https://store.docker.com/images/nginx/)、[`redis`](https://store.docker.com/images/redis/)、[`mongo`](https://store.docker.com/images/mongo/)、[`mysql`](https://store.docker.com/images/mysql/)、[`httpd`](https://store.docker.com/images/httpd/)、[`php`](https://store.docker.com/images/php/)、[`tomcat`](https://store.docker.com/images/tomcat/) 等;也有一些方便开发、构建、运行各种语言应用的镜像,如 [`node`](https://store.docker.com/images/node)、[`openjdk`](https://store.docker.com/images/openjdk/)、[`python`](https://store.docker.com/images/python/)、[`ruby`](https://store.docker.com/images/ruby/)、[`golang`](https://store.docker.com/images/golang/) 等。可以在其中寻找一个最符合我们最终目标的镜像为基础镜像进行定制。 +在 [Docker Hub](https://hub.docker.com/search?q=&type=image&image_filter=official) 上有非常多的高质量的官方镜像,有可以直接拿来使用的服务类的镜像,如 [`nginx`](https://hub.docker.com/_/nginx/)、[`redis`](https://hub.docker.com/_/redis/)、[`mongo`](https://hub.docker.com/_/mongo/)、[`mysql`](https://hub.docker.com/_/mysql/)、[`httpd`](https://hub.docker.com/_/httpd/)、[`php`](https://hub.docker.com/_/php/)、[`tomcat`](https://hub.docker.com/_/tomcat/) 等;也有一些方便开发、构建、运行各种语言应用的镜像,如 [`node`](https://hub.docker.com/_/node)、[`openjdk`](https://hub.docker.com/_/openjdk/)、[`python`](https://hub.docker.com/_/python/)、[`ruby`](https://hub.docker.com/_/ruby/)、[`golang`](https://hub.docker.com/_/golang/) 等。可以在其中寻找一个最符合我们最终目标的镜像为基础镜像进行定制。 -如果没有找到对应服务的镜像,官方镜像中还提供了一些更为基础的操作系统镜像,如 [`ubuntu`](https://store.docker.com/images/ubuntu/)、[`debian`](https://store.docker.com/images/debian/)、[`centos`](https://store.docker.com/images/centos/)、[`fedora`](https://store.docker.com/images/fedora/)、[`alpine`](https://store.docker.com/images/alpine/) 等,这些操作系统的软件库为我们提供了更广阔的扩展空间。 +如果没有找到对应服务的镜像,官方镜像中还提供了一些更为基础的操作系统镜像,如 [`ubuntu`](https://hub.docker.com/_/ubuntu/)、[`debian`](https://hub.docker.com/_/debian/)、[`centos`](https://hub.docker.com/_/centos/)、[`fedora`](https://hub.docker.com/_/fedora/)、[`alpine`](https://hub.docker.com/_/alpine/) 等,这些操作系统的软件库为我们提供了更广阔的扩展空间。 除了选择现有镜像为基础镜像外,Docker 还存在一个特殊的镜像,名为 `scratch`。这个镜像是虚拟的概念,并不实际存在,它表示一个空白的镜像。 diff --git a/install/mac.md b/install/mac.md index ee477895c..2778f5696 100644 --- a/install/mac.md +++ b/install/mac.md @@ -51,7 +51,7 @@ $ docker-machine --version docker-machine version 0.13.0, build 9ba6da9 ``` -如果 `docker version`、`docker info` 都正常的话,可以尝试运行一个 [Nginx 服务器](https://store.docker.com/images/nginx/): +如果 `docker version`、`docker info` 都正常的话,可以尝试运行一个 [Nginx 服务器](https://hub.docker.com/_/nginx/): ```bash $ docker run -d -p 80:80 --name webserver nginx diff --git a/introduction/why.md b/introduction/why.md index b087eaf9f..0f7ae0823 100644 --- a/introduction/why.md +++ b/introduction/why.md @@ -28,7 +28,7 @@ ### 更轻松的维护和扩展 -Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的 [官方镜像](https://store.docker.com/search?q=&source=verified&type=image),既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。 +Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的 [官方镜像](https://hub.docker.com/search/?type=image&image_filter=official),既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。 ### 对比传统虚拟机总结 From 6d4702484d81bc1678e307c45d18b5790a3162f4 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 14 Dec 2018 19:36:17 +0800 Subject: [PATCH 358/611] replace docker cloud with docker hub --- repository/dockerhub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/dockerhub.md b/repository/dockerhub.md index debfe9c7f..6aea42119 100644 --- a/repository/dockerhub.md +++ b/repository/dockerhub.md @@ -4,7 +4,7 @@ ### 注册 -你可以在 https://cloud.docker.com 免费注册一个 Docker 账号。 +你可以在 https://hub.docker.com 免费注册一个 Docker 账号。 ### 登录 From 7a45ac029e6c38766e0ce0d3870ddb7a5238cf2f Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 15 Dec 2018 23:04:32 +0800 Subject: [PATCH 359/611] Update soft version --- appendix/repo/mongodb.md | 2 +- appendix/repo/mysql.md | 2 +- appendix/repo/nginx.md | 2 +- appendix/repo/nodejs.md | 2 +- appendix/repo/redis.md | 2 +- appendix/repo/wordpress.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/appendix/repo/mongodb.md b/appendix/repo/mongodb.md index 1c5ea52be..fc7025a67 100644 --- a/appendix/repo/mongodb.md +++ b/appendix/repo/mongodb.md @@ -4,7 +4,7 @@ [MongoDB](https://en.wikipedia.org/wiki/MongoDB) 是开源的 NoSQL 数据库实现。 -该仓库位于 `https://hub.docker.com/_/mongo/` ,提供了 MongoDB 2.x ~ 3.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/mongo/` ,提供了 MongoDB 2.x ~ 4.x 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/mysql.md b/appendix/repo/mysql.md index 314b6b8f0..eef26d5a9 100644 --- a/appendix/repo/mysql.md +++ b/appendix/repo/mysql.md @@ -20,7 +20,7 @@ $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql $ docker run --name some-app --link some-mysql:mysql -d application-that-uses-mysql ``` -或者通过 `mysql`。 +或者通过 `mysql` 命令行连接。 ```bash $ docker run -it --rm \ diff --git a/appendix/repo/nginx.md b/appendix/repo/nginx.md index 7cd7471c0..e190d1068 100644 --- a/appendix/repo/nginx.md +++ b/appendix/repo/nginx.md @@ -4,7 +4,7 @@ [Nginx](https://en.wikipedia.org/wiki/Nginx) 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。 -该仓库位于 `https://hub.docker.com/_/nginx/` ,提供了 Nginx 1.0 ~ 1.13.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/nginx/` ,提供了 Nginx 1.0 ~ 1.15.x 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/nodejs.md b/appendix/repo/nodejs.md index 229dd6bb7..dc488707d 100644 --- a/appendix/repo/nodejs.md +++ b/appendix/repo/nodejs.md @@ -4,7 +4,7 @@ [Node.js](https://en.wikipedia.org/wiki/Node.js) 是基于 JavaScript 的可扩展服务端和网络软件开发平台。 -该仓库位于 `https://hub.docker.com/_/node/` ,提供了 Node.js 0.10 ~ 9.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/node/` ,提供了 Node.js 0.10 ~ 11.x 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/redis.md b/appendix/repo/redis.md index 168ad92ef..cfc711caf 100644 --- a/appendix/repo/redis.md +++ b/appendix/repo/redis.md @@ -4,7 +4,7 @@ [Redis](https://en.wikipedia.org/wiki/Redis) 是开源的内存 Key-Value 数据库实现。 -该仓库位于 `https://hub.docker.com/_/redis/` ,提供了 Redis 3.x ~ 4.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/redis/` ,提供了 Redis 3.x ~ 5.x 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/wordpress.md b/appendix/repo/wordpress.md index 7b8037b7c..b6cace123 100644 --- a/appendix/repo/wordpress.md +++ b/appendix/repo/wordpress.md @@ -4,7 +4,7 @@ [WordPress](https://en.wikipedia.org/wiki/WordPress) 是开源的 Blog 和内容管理系统框架,它基于 PHP 和 MySQL。 -该仓库位于 `https://hub.docker.com/_/wordpress/` ,提供了 WordPress 4.x 版本的镜像。 +该仓库位于 `https://hub.docker.com/_/wordpress/` ,提供了 WordPress 4.x ~ 5.x 版本的镜像。 ### 使用方法 From 89f7f3cf9801692e71157c7232bff59c4490ac04 Mon Sep 17 00:00:00 2001 From: xufanglu <3146974+likev@users.noreply.github.com> Date: Tue, 18 Dec 2018 13:13:52 +0800 Subject: [PATCH 360/611] Use daemon.json --- advanced_network/access_control.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/advanced_network/access_control.md b/advanced_network/access_control.md index b3d0b9e70..90126c04c 100644 --- a/advanced_network/access_control.md +++ b/advanced_network/access_control.md @@ -20,9 +20,9 @@ $sysctl -w net.ipv4.ip_forward=1 * 本地系统的防火墙软件 -- `iptables` 是否允许通过。 #### 访问所有端口 -当启动 Docker 服务时候,默认会添加一条转发策略到 iptables 的 FORWARD 链上。策略为通过(`ACCEPT`)还是禁止(`DROP`)取决于配置`--icc=true`(缺省值)还是 `--icc=false`。当然,如果手动指定 `--iptables=false` 则不会添加 `iptables` 规则。 +当启动 Docker 服务(即 dockerd)的时候,默认会添加一条转发策略到本地主机 iptables 的 FORWARD 链上。策略为通过(`ACCEPT`)还是禁止(`DROP`)取决于配置`--icc=true`(缺省值)还是 `--icc=false`。当然,如果手动指定 `--iptables=false` 则不会添加 `iptables` 规则。 -可见,默认情况下,不同容器之间是允许网络互通的。如果为了安全考虑,可以在 `/etc/default/docker` 文件中配置 `DOCKER_OPTS=--icc=false` 来禁止它。 +可见,默认情况下,不同容器之间是允许网络互通的。如果为了安全考虑,可以在 `/etc/docker/daemon.json` 文件中配置 `{"icc": false}` 来禁止它(Ubuntu 14.04 等使用 upstart 的系统在文件 `/etc/default/docker` 中配置 `DOCKER_OPTS=--icc=false`)。 #### 访问指定端口 在通过 `-icc=false` 关闭网络访问后,还可以通过 `--link=CONTAINER_NAME:ALIAS` 选项来访问容器的开放端口。 From 4d38aaad3b6090fc1a2ac2fe30a0a992b016cd79 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 19 Dec 2018 17:07:40 +0800 Subject: [PATCH 361/611] =?UTF-8?q?Fix=20#383,=20base=20image=20not=20incl?= =?UTF-8?q?ude=20wget=EF=BC=8CUpdate=20based=20image=20to=20debian:stretch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image/build.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/image/build.md b/image/build.md index e4f6533bb..ac072bd97 100644 --- a/image/build.md +++ b/image/build.md @@ -57,11 +57,11 @@ RUN echo '

    Hello, Docker!

    ' > /usr/share/nginx/html/index.html 既然 `RUN` 就像 Shell 脚本一样可以执行命令,那么我们是否就可以像 Shell 脚本一样把每个命令对应一个 RUN 呢?比如这样: ```dockerfile -FROM debian:jessie +FROM debian:stretch RUN apt-get update -RUN apt-get install -y gcc libc6-dev make -RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz" +RUN apt-get install -y gcc libc6-dev make wget +RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" RUN mkdir -p /usr/src/redis RUN tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 RUN make -C /usr/src/redis @@ -78,12 +78,12 @@ RUN make -C /usr/src/redis install 上面的 `Dockerfile` 正确的写法应该是这样: ```dockerfile -FROM debian:jessie +FROM debian:stretch -RUN buildDeps='gcc libc6-dev make' \ +RUN buildDeps='gcc libc6-dev make wget' \ && apt-get update \ && apt-get install -y $buildDeps \ - && wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz" \ + && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \ && mkdir -p /usr/src/redis \ && tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 \ && make -C /usr/src/redis \ @@ -177,17 +177,17 @@ Sending build context to Docker daemon 2.048 kB 或许你已经注意到了,`docker build` 还支持从 URL 构建,比如可以直接从 Git repo 中构建: ```bash -$ docker build https://github.com/twang2218/gitlab-ce-zh.git#:8.14 -docker build https://github.com/twang2218/gitlab-ce-zh.git\#:8.14 +$ docker build https://github.com/twang2218/gitlab-ce-zh.git#:11.1 + Sending build context to Docker daemon 2.048 kB -Step 1 : FROM gitlab/gitlab-ce:8.14.0-ce.0 -8.14.0-ce.0: Pulling from gitlab/gitlab-ce +Step 1 : FROM gitlab/gitlab-ce:11.1.0-ce.0 +11.1.0-ce.0: Pulling from gitlab/gitlab-ce aed15891ba52: Already exists 773ae8583d14: Already exists ... ``` -这行命令指定了构建所需的 Git repo,并且指定默认的 `master` 分支,构建目录为 `/8.14/`,然后 Docker 就会自己去 `git clone` 这个项目、切换到指定分支、并进入到指定目录后开始构建。 +这行命令指定了构建所需的 Git repo,并且指定默认的 `master` 分支,构建目录为 `/11.1/`,然后 Docker 就会自己去 `git clone` 这个项目、切换到指定分支、并进入到指定目录后开始构建。 #### 用给定的 tar 压缩包构建 From af7663bd61fb93e3646aa0bea3530b587ccac8a7 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 19 Dec 2018 17:24:52 +0800 Subject: [PATCH 362/611] Update ubuntu to 18.04 --- appendix/best_practices.md | 4 ++-- cases/os/debian.md | 23 +++++++++++++++-------- container/import_export.md | 2 +- container/run.md | 4 ++-- container/stop.md | 2 +- image/list.md | 3 --- image/other.md | 2 +- 7 files changed, 22 insertions(+), 18 deletions(-) diff --git a/appendix/best_practices.md b/appendix/best_practices.md index 21f9c7c65..eafe162c5 100644 --- a/appendix/best_practices.md +++ b/appendix/best_practices.md @@ -118,7 +118,7 @@ RUN apt-get update && apt-get install -y \ 将 `apt-get update` 放在一条单独的 `RUN` 声明中会导致缓存问题以及后续的 `apt-get install` 失败。比如,假设你有一个 `Dockerfile` 文件: ```docker -FROM ubuntu:14.04 +FROM ubuntu:18.04 RUN apt-get update @@ -128,7 +128,7 @@ RUN apt-get install -y curl 构建镜像后,所有的层都在 Docker 的缓存中。假设你后来又修改了其中的 `apt-get install` 添加了一个包: ```docker -FROM ubuntu:14.04 +FROM ubuntu:18.04 RUN apt-get update diff --git a/cases/os/debian.md b/cases/os/debian.md index f54420eb6..8d0aa7688 100644 --- a/cases/os/debian.md +++ b/cases/os/debian.md @@ -64,18 +64,25 @@ tutum/ubuntu Ubuntu image with SSH access. For the root. 根据搜索出来的结果,读者可以自行选择下载镜像并使用。 -下面以 ubuntu 14.04 为例,演示如何使用该镜像安装一些常用软件。 +下面以 ubuntu 18.04 为例,演示如何使用该镜像安装一些常用软件。 首先使用 `-ti` 参数启动容器,登录 bash,查看 ubuntu 的发行版本号。 ```bash -$ docker run -ti ubuntu:14.04 /bin/bash -root@7d93de07bf76:/# lsb_release -a -No LSB modules are available. -Distributor ID: Ubuntu -Description: Ubuntu 14.04.1 LTS -Release: 14.04 -Codename: trusty +$ docker run -ti ubuntu:18.04 /bin/bash +root@7d93de07bf76:/# cat /etc/os-release +NAME="Ubuntu" +VERSION="18.04.1 LTS (Bionic Beaver)" +ID=ubuntu +ID_LIKE=debian +PRETTY_NAME="Ubuntu 18.04.1 LTS" +VERSION_ID="18.04" +HOME_URL="https://www.ubuntu.com/" +SUPPORT_URL="https://help.ubuntu.com/" +BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" +PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" +VERSION_CODENAME=bionic +UBUNTU_CODENAME=bionic ``` 当试图直接使用 `apt-get` 安装一个软件的时候,会提示 `E: Unable to locate package`。 diff --git a/container/import_export.md b/container/import_export.md index 143e0d1a5..c2a76a29e 100644 --- a/container/import_export.md +++ b/container/import_export.md @@ -6,7 +6,7 @@ ```bash $ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -7691a814370e ubuntu:14.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test +7691a814370e ubuntu:18.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test $ docker export 7691a814370e > ubuntu.tar ``` diff --git a/container/run.md b/container/run.md index 2314b9207..9dfd596ca 100644 --- a/container/run.md +++ b/container/run.md @@ -11,7 +11,7 @@ 例如,下面的命令输出一个 “Hello World”,之后终止容器。 ```bash -$ docker run ubuntu:14.04 /bin/echo 'Hello world' +$ docker run ubuntu:18.04 /bin/echo 'Hello world' Hello world ``` @@ -20,7 +20,7 @@ Hello world 下面的命令则启动一个 bash 终端,允许用户进行交互。 ```bash -$ docker run -t -i ubuntu:14.04 /bin/bash +$ docker run -t -i ubuntu:18.04 /bin/bash root@af8bae53bdd3:/# ``` diff --git a/container/stop.md b/container/stop.md index aa8c32af7..31853a5d9 100644 --- a/container/stop.md +++ b/container/stop.md @@ -11,7 +11,7 @@ ```bash docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -ba267838cc1b ubuntu:14.04 "/bin/bash" 30 minutes ago Exited (0) About a minute ago trusting_newton +ba267838cc1b ubuntu:18.04 "/bin/bash" 30 minutes ago Exited (0) About a minute ago trusting_newton 98e5efa7d997 training/webapp:latest "python app.py" About an hour ago Exited (0) 34 minutes ago backstabbing_pike ``` diff --git a/image/list.md b/image/list.md index 037c61eff..6e881e4a0 100644 --- a/image/list.md +++ b/image/list.md @@ -11,7 +11,6 @@ mongo 3.2 fe9198c04d62 5 days ago 00285df0df87 5 days ago 342 MB ubuntu 18.04 f753707788c5 4 weeks ago 127 MB ubuntu latest f753707788c5 4 weeks ago 127 MB -ubuntu 14.04 1e0c3dd64ccd 4 weeks ago 188 MB ``` 列表包含了 `仓库名`、`标签`、`镜像 ID`、`创建时间` 以及 `所占用的空间`。 @@ -79,7 +78,6 @@ $ docker image ls ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 18.04 f753707788c5 4 weeks ago 127 MB ubuntu latest f753707788c5 4 weeks ago 127 MB -ubuntu 14.04 1e0c3dd64ccd 4 weeks ago 188 MB ``` 列出特定的某个镜像,也就是说指定仓库名和标签 @@ -151,5 +149,4 @@ fe9198c04d62 mongo 3.2 00285df0df87 f753707788c5 ubuntu 18.04 f753707788c5 ubuntu latest -1e0c3dd64ccd ubuntu 14.04 ``` diff --git a/image/other.md b/image/other.md index 46f1679a9..3067b25d4 100644 --- a/image/other.md +++ b/image/other.md @@ -8,7 +8,7 @@ 压缩包可以是本地文件、远程 Web 文件,甚至是从标准输入中得到。压缩包将会在镜像 `/` 目录展开,并直接作为镜像第一层提交。 -比如我们想要创建一个 [OpenVZ](https://openvz.org/Main_Page) 的 Ubuntu 14.04 [模板](https://openvz.org/Download/template/precreated)的镜像: +比如我们想要创建一个 [OpenVZ](https://openvz.org) 的 Ubuntu 14.04 [模板](https://openvz.org/Download/template/precreated)的镜像: ```bash $ docker import \ From e828a4888d011a32c174537b24e72f110517aaf0 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 19 Dec 2018 17:27:21 +0800 Subject: [PATCH 363/611] Update debian to stretch --- appendix/faq/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appendix/faq/README.md b/appendix/faq/README.md index 0337d695e..e8df861ab 100644 --- a/appendix/faq/README.md +++ b/appendix/faq/README.md @@ -18,7 +18,7 @@ 答:整体原则上,尽量保持镜像功能的明确和内容的精简,要点包括 -* 尽量选取满足需求但较小的基础系统镜像,例如大部分时候可以选择 debian:wheezy 或 debian:jessie 镜像,仅有不足百兆大小; +* 尽量选取满足需求但较小的基础系统镜像,例如大部分时候可以选择 debian:wheezy 或 debian:stretch 镜像,仅有不足百兆大小; * 清理编译生成文件、安装包的缓存等临时文件; From 35f4ca76b65c97369945a50dd94b5079a6f4c370 Mon Sep 17 00:00:00 2001 From: jxlwqq Date: Sat, 22 Dec 2018 00:04:50 +0800 Subject: [PATCH 364/611] Fix CentOS website --- cases/os/centos.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/os/centos.md b/cases/os/centos.md index 3009b2b3e..287a4b543 100644 --- a/cases/os/centos.md +++ b/cases/os/centos.md @@ -70,7 +70,7 @@ Fedora release 24 (Twenty Four) * `Fedora` 官方仓库:https://github.com/fedora-infra * `Fedora` 官方镜像:https://hub.docker.com/_/fedora/ * `Fedora` 官方镜像仓库:https://github.com/fedora-cloud/docker-brew-fedora -* `CentOS` 官网:https://getfedora.org/ +* `CentOS` 官网:https://www.centos.org * `CentOS` 官方仓库:https://github.com/CentOS * `CentOS` 官方镜像:https://hub.docker.com/_/centos/ * `CentOS` 官方镜像仓库:https://github.com/CentOS/CentOS-Dockerfiles From 9899c7028e783596169d467e5e68671070096051 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 25 Dec 2018 19:20:32 +0800 Subject: [PATCH 365/611] Fix image link 404 --- data_management/README.md | 2 +- data_management/_images/types-of-mounts.png | Bin 0 -> 23298 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 data_management/_images/types-of-mounts.png diff --git a/data_management/README.md b/data_management/README.md index 3942f99ed..a45cd21db 100644 --- a/data_management/README.md +++ b/data_management/README.md @@ -1,6 +1,6 @@ # Docker 数据管理 -![](https://docs.docker.com/engine/admin/volumes/images/types-of-mounts-volume.png) +![](_images/types-of-mounts.png) 这一章介绍如何在 Docker 内部以及容器之间管理数据,在容器中管理数据主要有两种方式: diff --git a/data_management/_images/types-of-mounts.png b/data_management/_images/types-of-mounts.png new file mode 100644 index 0000000000000000000000000000000000000000..5950036bba1c30c0b1ab52a73a94b59bbdd5f57c GIT binary patch literal 23298 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 literal 0 HcmV?d00001 From e2d5a2dff07a1dad77db65decb948b2b5783c125 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 26 Dec 2018 10:05:42 +0800 Subject: [PATCH 366/611] Add debug skills --- CHANGELOG.md | 3 +++ SUMMARY.md | 2 +- appendix/debug.md | 34 ++++++++++++++++++++++++++++++++++ appendix/resources/cn.md | 5 ----- 4 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 appendix/debug.md delete mode 100644 appendix/resources/cn.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d046f9d7..5d8248a61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,12 @@ ## 主要修订记录 * 1.0.0: 2018-12-31 + * 全面支持 v18.x 新版本 + * 添加如何调试 Docker 附录 * 错误修正 * 0.9.0: 2017-12-31 + * 对 v1.13.x 旧版本的最后支持 * 0.9.0-rc2: 2017-12-10 diff --git a/SUMMARY.md b/SUMMARY.md index aaf0a5c51..ead67f902 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -158,4 +158,4 @@ * [附录三:Docker 命令查询](appendix/command/README.md) * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) * [附录五:资源链接](appendix/resources/README.md) - * [附录六:Docker 中文资源](appendix/resources/cn.md) + * [附录六:如何调试 Docker](appendix/debug.md) diff --git a/appendix/debug.md b/appendix/debug.md new file mode 100644 index 000000000..a9b4a3fb6 --- /dev/null +++ b/appendix/debug.md @@ -0,0 +1,34 @@ +# 如何调试 Docker + +## 开启 Debug 模式 + +在 dockerd 配置文件 daemon.json(默认位于 /etc/docker/)中添加 + +```json +{ + "debug": true +} +``` + +重启守护进程。 + +```bash +$ sudo kill -SIGHUP $(pidof dockerd) +``` + +此时 dockerd 会在日志中输入更多信息供分析。 + +## 检查内核日志 + +```bash +$ sudo dmesag |grep dockerd +$ sudo dmesag |grep runc +``` + +## Docker 不响应时处理 + +可以杀死 dockerd 进程查看其堆栈调用情况。 + +```bash +$ sudo kill -SIGUSR1 $(pidof dockerd) +``` diff --git a/appendix/resources/cn.md b/appendix/resources/cn.md deleted file mode 100644 index 99a21c739..000000000 --- a/appendix/resources/cn.md +++ /dev/null @@ -1,5 +0,0 @@ -# Docker 中文资源 - -* [Docker 问答录(100 问)](https://blog.lab99.org/post/docker-2016-07-14-faq.html) - -* [Docker CE 变更日志中文翻译](https://github.com/allencloud/docker-changelog-chinese) From a7660df66e6a921e68679fe7bf3168460a2fabd1 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 26 Dec 2018 10:11:42 +0800 Subject: [PATCH 367/611] Add more debug skills --- SUMMARY.md | 4 ++-- appendix/debug.md | 8 ++++++++ appendix/resources/README.md | 27 --------------------------- 3 files changed, 10 insertions(+), 29 deletions(-) delete mode 100644 appendix/resources/README.md diff --git a/SUMMARY.md b/SUMMARY.md index ead67f902..f4a5f5291 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -157,5 +157,5 @@ * [Node.js](appendix/repo/nodejs.md) * [附录三:Docker 命令查询](appendix/command/README.md) * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) - * [附录五:资源链接](appendix/resources/README.md) - * [附录六:如何调试 Docker](appendix/debug.md) + * [附录五:如何调试 Docker](appendix/debug.md) + * [附录六:资源链接](appendix/resources.md) diff --git a/appendix/debug.md b/appendix/debug.md index a9b4a3fb6..9fce8d7f3 100644 --- a/appendix/debug.md +++ b/appendix/debug.md @@ -32,3 +32,11 @@ $ sudo dmesag |grep runc ```bash $ sudo kill -SIGUSR1 $(pidof dockerd) ``` + +## 重置 Docker 本地数据 + +*注意,本操作会移除所有的 Docker 本地数据,包括镜像和容器等。* + +```bash +$ sudo rm -rf /var/lib/docker +``` diff --git a/appendix/resources/README.md b/appendix/resources/README.md deleted file mode 100644 index 155038c3a..000000000 --- a/appendix/resources/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# 资源链接 - -## 官方网站 - -* Docker 官方主页:https://www.docker.com -* Docker 官方博客:https://blog.docker.com/ -* Docker 官方文档:https://docs.docker.com/ -* Docker Hub:https://hub.docker.com -* Docker 的源代码仓库:https://github.com/moby/moby -* Docker 发布版本历史:https://docs.docker.com/release-notes/ -* Docker 常见问题:https://docs.docker.com/engine/faq/ -* Docker 远端应用 API:https://docs.docker.com/develop/sdk/ - -## 实践参考 - -* Dockerfile 参考:https://docs.docker.com/engine/reference/builder/ -* Dockerfile 最佳实践:https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/ - -## 技术交流 - -* Docker 邮件列表: https://groups.google.com/forum/#!forum/docker-user -* Docker 的 IRC 频道:https://chat.freenode.net#docker -* Docker 的 Twitter 主页:https://twitter.com/docker - -## 其它 - -* Docker 的 StackOverflow 问答主页:https://stackoverflow.com/search?q=docker From 2437dd0158f0104d71322ccb6b2f912c67dfa9ec Mon Sep 17 00:00:00 2001 From: khs1994 Date: Wed, 26 Dec 2018 16:47:44 +0800 Subject: [PATCH 368/611] Fix last commit error --- appendix/resources.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 appendix/resources.md diff --git a/appendix/resources.md b/appendix/resources.md new file mode 100644 index 000000000..155038c3a --- /dev/null +++ b/appendix/resources.md @@ -0,0 +1,27 @@ +# 资源链接 + +## 官方网站 + +* Docker 官方主页:https://www.docker.com +* Docker 官方博客:https://blog.docker.com/ +* Docker 官方文档:https://docs.docker.com/ +* Docker Hub:https://hub.docker.com +* Docker 的源代码仓库:https://github.com/moby/moby +* Docker 发布版本历史:https://docs.docker.com/release-notes/ +* Docker 常见问题:https://docs.docker.com/engine/faq/ +* Docker 远端应用 API:https://docs.docker.com/develop/sdk/ + +## 实践参考 + +* Dockerfile 参考:https://docs.docker.com/engine/reference/builder/ +* Dockerfile 最佳实践:https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/ + +## 技术交流 + +* Docker 邮件列表: https://groups.google.com/forum/#!forum/docker-user +* Docker 的 IRC 频道:https://chat.freenode.net#docker +* Docker 的 Twitter 主页:https://twitter.com/docker + +## 其它 + +* Docker 的 StackOverflow 问答主页:https://stackoverflow.com/search?q=docker From 944cb0dfd1fa1e61d8454d7301352f58e1cf7d1b Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 30 Dec 2018 17:43:34 +0800 Subject: [PATCH 369/611] Update fedora.md --- install/fedora.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/fedora.md b/install/fedora.md index 7d77d7930..1bd134cb0 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -39,7 +39,7 @@ $ sudo dnf -y install dnf-plugins-core 鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 -执行下面的命令添加 `dnf 软件源: +执行下面的命令添加 `dnf` 软件源: ```bash $ sudo dnf config-manager \ From 2921a406d68de6e894d1231ae783ee6b5f1cc393 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 31 Dec 2018 09:06:28 +0800 Subject: [PATCH 370/611] Update kubernetes --- kubernetes/design.md | 2 +- kubernetes/kubectl.md | 81 +++++++++++++++++++++++++++++-------------- 2 files changed, 56 insertions(+), 27 deletions(-) diff --git a/kubernetes/design.md b/kubernetes/design.md index 01f6abb00..804402ab3 100644 --- a/kubernetes/design.md +++ b/kubernetes/design.md @@ -26,7 +26,7 @@ 主节点上需要提供如下的管理服务: -* `apiserver` 是整个系统的对外接口,提供一套 RESTful 的 [Kubernetes API](https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api.md),供客户端和其它组件调用; +* `apiserver` 是整个系统的对外接口,提供一套 RESTful 的 [Kubernetes API](https://github.com/kubernetes/kubernetes/tree/master/docs/api-reference),供客户端和其它组件调用; * `scheduler` 负责对资源进行调度,分配某个 pod 到某个节点上。是 pluggable 的,意味着很容易选择其它实现方式; * `controller-manager` 负责管理控制器,包括 endpoint-controller(刷新服务和 pod 的关联信息)和 replication-controller(维护某个 pod 的复制为配置的数值)。 diff --git a/kubernetes/kubectl.md b/kubernetes/kubectl.md index d4766116c..271b19f11 100644 --- a/kubernetes/kubectl.md +++ b/kubernetes/kubectl.md @@ -1,5 +1,5 @@ # kubectl 使用 -[kubectl](https://github.com/GoogleCloudPlatform/kubernetes) 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes。 +[kubectl](https://github.com/kubernetes/kubernetes) 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes。 使用格式有两种: ```bash @@ -8,44 +8,73 @@ kubectl [command] ``` ## get -Display one or many resources + +显示一个或多个资源 + ## describe -Show details of a specific resource + +显示资源详情 + ## create -Create a resource by filename or stdin + +从文件或标准输入创建资源 + ## update -Update a resource by filename or stdin. + +从文件或标准输入更新资源 + ## delete -Delete a resource by filename, stdin, resource and ID, or by resources and label selector. -## namespace -SUPERCEDED: Set and view the current Kubernetes namespace + +通过文件名、标准输入、资源名或者 label selector 删除资源 + ## log -Print the logs for a container in a pod. + +输出 pod 中一个容器的日志。 + ## rolling-update -Perform a rolling update of the given ReplicationController. -## resize -Set a new size for a Replication Controller. + +对指定的 replication controller 执行滚动升级 + ## exec -Execute a command in a container. + +在容器内部执行命令 + ## port-forward -Forward one or more local ports to a pod. + +将本地端口转发到Pod + ## proxy -Run a proxy to the Kubernetes API server -## run-container -Run a particular image on the cluster. -## stop -Gracefully shut down a resource by id or filename. + +为 Kubernetes API server 启动代理服务器 + +## run + +在集群中使用指定镜像启动容器 + ## expose -Take a replicated application and expose it as Kubernetes Service + +将 replication controller service 或 pod 暴露为新的 kubernetes service + ## label -Update the labels on a resource + +更新资源的 label + ## config -config modifies kubeconfig files + +修改 kubernetes 配置文件 + ## cluster-info -Display cluster info + +显示集群信息 + ## api-versions -Print available API versions. + +以 "组/版本" 的格式输出服务端支持的 API 版本 + ## version -Print the client and server version information. + +输出服务端和客户端的版本信息 + ## help -Help about any command + +显示各个命令的帮助信息 From c8b73b20c6fd598166e010839246017995c1e813 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 31 Dec 2018 09:25:33 +0800 Subject: [PATCH 371/611] Add php image --- SUMMARY.md | 5 +++-- appendix/repo/php.md | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 appendix/repo/php.md diff --git a/SUMMARY.md b/SUMMARY.md index f4a5f5291..be7edff0d 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -149,11 +149,12 @@ * [附录二:热门镜像介绍](appendix/repo/README.md) * [Ubuntu](appendix/repo/ubuntu.md) * [CentOS](appendix/repo/centos.md) + * [Nginx](appendix/repo/nginx.md) + * [PHP](appendix/repo/php.md) * [MySQL](appendix/repo/mysql.md) + * [WordPress](appendix/repo/wordpress.md) * [MongoDB](appendix/repo/mongodb.md) * [Redis](appendix/repo/redis.md) - * [Nginx](appendix/repo/nginx.md) - * [WordPress](appendix/repo/wordpress.md) * [Node.js](appendix/repo/nodejs.md) * [附录三:Docker 命令查询](appendix/command/README.md) * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) diff --git a/appendix/repo/php.md b/appendix/repo/php.md new file mode 100644 index 000000000..becf8c863 --- /dev/null +++ b/appendix/repo/php.md @@ -0,0 +1,19 @@ +## [PHP](https://hub.docker.com/_/php/) + +### 基本信息 + +[PHP](https://en.wikipedia.org/wiki/php) PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。 + +该仓库位于 `https://hub.docker.com/_/php/` ,提供了 PHP 5.x ~ 7.x 各个版本的镜像。 + +### 使用方法 + +下面的命令将运行一个已有的 PHP 脚本。 + +```bash +$ docker run -it --rm -v "$PWD":/app -w /app php:alpine php your-script.php +``` + +### Dockerfile + +请到 https://github.com/docker-library/docs/tree/master/php 查看。 From 11e2bf1701464778b426bd0be64e362f9f0b08fe Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 31 Dec 2018 14:27:55 +0800 Subject: [PATCH 372/611] Add Dockerfile multi stage laravel --- CHANGELOG.md | 2 +- SUMMARY.md | 3 +- .../README.md} | 0 .../example/laravel/.dockerignore | 12 + .../example/laravel/Dockerfile | 53 +++++ .../example/laravel/laravel.conf | 18 ++ image/multistage-builds/laravel.md | 221 ++++++++++++++++++ 7 files changed, 307 insertions(+), 2 deletions(-) rename image/{multistage-builds.md => multistage-builds/README.md} (100%) create mode 100644 image/multistage-builds/example/laravel/.dockerignore create mode 100644 image/multistage-builds/example/laravel/Dockerfile create mode 100644 image/multistage-builds/example/laravel/laravel.conf create mode 100644 image/multistage-builds/laravel.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d8248a61..c655b8374 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ * 1.0.0: 2018-12-31 * 全面支持 v18.x 新版本 - * 添加如何调试 Docker 附录 + * 添加如何调试 Docker * 错误修正 * 0.9.0: 2017-12-31 diff --git a/SUMMARY.md b/SUMMARY.md index be7edff0d..10cb95549 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -39,7 +39,8 @@ * [HEALTHCHECK 健康检查](image/dockerfile/healthcheck.md) * [ONBUILD 为他人作嫁衣裳](image/dockerfile/onbuild.md) * [参考文档](image/dockerfile/references.md) - * [Dockerfile 多阶段构建](image/multistage-builds.md) + * [Dockerfile 多阶段构建](image/multistage-builds/README.md) + * [实战多阶段构建 Laravel 镜像](image/multistage-builds/laravel.md) * [其它制作镜像的方式](image/other.md) * [实现原理](image/internal.md) * [操作容器](container/README.md) diff --git a/image/multistage-builds.md b/image/multistage-builds/README.md similarity index 100% rename from image/multistage-builds.md rename to image/multistage-builds/README.md diff --git a/image/multistage-builds/example/laravel/.dockerignore b/image/multistage-builds/example/laravel/.dockerignore new file mode 100644 index 000000000..fed61e775 --- /dev/null +++ b/image/multistage-builds/example/laravel/.dockerignore @@ -0,0 +1,12 @@ +.idea/ +.git/ +vendor/ +node_modules/ +public/js/ +public/css/ +yarn-error.log + +bootstrap/cache/* +storage/ + +# 自行添加其他需要排除的文件,例如 .env.* 文件 diff --git a/image/multistage-builds/example/laravel/Dockerfile b/image/multistage-builds/example/laravel/Dockerfile new file mode 100644 index 000000000..c2e44b7ea --- /dev/null +++ b/image/multistage-builds/example/laravel/Dockerfile @@ -0,0 +1,53 @@ +FROM node:alpine as frontend + +COPY package.json /app/ + +RUN cd /app \ + && npm install --registry=https://registry.npm.taobao.org + +COPY webpack.mix.js /app/ +COPY resources/assets/ /app/resources/assets/ + +RUN cd /app \ + && npm run production + +FROM composer as composer + +COPY database/ /app/database/ +COPY composer.json /app/ + +RUN cd /app \ + && composer config -g repo.packagist composer https://packagist.laravel-china.org \ + && composer install \ + --ignore-platform-reqs \ + --no-interaction \ + --no-plugins \ + --no-scripts \ + --prefer-dist + +FROM php:7.2-fpm-alpine as laravel + +ARG LARAVEL_PATH=/app/laravel + +COPY --from=composer /app/vendor/ ${LARAVEL_PATH}/vendor/ +COPY . ${LARAVEL_PATH} +COPY --from=frontend /app/public/js/ ${LARAVEL_PATH}/public/js/ +COPY --from=frontend /app/public/css/ ${LARAVEL_PATH}/public/css/ +COPY --from=frontend /app/mix-manifest.json ${LARAVEL_PATH}/mix-manifest.json + +RUN cd ${LARAVEL_PATH} \ + && php artisan package:discover \ + && mkdir -p storage \ + && mkdir -p storage/framework/cache \ + && mkdir -p storage/framework/sessions \ + && mkdir -p storage/framework/testing \ + && mkdir -p storage/framework/views \ + && mkdir -p storage/logs \ + && chmod -R 777 storage + +FROM nginx:alpine as nginx + +ARG LARAVEL_PATH=/app/laravel + +COPY laravel.conf /etc/nginx/conf.d/ +COPY --from=laravel ${LARAVEL_PATH}/public ${LARAVEL_PATH}/public diff --git a/image/multistage-builds/example/laravel/laravel.conf b/image/multistage-builds/example/laravel/laravel.conf new file mode 100644 index 000000000..c600fbb88 --- /dev/null +++ b/image/multistage-builds/example/laravel/laravel.conf @@ -0,0 +1,18 @@ +server { + listen 80 default_server; + root /app/laravel/public; + index index.php index.html; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ .*\.php(\/.*)*$ { + fastcgi_pass laravel:9000; + include fastcgi.conf; + + # fastcgi_connect_timeout 300; + # fastcgi_send_timeout 300; + # fastcgi_read_timeout 300; + } +} diff --git a/image/multistage-builds/laravel.md b/image/multistage-builds/laravel.md new file mode 100644 index 000000000..e29546610 --- /dev/null +++ b/image/multistage-builds/laravel.md @@ -0,0 +1,221 @@ +## 实战多阶段构建 Laravel 镜像 + +> 本节适用于 PHP 开发者阅读。 + +### 准备 + +新建一个 `Laravel` 项目或在已有的 `Laravel` 项目根目录下新建 `Dockerfile` `.dockerignore` `laravel.conf` 文件。 + +在 `.dockerignore` 文件中写入以下内容。 + +```bash +.idea/ +.git/ +vendor/ +node_modules/ +public/js/ +public/css/ +yarn-error.log + +bootstrap/cache/* +storage/ + +# 自行添加其他需要排除的文件,例如 .env.* 文件 +``` + +在 `laravel.conf` 文件中写入 nginx 配置。 + +```nginx +server { + listen 80 default_server; + root /app/laravel/public; + index index.php index.html; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ .*\.php(\/.*)*$ { + fastcgi_pass laravel:9000; + include fastcgi.conf; + + # fastcgi_connect_timeout 300; + # fastcgi_send_timeout 300; + # fastcgi_read_timeout 300; + } +} +``` + +### 前端构建 + +第一阶段进行前端构建。 + +```dockerfile +FROM node:alpine as frontend + +COPY package.json /app/ + +RUN cd /app \ + && npm install --registry=https://registry.npm.taobao.org + +COPY webpack.mix.js /app/ +COPY resources/assets/ /app/resources/assets/ + +RUN cd /app \ + && npm run production +``` + +### 安装 Composer 依赖 + +第二阶段安装 Composer 依赖。 + +```dockerfile +FROM composer as composer + +COPY database/ /app/database/ +COPY composer.json composer.lock /app/ + +RUN cd /app \ + && composer config -g repo.packagist composer https://packagist.laravel-china.org \ + && composer install \ + --ignore-platform-reqs \ + --no-interaction \ + --no-plugins \ + --no-scripts \ + --prefer-dist +``` + +### 整合以上阶段所生成的文件 + +第三阶段对以上阶段生成的文件进行整合。 + +```dockerfile +FROM php:7.2-fpm-alpine as laravel + +ARG LARAVEL_PATH=/app/laravel + +COPY --from=composer /app/vendor/ ${LARAVEL_PATH}/vendor/ +COPY . ${LARAVEL_PATH} +COPY --from=frontend /app/public/js/ ${LARAVEL_PATH}/public/js/ +COPY --from=frontend /app/public/css/ ${LARAVEL_PATH}/public/css/ +COPY --from=frontend /app/mix-manifest.json ${LARAVEL_PATH}/mix-manifest.json + +RUN cd ${LARAVEL_PATH} \ + && php artisan package:discover \ + && mkdir -p storage \ + && mkdir -p storage/framework/cache \ + && mkdir -p storage/framework/sessions \ + && mkdir -p storage/framework/testing \ + && mkdir -p storage/framework/views \ + && mkdir -p storage/logs \ + && chmod -R 777 storage +``` + +### 最后一个阶段构建 NGINX 镜像 + +```dockerfile +FROM nginx:alpine as nginx + +ARG LARAVEL_PATH=/app/laravel + +COPY laravel.conf /etc/nginx/conf.d/ +COPY --from=laravel ${LARAVEL_PATH}/public ${LARAVEL_PATH}/public +``` + +### 构建 Laravel 及 Nginx 镜像 + +使用 `docker build` 命令构建镜像。 + +```bash +$ docker build -t my/laravel --target=laravel . + +$ docker build -t my/nginx --target=nginx . +``` + +### 启动容器并测试 + +新建 Docker 网络 + +```bash +$ docker network create laravel +``` + +启动 laravel 容器, `--name=laravel` 参数设定的名字必须与 `nginx` 配置文件中的 `fastcgi_pass laravel:9000;` 一致 + +```bash +$ docker run -it --rm --name=laravel --network=laravel my/laravel +``` + +启动 nginx 容器 + +```bash +$ docker run -it --rm --network=laravel -p 8080:80 my/nginx +``` + +浏览器访问 `127.0.0.1:8080` 可以看到 Laravel 项目首页。 + +> 也许 Laravel 项目依赖其他外部服务,例如 redis、MySQL,请自行启动这些服务之后再进行测试,本小节不再赘述。 + +### 生产环境优化 + +本小节内容为了方便测试,将配置文件直接放到了镜像中,实际在使用时 **建议** 将配置文件作为 `config` 或 `secret` 挂载到容器中,请读者自行学习 `Swarm mode` 或 `Kubernetes` 的相关内容。 + +### 附录 + +完整的 `Dockerfile` 文件如下。 + +```dockerfile +FROM node:alpine as frontend + +COPY package.json /app/ + +RUN cd /app \ + && npm install --registry=https://registry.npm.taobao.org + +COPY webpack.mix.js /app/ +COPY resources/assets/ /app/resources/assets/ + +RUN cd /app \ + && npm run production + +FROM composer as composer + +COPY database/ /app/database/ +COPY composer.json /app/ + +RUN cd /app \ + && composer config -g repo.packagist composer https://packagist.laravel-china.org \ + && composer install \ + --ignore-platform-reqs \ + --no-interaction \ + --no-plugins \ + --no-scripts \ + --prefer-dist + +FROM php:7.2-fpm-alpine as laravel + +ARG LARAVEL_PATH=/app/laravel + +COPY --from=composer /app/vendor/ ${LARAVEL_PATH}/vendor/ +COPY . ${LARAVEL_PATH} +COPY --from=frontend /app/public/js/ ${LARAVEL_PATH}/public/js/ +COPY --from=frontend /app/public/css/ ${LARAVEL_PATH}/public/css/ +COPY --from=frontend /app/mix-manifest.json ${LARAVEL_PATH}/mix-manifest.json + +RUN cd ${LARAVEL_PATH} \ + && php artisan package:discover \ + && mkdir -p storage \ + && mkdir -p storage/framework/cache \ + && mkdir -p storage/framework/sessions \ + && mkdir -p storage/framework/testing \ + && mkdir -p storage/framework/views \ + && mkdir -p storage/logs \ + && chmod -R 777 storage + +FROM nginx:alpine as nginx + +ARG LARAVEL_PATH=/app/laravel + +COPY laravel.conf /etc/nginx/conf.d/ +COPY --from=laravel ${LARAVEL_PATH}/public ${LARAVEL_PATH}/public +``` From 234ac706a3be80b0f24fcf1017b85b2092c3c2a6 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 31 Dec 2018 14:50:01 +0800 Subject: [PATCH 373/611] Update dockerfile format --- appendix/best_practices.md | 28 ++++++++++++++-------------- compose/django.md | 2 +- compose/rails.md | 2 +- compose/usage.md | 4 ++-- image/multistage-builds/README.md | 24 ++++++++---------------- 5 files changed, 26 insertions(+), 34 deletions(-) diff --git a/appendix/best_practices.md b/appendix/best_practices.md index eafe162c5..74b7a0636 100644 --- a/appendix/best_practices.md +++ b/appendix/best_practices.md @@ -36,7 +36,7 @@ 下面是来自 `buildpack-deps` 镜像的例子: -```docker +```dockerfile RUN apt-get update && apt-get install -y \ bzr \ cvs \ @@ -72,7 +72,7 @@ RUN apt-get update && apt-get install -y \ >注意:如果你的字符串中包含空格,必须将字符串放入引号中或者对空格使用转义。如果字符串内容本身就包含引号,必须对引号使用转义。 -```docker +```dockerfile # Set one or more individual labels LABEL com.example.version="0.0.1-beta" @@ -85,7 +85,7 @@ LABEL com.example.version.is-production="" 一个镜像可以包含多个标签,但建议将多个标签放入到一个 `LABEL` 指令中。 -```docker +```dockerfile # Set multiple labels at once, using line-continuation characters to break long lines LABEL vendor=ACME\ Incorporated \ com.example.is-beta= \ @@ -108,7 +108,7 @@ LABEL vendor=ACME\ Incorporated \ 永远将 `RUN apt-get update` 和 `apt-get install` 组合成一条 `RUN` 声明,例如: -```docker +```dockerfile RUN apt-get update && apt-get install -y \ package-bar \ package-baz \ @@ -117,7 +117,7 @@ RUN apt-get update && apt-get install -y \ 将 `apt-get update` 放在一条单独的 `RUN` 声明中会导致缓存问题以及后续的 `apt-get install` 失败。比如,假设你有一个 `Dockerfile` 文件: -```docker +```dockerfile FROM ubuntu:18.04 RUN apt-get update @@ -127,7 +127,7 @@ RUN apt-get install -y curl 构建镜像后,所有的层都在 Docker 的缓存中。假设你后来又修改了其中的 `apt-get install` 添加了一个包: -```docker +```dockerfile FROM ubuntu:18.04 RUN apt-get update @@ -139,7 +139,7 @@ Docker 发现修改后的 `RUN apt-get update` 指令和之前的完全一样。 使用 `RUN apt-get update && apt-get install -y` 可以确保你的 Dockerfiles 每次安装的都是包的最新的版本,而且这个过程不需要进一步的编码或额外干预。这项技术叫作 `cache busting`。你也可以显示指定一个包的版本号来达到 `cache-busting`,这就是所谓的固定版本,例如: -```docker +```dockerfile RUN apt-get update && apt-get install -y \ package-bar \ package-baz \ @@ -150,7 +150,7 @@ RUN apt-get update && apt-get install -y \ 下面是一个 `RUN` 指令的示例模板,展示了所有关于 `apt-get` 的建议。 -```docker +```dockerfile RUN apt-get update && apt-get install -y \ aufs-tools \ automake \ @@ -193,7 +193,7 @@ RUN apt-get update && apt-get install -y \ 最后,`ENV` 也能用于设置常见的版本号,比如下面的示例: -```docker +```dockerfile ENV PG_MAJOR 9.3 ENV PG_VERSION 9.3.4 @@ -211,7 +211,7 @@ ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH 如果你的 `Dockerfile` 有多个步骤需要使用上下文中不同的文件。单独 `COPY` 每个文件,而不是一次性的 `COPY` 所有文件,这将保证每个步骤的构建缓存只在特定的文件变化时失效。例如: -```docker +```dockerfile COPY requirements.txt /tmp/ RUN pip install --requirement /tmp/requirements.txt @@ -223,7 +223,7 @@ COPY . /tmp/ 为了让镜像尽量小,最好不要使用 `ADD` 指令从远程 URL 获取包,而是使用 `curl` 和 `wget`。这样你可以在文件提取完之后删掉不再需要的文件来避免在镜像中额外添加一层。比如尽量避免下面的用法: -```docker +```dockerfile ADD http://example.com/big.tar.xz /usr/src/things/ RUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things @@ -233,7 +233,7 @@ RUN make -C /usr/src/things all 而是应该使用下面这种方法: -```docker +```dockerfile RUN mkdir -p /usr/src/things \ && curl -SL http://example.com/big.tar.xz \ | tar -xJC /usr/src/things \ @@ -250,7 +250,7 @@ RUN mkdir -p /usr/src/things \ 例如,下面的示例镜像提供了命令行工具 `s3cmd`: -```docker +```dockerfile ENTRYPOINT ["s3cmd"] CMD ["--help"] @@ -295,7 +295,7 @@ exec "$@" 该辅助脚本被拷贝到容器,并在容器启动时通过 `ENTRYPOINT` 执行: -```docker +```dockerfile COPY ./docker-entrypoint.sh / ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/compose/django.md b/compose/django.md index e0447bba0..b9776c9f1 100644 --- a/compose/django.md +++ b/compose/django.md @@ -8,7 +8,7 @@ 第一步,因为应用将要运行在一个满足所有环境依赖的 Docker 容器里面,那么我们可以通过编辑 `Dockerfile` 文件来指定 Docker 容器要安装内容。内容如下: -```docker +```dockerfile FROM python:3 ENV PYTHONUNBUFFERED 1 RUN mkdir /code diff --git a/compose/rails.md b/compose/rails.md index ce3d132db..c498fc146 100644 --- a/compose/rails.md +++ b/compose/rails.md @@ -8,7 +8,7 @@ 首先,因为应用将要运行在一个满足所有环境依赖的 Docker 容器里面,那么我们可以通过编辑 `Dockerfile` 文件来指定 Docker 容器要安装内容。内容如下: -```docker +```dockerfile FROM ruby RUN apt-get update -qq && apt-get install -y build-essential libpq-dev RUN mkdir /myapp diff --git a/compose/usage.md b/compose/usage.md index 593b7540f..7f3d8b515 100644 --- a/compose/usage.md +++ b/compose/usage.md @@ -40,7 +40,7 @@ if __name__ == "__main__": 编写 `Dockerfile` 文件,内容为 -```docker +```dockerfile FROM python:3.6-alpine ADD . /code WORKDIR /code @@ -60,7 +60,7 @@ services: build: . ports: - "5000:5000" - + redis: image: "redis:alpine" ``` diff --git a/image/multistage-builds/README.md b/image/multistage-builds/README.md index fac70ca61..986674cbe 100644 --- a/image/multistage-builds/README.md +++ b/image/multistage-builds/README.md @@ -8,15 +8,11 @@ 一种方式是将所有的构建过程编包含在一个 `Dockerfile` 中,包括项目及其依赖库的编译、测试、打包等流程,这里可能会带来的一些问题: - * `Dockerfile` 特别长,可维护性降低 - * 镜像层次多,镜像体积较大,部署时间变长 * 源代码存在泄露的风险 -例如 - -编写 `app.go` 文件,该程序输出 `Hello World!` +例如,编写 `app.go` 文件,该程序输出 `Hello World!` ```go package main @@ -30,7 +26,7 @@ func main(){ 编写 `Dockerfile.one` 文件 -```docker +```dockerfile FROM golang:1.9-alpine RUN apk --no-cache add git ca-certificates @@ -58,11 +54,9 @@ $ docker build -t go/helloworld:1 -f Dockerfile.one . 另一种方式,就是我们事先在一个 `Dockerfile` 将项目及其依赖库编译测试打包好后,再将其拷贝到运行环境中,这种方式需要我们编写两个 `Dockerfile` 和一些编译脚本才能将其两个阶段自动整合起来,这种方式虽然可以很好地规避第一种方式存在的风险,但明显部署过程较复杂。 -例如 - -编写 `Dockerfile.build` 文件 +例如,编写 `Dockerfile.build` 文件 -```docker +```dockerfile FROM golang:1.9-alpine RUN apk --no-cache add git @@ -77,7 +71,7 @@ RUN go get -d -v github.com/go-sql-driver/mysql \ 编写 `Dockerfile.copy` 文件 -```docker +```dockerfile FROM alpine:latest RUN apk --no-cache add ca-certificates @@ -129,11 +123,9 @@ go/helloworld 1 f55d3e16affc 2 minutes ago 295MB 为解决以上问题,Docker v17.05 开始支持多阶段构建 (`multistage builds`)。使用多阶段构建我们就可以很容易解决前面提到的问题,并且只需要编写一个 `Dockerfile`: -例如 +例如,编写 `Dockerfile` 文件 -编写 `Dockerfile` 文件 - -```docker +```dockerfile FROM golang:1.9-alpine as builder RUN apk --no-cache add git @@ -184,7 +176,7 @@ go/helloworld 1 f55d3e16affc 2 minutes ago 295MB FROM golang:1.9-alpine as builder ``` -例如当我们只想构建 `builder` 阶段的镜像时,我们可以在使用 `docker build` 命令时加上 `--target` 参数即可 +例如当我们只想构建 `builder` 阶段的镜像时,增加 `--target=builder` 参数即可 ```bash $ docker build --target builder -t username/imagename:tag . From efee23eca7308edf1d373bacf4651f12a85b71cb Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 31 Dec 2018 15:55:04 +0800 Subject: [PATCH 374/611] Add cases/ci travis Signed-off-by: khs1994 --- SUMMARY.md | 1 + cases/ci/demo/travis/.travis.yml | 16 +++++++++++ cases/ci/demo/travis/Dockerfile | 3 ++ cases/ci/travis.md | 47 ++++++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 cases/ci/demo/travis/.travis.yml create mode 100644 cases/ci/demo/travis/Dockerfile create mode 100644 cases/ci/travis.md diff --git a/SUMMARY.md b/SUMMARY.md index 10cb95549..401734a70 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -143,6 +143,7 @@ * [本章小结](cases/os/summary.md) * [实战案例-CI/CD](cases/ci/README.md) * [Drone](cases/ci/drone.md) + * [Travis CI](cases/ci/travis.md) * [Docker 开源项目](opensource/README.md) * [LinuxKit](opensource/linuxkit.md) * [附录](appendix/README.md) diff --git a/cases/ci/demo/travis/.travis.yml b/cases/ci/demo/travis/.travis.yml new file mode 100644 index 000000000..a17054737 --- /dev/null +++ b/cases/ci/demo/travis/.travis.yml @@ -0,0 +1,16 @@ +language: bash + +dist: xenial + +services: + - docker + +before_script: + - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin + +script: + - echo "test code" + +after_success: + - docker build -t username/alpine . + - docker push username/alpine diff --git a/cases/ci/demo/travis/Dockerfile b/cases/ci/demo/travis/Dockerfile new file mode 100644 index 000000000..a58cc938c --- /dev/null +++ b/cases/ci/demo/travis/Dockerfile @@ -0,0 +1,3 @@ +FROM alpine + +RUN echo "Hello World" diff --git a/cases/ci/travis.md b/cases/ci/travis.md new file mode 100644 index 000000000..5d6fbaa62 --- /dev/null +++ b/cases/ci/travis.md @@ -0,0 +1,47 @@ +## 在 Travis CI 中使用 Docker + +当代码提交到 GitHub 时,[Travis CI](https://travis-ci.com/) 会根据项目根目录 `.travis.yml` 文件设置的指令,执行一系列操作。 + +本小节介绍如何在 Travis CI 中使用 Docker 进行持续集成/持续部署(CI/CD)。这里以当代码提交到 GitHub 时自动构建 Docker 镜像并推送到 Docker Hub 为例进行介绍。 + +### 准备 + +首先登录 https://travis-ci.com/account/repositories 选择 GitHub 仓库,按照指引安装 GitHub App 来启用 GitHub 仓库构建。 + +在项目根目录新建一个 `Dockerfile` 文件。 + +```dockerfile +FROM alpine + +RUN echo "Hello World" +``` + +新建 Travis CI 配置文件 `.travis.yml` 文件。 + +```yml +language: bash + +dist: xenial + +services: + - docker + +before_script: + # 登录到 docker hub + - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin + +script: + # 这里编写测试代码的命令 + - echo "test code" + +after_success: + # 当代码测试通过后执行的命令 + - docker build -t username/alpine . + - docker push username/alpine +``` + +> 请提前在 Travis CI 仓库设置页面配置 `DOCKER_PASSWORD` `DOCKER_USERNAME` 变量 + +### 查看结果 + +将项目推送到 GitHub, 登录 [Travis CI](https://travis-ci.com/) 查看构建详情。 From 560c23797ad2ac47b8379b326ebdc3ef7e65fb39 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 31 Dec 2018 16:09:34 +0800 Subject: [PATCH 375/611] Update typeset --- appendix/repo/php.md | 2 +- kubernetes/kubectl.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/appendix/repo/php.md b/appendix/repo/php.md index becf8c863..cf62af628 100644 --- a/appendix/repo/php.md +++ b/appendix/repo/php.md @@ -2,7 +2,7 @@ ### 基本信息 -[PHP](https://en.wikipedia.org/wiki/php) PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。 +[PHP](https://en.wikipedia.org/wiki/php)(Hypertext Preprocessor 超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。 该仓库位于 `https://hub.docker.com/_/php/` ,提供了 PHP 5.x ~ 7.x 各个版本的镜像。 diff --git a/kubernetes/kubectl.md b/kubernetes/kubectl.md index 271b19f11..5fd34079e 100644 --- a/kubernetes/kubectl.md +++ b/kubernetes/kubectl.md @@ -29,7 +29,7 @@ kubectl [command] ## log -输出 pod 中一个容器的日志。 +输出 pod 中一个容器的日志 ## rolling-update From e2baa6401ae4b6d12314f8bd431df3aadbdfbe5a Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 1 Jan 2019 10:30:49 +0800 Subject: [PATCH 376/611] replace crlf,Fix #338 --- mesos/framework.md | 178 ++++++++++++++++++++++----------------------- 1 file changed, 89 insertions(+), 89 deletions(-) diff --git a/mesos/framework.md b/mesos/framework.md index 34ba1d439..2430d4a10 100644 --- a/mesos/framework.md +++ b/mesos/framework.md @@ -1,89 +1,89 @@ -## 常见应用框架 - -应用框架是实际干活的,可以理解为 Mesos 之上跑的 `应用`。应用框架注册到 Mesos master 服务上即可使用。 - -用户大部分时候,只需要跟应用框架打交道。因此,选择合适的应用框架十分关键。 - -Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 PaaS)、大数据处理、批量调度、数据存储。 - -随着 Mesos 自身的发展,越来越多的框架开始支持 Mesos,下面总结了目前常用的一些框架。 - -### 长期运行的服务 - -#### [Aurora](http://aurora.incubator.apache.org) - -利用 Mesos 调度安排的任务,保证任务一直在运行。 - -提供 REST 接口,客户端和 webUI(8081 端口) - -#### [Marathon](https://github.com/mesosphere/marathon) - -一个私有 PaaS 平台,保证运行的应用不被中断。 - -如果任务停止了,会自动重启一个新的相同任务。 - -支持任务为任意 bash 命令,以及容器。 - -提供 REST 接口,客户端和 webUI(8080 端口) - -#### [Singularity](https://github.com/HubSpot/Singularity) - -一个私有 PaaS 平台。 - -调度器,运行长期的任务和一次性任务。 - -提供 REST 接口,客户端和 webUI(7099、8080 端口),支持容器。 - -### 大数据处理 -#### [Cray Chapel](https://github.com/nqn/mesos-chapel) - -支持 Chapel 并行编程语言的运行框架。 - -#### [Dpark](https://github.com/douban/dpark) - -Spark 的 Python 实现。 - -#### [Hadoop](https://github.com/mesos/hadoop) - -经典的 map-reduce 模型的实现。 - -#### [Spark](http://spark.apache.org) - -跟 Hadoop 类似,但处理迭代类型任务会更好的使用内存做中间状态缓存,速度要快一些。 - -#### [Storm](https://github.com/mesos/storm) - -分布式流计算,可以实时处理数据流。 - -### 批量调度 -#### [Chronos](https://github.com/airbnb/chronos) - -Cron 的分布式实现,负责任务调度,支持容错。 - -#### [Jenkins](https://github.com/jenkinsci/mesos-plugin) - -大名鼎鼎的 CI 引擎。使用 mesos-jenkins 插件,可以将 jenkins 的任务被 Mesos 集群来动态调度执行。 - -#### [JobServer](http://www.grandlogic.com/content/html_docs/jobserver.html) - -基于 Java 的调度任务和数据处理引擎。 - -#### [GoDocker](https://bitbucket.org/osallou/go-docker) - -基于 Docker 容器的集群维护工具。提供用户接口,除了支持 Mesos,还支持 Kubernetes、Swarm 等。 - -### 数据存储 - -#### [ElasticSearch](https://github.com/mesos/elasticsearch) - -功能十分强大的分布式数据搜索引擎。 - -一方面通过分布式集群实现可靠的数据库,一方面提供灵活的 API,对数据进行整合和分析。ElasticSearch + LogStash + Kibana 目前合成为 ELK 工具栈。 - -#### [Hypertable](https://code.google.com/p/hypertable) - -高性能的分布式数据库,支持结构化或者非结构化的数据存储。 - -#### [Tachyon](http://tachyon-project.org/) - -内存为中心的分布式存储系统,利用内存访问的高速提供高性能。 +## 常见应用框架 + +应用框架是实际干活的,可以理解为 Mesos 之上跑的 `应用`。应用框架注册到 Mesos master 服务上即可使用。 + +用户大部分时候,只需要跟应用框架打交道。因此,选择合适的应用框架十分关键。 + +Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 PaaS)、大数据处理、批量调度、数据存储。 + +随着 Mesos 自身的发展,越来越多的框架开始支持 Mesos,下面总结了目前常用的一些框架。 + +### 长期运行的服务 + +#### [Aurora](http://aurora.incubator.apache.org) + +利用 Mesos 调度安排的任务,保证任务一直在运行。 + +提供 REST 接口,客户端和 webUI(8081 端口) + +#### [Marathon](https://github.com/mesosphere/marathon) + +一个私有 PaaS 平台,保证运行的应用不被中断。 + +如果任务停止了,会自动重启一个新的相同任务。 + +支持任务为任意 bash 命令,以及容器。 + +提供 REST 接口,客户端和 webUI(8080 端口) + +#### [Singularity](https://github.com/HubSpot/Singularity) + +一个私有 PaaS 平台。 + +调度器,运行长期的任务和一次性任务。 + +提供 REST 接口,客户端和 webUI(7099、8080 端口),支持容器。 + +### 大数据处理 +#### [Cray Chapel](https://github.com/nqn/mesos-chapel) + +支持 Chapel 并行编程语言的运行框架。 + +#### [Dpark](https://github.com/douban/dpark) + +Spark 的 Python 实现。 + +#### [Hadoop](https://github.com/mesos/hadoop) + +经典的 map-reduce 模型的实现。 + +#### [Spark](http://spark.apache.org) + +跟 Hadoop 类似,但处理迭代类型任务会更好的使用内存做中间状态缓存,速度要快一些。 + +#### [Storm](https://github.com/mesos/storm) + +分布式流计算,可以实时处理数据流。 + +### 批量调度 +#### [Chronos](https://github.com/airbnb/chronos) + +Cron 的分布式实现,负责任务调度,支持容错。 + +#### [Jenkins](https://github.com/jenkinsci/mesos-plugin) + +大名鼎鼎的 CI 引擎。使用 mesos-jenkins 插件,可以将 jenkins 的任务被 Mesos 集群来动态调度执行。 + +#### [JobServer](http://www.grandlogic.com/content/html_docs/jobserver.html) + +基于 Java 的调度任务和数据处理引擎。 + +#### [GoDocker](https://bitbucket.org/osallou/go-docker) + +基于 Docker 容器的集群维护工具。提供用户接口,除了支持 Mesos,还支持 Kubernetes、Swarm 等。 + +### 数据存储 + +#### [ElasticSearch](https://github.com/mesos/elasticsearch) + +功能十分强大的分布式数据搜索引擎。 + +一方面通过分布式集群实现可靠的数据库,一方面提供灵活的 API,对数据进行整合和分析。ElasticSearch + LogStash + Kibana 目前合成为 ELK 工具栈。 + +#### [Hypertable](https://code.google.com/p/hypertable) + +高性能的分布式数据库,支持结构化或者非结构化的数据存储。 + +#### [Tachyon](http://tachyon-project.org/) + +内存为中心的分布式存储系统,利用内存访问的高速提供高性能。 From 44530ff3669a486c96c496d34e4894b327d1faf9 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 1 Jan 2019 17:59:58 +0800 Subject: [PATCH 377/611] Add aliyun mirror --- install/mirror.md | 1 + 1 file changed, 1 insertion(+) diff --git a/install/mirror.md b/install/mirror.md index 95284d083..71eb6b0dc 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -3,6 +3,7 @@ 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如: * [Docker 官方提供的中国 registry mirror `https://registry.docker-cn.com`](https://docs.docker.com/registry/recipes/mirror/#use-case-the-china-registry-mirror) +* [阿里云加速器(需登录账号获取)](https://cr.console.aliyun.com/cn-hangzhou/mirrors) * [七牛云加速器 `https://reg-mirror.qiniu.com/`](https://kirk-enterprise.github.io/hub-docs/#/user-guide/mirror) > 当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。 From aff886341fed93bfa6ac0bf69b3b67a8dacc9d51 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 6 Jan 2019 09:40:31 +0800 Subject: [PATCH 378/611] Update link --- appendix/best_practices.md | 8 ++++---- container/attach_exec.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/appendix/best_practices.md b/appendix/best_practices.md index 74b7a0636..1aa165fe7 100644 --- a/appendix/best_practices.md +++ b/appendix/best_practices.md @@ -1,6 +1,6 @@ # Dockerfile 最佳实践 -本附录是笔者对 Docker 官方文档中 [Best practices for writing Dockerfiles](https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/) 的理解与翻译。 +本附录是笔者对 Docker 官方文档中 [Best practices for writing Dockerfiles](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/) 的理解与翻译。 ## 一般性的指南和建议 @@ -94,7 +94,7 @@ LABEL vendor=ACME\ Incorporated \ com.example.release-date="2015-02-12" ``` -关于标签可以接受的键值对,参考 [Understanding object labels](https://docs.docker.com/engine/userguide/labels-custom-metadata/)。关于查询标签信息,参考 [Managing labels on objects](https://docs.docker.com/engine/userguide/labels-custom-metadata/#managing-labels-on-objects)。 +关于标签可以接受的键值对,参考 [Understanding object labels](https://docs.docker.com/config/labels-custom-metadata/)。关于查询标签信息,参考 [Managing labels on objects](https://docs.docker.com/config/labels-custom-metadata/)。 ### RUN @@ -339,6 +339,6 @@ $ docker run --rm -it postgres bash 为了清晰性和可靠性,你应该总是在 `WORKDIR` 中使用绝对路径。另外,你应该使用 `WORKDIR` 来替代类似于 `RUN cd ... && do-something` 的指令,后者难以阅读、排错和维护。 -## 官方仓库示例 +## 官方镜像示例 -这些官方仓库的 Dockerfile 都是参考典范:https://github.com/docker-library/docs +这些官方镜像的 Dockerfile 都是参考典范:https://github.com/docker-library/docs diff --git a/container/attach_exec.md b/container/attach_exec.md index 789a6d03f..0feb1342a 100644 --- a/container/attach_exec.md +++ b/container/attach_exec.md @@ -6,7 +6,7 @@ ### `attach` 命令 -`docker attach` 是 Docker 自带的命令。下面示例如何使用该命令。 +下面示例如何使用 `docker attach` 命令。 ```bash $ docker run -dit ubuntu From 81e68f241c14976ad695a55c94f5058404e26d0d Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 6 Jan 2019 09:50:03 +0800 Subject: [PATCH 379/611] Update docker official docs link --- appendix/faq/README.md | 4 ++-- basic_concept/repository.md | 2 +- image/build.md | 2 +- image/dockerfile/references.md | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/appendix/faq/README.md b/appendix/faq/README.md index e8df861ab..ce6cb2c21 100644 --- a/appendix/faq/README.md +++ b/appendix/faq/README.md @@ -30,7 +30,7 @@ * 使用 Dockerfile 创建镜像时候要添加 .dockerignore 文件或使用干净的工作目录。 -更多内容请查看 [Dockerfile 最佳实践](https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/) +更多内容请查看 [Dockerfile 最佳实践](../best_practices.md) ### 碰到网络问题,无法 pull 镜像,命令行指定 http_proxy 无效? @@ -82,7 +82,7 @@ $ docker run --network=my-net --ip=172.25.3.3 -itd --name=my-container busybox ### 可以在一个容器中同时运行多个应用进程么? -答:一般并不推荐在同一个容器内运行多个应用进程。如果有类似需求,可以通过一些额外的进程管理机制,比如 `supervisord` 来管理所运行的进程。可以参考 https://docs.docker.com/engine/admin/multi-service_container/ 。 +答:一般并不推荐在同一个容器内运行多个应用进程。如果有类似需求,可以通过一些额外的进程管理机制,比如 `supervisord` 来管理所运行的进程。可以参考 https://docs.docker.com/config/containers/multi-service_container/ 。 ### 如何控制容器占用系统资源(CPU、内存)的份额? diff --git a/basic_concept/repository.md b/basic_concept/repository.md index a6ba18ebc..fd1664779 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -26,4 +26,4 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像 开源的 Docker Registry 镜像只提供了 [Docker Registry API](https://docs.docker.com/registry/spec/api/) 的服务端实现,足以支持 `docker` 命令,不影响使用。但不包含图形界面,以及镜像维护、用户管理、访问控制等高级功能。在官方的商业化版本 [Docker Trusted Registry](https://docs.docker.com/datacenter/dtr/2.0/) 中,提供了这些高级功能。 -除了官方的 Docker Registry 外,还有第三方软件实现了 Docker Registry API,甚至提供了用户界面以及一些高级功能。比如,[VMWare Harbor](https://github.com/vmware/harbor) 和 [Sonatype Nexus](https://www.sonatype.com/docker)。 +除了官方的 Docker Registry 外,还有第三方软件实现了 Docker Registry API,甚至提供了用户界面以及一些高级功能。比如,[VMWare Harbor](https://github.com/goharbor/harbor) 和 [Sonatype Nexus](../repository/nexus3_registry.md)。 diff --git a/image/build.md b/image/build.md index ac072bd97..af054d85f 100644 --- a/image/build.md +++ b/image/build.md @@ -134,7 +134,7 @@ docker build [选项] <上下文路径/URL/-> 如果注意,会看到 `docker build` 命令最后有一个 `.`。`.` 表示当前目录,而 `Dockerfile` 就在当前目录,因此不少初学者以为这个路径是在指定 `Dockerfile` 所在路径,这么理解其实是不准确的。如果对应上面的命令格式,你可能会发现,这是在指定**上下文路径**。那么什么是上下文呢? -首先我们要理解 `docker build` 的工作原理。Docker 在运行时分为 Docker 引擎(也就是服务端守护进程)和客户端工具。Docker 的引擎提供了一组 REST API,被称为 [Docker Remote API](https://docs.docker.com/engine/reference/api/docker_remote_api/),而如 `docker` 命令这样的客户端工具,则是通过这组 API 与 Docker 引擎交互,从而完成各种功能。因此,虽然表面上我们好像是在本机执行各种 `docker` 功能,但实际上,一切都是使用的远程调用形式在服务端(Docker 引擎)完成。也因为这种 C/S 设计,让我们操作远程服务器的 Docker 引擎变得轻而易举。 +首先我们要理解 `docker build` 的工作原理。Docker 在运行时分为 Docker 引擎(也就是服务端守护进程)和客户端工具。Docker 的引擎提供了一组 REST API,被称为 [Docker Remote API](https://docs.docker.com/develop/sdk/),而如 `docker` 命令这样的客户端工具,则是通过这组 API 与 Docker 引擎交互,从而完成各种功能。因此,虽然表面上我们好像是在本机执行各种 `docker` 功能,但实际上,一切都是使用的远程调用形式在服务端(Docker 引擎)完成。也因为这种 C/S 设计,让我们操作远程服务器的 Docker 引擎变得轻而易举。 当我们进行镜像构建的时候,并非所有定制都会通过 `RUN` 指令完成,经常会需要将一些本地文件复制进镜像,比如通过 `COPY` 指令、`ADD` 指令等。而 `docker build` 命令构建镜像,其实并非在本地构建,而是在服务端,也就是 Docker 引擎中构建的。那么在这种客户端/服务端的架构中,如何才能让服务端获得本地文件呢? diff --git a/image/dockerfile/references.md b/image/dockerfile/references.md index 4e0bd84f4..f726792d3 100644 --- a/image/dockerfile/references.md +++ b/image/dockerfile/references.md @@ -2,6 +2,6 @@ * `Dockerfie` 官方文档:https://docs.docker.com/engine/reference/builder/ -* `Dockerfile` 最佳实践文档:https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/ +* `Dockerfile` 最佳实践文档:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ * `Docker` 官方镜像 `Dockerfile`:https://github.com/docker-library/docs From fbf5a286ab16ea3434137dca18ad081de9824d24 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 6 Jan 2019 10:00:38 +0800 Subject: [PATCH 380/611] Update install --- install/centos.md | 4 ++-- install/debian.md | 2 +- install/fedora.md | 2 +- install/mac.md | 10 +++++----- install/mirror.md | 2 +- install/raspberry-pi.md | 2 +- install/ubuntu.md | 2 +- install/windows.md | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/install/centos.md b/install/centos.md index 66623b5dd..89a2fde9e 100644 --- a/install/centos.md +++ b/install/centos.md @@ -145,11 +145,11 @@ For more examples and ideas, visit: ### 镜像加速 -鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 [国内镜像加速](mirror.md)。 +如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 ### 添加内核参数 -默认配置下,如果在 CentOS 使用 Docker CE 看到下面的这些警告信息: +如果在 CentOS 使用 Docker CE 看到下面的这些警告信息: ```bash WARNING: bridge-nf-call-iptables is disabled diff --git a/install/debian.md b/install/debian.md index 10d1fd0c0..74ffd91a3 100644 --- a/install/debian.md +++ b/install/debian.md @@ -185,7 +185,7 @@ For more examples and ideas, visit: ### 镜像加速 -鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 [国内镜像加速](mirror.md)。 +如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 ### 参考文档 diff --git a/install/fedora.md b/install/fedora.md index 1bd134cb0..e398da5cc 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -163,7 +163,7 @@ For more examples and ideas, visit: ### 镜像加速 -鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 [国内镜像加速](mirror.md)。 +如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 ### 参考文档 diff --git a/install/mac.md b/install/mac.md index 2778f5696..81414bb3d 100644 --- a/install/mac.md +++ b/install/mac.md @@ -2,7 +2,7 @@ ### 系统要求 -[Docker for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS 10.10.3 Yosemite。如果系统不满足需求,可以安装 [Docker Toolbox](https://docs.docker.com/toolbox/overview/)。 +[Docker for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS El Capitan 10.11。 ### 安装 @@ -44,11 +44,11 @@ $ brew cask install docker ```bash $ docker --version -Docker version 17.10.0-ce, build f4ffd25 +Docker version 18.09.0, build 4d60db4 $ docker-compose --version -docker-compose version 1.17.0-rc1, build a0f95af +docker-compose version 1.23.2, build 1110ad01 $ docker-machine --version -docker-machine version 0.13.0, build 9ba6da9 +docker-machine version 0.16.0, build 702c267f ``` 如果 `docker version`、`docker info` 都正常的话,可以尝试运行一个 [Nginx 服务器](https://hub.docker.com/_/nginx/): @@ -70,4 +70,4 @@ $ docker rm webserver ### 镜像加速 -鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 [国内镜像加速](mirror.md)。 +如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 diff --git a/install/mirror.md b/install/mirror.md index 71eb6b0dc..31d526375 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -59,7 +59,7 @@ $ sudo systemctl restart docker ### 检查加速器是否生效 -配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 `docker info`,如果从结果中看到了如下内容,说明配置成功。 +命令行执行 `docker info`,如果从结果中看到了如下内容,说明配置成功。 ```bash Registry Mirrors: diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 0efc92415..787ab7852 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -145,4 +145,4 @@ For more examples and ideas, visit: ### 镜像加速 -鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 [国内镜像加速](mirror.md)。 +如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 diff --git a/install/ubuntu.md b/install/ubuntu.md index bb9f137f8..e681fd86c 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -175,7 +175,7 @@ For more examples and ideas, visit: ### 镜像加速 -鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 [国内镜像加速](mirror.md)。 +如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 ### 参考文档 diff --git a/install/windows.md b/install/windows.md index 0537e04d7..851dac245 100644 --- a/install/windows.md +++ b/install/windows.md @@ -26,4 +26,4 @@ Docker CE 启动之后会在 Windows 任务栏出现鲸鱼图标。 ### 镜像加速 -鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 [国内镜像加速](mirror.md)。 +如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 From 994f6ac101331ed66fa4db40357f1b7a8105a318 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 6 Jan 2019 10:15:13 +0800 Subject: [PATCH 381/611] Replace http with https --- .editorconfig | 2 +- README.md | 4 ++-- advanced_network/README.md | 2 +- appendix/repo/redis.md | 2 +- basic_concept/repository.md | 2 +- cases/os/alpine.md | 2 +- compose/compose_file.md | 2 +- etcd/intro.md | 2 +- image/internal.md | 2 +- install/mac.md | 2 +- mesos/intro.md | 2 +- security/kernel_ns.md | 2 +- underly/cgroups.md | 2 +- underly/namespace.md | 2 +- underly/ufs.md | 2 +- 15 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.editorconfig b/.editorconfig index 23433f4ab..f57159a73 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -# EditorConfig is awesome: http://EditorConfig.org +# EditorConfig is awesome: https://EditorConfig.org root = true diff --git a/README.md b/README.md index 55376a06a..adc646402 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ v1.0.0 *说明:本书自 0.9.0 版本起基于最新的 Docker CE v18.X 特性进行讲解。Docker 旧版本(1.13-)使用,请参考 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支。* -[Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! +[Docker](https://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! 无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker,节约有限的生命。 @@ -48,7 +48,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 ## 进阶学习 ![](_images/docker_primer3.png) -《[Docker 技术入门与实战](http://item.jd.com/12453318.html)》第三版已经面世,介绍最新的容器技术栈,欢迎大家阅读使用并反馈建议。 +《[Docker 技术入门与实战](https://item.jd.com/12453318.html)》第三版已经面世,介绍最新的容器技术栈,欢迎大家阅读使用并反馈建议。 * [京东图书](https://item.jd.com/12453318.html) * [China-Pub](http://product.china-pub.com/8052127) diff --git a/advanced_network/README.md b/advanced_network/README.md index df6d5b766..e21d4b3cf 100644 --- a/advanced_network/README.md +++ b/advanced_network/README.md @@ -6,7 +6,7 @@ 当 Docker 启动时,会自动在主机上创建一个 `docker0` 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。 -同时,Docker 随机分配一个本地未占用的私有网段(在 [RFC1918](http://tools.ietf.org/html/rfc1918) 中定义)中的一个地址给 `docker0` 接口。比如典型的 `172.17.42.1`,掩码为 `255.255.0.0`。此后启动的容器内的网口也会自动分配一个同一网段(`172.17.0.0/16`)的地址。 +同时,Docker 随机分配一个本地未占用的私有网段(在 [RFC1918](https://tools.ietf.org/html/rfc1918) 中定义)中的一个地址给 `docker0` 接口。比如典型的 `172.17.42.1`,掩码为 `255.255.0.0`。此后启动的容器内的网口也会自动分配一个同一网段(`172.17.0.0/16`)的地址。 当创建一个 Docker 容器的时候,同时会创建了一对 `veth pair` 接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 `eth0`;另一端在本地并被挂载到 `docker0` 网桥,名称以 `veth` 开头(例如 `vethAQI2QT`)。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间一个虚拟共享网络。 diff --git a/appendix/repo/redis.md b/appendix/repo/redis.md index cfc711caf..9b076183b 100644 --- a/appendix/repo/redis.md +++ b/appendix/repo/redis.md @@ -14,7 +14,7 @@ $ docker run --name some-redis -d redis ``` -另外还可以启用 [持久存储](http://redis.io/topics/persistence)。 +另外还可以启用 [持久存储](https://redis.io/topics/persistence)。 ```bash $ docker run --name some-redis -d redis redis-server --appendonly yes diff --git a/basic_concept/repository.md b/basic_concept/repository.md index fd1664779..c018f7613 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -14,7 +14,7 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像的 Registry 服务。一般这类公开服务允许用户免费上传、下载公开的镜像,并可能提供收费服务供用户管理私有镜像。 -最常使用的 Registry 公开服务是官方的 [Docker Hub](https://hub.docker.com/),这也是默认的 Registry,并拥有大量的高质量的官方镜像。除此以外,还有 [CoreOS](https://coreos.com/) 的 [Quay.io](https://quay.io/repository/),CoreOS 相关的镜像存储在这里;Google 的 [Google Container Registry](https://cloud.google.com/container-registry/),[Kubernetes](http://kubernetes.io/) 的镜像使用的就是这个服务。 +最常使用的 Registry 公开服务是官方的 [Docker Hub](https://hub.docker.com/),这也是默认的 Registry,并拥有大量的高质量的官方镜像。除此以外,还有 [CoreOS](https://coreos.com/) 的 [Quay.io](https://quay.io/repository/),CoreOS 相关的镜像存储在这里;Google 的 [Google Container Registry](https://cloud.google.com/container-registry/),[Kubernetes](https://kubernetes.io/) 的镜像使用的就是这个服务。 由于某些原因,在国内访问这些服务可能会比较慢。国内的一些云服务商提供了针对 Docker Hub 的镜像服务(`Registry Mirror`),这些镜像服务被称为**加速器**。常见的有 [阿里云加速器](https://cr.console.aliyun.com/#/accelerator)、[DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc) 等。使用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub 下载速度会提高很多。在 [安装 Docker](../install/mirror.md) 一节中有详细的配置方法。 diff --git a/cases/os/alpine.md b/cases/os/alpine.md index b9d76d0f3..58cd84225 100644 --- a/cases/os/alpine.md +++ b/cases/os/alpine.md @@ -56,7 +56,7 @@ $ apk --update add --no-cache ### 相关资源 -* `Alpine` 官网:http://alpinelinux.org/ +* `Alpine` 官网:https://www.alpinelinux.org/ * `Alpine` 官方仓库:https://github.com/alpinelinux * `Alpine` 官方镜像:https://hub.docker.com/_/alpine/ * `Alpine` 官方镜像仓库:https://github.com/gliderlabs/docker-alpine diff --git a/compose/compose_file.md b/compose/compose_file.md index fbb1955ee..f11383815 100644 --- a/compose/compose_file.md +++ b/compose/compose_file.md @@ -223,7 +223,7 @@ environment: - SESSION_SECRET ``` -如果变量名称或者值中用到 `true|false,yes|no` 等表达 [布尔](http://yaml.org/type/bool.html) 含义的词汇,最好放到引号里,避免 YAML 自动解析某些内容为对应的布尔语义。这些特定词汇,包括 +如果变量名称或者值中用到 `true|false,yes|no` 等表达 [布尔](https://yaml.org/type/bool.html) 含义的词汇,最好放到引号里,避免 YAML 自动解析某些内容为对应的布尔语义。这些特定词汇,包括 ```bash y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF diff --git a/etcd/intro.md b/etcd/intro.md index 3c822a9df..95f8ba957 100644 --- a/etcd/intro.md +++ b/etcd/intro.md @@ -6,7 +6,7 @@ `etcd` 目前在 [github.com/coreos/etcd](https://github.com/coreos/etcd) 进行维护。 -受到 [Apache ZooKeeper](http://zookeeper.apache.org/) 项目和 [doozer](https://github.com/ha/doozerd) 项目的启发,`etcd` 在设计的时候重点考虑了下面四个要素: +受到 [Apache ZooKeeper](https://zookeeper.apache.org/) 项目和 [doozer](https://github.com/ha/doozerd) 项目的启发,`etcd` 在设计的时候重点考虑了下面四个要素: * 简单:具有定义良好、面向用户的 `API` ([gRPC](https://github.com/grpc/grpc)) diff --git a/image/internal.md b/image/internal.md index e2b4849bd..8cb7ccf95 100644 --- a/image/internal.md +++ b/image/internal.md @@ -2,7 +2,7 @@ Docker 镜像是怎么实现增量的修改和维护的? -每个镜像都由很多层次构成,Docker 使用 [Union FS](http://en.wikipedia.org/wiki/UnionFS) 将这些不同的层结合到一个镜像中去。 +每个镜像都由很多层次构成,Docker 使用 [Union FS](https://en.wikipedia.org/wiki/UnionFS) 将这些不同的层结合到一个镜像中去。 通常 Union FS 有两个用途, 一方面可以实现不借助 LVM、RAID 将多个 disk 挂到同一个目录下,另一个更常用的就是将一个只读的分支和一个可写的分支联合在一起,Live CD 正是基于此方法可以允许在镜像不变的基础上允许用户在其上进行一些写操作。 diff --git a/install/mac.md b/install/mac.md index 81414bb3d..d52916d74 100644 --- a/install/mac.md +++ b/install/mac.md @@ -8,7 +8,7 @@ #### 使用 Homebrew 安装 -[Homebrew](http://brew.sh/) 的 [Cask](https://caskroom.github.io/) 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: +[Homebrew](https://brew.sh/) 的 [Cask](https://caskroom.github.io/) 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: ```bash $ brew cask install docker diff --git a/mesos/intro.md b/mesos/intro.md index c243c7b8b..a33a5b769 100644 --- a/mesos/intro.md +++ b/mesos/intro.md @@ -3,7 +3,7 @@ Mesos 最初由 UC Berkeley 的 AMP 实验室于 2009 年发起,遵循 Apache 如果把数据中心中的集群资源看做一台服务器,那么 Mesos 要做的事情,其实就是今天操作系统内核的职责:抽象资源 + 调度任务。Mesos 项目是 Mesosphere 公司 Datacenter Operating System (DCOS) 产品的核心部件。 -Mesos 项目主要由 C++ 语言编写,项目官方地址为 [http://mesos.apache.org](http://mesos.apache.org),代码仍在快速演化中,已经发布了正式版 1.0.0 版本。 +Mesos 项目主要由 C++ 语言编写,项目官方地址为 [https://mesos.apache.org](https://mesos.apache.org),代码仍在快速演化中,已经发布了正式版 1.0.0 版本。 Mesos 拥有许多引人注目的特性,包括: * 支持数万个节点的大规模场景(Apple、Twitter、eBay 等公司实践); diff --git a/security/kernel_ns.md b/security/kernel_ns.md index 7baacaba1..1ce607c37 100644 --- a/security/kernel_ns.md +++ b/security/kernel_ns.md @@ -11,5 +11,5 @@ Docker 容器和 LXC 容器很相似,所提供的安全特性也差不多。 内核命名空间从 2.6.15 版本(2008 年 7 月发布)之后被引入,数年间,这些机制的可靠性在诸多大型生产系统中被实践验证。 -实际上,命名空间的想法和设计提出的时间要更早,最初是为了在内核中引入一种机制来实现 [OpenVZ](http://en.wikipedia.org/wiki/OpenVZ) 的特性。 +实际上,命名空间的想法和设计提出的时间要更早,最初是为了在内核中引入一种机制来实现 [OpenVZ](https://en.wikipedia.org/wiki/OpenVZ) 的特性。 而 OpenVZ 项目早在 2005 年就发布了,其设计和实现都已经十分成熟。 diff --git a/underly/cgroups.md b/underly/cgroups.md index 1914a69a3..6ccd703d9 100644 --- a/underly/cgroups.md +++ b/underly/cgroups.md @@ -1,6 +1,6 @@ ## 控制组 -控制组([cgroups](http://en.wikipedia.org/wiki/Cgroups))是 Linux 内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。只有能控制分配到容器的资源,才能避免当多个容器同时运行时的对系统资源的竞争。 +控制组([cgroups](https://en.wikipedia.org/wiki/Cgroups))是 Linux 内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。只有能控制分配到容器的资源,才能避免当多个容器同时运行时的对系统资源的竞争。 控制组技术最早是由 Google 的程序员在 2006 年提出,Linux 内核自 2.6.24 开始支持。 diff --git a/underly/namespace.md b/underly/namespace.md index 0f318d846..35cf38653 100644 --- a/underly/namespace.md +++ b/underly/namespace.md @@ -19,4 +19,4 @@ UTS("UNIX Time-sharing System") 命名空间允许每个容器拥有独立的 ho ### user 命名空间 每个容器可以有不同的用户和组 id, 也就是说可以在容器内用容器内部的用户执行程序而非主机上的用户。 -*注:更多关于 Linux 上命名空间的信息,请阅读 [这篇文章](http://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/)。 +*注:更多关于 Linux 上命名空间的信息,请阅读 [这篇文章](https://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/)。 diff --git a/underly/ufs.md b/underly/ufs.md index 44f834090..5e521f312 100644 --- a/underly/ufs.md +++ b/underly/ufs.md @@ -1,6 +1,6 @@ ## 联合文件系统 -联合文件系统([UnionFS](http://en.wikipedia.org/wiki/UnionFS))是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。 +联合文件系统([UnionFS](https://en.wikipedia.org/wiki/UnionFS))是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。 联合文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。 From d4bbcc0cfba15dfb684f043e4b43ac887443aad0 Mon Sep 17 00:00:00 2001 From: Xiang Dai <764524258@qq.com> Date: Thu, 21 Feb 2019 10:53:33 +0800 Subject: [PATCH 382/611] delete all duplicate empty blanks Signed-off-by: Xiang Dai <764524258@qq.com> --- .github/PULL_REQUEST_TEMPLATE.md | 8 ++++---- cases/ci/drone.md | 4 ++-- coreos/intro_tools.md | 2 +- data_management/bind-mounts.md | 2 +- etcd/cluster.md | 2 +- etcd/demo/cluster/docker-compose.yml | 2 +- image/multistage-builds/README.md | 8 ++++---- image/multistage-builds/laravel.md | 2 +- install/centos.md | 2 +- install/debian.md | 2 +- install/raspberry-pi.md | 2 +- install/ubuntu.md | 2 +- repository/nexus3_registry.md | 6 +++--- swarm_mode/create.md | 4 ++-- 14 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 460deb28d..39d35fdc7 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,20 +1,20 @@ ### Proposed changes (Mandatory) ### Fix issues (Optional) diff --git a/cases/ci/drone.md b/cases/ci/drone.md index 0d617e839..2e22b0562 100644 --- a/cases/ci/drone.md +++ b/cases/ci/drone.md @@ -67,7 +67,7 @@ services: dns: 114.114.114.114 volumes: - drone-data: + drone-data: ``` 替换 `${SSL_PATH}` 为你网站的 SSL 证书路径。 @@ -117,7 +117,7 @@ package main import "fmt" -func main(){ +func main(){ fmt.Printf("Hello World!"); } ``` diff --git a/coreos/intro_tools.md b/coreos/intro_tools.md index 8c67921d4..0bb638396 100644 --- a/coreos/intro_tools.md +++ b/coreos/intro_tools.md @@ -13,7 +13,7 @@ UUID APP IMAGE NAME STATE CREATED STARTED NETWORKS 57581644 etcd quay.io/coreos/etcd:v3.2.10 running 1 minute ago 1 minute ago ``` -`etcd` 使用方法请查看 [etcd 章节](../etcd/)。 +`etcd` 使用方法请查看 [etcd 章节](../etcd/)。 ## 容器管理 diff --git a/data_management/bind-mounts.md b/data_management/bind-mounts.md index a98165fbd..6d0bef720 100644 --- a/data_management/bind-mounts.md +++ b/data_management/bind-mounts.md @@ -69,7 +69,7 @@ $ docker run --rm -it \ root@2affd44b4667:/# history 1 ls -2 diskutil list +2 diskutil list ``` 这样就可以记录在容器输入过的命令了。 diff --git a/etcd/cluster.md b/etcd/cluster.md index 64da7976c..fe7b27063 100644 --- a/etcd/cluster.md +++ b/etcd/cluster.md @@ -14,7 +14,7 @@ services: - node1-data:/etcd-data expose: - 2379 - - 2380 + - 2380 networks: cluster_net: ipv4_address: 172.16.238.100 diff --git a/etcd/demo/cluster/docker-compose.yml b/etcd/demo/cluster/docker-compose.yml index 0258269af..2a365d576 100644 --- a/etcd/demo/cluster/docker-compose.yml +++ b/etcd/demo/cluster/docker-compose.yml @@ -7,7 +7,7 @@ services: - node1-data:/etcd-data expose: - 2379 - - 2380 + - 2380 networks: cluster_net: ipv4_address: 172.16.238.100 diff --git a/image/multistage-builds/README.md b/image/multistage-builds/README.md index 986674cbe..59c37071e 100644 --- a/image/multistage-builds/README.md +++ b/image/multistage-builds/README.md @@ -15,11 +15,11 @@ 例如,编写 `app.go` 文件,该程序输出 `Hello World!` ```go -package main +package main -import "fmt" +import "fmt" -func main(){ +func main(){ fmt.Printf("Hello World!"); } ``` @@ -146,7 +146,7 @@ WORKDIR /root/ COPY --from=0 /go/src/github.com/go/helloworld/app . -CMD ["./app"] +CMD ["./app"] ``` 构建镜像 diff --git a/image/multistage-builds/laravel.md b/image/multistage-builds/laravel.md index e29546610..1209aecf6 100644 --- a/image/multistage-builds/laravel.md +++ b/image/multistage-builds/laravel.md @@ -62,7 +62,7 @@ COPY webpack.mix.js /app/ COPY resources/assets/ /app/resources/assets/ RUN cd /app \ - && npm run production + && npm run production ``` ### 安装 Composer 依赖 diff --git a/install/centos.md b/install/centos.md index 89a2fde9e..8c986a700 100644 --- a/install/centos.md +++ b/install/centos.md @@ -48,7 +48,7 @@ $ sudo yum-config-manager \ # 官方源 # $ sudo yum-config-manager \ # --add-repo \ -# https://download.docker.com/linux/centos/docker-ce.repo +# https://download.docker.com/linux/centos/docker-ce.repo ``` 如果需要测试版本的 Docker CE 请使用以下命令: diff --git a/install/debian.md b/install/debian.md index 74ffd91a3..e6dd720c7 100644 --- a/install/debian.md +++ b/install/debian.md @@ -83,7 +83,7 @@ $ sudo add-apt-repository \ # $ sudo add-apt-repository \ # "deb [arch=amd64] https://download.docker.com/linux/debian \ # $(lsb_release -cs) \ -# stable" +# stable" ``` >以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。 diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 787ab7852..2d5fffdac 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -55,7 +55,7 @@ $ sudo add-apt-repository \ # $ sudo add-apt-repository \ # "deb [arch=armhf] https://download.docker.com/linux/raspbian \ # $(lsb_release -cs) \ -# stable" +# stable" ``` >以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。 diff --git a/install/ubuntu.md b/install/ubuntu.md index e681fd86c..b0ecd4c63 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -81,7 +81,7 @@ $ sudo add-apt-repository \ # $ sudo add-apt-repository \ # "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ # $(lsb_release -cs) \ -# stable" +# stable" ``` >以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。 diff --git a/repository/nexus3_registry.md b/repository/nexus3_registry.md index 7e2dbea29..45a6ae669 100644 --- a/repository/nexus3_registry.md +++ b/repository/nexus3_registry.md @@ -2,7 +2,7 @@ 使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry 程序。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/download-oss-sonatype/) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 -### 启动 Nexus 容器 +### 启动 Nexus 容器 ```bash $ docker run -d --name nexus3 --restart=always \ @@ -52,10 +52,10 @@ upstream register server { server_name YourDomainName;#如果没有 DNS 服务器做解析,请删除此选项使用本机 IP 地址访问 listen 443 ssl; - + ssl_certificate key/example.crt; ssl_certificate_key key/example.key; - + ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; diff --git a/swarm_mode/create.md b/swarm_mode/create.md index 07450ec5e..4e35b6174 100644 --- a/swarm_mode/create.md +++ b/swarm_mode/create.md @@ -46,7 +46,7 @@ docker@worker1:~$ docker swarm join \ --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ 192.168.99.100:2377 -This node joined a swarm as a worker. +This node joined a swarm as a worker. ``` ```bash @@ -58,7 +58,7 @@ docker@worker1:~$ docker swarm join \ --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ 192.168.99.100:2377 -This node joined a swarm as a worker. +This node joined a swarm as a worker. ``` >注意:一些细心的读者可能通过 `docker-machine create --help` 查看到 `--swarm*` 等一系列参数。该参数是用于旧的 `Docker Swarm`,与本章所讲的 `Swarm mode` 没有关系。 From c44664059180485be88301e2f80ab1a5c13cc420 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 8 Mar 2019 12:21:07 +0800 Subject: [PATCH 383/611] Fix format and update outdate content --- basic_concept/container.md | 2 +- basic_concept/repository.md | 4 ++-- compose/django.md | 2 +- compose/rails.md | 2 +- compose/wordpress.md | 2 +- image/build.md | 6 +++--- image/buildkit/README.md | 13 +++++++++++++ image/commit.md | 2 +- image/dockerfile/cmd.md | 2 +- image/list.md | 2 +- image/pull.md | 2 +- introduction/what.md | 2 +- repository/dockerhub.md | 28 +++++++++++++--------------- 13 files changed, 40 insertions(+), 29 deletions(-) create mode 100644 image/buildkit/README.md diff --git a/basic_concept/container.md b/basic_concept/container.md index 24f06be14..aafb4093d 100644 --- a/basic_concept/container.md +++ b/basic_concept/container.md @@ -4,7 +4,7 @@ 容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 [命名空间](https://en.wikipedia.org/wiki/Linux_namespaces)。因此容器可以拥有自己的 `root` 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。也因为这种隔离的特性,很多人初学 Docker 时常常会混淆容器和虚拟机。 -前面讲过镜像使用的是分层存储,容器也是如此。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为**容器存储层**。 +前面讲过镜像使用的是分层存储,容器也是如此。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为 **容器存储层**。 容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。 diff --git a/basic_concept/repository.md b/basic_concept/repository.md index c018f7613..8b66b60d0 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -2,7 +2,7 @@ 镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,[Docker Registry](../repository/registry.md) 就是这样的服务。 -一个 **Docker Registry** 中可以包含多个**仓库**(`Repository`);每个仓库可以包含多个**标签**(`Tag`);每个标签对应一个镜像。 +一个 **Docker Registry** 中可以包含多个 **仓库**(`Repository`);每个仓库可以包含多个 **标签**(`Tag`);每个标签对应一个镜像。 通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 `<仓库名>:<标签>` 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 `latest` 作为默认标签。 @@ -26,4 +26,4 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像 开源的 Docker Registry 镜像只提供了 [Docker Registry API](https://docs.docker.com/registry/spec/api/) 的服务端实现,足以支持 `docker` 命令,不影响使用。但不包含图形界面,以及镜像维护、用户管理、访问控制等高级功能。在官方的商业化版本 [Docker Trusted Registry](https://docs.docker.com/datacenter/dtr/2.0/) 中,提供了这些高级功能。 -除了官方的 Docker Registry 外,还有第三方软件实现了 Docker Registry API,甚至提供了用户界面以及一些高级功能。比如,[VMWare Harbor](https://github.com/goharbor/harbor) 和 [Sonatype Nexus](../repository/nexus3_registry.md)。 +除了官方的 Docker Registry 外,还有第三方软件实现了 Docker Registry API,甚至提供了用户界面以及一些高级功能。比如,[Harbor](https://github.com/goharbor/harbor) 和 [Sonatype Nexus](../repository/nexus3_registry.md)。 diff --git a/compose/django.md b/compose/django.md index b9776c9f1..7cee4d26b 100644 --- a/compose/django.md +++ b/compose/django.md @@ -1,6 +1,6 @@ ## 使用 Django -本小节内容适合 `Python` 开发人员阅读。 +> 本小节内容适合 `Python` 开发人员阅读。 我们现在将使用 `Docker Compose` 配置并运行一个 `Django/PostgreSQL` 应用。 diff --git a/compose/rails.md b/compose/rails.md index c498fc146..6bc1960a8 100644 --- a/compose/rails.md +++ b/compose/rails.md @@ -1,6 +1,6 @@ ## 使用 Rails -本小节内容适合 `Ruby` 开发人员阅读。 +> 本小节内容适合 `Ruby` 开发人员阅读。 我们现在将使用 `Compose` 配置并运行一个 `Rails/PostgreSQL` 应用。 diff --git a/compose/wordpress.md b/compose/wordpress.md index 84f04382f..e61adcf60 100644 --- a/compose/wordpress.md +++ b/compose/wordpress.md @@ -1,6 +1,6 @@ ## 使用 WordPress -本小节内容适合 `PHP` 开发人员阅读。 +> 本小节内容适合 `PHP` 开发人员阅读。 `Compose` 可以很便捷的让 `Wordpress` 运行在一个独立的环境中。 diff --git a/image/build.md b/image/build.md index af054d85f..7a74516b2 100644 --- a/image/build.md +++ b/image/build.md @@ -2,7 +2,7 @@ 从刚才的 `docker commit` 的学习中,我们可以了解到,镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。 -Dockerfile 是一个文本文件,其内包含了一条条的**指令(Instruction)**,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 +Dockerfile 是一个文本文件,其内包含了一条条的 **指令(Instruction)**,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 还以之前定制 `nginx` 镜像为例,这次我们使用 Dockerfile 来定制。 @@ -25,7 +25,7 @@ RUN echo '

    Hello, Docker!

    ' > /usr/share/nginx/html/index.html ### FROM 指定基础镜像 -所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。就像我们之前运行了一个 `nginx` 镜像的容器,再进行修改一样,基础镜像是必须指定的。而 `FROM` 就是指定**基础镜像**,因此一个 `Dockerfile` 中 `FROM` 是必备的指令,并且必须是第一条指令。 +所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。就像我们之前运行了一个 `nginx` 镜像的容器,再进行修改一样,基础镜像是必须指定的。而 `FROM` 就是指定 **基础镜像**,因此一个 `Dockerfile` 中 `FROM` 是必备的指令,并且必须是第一条指令。 在 [Docker Hub](https://hub.docker.com/search?q=&type=image&image_filter=official) 上有非常多的高质量的官方镜像,有可以直接拿来使用的服务类的镜像,如 [`nginx`](https://hub.docker.com/_/nginx/)、[`redis`](https://hub.docker.com/_/redis/)、[`mongo`](https://hub.docker.com/_/mongo/)、[`mysql`](https://hub.docker.com/_/mysql/)、[`httpd`](https://hub.docker.com/_/httpd/)、[`php`](https://hub.docker.com/_/php/)、[`tomcat`](https://hub.docker.com/_/tomcat/) 等;也有一些方便开发、构建、运行各种语言应用的镜像,如 [`node`](https://hub.docker.com/_/node)、[`openjdk`](https://hub.docker.com/_/openjdk/)、[`python`](https://hub.docker.com/_/python/)、[`ruby`](https://hub.docker.com/_/ruby/)、[`golang`](https://hub.docker.com/_/golang/) 等。可以在其中寻找一个最符合我们最终目标的镜像为基础镜像进行定制。 @@ -132,7 +132,7 @@ docker build [选项] <上下文路径/URL/-> ### 镜像构建上下文(Context) -如果注意,会看到 `docker build` 命令最后有一个 `.`。`.` 表示当前目录,而 `Dockerfile` 就在当前目录,因此不少初学者以为这个路径是在指定 `Dockerfile` 所在路径,这么理解其实是不准确的。如果对应上面的命令格式,你可能会发现,这是在指定**上下文路径**。那么什么是上下文呢? +如果注意,会看到 `docker build` 命令最后有一个 `.`。`.` 表示当前目录,而 `Dockerfile` 就在当前目录,因此不少初学者以为这个路径是在指定 `Dockerfile` 所在路径,这么理解其实是不准确的。如果对应上面的命令格式,你可能会发现,这是在指定 **上下文路径**。那么什么是上下文呢? 首先我们要理解 `docker build` 的工作原理。Docker 在运行时分为 Docker 引擎(也就是服务端守护进程)和客户端工具。Docker 的引擎提供了一组 REST API,被称为 [Docker Remote API](https://docs.docker.com/develop/sdk/),而如 `docker` 命令这样的客户端工具,则是通过这组 API 与 Docker 引擎交互,从而完成各种功能。因此,虽然表面上我们好像是在本机执行各种 `docker` 功能,但实际上,一切都是使用的远程调用形式在服务端(Docker 引擎)完成。也因为这种 C/S 设计,让我们操作远程服务器的 Docker 引擎变得轻而易举。 diff --git a/image/buildkit/README.md b/image/buildkit/README.md new file mode 100644 index 000000000..0fa2eaba0 --- /dev/null +++ b/image/buildkit/README.md @@ -0,0 +1,13 @@ +## BuildKit + +BuildKit 是下一代的镜像构建组件,在 https://github.com/moby/buildkit 开源。 + +下面介绍如何在 Docker CE 18.09+ 版本中使用 BuildKit 构建 Docker 镜像。 + +```bash +$ export DOCKER_BUILDKIT=1 + +# Windows + +$ set $env:DOCKER_BUILDKIT=1 +``` diff --git a/image/commit.md b/image/commit.md index 6872a796b..2cb9008d9 100644 --- a/image/commit.md +++ b/image/commit.md @@ -126,6 +126,6 @@ docker run --name web2 -d -p 81:80 nginx:v2 首先,如果仔细观察之前的 `docker diff webserver` 的结果,你会发现除了真正想要修改的 `/usr/share/nginx/html/index.html` 文件外,由于命令的执行,还有很多文件被改动或添加了。这还仅仅是最简单的操作,如果是安装软件包、编译构建,那会有大量的无关内容被添加进来,如果不小心清理,将会导致镜像极为臃肿。 -此外,使用 `docker commit` 意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为**黑箱镜像**,换句话说,就是除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根本无从得知。而且,即使是这个制作镜像的人,过一段时间后也无法记清具体在操作的。虽然 `docker diff` 或许可以告诉得到一些线索,但是远远不到可以确保生成一致镜像的地步。这种黑箱镜像的维护工作是非常痛苦的。 +此外,使用 `docker commit` 意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为 **黑箱镜像**,换句话说,就是除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根本无从得知。而且,即使是这个制作镜像的人,过一段时间后也无法记清具体在操作的。虽然 `docker diff` 或许可以告诉得到一些线索,但是远远不到可以确保生成一致镜像的地步。这种黑箱镜像的维护工作是非常痛苦的。 而且,回顾之前提及的镜像所使用的分层存储的概念,除当前层外,之前的每一层都是不会发生改变的,换句话说,任何修改的结果仅仅是在当前层进行标记、添加、修改,而不会改动上一层。如果使用 `docker commit` 制作镜像,以及后期修改的话,每一次修改都会让镜像更加臃肿一次,所删除的上一层的东西并不会丢失,会一直如影随形的跟着这个镜像,即使根本无法访问到。这会让镜像更加臃肿。 diff --git a/image/dockerfile/cmd.md b/image/dockerfile/cmd.md index 120abc3ab..d21c61184 100644 --- a/image/dockerfile/cmd.md +++ b/image/dockerfile/cmd.md @@ -28,7 +28,7 @@ CMD [ "sh", "-c", "echo $HOME" ] 提到 `CMD` 就不得不提容器中应用在前台执行和后台执行的问题。这是初学者常出现的一个混淆。 -Docker 不是虚拟机,容器中的应用都应该以前台执行,而不是像虚拟机、物理机里面那样,用 upstart/systemd 去启动后台服务,容器内没有后台服务的概念。 +Docker 不是虚拟机,容器中的应用都应该以前台执行,而不是像虚拟机、物理机里面那样,用 `systemd` 去启动后台服务,容器内没有后台服务的概念。 一些初学者将 `CMD` 写为: diff --git a/image/list.md b/image/list.md index 6e881e4a0..e7f27ddc2 100644 --- a/image/list.md +++ b/image/list.md @@ -15,7 +15,7 @@ ubuntu latest f753707788c5 4 weeks ago 列表包含了 `仓库名`、`标签`、`镜像 ID`、`创建时间` 以及 `所占用的空间`。 -其中仓库名、标签在之前的基础概念章节已经介绍过了。**镜像 ID** 则是镜像的唯一标识,一个镜像可以对应多个**标签**。因此,在上面的例子中,我们可以看到 `ubuntu:18.04` 和 `ubuntu:latest` 拥有相同的 ID,因为它们对应的是同一个镜像。 +其中仓库名、标签在之前的基础概念章节已经介绍过了。**镜像 ID** 则是镜像的唯一标识,一个镜像可以对应多个 **标签**。因此,在上面的例子中,我们可以看到 `ubuntu:18.04` 和 `ubuntu:latest` 拥有相同的 ID,因为它们对应的是同一个镜像。 ### 镜像体积 diff --git a/image/pull.md b/image/pull.md index ede243838..7733f70b6 100644 --- a/image/pull.md +++ b/image/pull.md @@ -64,7 +64,7 @@ UBUNTU_CODENAME=bionic * `-it`:这是两个参数,一个是 `-i`:交互式操作,一个是 `-t` 终端。我们这里打算进入 `bash` 执行一些命令并查看返回结果,因此我们需要交互式终端。 * `--rm`:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 `docker rm`。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 `--rm` 可以避免浪费空间。 * `ubuntu:18.04`:这是指用 `ubuntu:18.04` 镜像为基础来启动容器。 -* `bash`:放在镜像名后的是**命令**,这里我们希望有个交互式 Shell,因此用的是 `bash`。 +* `bash`:放在镜像名后的是 **命令**,这里我们希望有个交互式 Shell,因此用的是 `bash`。 进入容器后,我们可以在 Shell 下操作,执行任何所需的命令。这里,我们执行了 `cat /etc/os-release`,这是 Linux 常用的查看当前系统版本的命令,从返回的结果可以看到容器内是 `Ubuntu 18.04.1 LTS` 系统。 diff --git a/introduction/what.md b/introduction/what.md index db2fc0e42..2b5b37315 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -2,7 +2,7 @@ Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源][docker-soft],主要项目代码在 [GitHub](https://github.com/moby/moby) 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 [开放容器联盟(OCI)](https://www.opencontainers.org/)。 -Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 4 万 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 项目](https://github.com/moby/moby) 已经超过 5 万 2 千个星标和一万多个 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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 diff --git a/repository/dockerhub.md b/repository/dockerhub.md index 6aea42119..2284b9cbd 100644 --- a/repository/dockerhub.md +++ b/repository/dockerhub.md @@ -28,15 +28,13 @@ saltstack/centos-6-minimal tutum/centos-6.4 DEPRECATED. Use tutum/centos:6.4 instead. ... 5 [OK] ``` -可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建、是否自动创建。 +可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建(OFFICIAL)、是否自动构建 (AUTOMATED)。 -官方的镜像说明是官方项目组创建和维护的,automated 资源允许用户验证镜像的来源和内容。 - -根据是否是官方提供,可将镜像资源分为两类。 +根据是否是官方提供,可将镜像分为两类。 一种是类似 `centos` 这样的镜像,被称为基础镜像或根镜像。这些基础镜像由 Docker 公司创建、验证、支持、提供。这样的镜像往往使用单个单词作为名字。 -还有一种类型,比如 `tianon/centos` 镜像,它是由 Docker 的用户创建并维护的,往往带有用户名称前缀。可以通过前缀 `username/` 来指定使用某个用户提供的镜像,比如 tianon 用户。 +还有一种类型,比如 `tianon/centos` 镜像,它是由 Docker Hub 的注册用户创建并维护的,往往带有用户名称前缀。可以通过前缀 `username/` 来指定使用某个用户提供的镜像,比如 tianon 用户。 另外,在查找的时候通过 `--filter=stars=N` 参数可以指定仅显示收藏数量为 `N` 以上的镜像。 @@ -74,24 +72,24 @@ NAME DESCRIPTION STARS username/ubuntu ``` -### 自动创建 +### 自动构建 -自动创建(Automated Builds)功能对于需要经常升级镜像内程序来说,十分方便。 +自动构建(Automated Builds)功能对于需要经常升级镜像内程序来说,十分方便。 -有时候,用户创建了镜像,安装了某个软件,如果软件发布新版本则需要手动更新镜像。 +有时候,用户构建了镜像,安装了某个软件,当软件发布新版本则需要手动更新镜像。 -而自动创建允许用户通过 Docker Hub 指定跟踪一个目标网站(目前支持 [GitHub](https://github.com) 或 [BitBucket](https://bitbucket.org))上的项目,一旦项目发生新的提交或者创建新的标签(tag),Docker Hub 会自动构建镜像并推送到 Docker Hub 中。 +而自动构建允许用户通过 Docker Hub 指定跟踪一个目标网站(支持 [GitHub](https://github.com) 或 [BitBucket](https://bitbucket.org))上的项目,一旦项目发生新的提交 (commit)或者创建了新的标签(tag),Docker Hub 会自动构建镜像并推送到 Docker Hub 中。 -要配置自动创建,包括如下的步骤: +要配置自动构建,包括如下的步骤: -* 创建并登录 Docker Hub,以及目标网站; +* 登录 Docker Hub; -* 在目标网站中连接帐户到 Docker Hub; +* 在 Docker Hub 点击右上角头像,在账号设置(Account Settings)中关联(Linked Accounts)目标网站; -* 在 Docker Hub 中 [配置一个自动创建](https://registry.hub.docker.com/builds/add/); +* 在 Docker Hub 中新建或选择已有的仓库,在 `Builds` 选项卡中选择 `Configure Automated Builds`; * 选取一个目标网站中的项目(需要含 `Dockerfile`)和分支; -* 指定 `Dockerfile` 的位置,并提交创建。 +* 指定 `Dockerfile` 的位置,并保存。 -之后,可以在 Docker Hub 的 [自动创建页面](https://registry.hub.docker.com/builds/) 中跟踪每次创建的状态。 +之后,可以在 Docker Hub 的仓库页面的 `Timeline` 选项卡中查看每次构建的状态。 From 8fc20034148b053025826258a0e48c1aa42c4dec Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 9 Mar 2019 11:07:34 +0800 Subject: [PATCH 384/611] Update README * use jd.com cps url, analysis docker user trend --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index adc646402..e4296ea38 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,8 @@ # Docker — 从入门到实践 -[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) ![](https://img.shields.io/docker/pulls/yeasy/docker_practice.svg) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://badges.gitter.im/docker_practice/Lobby.svg)](https://gitter.im/docker_practice/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v18.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)](https://u.jd.com/tKZmVG) -v1.0.0 - -*说明:本书自 0.9.0 版本起基于最新的 Docker CE v18.X 特性进行讲解。Docker 旧版本(1.13-)使用,请参考 [docker-legacy](https://github.com/yeasy/docker_practice/tree/docker-legacy) 分支。* +**v1.0.0** [Docker](https://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! @@ -30,6 +28,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初

    微信扫码 随时随地阅读~

    ## 技术交流 + 欢迎加入 Docker 技术交流 QQ 群,分享 Docker 资源,交流 Docker 技术。 * QQ 群 I (已满):341410255 @@ -46,11 +45,12 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 >如果有问题,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new/choose) 来提出。 ## 进阶学习 -![](_images/docker_primer3.png) -《[Docker 技术入门与实战](https://item.jd.com/12453318.html)》第三版已经面世,介绍最新的容器技术栈,欢迎大家阅读使用并反馈建议。 +[![](https://github.com/yeasy/docker_practice/raw/master/_images/docker_primer3.png)](https://u.jd.com/tKZmVG) + +《[Docker 技术入门与实战](https://u.jd.com/tKZmVG)》第三版已经面世,介绍最新的容器技术栈,欢迎大家阅读使用并反馈建议。 -* [京东图书](https://item.jd.com/12453318.html) +* [京东图书](https://u.jd.com/tKZmVG) * [China-Pub](http://product.china-pub.com/8052127) ## 鼓励项目 From d3c197ddfcc89aab5736b2a2eeb118f76e2588ba Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 22 Mar 2019 10:35:29 +0800 Subject: [PATCH 385/611] show repo language is go --- .gitattributes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index b8209fe86..5308bd51f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,4 +2,4 @@ *.sh text eol=lf -*.py linguist-language=go +* linguist-language=go From 03708718675112f179db0889ae382c82f4b88af9 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Fri, 29 Mar 2019 11:41:02 +0800 Subject: [PATCH 386/611] Add BuildKit and docker manifest command. close #390 ,close #391 Signed-off-by: khs1994 --- .travis.yml | 8 +- CHANGELOG.md | 4 + README.md | 4 +- SUMMARY.md | 2 + image/buildkit.md | 178 ++++++++++++++++++++++++ image/buildkit/README.md | 13 -- image/demo/buildkit/Dockerfile | 16 +++ image/demo/buildkit/Dockerfile.buildkit | 37 +++++ image/demo/buildkit/aws.txt | 1 + image/demo/buildkit/package.json | 11 ++ image/demo/buildkit/src/index.js | 1 + image/manifest.md | 178 ++++++++++++++++++++++++ 12 files changed, 437 insertions(+), 16 deletions(-) create mode 100644 image/buildkit.md delete mode 100644 image/buildkit/README.md create mode 100644 image/demo/buildkit/Dockerfile create mode 100644 image/demo/buildkit/Dockerfile.buildkit create mode 100644 image/demo/buildkit/aws.txt create mode 100644 image/demo/buildkit/package.json create mode 100644 image/demo/buildkit/src/index.js create mode 100644 image/manifest.md diff --git a/.travis.yml b/.travis.yml index 7a68a804c..de0aad397 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,8 @@ language: bash -sudo: required + services: - docker + before_install: - openssl aes-256-cbc -K $encrypted_6cc8cff04075_key -iv $encrypted_6cc8cff04075_iv -in .travis/id_rsa.enc -out ~/.ssh/id_rsa -d @@ -10,8 +11,10 @@ before_install: - date - git config --global user.name "khs1994" - git config --global user.email "khs1994@khs1994.com" + script: - docker run -it --rm -v $PWD:/srv/gitbook-src yeasy/docker_practice build + after_success: - sudo chmod -R 777 _book - echo "FROM nginx:1.13.8-alpine" >> Dockerfile @@ -29,14 +32,17 @@ after_success: - COMMIT=`date "+%F %T"` - git commit -m "Travis CI Site updated $COMMIT" - git push -f origin master:"$DEPLOY_BRANCH" + env: global: - DEPLOY_BRANCH: pages # - DEPLOY_BRANCH: legacy-pages - REPO: git@github.com:yeasy/docker_practice.git + addons: ssh_known_hosts: - github.com + branches: only: - master diff --git a/CHANGELOG.md b/CHANGELOG.md index c655b8374..31a9069a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## 主要修订记录 +* 1.1.0 2019-06-30 + * 增加 `BuildKit` + * 增加 `docker manifest` 命令使用说明 + * 1.0.0: 2018-12-31 * 全面支持 v18.x 新版本 * 添加如何调试 Docker diff --git a/README.md b/README.md index e4296ea38..5adb3f52c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v18.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)](https://u.jd.com/tKZmVG) -**v1.0.0** +**v1.1.0** [Docker](https://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! @@ -40,7 +40,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 * QQ 群 VII (已满):252403484 * QQ 群 VIII(已满):544818750 * QQ 群 IX (已满):571502246 -* QQ 群 X   (可加):145983035 +* QQ 群 X (可加):145983035 >如果有问题,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new/choose) 来提出。 diff --git a/SUMMARY.md b/SUMMARY.md index 401734a70..4ab42c2b8 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -41,6 +41,8 @@ * [参考文档](image/dockerfile/references.md) * [Dockerfile 多阶段构建](image/multistage-builds/README.md) * [实战多阶段构建 Laravel 镜像](image/multistage-builds/laravel.md) + * [构建多种系统架构支持的 Docker 镜像](image/manifest.md) + * [使用 BuildKit 构建镜像](image/buildkit.md) * [其它制作镜像的方式](image/other.md) * [实现原理](image/internal.md) * [操作容器](container/README.md) diff --git a/image/buildkit.md b/image/buildkit.md new file mode 100644 index 000000000..cf82aa636 --- /dev/null +++ b/image/buildkit.md @@ -0,0 +1,178 @@ +## 使用 `BuildKit` 构建镜像 + +**BuildKit** 是下一代的镜像构建组件,在 https://github.com/moby/buildkit 开源。 + +**注意:如果您的镜像构建使用的是云服务商提供的镜像构建服务(Docker Hub 自动构建、腾讯云容器服务、阿里云容器服务等),由于上述服务提供商的 Docker 版本低于 18.09,BuildKit 无法使用,将造成镜像构建失败。建议使用 BuildKit 构建镜像时使用一个新的 Dockerfile 文件(例如 Dockerfile.buildkit)** + +**注意:docker-compose build 命令暂时不支持 BuildKit** + +下面介绍如何在 Docker CE 18.09+ 版本中使用 `BuildKit` 提供的 `Dockerfile` 新指令来更快、更安全的构建 Docker 镜像。 + +### 启用 `BuildKit` + +启用 `BuildKit` 必须先设置 **环境变量**。 + +Linux、macOS 执行如下命令: + +```bash +$ export DOCKER_BUILDKIT=1 +``` + +Windows 执行如下命令: + +```powershell +$ set $env:DOCKER_BUILDKIT=1 +``` + +> 以上是设置环境变量的临时方法,若使环境变量永久生效请读者自行设置。 + +### `Dockerfile` 新增指令详解 + +启用 `BuildKit` 之后,我们可以使用下面几个新的指令来加快镜像构建。 + +#### `RUN --mount=type=cache` + +目前,几乎所有的程序都会使用依赖管理工具,例如 `Go` 中的 `go mod`、`Node.js` 中的 `npm` 等等,当我们构建一个镜像时,往往会重复的从互联网中获取依赖包,难以缓存,大大降低了镜像的构建效率。 + +例如一个前端工程需要用到 `npm`: + +```docker +FROM node:alpine as builder + +WORKDIR /app + +COPY package.json /app/ + +RUN npm i --registry=https://registry.npm.taobao.org \ + && rm -rf ~/.npm + +COPY src /app/src + +RUN npm run build + +FROM nginx:alpine + +COPY --from=builder /app/dist /app/dist +``` + +使用多阶段构建,构建的镜像中只包含了目标文件夹 `dist`,但仍然存在一些问题,当 `package.json` 文件变动时,`RUN npm i && rm -rf ~/.npm` 这一层会重新执行,变更多次后,生成了大量的中间层镜像。 + +为解决这个问题,进一步的我们可以设想一个类似 **数据卷** 的功能,在镜像构建时把 `node_modules` 文件夹挂载上去,在构建完成后,这个 `node_modules` 文件夹会自动卸载,实际的镜像中并不包含 `node_modules` 这个文件夹,这样我们就省去了每次获取依赖的时间,大大增加了镜像构建效率,同时也避免了生成了大量的中间层镜像。 + +`BuildKit` 提供了 `RUN --mount=type=cache` 指令,可以实现上边的设想。 + +```docker +# syntax = docker/dockerfile:experimental +FROM node:alpine as builder + +WORKDIR /app + +COPY package.json /app/ + +RUN --mount=type=cache,target=/app/node_modules,id=my_app_npm_module,sharing=locked \ + --mount=type=cache,target=/root/.npm,id=npm_cache \ + npm i --registry=https://registry.npm.taobao.org + +COPY src /app/src + +RUN --mount=type=cache,target=/app/node_modules,id=my_app_npm_module,sharing=locked \ +# --mount=type=cache,target=/app/dist,id=my_app_dist,sharing=locked \ + npm run build + +FROM nginx:alpine + +# COPY --from=builder /app/dist /app/dist + +# 为了更直观的说明 from 和 source 指令,这里使用 RUN 指令 +RUN --mount=type=cache,target=/tmp/dist,from=builder,source=/app/dist \ + # --mount=type=cache,target/tmp/dist,from=my_app_dist,sharing=locked \ + mkdir -p /app/dist && cp -r /tmp/dist/* /app/dist +``` + +**由于 `BuildKit` 为实验特性,每个 `Dockerfile` 文件开头都必须加上如下指令** + +```docker +# syntax = docker/dockerfile:experimental +``` + +第一个 `RUN` 指令执行后,`id` 为 `my_app_npm_module` 的缓存文件夹挂载到了 `/app/node_modules` 文件夹中。多次执行也不会产生多个中间层镜像。 + +第二个 `RUN` 指令执行时需要用到 `node_modules` 文件夹,`node_modules` 已经挂载,命令也可以正确执行。 + +第三个 `RUN` 指令将上一阶段产生的文件复制到指定位置,`from` 指明缓存的来源,这里 `builder` 表示缓存来源于构建的第一阶段,`source` 指明缓存来源的文件夹。 + +上面的 `Dockerfile` 中 `--mount=type=cache,...` 中指令作用如下: + +|Option |Description| +|---------------------|-----------| +|`id` | `id` 设置一个标志,以便区分缓存。| +|`target` (必填项) | 缓存的挂载目标文件夹。| +|`ro`,`readonly` | 只读,缓存文件夹不能被写入。 | +|`sharing` | 有 `shared` `private` `locked` 值可供选择。`sharing` 设置当一个缓存被多次使用时的表现,由于 `BuildKit` 支持并行构建,当多个步骤使用同一缓存时(同一 `id`)会发生冲突。`shared` 表示多个步骤可以同时读写,`private` 表示当多个步骤使用同一缓存时,每个步骤使用不同的缓存,`locked` 表示当一个步骤完成释放缓存后,后一个步骤才能继续使用该缓存。| +|`from` | 缓存来源(构建阶段),不填写时为空文件夹。| +|`source` | 来源的文件夹路径。| + +#### `RUN --mount=type=bind` + +该指令可以将一个镜像(或上一构建阶段)的文件挂载到指定位置。 + +```docker +# syntax = docker/dockerfile:experimental +RUN --mount=type=bind,from=php:alpine,source=/usr/local/bin/docker-php-entrypoint,target=/docker-php-entrypoint \ + cat /docker-php-entrypoint +``` + +#### `RUN --mount=type=tmpfs` + +该指令可以将一个 `tmpfs` 文件系统挂载到指定位置。 + +```docker +# syntax = docker/dockerfile:experimental +RUN --mount=type=tmpfs,target=/temp \ + mount | grep /temp +``` + +#### `RUN --mount=type=secret` + +该指令可以将一个文件挂载到指定位置。 + +```docker +# syntax = docker/dockerfile:experimental +RUN --mount=type=secret,id=aws,target=/root/.aws/credentials \ + cat /root/.aws/credentials +``` + +```bash +$ docker build -t test --secret id=aws,src=$HOME/.aws/credentials . +``` + +#### `RUN --mount=type=ssh` + +该指令可以挂载 `ssh` 密钥。 + +```docker +# syntax = docker/dockerfile:experimental +FROM alpine +RUN apk add --no-cache openssh-client +RUN mkdir -p -m 0700 ~/.ssh && ssh-keyscan gitlab.com >> ~/.ssh/known_hosts +RUN --mount=type=ssh ssh git@gitlab.com | tee /hello +``` + +```bash +$ eval $(ssh-agent) +$ ssh-add ~/.ssh/id_rsa +(Input your passphrase here) +$ docker build -t test --ssh default=$SSH_AUTH_SOCK . +``` + +### 清理构建缓存 + +执行以下命令清理构建缓存 + +```bash +$ docker builder prune +``` + +### 官方文档 + +* https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md diff --git a/image/buildkit/README.md b/image/buildkit/README.md deleted file mode 100644 index 0fa2eaba0..000000000 --- a/image/buildkit/README.md +++ /dev/null @@ -1,13 +0,0 @@ -## BuildKit - -BuildKit 是下一代的镜像构建组件,在 https://github.com/moby/buildkit 开源。 - -下面介绍如何在 Docker CE 18.09+ 版本中使用 BuildKit 构建 Docker 镜像。 - -```bash -$ export DOCKER_BUILDKIT=1 - -# Windows - -$ set $env:DOCKER_BUILDKIT=1 -``` diff --git a/image/demo/buildkit/Dockerfile b/image/demo/buildkit/Dockerfile new file mode 100644 index 000000000..7e16bbf63 --- /dev/null +++ b/image/demo/buildkit/Dockerfile @@ -0,0 +1,16 @@ +FROM node:alpine as builder + +WORKDIR /app + +COPY package.json /app/ + +RUN npm i --registry=https://registry.npm.taobao.org \ + && rm -rf ~/.npm + +COPY src /app/src + +RUN npm run build + +FROM nginx:alpine + +COPY --from=builder /app/dist /app/dist diff --git a/image/demo/buildkit/Dockerfile.buildkit b/image/demo/buildkit/Dockerfile.buildkit new file mode 100644 index 000000000..effcfc9d6 --- /dev/null +++ b/image/demo/buildkit/Dockerfile.buildkit @@ -0,0 +1,37 @@ +# syntax = docker/dockerfile:experimental + +FROM node:alpine as builder + +WORKDIR /app + +COPY package.json /app/ + +RUN --mount=type=cache,target=/app/node_modules,id=my_app_npm_module,sharing=locked \ + --mount=type=cache,target=/root/.npm,id=npm_cache \ + npm i --registry=https://registry.npm.taobao.org + +COPY src /app/src + +RUN --mount=type=cache,target=/app/node_modules,id=my_app_npm_module,sharing=locked \ +# --mount=type=cache,target=/app/dist,id=my_app_dist,sharing=locked \ + npm run build + +FROM nginx:alpine + +# COPY --from=builder /app/dist /app/dist + +# 为了更直观的说明 from 和 source 指令,这里使用 RUN 指令 +RUN --mount=type=cache,target=/tmp/dist,from=builder,source=/app/dist \ + # --mount=type=cache,target/tmp/dist,from=my_app_dist,sharing=locked \ + mkdir -p /app/dist && cp -r /tmp/dist/* /app/dist + +RUN --mount=type=bind,from=php:alpine,source=/usr/local/bin/docker-php-entrypoint,target=/docker-php-entrypoint \ + cat /docker-php-entrypoint + +RUN --mount=type=tmpfs,target=/temp \ + mount | grep /temp + +RUN --mount=type=secret,id=aws,target=/root/.aws/credentials \ + cat /root/.aws/credentials + +# docker build -t test --secret id=aws,src=$PWD/aws.txt --progress=plain -f Dockerfile.buildkit . diff --git a/image/demo/buildkit/aws.txt b/image/demo/buildkit/aws.txt new file mode 100644 index 000000000..f400d5572 --- /dev/null +++ b/image/demo/buildkit/aws.txt @@ -0,0 +1 @@ +awskey diff --git a/image/demo/buildkit/package.json b/image/demo/buildkit/package.json new file mode 100644 index 000000000..7c2d1da96 --- /dev/null +++ b/image/demo/buildkit/package.json @@ -0,0 +1,11 @@ +{ + "name": "my_app", + "version": "19.6.0", + "devDependencies": { + "webpack": "*", + "webpack-cli": "*" + }, + "scripts": { + "build": "mkdir -p $PWD/dist && cp -r src/* dist/" + } +} diff --git a/image/demo/buildkit/src/index.js b/image/demo/buildkit/src/index.js new file mode 100644 index 000000000..296d5492b --- /dev/null +++ b/image/demo/buildkit/src/index.js @@ -0,0 +1 @@ +console.log(1); diff --git a/image/manifest.md b/image/manifest.md new file mode 100644 index 000000000..0c98c7860 --- /dev/null +++ b/image/manifest.md @@ -0,0 +1,178 @@ +## 构建多种系统架构支持的 Docker 镜像 -- docker manifest 命令详解 + +我们知道使用镜像创建一个容器,该镜像必须与 Docker 宿主机系统架构一致,例如 `Linux x86_64` 架构的系统中只能使用 `Linux x86_64` 的镜像创建容器。 + +> macOS 除外,其使用了 [binfmt_misc](https://docs.docker.com/docker-for-mac/multi-arch/) 提供了多种架构支持,在 macOS 系统上 (x86_64) 可以运行 arm 等其他架构的镜像。 + +例如我们在 `Linux x86_64` 中构建一个 `username/test` 镜像。 + +```Dockerfile +FROM alpine + +CMD echo 1 +``` + +构建镜像后推送到 Docker Hub,之后我们尝试在树莓派 `Linux arm64v8` 中使用这个镜像。 + +```bash +$ docker run -it --rm username/test +``` + +可以发现这个镜像根本获取不到。 + +要解决这个问题,通常采用的做法是通过镜像名区分不同系统架构的镜像,例如在 `Linux x86_64` 和 `Linux arm64v8` 分别构建 `username/test` 和 `username/arm64v8-test` 镜像。运行时使用对应架构的镜像即可。 + +这样做显得很繁琐,那么有没有一种方法让 Docker 引擎根据系统架构自动拉取对应的镜像呢? + +我们发现在 `Linux x86_64` 和 `Linux arm64v8` 架构的计算机中执行 `$ docker run golang:alpine go version` 时我们发现可以正确的运行。 + +这是什么原因呢? + +原因就是 `golang:alpine` 官方镜像有一个 [`manifest` 列表](https://docs.docker.com/registry/spec/manifest-v2-2/)。 + +当用户获取一个镜像时,Docker 引擎会首先查找该镜像是否有 `manifest` 列表,如果有的话 Docker 引擎会按照 Docker 运行环境(系统及架构)查找出对应镜像(例如 `golang:alpine`)。如果没有的话会直接获取镜像(例如上例中我们构建的 `username/test`)。 + +我们可以使用 `$ docker manifest inspect golang:alpine` 查看这个 `manifest` 列表的结构。 + +由于该命令属于实验特性,必须设置如下 **环境变量** 之后才能使用: + +```bash +# Linux、macOS + +$ export DOCKER_CLI_EXPERIMENTAL=enabled + +# Windows + +$ set $env:DOCKER_CLI_EXPERIMENTAL=enabled +``` + +> 以上是设置环境变量的临时方法,若使环境变量永久生效请读者自行设置。 + +设置之后,执行结果如下 + +```bash +$ docker manifest inspect golang:alpine +``` + +```json +{ + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "manifests": [ + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "size": 1365, + "digest": "sha256:5e28ac423243b187f464d635bcfe1e909f4a31c6c8bce51d0db0a1062bec9e16", + "platform": { + "architecture": "amd64", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "size": 1365, + "digest": "sha256:2945c46e26c9787da884b4065d1de64cf93a3b81ead1b949843dda1fcd458bae", + "platform": { + "architecture": "arm", + "os": "linux", + "variant": "v7" + } + }, + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "size": 1365, + "digest": "sha256:87fff60114fd3402d0c1a7ddf1eea1ded658f171749b57dc782fd33ee2d47b2d", + "platform": { + "architecture": "arm64", + "os": "linux", + "variant": "v8" + } + }, + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "size": 1365, + "digest": "sha256:607b43f1d91144f82a9433764e85eb3ccf83f73569552a49bc9788c31b4338de", + "platform": { + "architecture": "386", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "size": 1365, + "digest": "sha256:25ead0e21ed5e246ce31e274b98c09aaf548606788ef28eaf375dc8525064314", + "platform": { + "architecture": "ppc64le", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "size": 1365, + "digest": "sha256:69f5907fa93ea591175b2c688673775378ed861eeb687776669a48692bb9754d", + "platform": { + "architecture": "s390x", + "os": "linux" + } + } + ] +} +``` + +可以看出 `manifest` 列表中包含了不同系统架构所对应的镜像 `digest` 值,这样 Docker 就可以在不同的架构中使用相同的 `manifest` (例如 `golang:alpine`) 获取对应的镜像。 + +下面介绍如何使用 `$ docker manifest` 命令创建并推送 `manifest` 列表到 Docker Hub。 + +### 构建镜像 + +首先在 `Linux x86_64` 构建 `username/x8664-test` 镜像。并在 `Linux arm64v8` 中构建 `username/arm64v8-test` 镜像,构建好之后推送到 Docker Hub。 + +### 创建 `manifest` 列表 + +```bash +# $ docker manifest create MANIFEST_LIST MANIFEST [MANIFEST...] +$ docker manifest create username/test \ + username/x8664-test \ + username/arm64v8-test +``` + +当要修改一个 `manifest` 列表时,可以加入 `-a,--amend` 参数。 + +### 设置 `manifest` 列表 + +```bash +# $ docker manifest annotate [OPTIONS] MANIFEST_LIST MANIFEST +$ docker manifest annotate username/test \ + username/x8664-test \ + --os linux --arch x86_64 + +$ docker manifest annotate username/test \ + username/arm64v8-test \ + --os linux --arch arm64 --variant v8 +``` + +这样就配置好了 `manifest` 列表。 + +### 查看 `manifest` 列表 + +```bash +$ docker manifest inspect username/test +``` + +### 推送 `manifest` 列表 + +最后我们可以将其推送到 Docker Hub。 + +```bash +$ docker manifest push username/test +``` + +### 测试 + +我们在 `Linux x86_64` `Linux arm64v8` 中分别执行 `$ docker run -it --rm username/test` 命令,发现可以正确的执行。 + +### 官方博客 + +详细了解 `manifest` 可以阅读官方博客。 + +* https://blog.docker.com/2017/11/multi-arch-all-the-things/ From 44e504c6049c35f63461ced91a0e7374ed904c97 Mon Sep 17 00:00:00 2001 From: SmallTianTian Date: Mon, 15 Apr 2019 11:11:58 +0800 Subject: [PATCH 387/611] expose port. --- appendix/repo/redis.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appendix/repo/redis.md b/appendix/repo/redis.md index 9b076183b..92eb53f7d 100644 --- a/appendix/repo/redis.md +++ b/appendix/repo/redis.md @@ -11,13 +11,13 @@ 默认会在 `6379` 端口启动数据库。 ```bash -$ docker run --name some-redis -d redis +$ docker run --name some-redis -d -p 6379:6379 redis ``` 另外还可以启用 [持久存储](https://redis.io/topics/persistence)。 ```bash -$ docker run --name some-redis -d redis redis-server --appendonly yes +$ docker run --name some-redis -d -p 6379:6379 redis redis-server --appendonly yes ``` 默认数据存储位置在 `VOLUME/data`。可以使用 `--volumes-from some-volume-container` 或 `-v /docker/host/dir:/data` 将数据存放到本地。 From 8576e16b618705cb86def392d2ba272877b6330d Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 29 Apr 2019 09:26:29 +0800 Subject: [PATCH 388/611] ubuntu 14.04,debian 7 and 8 EOL --- .github/ISSUE_TEMPLATE/Bug_report.md | 6 ++--- .github/ISSUE_TEMPLATE/Custom.md | 6 ++--- CHANGELOG.md | 3 ++- advanced_network/access_control.md | 2 +- appendix/faq/README.md | 2 +- basic_concept/repository.md | 2 +- cases/os/debian.md | 1 - coreos/intro_tools.md | 2 -- image/other.md | 19 ++++++++------- install/debian.md | 36 ---------------------------- install/mirror.md | 14 ----------- install/ubuntu.md | 25 ------------------- repository/registry.md | 14 ----------- underly/ufs.md | 2 +- 14 files changed, 20 insertions(+), 114 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md index b5064b22b..f3fc58550 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -12,11 +12,9 @@ about: Create a report to help us improve * [x] Linux * [x] CentOS 7 - * [x] Ubuntu 14.04 + * [x] Fedora * [x] Ubuntu 16.04 + - * [x] Debian 7 - * [x] Debian 8 + - * [x] CoreOS + * [x] Debian 9 + * [x] macOS * [x] Windows 10 * [x] Raspberry Pi (ARM) diff --git a/.github/ISSUE_TEMPLATE/Custom.md b/.github/ISSUE_TEMPLATE/Custom.md index 20de83682..ebf5e0c09 100644 --- a/.github/ISSUE_TEMPLATE/Custom.md +++ b/.github/ISSUE_TEMPLATE/Custom.md @@ -12,11 +12,9 @@ about: Create a issue about Docker * [x] Linux * [x] CentOS 7 - * [x] Ubuntu 14.04 + * [x] Fedora * [x] Ubuntu 16.04 + - * [x] Debian 7 - * [x] Debian 8 + - * [x] CoreOS + * [x] Debian 9 + * [x] macOS * [x] Windows 10 * [x] Raspberry Pi (ARM) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31a9069a4..70430f96e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,8 @@ * 1.1.0 2019-06-30 * 增加 `BuildKit` * 增加 `docker manifest` 命令使用说明 - + * 移除 `Ubuntu 14.04` `Debian 8` `Debian 7` + * 1.0.0: 2018-12-31 * 全面支持 v18.x 新版本 * 添加如何调试 Docker diff --git a/advanced_network/access_control.md b/advanced_network/access_control.md index 90126c04c..e9fff7102 100644 --- a/advanced_network/access_control.md +++ b/advanced_network/access_control.md @@ -22,7 +22,7 @@ $sysctl -w net.ipv4.ip_forward=1 #### 访问所有端口 当启动 Docker 服务(即 dockerd)的时候,默认会添加一条转发策略到本地主机 iptables 的 FORWARD 链上。策略为通过(`ACCEPT`)还是禁止(`DROP`)取决于配置`--icc=true`(缺省值)还是 `--icc=false`。当然,如果手动指定 `--iptables=false` 则不会添加 `iptables` 规则。 -可见,默认情况下,不同容器之间是允许网络互通的。如果为了安全考虑,可以在 `/etc/docker/daemon.json` 文件中配置 `{"icc": false}` 来禁止它(Ubuntu 14.04 等使用 upstart 的系统在文件 `/etc/default/docker` 中配置 `DOCKER_OPTS=--icc=false`)。 +可见,默认情况下,不同容器之间是允许网络互通的。如果为了安全考虑,可以在 `/etc/docker/daemon.json` 文件中配置 `{"icc": false}` 来禁止它。 #### 访问指定端口 在通过 `-icc=false` 关闭网络访问后,还可以通过 `--link=CONTAINER_NAME:ALIAS` 选项来访问容器的开放端口。 diff --git a/appendix/faq/README.md b/appendix/faq/README.md index ce6cb2c21..cd91454af 100644 --- a/appendix/faq/README.md +++ b/appendix/faq/README.md @@ -100,7 +100,7 @@ $ docker run --network=my-net --ip=172.25.3.3 -itd --name=my-container busybox ### Docker 的配置文件放在哪里,如何修改配置? -答:使用 `upstart` 的系统(如 Ubuntu 14.04)的配置文件在 `/etc/default/docker`,使用 `systemd` 的系统(如 Ubuntu 16.04、Centos 等)的配置文件在 `/etc/docker/daemon.json`。 +答:使用 `systemd` 的系统(如 Ubuntu 16.04、Centos 等)的配置文件在 `/etc/docker/daemon.json`。 ### 如何更改 Docker 的默认存储位置? diff --git a/basic_concept/repository.md b/basic_concept/repository.md index 8b66b60d0..c1dae8242 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -6,7 +6,7 @@ 通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 `<仓库名>:<标签>` 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 `latest` 作为默认标签。 -以 [Ubuntu 镜像](https://hub.docker.com/_/ubuntu) 为例,`ubuntu` 是仓库的名字,其内包含有不同的版本标签,如,`16.04`, `18.04`。我们可以通过 `ubuntu:14.04`,或者 `ubuntu:18.04` 来具体指定所需哪个版本的镜像。如果忽略了标签,比如 `ubuntu`,那将视为 `ubuntu:latest`。 +以 [Ubuntu 镜像](https://hub.docker.com/_/ubuntu) 为例,`ubuntu` 是仓库的名字,其内包含有不同的版本标签,如,`16.04`, `18.04`。我们可以通过 `ubuntu:16.04`,或者 `ubuntu:18.04` 来具体指定所需哪个版本的镜像。如果忽略了标签,比如 `ubuntu`,那将视为 `ubuntu:latest`。 仓库名经常以 *两段式路径* 形式出现,比如 `jwilder/nginx-proxy`,前者往往意味着 Docker Registry 多用户环境下的用户名,后者则往往是对应的软件名。但这并非绝对,取决于所使用的具体 Docker Registry 的软件或服务。 diff --git a/cases/os/debian.md b/cases/os/debian.md index 8d0aa7688..3cdaa168a 100644 --- a/cases/os/debian.md +++ b/cases/os/debian.md @@ -56,7 +56,6 @@ crashsystems/gitlab-docker A trusted, regularly updated build of GitL. sylvainlasnier/memcached This is a Memcached 1.4.14 docker images b... 16 [OK] ubuntu-upstart Upstart is an event-based replacement for ... 16 [OK] mbentley/ubuntu-django-uwsgi-nginx 16 [OK] -ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 15 [OK] clue/ttrss The Tiny Tiny RSS feed reader allows you t... 14 [OK] dockerfile/ubuntu-desktop Trusted automated Ubuntu Desktop (LXDE) (h... 14 [OK] tutum/ubuntu Ubuntu image with SSH access. For the root... 12 [OK] diff --git a/coreos/intro_tools.md b/coreos/intro_tools.md index 0bb638396..378c09b01 100644 --- a/coreos/intro_tools.md +++ b/coreos/intro_tools.md @@ -18,5 +18,3 @@ UUID APP IMAGE NAME STATE CREATED STARTED NETWORKS ## 容器管理 第二个组件就是 `Docker`,它用来运行你的代码和应用。`CoreOS` 内置 `Docker`,具体使用请参考本书其他章节。 - -`CoreOS` 也内置了由自己开发的容器 `Rkt`,`Rkt` 不属于本书的讨论范围,这里不再赘述。 diff --git a/image/other.md b/image/other.md index 3067b25d4..8a9414795 100644 --- a/image/other.md +++ b/image/other.md @@ -8,32 +8,33 @@ 压缩包可以是本地文件、远程 Web 文件,甚至是从标准输入中得到。压缩包将会在镜像 `/` 目录展开,并直接作为镜像第一层提交。 -比如我们想要创建一个 [OpenVZ](https://openvz.org) 的 Ubuntu 14.04 [模板](https://openvz.org/Download/template/precreated)的镜像: +比如我们想要创建一个 [OpenVZ](https://openvz.org) 的 Ubuntu 16.04 [模板](https://openvz.org/Download/template/precreated)的镜像: ```bash $ docker import \ - http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz \ - openvz/ubuntu:14.04 -Downloading from http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz -sha256:f477a6e18e989839d25223f301ef738b69621c4877600ae6467c4e5289822a79B/78.42 MB + http://download.openvz.org/template/precreated/ubuntu-16.04-x86_64.tar.gz \ + openvz/ubuntu:16.04 + +Downloading from http://download.openvz.org/template/precreated/ubuntu-16.04-x86_64.tar.gz +sha256:412b8fc3e3f786dca0197834a698932b9c51b69bd8cf49e100c35d38c9879213 ``` -这条命令自动下载了 `ubuntu-14.04-x86_64-minimal.tar.gz` 文件,并且作为根文件系统展开导入,并保存为镜像 `openvz/ubuntu:14.04`。 +这条命令自动下载了 `ubuntu-16.04-x86_64.tar.gz` 文件,并且作为根文件系统展开导入,并保存为镜像 `openvz/ubuntu:16.04`。 导入成功后,我们可以用 `docker image ls` 看到这个导入的镜像: ```bash $ docker image ls openvz/ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE -openvz/ubuntu 14.04 f477a6e18e98 55 seconds ago 214.9 MB +openvz/ubuntu 16.04 412b8fc3e3f7 55 seconds ago 505MB ``` 如果我们查看其历史的话,会看到描述中有导入的文件链接: ```bash -$ docker history openvz/ubuntu:14.04 +$ docker history openvz/ubuntu:16.04 IMAGE CREATED CREATED BY SIZE COMMENT -f477a6e18e98 About a minute ago 214.9 MB Imported from http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz +f477a6e18e98 About a minute ago 214.9 MB Imported from http://download.openvz.org/template/precreated/ubuntu-16.04-x86_64.tar.gz ``` ### `docker save` 和 `docker load` diff --git a/install/debian.md b/install/debian.md index e6dd720c7..fa7f7fa5e 100644 --- a/install/debian.md +++ b/install/debian.md @@ -10,8 +10,6 @@ Docker CE 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操 * Buster 10 * Stretch 9 -* Jessie 8 (LTS) (Docker CE v18.06 及以下版本) -* Wheezy 7.7 (EOL) (Docker CE v18.03 及以下版本) #### 卸载旧版本 @@ -23,16 +21,10 @@ $ sudo apt-get remove docker \ docker.io ``` -#### Debian 7 Wheezy - -Debian 7 的内核默认为 3.2,为了满足 Docker CE 的需求,应该安装 [`backports`](https://backports.debian.org/Instructions/) 的内核。 - ### 使用 APT 安装 由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 -Debian 8 Jessie 或者 Debian 9 Stretch 使用以下命令: - ```bash $ sudo apt-get update @@ -45,20 +37,6 @@ $ sudo apt-get install \ software-properties-common ``` -Debian 7 Wheezy 使用以下命令: - -```bash -$ sudo apt-get update - -$ sudo apt-get install \ - apt-transport-https \ - ca-certificates \ - curl \ - lsb-release \ - python-software-properties - -``` - 鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。 @@ -88,14 +66,6 @@ $ sudo add-apt-repository \ >以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。 -Debian 7 需要进行额外的操作: - -编辑 `/etc/apt/sources.list` 将 deb-src 一行删除或者使用 # 注释。 - -```bash -deb-src [arch=amd64] https://download.docker.com/linux/debian wheezy stable -``` - #### 安装 Docker CE 更新 apt 软件包缓存,并安装 `docker-ce`。 @@ -124,12 +94,6 @@ $ sudo systemctl enable docker $ sudo systemctl start docker ``` -Debian 7 Wheezy 请使用以下命令启动 - -```bash -$ sudo service docker start -``` - ### 建立 docker 用户组 默认情况下,`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 diff --git a/install/mirror.md b/install/mirror.md index 31d526375..f10141a59 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -12,20 +12,6 @@ 我们以 Docker 官方加速器 `https://registry.docker-cn.com` 为例进行介绍。 -### Ubuntu 14.04、Debian 7 Wheezy - -对于使用 [upstart](http://upstart.ubuntu.com/) 的系统而言,编辑 `/etc/default/docker` 文件,在其中的 `DOCKER_OPTS` 中配置加速器地址: - -```bash -DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com" -``` - -重新启动服务。 - -```bash -$ sudo service docker restart -``` - ### Ubuntu 16.04+、Debian 8+、CentOS 7 对于使用 [systemd](https://www.freedesktop.org/wiki/Software/systemd/) 的系统,请在 `/etc/docker/daemon.json` 中写入如下内容(如果文件不存在请新建该文件) diff --git a/install/ubuntu.md b/install/ubuntu.md index b0ecd4c63..b4dc412db 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -10,7 +10,6 @@ Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作 * Bionic 18.04 (LTS) * Xenial 16.04 (LTS) -* Trusty 14.04 (LTS) (Docker CE v18.06 及以下版本) Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。 @@ -24,24 +23,6 @@ $ sudo apt-get remove docker \ docker.io ``` -#### Ubuntu 14.04 可选内核模块 - -从 Ubuntu 14.04 开始,一部分内核模块移到了可选内核模块包 (`linux-image-extra-*`) ,以减少内核软件包的体积。正常安装的系统应该会包含可选内核模块包,而一些裁剪后的系统可能会将其精简掉。`AUFS` 内核驱动属于可选内核模块的一部分,作为推荐的 Docker 存储层驱动,一般建议安装可选内核模块包以使用 `AUFS`。 - -如果系统没有安装可选内核模块的话,可以执行下面的命令来安装可选内核模块包: - -```bash -$ sudo apt-get update - -$ sudo apt-get install \ - linux-image-extra-$(uname -r) \ - linux-image-extra-virtual -``` - -#### Ubuntu 16.04 + - -Ubuntu 16.04 + 上的 Docker CE 默认使用 `overlay2` 存储层驱动,无需手动配置。 - ### 使用 APT 安装 由于 `apt` 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 @@ -114,12 +95,6 @@ $ sudo systemctl enable docker $ sudo systemctl start docker ``` -Ubuntu 14.04 请使用以下命令启动: - -```bash -$ sudo service docker start -``` - ### 建立 docker 用户组 默认情况下,`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 diff --git a/repository/registry.md b/repository/registry.md index eb8786a32..1b3e03fe7 100644 --- a/repository/registry.md +++ b/repository/registry.md @@ -97,20 +97,6 @@ REPOSITORY TAG IMAGE ID CREAT 这是因为 Docker 默认不允许非 `HTTPS` 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,或者查看下一节配置能够通过 `HTTPS` 访问的私有仓库。 -#### Ubuntu 14.04, Debian 7 Wheezy - -对于使用 `upstart` 的系统而言,编辑 `/etc/default/docker` 文件,在其中的 `DOCKER_OPTS` 中增加如下内容: - -```bash -DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com --insecure-registries=192.168.199.100:5000" -``` - -重新启动服务。 - -```bash -$ sudo service docker restart -``` - #### Ubuntu 16.04+, Debian 8+, centos 7 对于使用 `systemd` 的系统,请在 `/etc/docker/daemon.json` 中写入如下内容(如果文件不存在请新建该文件) diff --git a/underly/ufs.md b/underly/ufs.md index 5e521f312..d9251a21e 100644 --- a/underly/ufs.md +++ b/underly/ufs.md @@ -14,7 +14,7 @@ Docker 目前支持的联合文件系统包括 `OverlayFS`, `AUFS`, `Btrfs`, `VF |Linux 发行版 | Docker 推荐使用的存储驱动 | | :-- | :-- | -|Docker CE on Ubuntu | `overlay2` (Ubuntu 14.04.4 +, 16.04 +) | +|Docker CE on Ubuntu | `overlay2` (16.04 +) | |Docker CE on Debian | `overlay2` (Debian Stretch), `aufs`, `devicemapper` | |Docker CE on CentOS | `overlay2` | |Docker CE on Fedora | `overlay2` | From a17f3f6b2f3373438abcf1e77e3e34680902da0b Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Sun, 5 May 2019 19:31:06 +0800 Subject: [PATCH 389/611] Add resource --- appendix/resources.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 appendix/resources.md diff --git a/appendix/resources.md b/appendix/resources.md new file mode 100644 index 000000000..155038c3a --- /dev/null +++ b/appendix/resources.md @@ -0,0 +1,27 @@ +# 资源链接 + +## 官方网站 + +* Docker 官方主页:https://www.docker.com +* Docker 官方博客:https://blog.docker.com/ +* Docker 官方文档:https://docs.docker.com/ +* Docker Hub:https://hub.docker.com +* Docker 的源代码仓库:https://github.com/moby/moby +* Docker 发布版本历史:https://docs.docker.com/release-notes/ +* Docker 常见问题:https://docs.docker.com/engine/faq/ +* Docker 远端应用 API:https://docs.docker.com/develop/sdk/ + +## 实践参考 + +* Dockerfile 参考:https://docs.docker.com/engine/reference/builder/ +* Dockerfile 最佳实践:https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/ + +## 技术交流 + +* Docker 邮件列表: https://groups.google.com/forum/#!forum/docker-user +* Docker 的 IRC 频道:https://chat.freenode.net#docker +* Docker 的 Twitter 主页:https://twitter.com/docker + +## 其它 + +* Docker 的 StackOverflow 问答主页:https://stackoverflow.com/search?q=docker From 77c8ae525ad6c4803a84906adbd0493f349cf98d Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 7 May 2019 23:15:13 +0800 Subject: [PATCH 390/611] Buy book by wechat miniprogram [skip ci] --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 5adb3f52c..0548d2e82 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,12 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 《[Docker 技术入门与实战](https://u.jd.com/tKZmVG)》第三版已经面世,介绍最新的容器技术栈,欢迎大家阅读使用并反馈建议。 +

    + +

    + +

    微信扫码购买~

    + * [京东图书](https://u.jd.com/tKZmVG) * [China-Pub](http://product.china-pub.com/8052127) From bf04ac99a345417bb25fddfb3a834e571c9dcd60 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 7 May 2019 23:32:27 +0800 Subject: [PATCH 391/611] Update jd link [skip ci] --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0548d2e82..f6f1a27f3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Docker — 从入门到实践 -[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v18.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)](https://u.jd.com/tKZmVG) +[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v18.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS) **v1.1.0** @@ -46,9 +46,9 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 ## 进阶学习 -[![](https://github.com/yeasy/docker_practice/raw/master/_images/docker_primer3.png)](https://u.jd.com/tKZmVG) +[![](https://github.com/yeasy/docker_practice/raw/master/_images/docker_primer3.png)](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS) -《[Docker 技术入门与实战](https://u.jd.com/tKZmVG)》第三版已经面世,介绍最新的容器技术栈,欢迎大家阅读使用并反馈建议。 +《[Docker 技术入门与实战](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS)》第三版已经面世,介绍最新的容器技术栈,欢迎大家阅读使用并反馈建议。

    @@ -56,7 +56,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初

    微信扫码购买~

    -* [京东图书](https://u.jd.com/tKZmVG) +* [京东图书](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS) * [China-Pub](http://product.china-pub.com/8052127) ## 鼓励项目 From df2537b721117c024339ed478a26e3c0d48abb34 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 12 May 2019 09:41:35 +0800 Subject: [PATCH 392/611] Update cloud --- SUMMARY.md | 2 +- cloud/alicloud.md | 6 +++--- cloud/aws.md | 4 +--- cloud/qcloud.md | 11 ----------- cloud/summary.md | 1 + cloud/tencentCloud.md | 11 +++++++++++ 6 files changed, 17 insertions(+), 18 deletions(-) delete mode 100644 cloud/qcloud.md create mode 100644 cloud/tencentCloud.md diff --git a/SUMMARY.md b/SUMMARY.md index 4ab42c2b8..bced391fb 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -134,7 +134,7 @@ * [容器与云计算](cloud/README.md) * [简介](cloud/intro.md) * [亚马逊云](cloud/aws.md) - * [腾讯云](cloud/qcloud.md) + * [腾讯云](cloud/tencentCloud.md) * [阿里云](cloud/alicloud.md) * [小结](cloud/summary.md) * [实战案例-操作系统](cases/os/README.md) diff --git a/cloud/alicloud.md b/cloud/alicloud.md index b024b24e2..cf48a9508 100644 --- a/cloud/alicloud.md +++ b/cloud/alicloud.md @@ -2,10 +2,10 @@ ![阿里云](_images/aliyun-logo.png) -阿里云创立于 2009 年,是中国较早的云计算平台。阿里云致力于提供安全、可靠的计算和数据处理能力。 +[阿里云](https://www.aliyun.com?source=5176.11533457&userCode=8lx5zmtu&type=copy) 创立于 2009 年,是中国较早的云计算平台。阿里云致力于提供安全、可靠的计算和数据处理能力。 -阿里云的客户群体中,活跃着微博、知乎、魅族、锤子科技、小咖秀等一大批明星互联网公司。在天猫双 11 全球狂欢节等极富挑战的应用场景中,阿里云保持着良好的运行纪录。 +[阿里云](https://www.aliyun.com?source=5176.11533457&userCode=8lx5zmtu&type=copy) 的客户群体中,活跃着微博、知乎、魅族、锤子科技、小咖秀等一大批明星互联网公司。在天猫双 11 全球狂欢节等极富挑战的应用场景中,阿里云保持着良好的运行纪录。 -阿里云容器服务提供了高性能、可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。 +[阿里云容器服务 Kubernetes 版 ACK](https://www.aliyun.com/product/kubernetes?source=5176.11533457&userCode=8lx5zmtu&type=copy) 提供了高性能、可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。 ![](https://img.alicdn.com/tps/TB10yjtPpXXXXacXXXXXXXXXXXX-1531-1140.png) diff --git a/cloud/aws.md b/cloud/aws.md index 614bdf0ef..b73b87ad9 100644 --- a/cloud/aws.md +++ b/cloud/aws.md @@ -2,12 +2,10 @@ ![AWS](_images/aws-logo.jpg) -AWS,即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT 投入成本和维护成本。 +[AWS](https://www.amazonaws.cn),即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT 投入成本和维护成本。 自 2006 年初起,亚马逊 AWS 开始在云中为各种规模的公司提供技术服务平台。利用亚马逊 AWS,软件开发人员可以轻松购买计算、存储、数据库和其他基于 Internet 的服务来支持其应用程序。开发人员能够灵活选择任何开发平台或编程环境,以便于其尝试解决问题。由于开发人员只需按使用量付费,无需前期资本支出,亚马逊 AWS 是向最终用户交付计算资源、保存的数据和其他应用程序的一种经济划算的方式。 2015 年 AWS 正式发布了 EC2 容器服务(ECS)。ECS 的目的是让 Docker 容器变的更加简单,它提供了一个集群和编排的层,用来控制主机上的容器部署,以及部署之后的集群内的容器的生命周期管理。ECS 是诸如 Docker Swarm、Kubernetes、Mesos 等工具的替代,它们工作在同一个层,除了作为一个服务来提供。这些工具和 ECS 不同的地方在于,前者需要用户自己来部署和管理,而 ECS 是“作为服务”来提供的。 - ![AWS 容器服务](_images/ECS.jpg) - diff --git a/cloud/qcloud.md b/cloud/qcloud.md deleted file mode 100644 index 9221470a0..000000000 --- a/cloud/qcloud.md +++ /dev/null @@ -1,11 +0,0 @@ -## 腾讯云 - -![腾讯云](_images/qcloud-logo.jpg) - -腾讯云在架构方面经过多年积累,并且有着多年对海量互联网服务的经验。不管是社交、游戏还是其他领域,都有多年的成熟产品来提供产品服务。腾讯在云端完成重要部署,为开发者及企业提供云服务、云数据、云运营等整体一站式服务方案。 - -具体包括云服务器、云存储、云数据库和弹性 web 引擎等基础云服务;腾讯云分析(MTA)、腾讯云推送(信鸽)等腾讯整体大数据能力;以及 QQ互联、QQ 空间、微云、微社区等云端链接社交体系。这些正是腾讯云可以提供给这个行业的差异化优势,造就了可支持各种互联网使用场景的高品质的腾讯云技术平台。 - -腾讯云容器服务是高度可扩展的高性能容器管理服务,用户可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,将无需安装、运维、扩展用户的集群管理基础设施,只需进行简单的API调用,便可启动和停止Docker应用程序,查询集群的完整状态,以及使用各种云服务。用户可以根据用户的资源需求和可用性要求在用户的集群中安排容器的置放,满足业务或应用程序的特定要求。 - -![](https://mc.qcloudimg.com/static/img/0581dbeb97c869bbe6e62025dbc592d7/image.png) diff --git a/cloud/summary.md b/cloud/summary.md index 4de755ee3..fd3c1fb83 100644 --- a/cloud/summary.md +++ b/cloud/summary.md @@ -1,4 +1,5 @@ ## 本章小结 + 本章介绍了公有云服务对 Docker 的积极支持,以及新出现的容器云平台。 事实上,Docker 技术的出现自身就极大推动了云计算行业的发展。 diff --git a/cloud/tencentCloud.md b/cloud/tencentCloud.md new file mode 100644 index 000000000..8dfc94501 --- /dev/null +++ b/cloud/tencentCloud.md @@ -0,0 +1,11 @@ +## 腾讯云 + +![腾讯云](_images/qcloud-logo.jpg) + +[腾讯云](https://cloud.tencent.com/redirect.php?redirect=1040&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console) 在架构方面经过多年积累,并且有着多年对海量互联网服务的经验。不管是社交、游戏还是其他领域,都有多年的成熟产品来提供产品服务。腾讯在云端完成重要部署,为开发者及企业提供云服务、云数据、云运营等整体一站式服务方案。 + +具体包括 [云服务器](https://cloud.tencent.com/redirect.php?redirect=1001&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[云存储](https://cloud.tencent.com/redirect.php?redirect=1020&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[云数据库](https://cloud.tencent.com/redirect.php?redirect=1003&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console) [视频与CDN](https://cloud.tencent.com/redirect.php?redirect=1019&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、和 [域名注册](https://dnspod.cloud.tencent.com) 等基础云服务;腾讯云分析(MTA)、腾讯云推送(信鸽)等腾讯整体大数据能力;以及 QQ互联、QQ 空间、微云、微社区等云端链接社交体系。这些正是腾讯云可以提供给这个行业的差异化优势,造就了可支持各种互联网使用场景的高品质的腾讯云技术平台。 + +[腾讯云容器服务 TKE](https://cloud.tencent.com/redirect.php?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61)是高度可扩展的高性能容器管理服务,用户可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,将无需安装、运维、扩展用户的集群管理基础设施,只需进行简单的 API 调用,便可启动和停止 Docker 应用程序,查询集群的完整状态,以及使用各种云服务。用户可以根据用户的资源需求和可用性要求在用户的集群中安排容器的置放,满足业务或应用程序的特定要求。 + +![](https://mc.qcloudimg.com/static/img/0581dbeb97c869bbe6e62025dbc592d7/image.png) From 2e747fe2a5c27936ee3961baaa19bbc1f7a7544a Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 12 May 2019 09:44:17 +0800 Subject: [PATCH 393/611] [install] Update mirror: remove docker cn registry #370 --- install/mirror.md | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/install/mirror.md b/install/mirror.md index f10141a59..7fbe805ed 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -1,16 +1,16 @@ ## 镜像加速器 -国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如: +国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如: -* [Docker 官方提供的中国 registry mirror `https://registry.docker-cn.com`](https://docs.docker.com/registry/recipes/mirror/#use-case-the-china-registry-mirror) +* [Azure 中国镜像 `https://dockerhub.azk8s.cn`](https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md#22-container-registry-proxy) * [阿里云加速器(需登录账号获取)](https://cr.console.aliyun.com/cn-hangzhou/mirrors) -* [七牛云加速器 `https://reg-mirror.qiniu.com/`](https://kirk-enterprise.github.io/hub-docs/#/user-guide/mirror) +* [七牛云加速器 `https://reg-mirror.qiniu.com`](https://kirk-enterprise.github.io/hub-docs/#/user-guide/mirror) -> 当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。 +> 由于镜像服务可能出现宕机,建议同时配置多个镜像。 -> 国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。 +> 国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档。 -我们以 Docker 官方加速器 `https://registry.docker-cn.com` 为例进行介绍。 +我们以 Azure 中国镜像 `https://dockerhub.azk8s.cn` 为例进行介绍。 ### Ubuntu 16.04+、Debian 8+、CentOS 7 @@ -19,7 +19,8 @@ ```json { "registry-mirrors": [ - "https://registry.docker-cn.com" + "https://dockerhub.azk8s.cn", + "https://reg-mirror.qiniu.com" ] } ``` @@ -33,21 +34,31 @@ $ sudo systemctl daemon-reload $ sudo systemctl restart docker ``` ->注意:如果您之前查看旧教程,修改了 `docker.service` 文件内容,请去掉您添加的内容(`--registry-mirror=https://registry.docker-cn.com`),这里不再赘述。 +>注意:如果您之前查看旧教程,修改了 `docker.service` 文件内容,请去掉您添加的内容(`--registry-mirror=https://dockerhub.azk8s.cn`)。 ### Windows 10 -对于使用 Windows 10 的系统,在系统右下角托盘 Docker 图标内右键菜单选择 `Settings`,打开配置窗口后左侧导航菜单选择 `Daemon`。在 `Registry mirrors` 一栏中填写加速器地址 `https://registry.docker-cn.com`,之后点击 `Apply` 保存后 Docker 就会重启并应用配置的镜像地址了。 +对于使用 Windows 10 的系统,在系统右下角托盘 Docker 图标内右键菜单选择 `Settings`,打开配置窗口后左侧导航菜单选择 `Daemon`。在 `Registry mirrors` 一栏中填写加速器地址 `https://dockerhub.azk8s.cn`,之后点击 `Apply` 保存后 Docker 就会重启并应用配置的镜像地址了。 ### macOS -对于使用 macOS 的用户,在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址 `https://registry.docker-cn.com`。修改完成之后,点击 `Apply & Restart` 按钮,Docker 就会重启并应用配置的镜像地址了。 +对于使用 macOS 的用户,在任务栏点击 Docker Desktop 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址 `https://dockerhub.azk8s.cn`。修改完成之后,点击 `Apply & Restart` 按钮,Docker 就会重启并应用配置的镜像地址了。 ### 检查加速器是否生效 -命令行执行 `docker info`,如果从结果中看到了如下内容,说明配置成功。 +执行 `$ docker info`,如果从结果中看到了如下内容,说明配置成功。 ```bash Registry Mirrors: - https://registry.docker-cn.com/ + https://dockerhub.azk8s.cn/ +``` + +### gcr.io 镜像 + +国内无法直接获取 `gcr.io/*` 镜像,我们可以将 `gcr.io//:` 替换为 `gcr.azk8s.cn//:` ,例如 + +```bash +# docker pull gcr.io/google_containers/hyperkube-amd64:v1.9.2 + +docker pull gcr.azk8s.cn/google_containers/hyperkube-amd64:v1.9.2 ``` From 3442dab1214aad46b3a68ade281af38f76e24799 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 12 May 2019 10:14:00 +0800 Subject: [PATCH 394/611] Update cloud --- cloud/tencentCloud.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cloud/tencentCloud.md b/cloud/tencentCloud.md index 8dfc94501..38933eac1 100644 --- a/cloud/tencentCloud.md +++ b/cloud/tencentCloud.md @@ -4,8 +4,8 @@ [腾讯云](https://cloud.tencent.com/redirect.php?redirect=1040&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console) 在架构方面经过多年积累,并且有着多年对海量互联网服务的经验。不管是社交、游戏还是其他领域,都有多年的成熟产品来提供产品服务。腾讯在云端完成重要部署,为开发者及企业提供云服务、云数据、云运营等整体一站式服务方案。 -具体包括 [云服务器](https://cloud.tencent.com/redirect.php?redirect=1001&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[云存储](https://cloud.tencent.com/redirect.php?redirect=1020&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[云数据库](https://cloud.tencent.com/redirect.php?redirect=1003&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console) [视频与CDN](https://cloud.tencent.com/redirect.php?redirect=1019&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、和 [域名注册](https://dnspod.cloud.tencent.com) 等基础云服务;腾讯云分析(MTA)、腾讯云推送(信鸽)等腾讯整体大数据能力;以及 QQ互联、QQ 空间、微云、微社区等云端链接社交体系。这些正是腾讯云可以提供给这个行业的差异化优势,造就了可支持各种互联网使用场景的高品质的腾讯云技术平台。 +具体包括 [云服务器](https://cloud.tencent.com/redirect.php?redirect=1001&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[云存储](https://cloud.tencent.com/redirect.php?redirect=1020&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[云数据库](https://cloud.tencent.com/redirect.php?redirect=1003&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[视频与CDN](https://cloud.tencent.com/redirect.php?redirect=1019&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console) 和 [域名注册](https://dnspod.cloud.tencent.com) 等基础云服务;腾讯云分析(MTA)、腾讯云推送(信鸽)等腾讯整体大数据能力;以及 QQ互联、QQ 空间、微云、微社区等云端链接社交体系。这些正是腾讯云可以提供给这个行业的差异化优势,造就了可支持各种互联网使用场景的高品质的腾讯云技术平台。 -[腾讯云容器服务 TKE](https://cloud.tencent.com/redirect.php?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61)是高度可扩展的高性能容器管理服务,用户可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,将无需安装、运维、扩展用户的集群管理基础设施,只需进行简单的 API 调用,便可启动和停止 Docker 应用程序,查询集群的完整状态,以及使用各种云服务。用户可以根据用户的资源需求和可用性要求在用户的集群中安排容器的置放,满足业务或应用程序的特定要求。 +[腾讯云容器服务 TKE](https://cloud.tencent.com/redirect.php?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61) 是高度可扩展的高性能容器管理服务,用户可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,将无需安装、运维、扩展用户的集群管理基础设施,只需进行简单的 API 调用,便可启动和停止 Docker 应用程序,查询集群的完整状态,以及使用各种云服务。用户可以根据用户的资源需求和可用性要求在用户的集群中安排容器的置放,满足业务或应用程序的特定要求。 ![](https://mc.qcloudimg.com/static/img/0581dbeb97c869bbe6e62025dbc592d7/image.png) From 00ec580e748222c0a34938e78f49191826477969 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 13 May 2019 22:54:32 +0800 Subject: [PATCH 395/611] Fix gitbook build error: use page-treeview@2.9.8 --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index c9f0ea4bc..95d0b6758 100644 --- a/book.json +++ b/book.json @@ -11,7 +11,7 @@ "-livereload", "image-captions", "github", - "page-treeview", + "page-treeview@2.9.8", "editlink" ], "pluginsConfig": { From a0c767073845066fe32e2fdc49d297fc5ba0f977 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Mon, 13 May 2019 23:37:52 +0800 Subject: [PATCH 396/611] Update README [skip ci] --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f6f1a27f3..634869f48 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,10 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 -* 在线阅读:[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) -* 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD), [epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) -* [离线阅读](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) +* 在线阅读:[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[GitBook 国内镜像](https://docker_practice.gitee.io/),[GitBook 英文版国内镜像](https://docker_practice.gitee.io/us_en),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) +* 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD),[epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) +* [离线阅读 `$ docker run -it --rm -p 4000:80 dockerpracticecn/docker_practice`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) +* [英文翻译](https://github.com/yeasy/docker_practice/issues/363) Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新稳定版本的 Docker 进行学习实践。欢迎 [参与项目维护](CONTRIBUTING.md)。 From 4ed6156a03e939e07974621dd73a886c7b09f86d Mon Sep 17 00:00:00 2001 From: khs1994 Date: Tue, 14 May 2019 00:26:20 +0800 Subject: [PATCH 397/611] Add ci icon [skip ci] --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 634869f48..9c89555f0 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,12 @@ **v1.1.0** +| 语言 | 构建状态 | - | +| :------------- | :------------- | :--- | +| [zh-hans](https://github.com/yeasy/docker_practice) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/) | +| [us-en](https://github.com/yeasy/docker_practice/tree/english) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=english)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/us_en) | +| [zh-hant](https://github.com/yeasy/docker_practice/tree/zh-Hant) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=zh-hant)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/zh_hant) | + [Docker](https://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! 无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker,节约有限的生命。 From 7b02f90f09b59527bc942984dad785a4edf267f0 Mon Sep 17 00:00:00 2001 From: yongchengzhao Date: Thu, 27 Jun 2019 17:03:03 +0800 Subject: [PATCH 398/611] - Fix issue #406: Describe more correctly. --- image/list.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/list.md b/image/list.md index e7f27ddc2..d3f60b22f 100644 --- a/image/list.md +++ b/image/list.md @@ -69,7 +69,7 @@ $ docker image ls -a ### 列出部分镜像 -不加任何参数的情况下,`docker image ls` 会列出所有顶级镜像,但是有时候我们只希望列出部分镜像。`docker image ls` 有好几个参数可以帮助做到这个事情。 +不加任何参数的情况下,`docker image ls` 会列出所有顶层镜像,但是有时候我们只希望列出部分镜像。`docker image ls` 有好几个参数可以帮助做到这个事情。 根据仓库名列出镜像 From e7c1782c5142f7bf25183acb29e24ce00415f2d4 Mon Sep 17 00:00:00 2001 From: yongchengzhao Date: Fri, 28 Jun 2019 10:04:57 +0800 Subject: [PATCH 399/611] - Fix issue #408: Fix typos. --- image/rm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/rm.md b/image/rm.md index ff25e226a..d0870be49 100644 --- a/image/rm.md +++ b/image/rm.md @@ -64,7 +64,7 @@ Untagged: node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b16442 因此当我们使用上面命令删除镜像的时候,实际上是在要求删除某个标签的镜像。所以首先需要做的是将满足我们要求的所有镜像标签都取消,这就是我们看到的 `Untagged` 的信息。因为一个镜像可以对应多个标签,因此当我们删除了所指定的标签后,可能还有别的标签指向了这个镜像,如果是这种情况,那么 `Delete` 行为就不会发生。所以并非所有的 `docker image rm` 都会产生删除镜像的行为,有可能仅仅是取消了某个标签而已。 -当该镜像所有的标签都被取消了,该镜像很可能会失去了存在的意义,因此会触发删除行为。镜像是多层存储结构,因此在删除的时候也是从上层向基础层方向依次进行判断删除。镜像的多层结构让镜像复用变动非常容易,因此很有可能某个其它镜像正依赖于当前镜像的某一层。这种情况,依旧不会触发删除该层的行为。直到没有任何层依赖当前层时,才会真实的删除当前层。这就是为什么,有时候会奇怪,为什么明明没有别的标签指向这个镜像,但是它还是存在的原因,也是为什么有时候会发现所删除的层数和自己 `docker pull` 看到的层数不一样的源。 +当该镜像所有的标签都被取消了,该镜像很可能会失去了存在的意义,因此会触发删除行为。镜像是多层存储结构,因此在删除的时候也是从上层向基础层方向依次进行判断删除。镜像的多层结构让镜像复用变得非常容易,因此很有可能某个其它镜像正依赖于当前镜像的某一层。这种情况,依旧不会触发删除该层的行为。直到没有任何层依赖当前层时,才会真实的删除当前层。这就是为什么,有时候会奇怪,为什么明明没有别的标签指向这个镜像,但是它还是存在的原因,也是为什么有时候会发现所删除的层数和自己 `docker pull` 看到的层数不一样的原因。 除了镜像依赖以外,还需要注意的是容器对镜像的依赖。如果有用这个镜像启动的容器存在(即使容器没有运行),那么同样不可以删除这个镜像。之前讲过,容器是以镜像为基础,再加一层容器存储层,组成这样的多层存储结构去运行的。因此该镜像如果被这个容器所依赖的,那么删除必然会导致故障。如果这些容器是不需要的,应该先将它们删除,然后再来删除镜像。 From d14a0e0c4aa682d8550db5ffe051ad014b04471d Mon Sep 17 00:00:00 2001 From: yongchengzhao Date: Fri, 28 Jun 2019 10:16:12 +0800 Subject: [PATCH 400/611] - Fix issue #408: Fix typos. --- image/rm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/rm.md b/image/rm.md index ff25e226a..d0870be49 100644 --- a/image/rm.md +++ b/image/rm.md @@ -64,7 +64,7 @@ Untagged: node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b16442 因此当我们使用上面命令删除镜像的时候,实际上是在要求删除某个标签的镜像。所以首先需要做的是将满足我们要求的所有镜像标签都取消,这就是我们看到的 `Untagged` 的信息。因为一个镜像可以对应多个标签,因此当我们删除了所指定的标签后,可能还有别的标签指向了这个镜像,如果是这种情况,那么 `Delete` 行为就不会发生。所以并非所有的 `docker image rm` 都会产生删除镜像的行为,有可能仅仅是取消了某个标签而已。 -当该镜像所有的标签都被取消了,该镜像很可能会失去了存在的意义,因此会触发删除行为。镜像是多层存储结构,因此在删除的时候也是从上层向基础层方向依次进行判断删除。镜像的多层结构让镜像复用变动非常容易,因此很有可能某个其它镜像正依赖于当前镜像的某一层。这种情况,依旧不会触发删除该层的行为。直到没有任何层依赖当前层时,才会真实的删除当前层。这就是为什么,有时候会奇怪,为什么明明没有别的标签指向这个镜像,但是它还是存在的原因,也是为什么有时候会发现所删除的层数和自己 `docker pull` 看到的层数不一样的源。 +当该镜像所有的标签都被取消了,该镜像很可能会失去了存在的意义,因此会触发删除行为。镜像是多层存储结构,因此在删除的时候也是从上层向基础层方向依次进行判断删除。镜像的多层结构让镜像复用变得非常容易,因此很有可能某个其它镜像正依赖于当前镜像的某一层。这种情况,依旧不会触发删除该层的行为。直到没有任何层依赖当前层时,才会真实的删除当前层。这就是为什么,有时候会奇怪,为什么明明没有别的标签指向这个镜像,但是它还是存在的原因,也是为什么有时候会发现所删除的层数和自己 `docker pull` 看到的层数不一样的原因。 除了镜像依赖以外,还需要注意的是容器对镜像的依赖。如果有用这个镜像启动的容器存在(即使容器没有运行),那么同样不可以删除这个镜像。之前讲过,容器是以镜像为基础,再加一层容器存储层,组成这样的多层存储结构去运行的。因此该镜像如果被这个容器所依赖的,那么删除必然会导致故障。如果这些容器是不需要的,应该先将它们删除,然后再来删除镜像。 From b9247c16df88039378e1ac3fe524f7ca367a7f99 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 3 Jul 2019 11:47:02 +0800 Subject: [PATCH 401/611] Update compose django, Fixed #405 Signed-off-by: Kang HuaiShuai --- compose/demo/django/.gitignore | 1 + compose/demo/django/docker-compose.yml | 2 +- compose/demo/django/manage.py | 22 ---------------------- compose/demo/django/requirements.txt | 4 ++-- compose/django.md | 16 ++++++++-------- 5 files changed, 12 insertions(+), 33 deletions(-) delete mode 100755 compose/demo/django/manage.py diff --git a/compose/demo/django/.gitignore b/compose/demo/django/.gitignore index b96b637c1..dfb0c8960 100644 --- a/compose/demo/django/.gitignore +++ b/compose/demo/django/.gitignore @@ -1 +1,2 @@ django_example +manage.py diff --git a/compose/demo/django/docker-compose.yml b/compose/demo/django/docker-compose.yml index 2648aff44..d3a50353b 100644 --- a/compose/demo/django/docker-compose.yml +++ b/compose/demo/django/docker-compose.yml @@ -6,7 +6,7 @@ services: web: build: . - command: python3 manage.py runserver 0.0.0.0:8000 + command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: diff --git a/compose/demo/django/manage.py b/compose/demo/django/manage.py deleted file mode 100755 index cb1918205..000000000 --- a/compose/demo/django/manage.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python -import os -import sys - -if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_example.settings") - try: - from django.core.management import execute_from_command_line - except ImportError: - # The above import may fail for some other reason. Ensure that the - # issue is really that Django is missing to avoid masking other - # exceptions on Python 2. - try: - import django - except ImportError: - raise ImportError( - "Couldn't import Django. Are you sure it's installed and " - "available on your PYTHONPATH environment variable? Did you " - "forget to activate a virtual environment?" - ) - raise - execute_from_command_line(sys.argv) diff --git a/compose/demo/django/requirements.txt b/compose/demo/django/requirements.txt index 71d0fbc9e..db36fdb48 100644 --- a/compose/demo/django/requirements.txt +++ b/compose/demo/django/requirements.txt @@ -1,2 +1,2 @@ -Django>=1.8,<2.0 -psycopg2 +Django>=2.0,<3.0 +psycopg2>=2.7,<3.0 diff --git a/compose/django.md b/compose/django.md index 7cee4d26b..a4acfa0fe 100644 --- a/compose/django.md +++ b/compose/django.md @@ -13,9 +13,9 @@ FROM python:3 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code -ADD requirements.txt /code/ +COPY requirements.txt /code/ RUN pip install -r requirements.txt -ADD . /code/ +COPY . /code/ ``` 以上内容指定应用将使用安装了 Python 以及必要依赖包的镜像。更多关于如何编写 `Dockerfile` 文件的信息可以查看 [镜像创建](../image/create.md#利用 Dockerfile 来创建镜像) 和 [ Dockerfile 使用](../dockerfile/README.md)。 @@ -23,8 +23,8 @@ ADD . /code/ 第二步,在 `requirements.txt` 文件里面写明需要安装的具体依赖包名。 ```bash -Django>=1.8,<2.0 -psycopg2 +Django>=2.0,<3.0 +psycopg2>=2.7,<3.0 ``` 第三步,`docker-compose.yml` 文件将把所有的东西关联起来。它描述了应用的构成(一个 web 服务和一个数据库)、使用的 Docker 镜像、镜像之间的连接、挂载到容器的卷,以及服务开放的端口。 @@ -38,7 +38,7 @@ services: web: build: . - command: python3 manage.py runserver 0.0.0.0:8000 + command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: @@ -47,15 +47,15 @@ services: - db ``` -查看 [`docker-compose.yml` 章节](yml_ref.md) 了解更多详细的工作机制。 +查看 [`docker-compose.yml` 章节](compose_file.md) 了解更多详细的工作机制。 现在我们就可以使用 `docker-compose run` 命令启动一个 `Django` 应用了。 ```bash -$ docker-compose run web django-admin.py startproject django_example . +$ docker-compose run web django-admin startproject django_example . ``` -Compose 会先使用 `Dockerfile` 为 web 服务创建一个镜像,接着使用这个镜像在容器里运行 `django-admin.py startproject django_example` 指令。 +由于 web 服务所使用的镜像并不存在,所以 Compose 会首先使用 `Dockerfile` 为 web 服务构建一个镜像,接着使用这个镜像在容器里运行 `django-admin startproject django_example` 指令。 这将在当前目录生成一个 `Django` 应用。 From 710c1ec4577e6003ff136d8fae4a9361f88492e8 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 3 Jul 2019 12:06:31 +0800 Subject: [PATCH 402/611] Fix dead link Signed-off-by: Kang HuaiShuai --- compose/django.md | 4 ++-- compose/rails.md | 14 +++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/compose/django.md b/compose/django.md index a4acfa0fe..ce8fd7c41 100644 --- a/compose/django.md +++ b/compose/django.md @@ -18,7 +18,7 @@ RUN pip install -r requirements.txt COPY . /code/ ``` -以上内容指定应用将使用安装了 Python 以及必要依赖包的镜像。更多关于如何编写 `Dockerfile` 文件的信息可以查看 [镜像创建](../image/create.md#利用 Dockerfile 来创建镜像) 和 [ Dockerfile 使用](../dockerfile/README.md)。 +以上内容指定应用将使用安装了 Python 以及必要依赖包的镜像。更多关于如何编写 `Dockerfile` 文件的信息可以查看 [ Dockerfile 使用](../image/dockerfile/README.md)。 第二步,在 `requirements.txt` 文件里面写明需要安装的具体依赖包名。 @@ -67,7 +67,7 @@ Dockerfile docker-compose.yml django_example manage.py 如果你的系统是 Linux,记得更改文件权限。 ```bash -sudo chown -R $USER:$USER . +$ sudo chown -R $USER:$USER . ``` 首先,我们要为应用设置好数据库的连接信息。用以下内容替换 `django_example/settings.py` 文件中 `DATABASES = ...` 定义的节点内容。 diff --git a/compose/rails.md b/compose/rails.md index 6bc1960a8..96b2bb8f5 100644 --- a/compose/rails.md +++ b/compose/rails.md @@ -17,13 +17,16 @@ ADD Gemfile /myapp/Gemfile RUN bundle install ADD . /myapp ``` -以上内容指定应用将使用安装了 Ruby、Bundler 以及其依赖件的镜像。更多关于如何编写 Dockerfile 文件的信息可以查看 [镜像创建](../image/create.md#利用 Dockerfile 来创建镜像) 和 [Dockerfile 使用](../dockerfile/README.md)。 + +以上内容指定应用将使用安装了 Ruby、Bundler 以及其依赖件的镜像。更多关于如何编写 Dockerfile 文件的信息可以查看 [Dockerfile 使用](../image/dockerfile/README.md)。 + 下一步,我们需要一个引导加载 Rails 的文件 `Gemfile` 。 等一会儿它还会被 `rails new` 命令覆盖重写。 ```bash source 'https://rubygems.org' gem 'rails', '4.0.2' ``` + 最后,`docker-compose.yml` 文件才是最神奇的地方。 `docker-compose.yml` 文件将把所有的东西关联起来。它描述了应用的构成(一个 web 服务和一个数据库)、每个镜像的来源(数据库运行在使用预定义的 PostgreSQL 镜像,web 应用侧将从本地目录创建)、镜像之间的连接,以及服务开放的端口。 ```yaml @@ -45,11 +48,13 @@ services: links: - db ``` + 所有文件就绪后,我们就可以通过使用 `docker-compose run` 命令生成应用的骨架了。 ```bash $ docker-compose run web rails new . --force --database=postgresql --skip-bundle ``` + `Compose` 会先使用 `Dockerfile` 为 web 服务创建一个镜像,接着使用这个镜像在容器里运行 `rails new ` 和它之后的命令。一旦这个命令运行完后,应该就可以看一个崭新的应用已经生成了。 ```bash @@ -60,16 +65,19 @@ Gemfile.lock condocker-compose log README.rdoc condocker-compose.ru public Rakefile db test ``` + 在新的 `Gemfile` 文件去掉加载 `therubyracer` 的行的注释,这样我们便可以使用 Javascript 运行环境: ```bash gem 'therubyracer', platforms: :ruby ``` + 现在我们已经有一个新的 `Gemfile` 文件,需要再重新创建镜像。(这个会步骤会改变 Dockerfile 文件本身,所以需要重建一次)。 ```bash $ docker-compose build ``` + 应用现在就可以启动了,但配置还未完成。Rails 默认读取的数据库目标是 `localhost` ,我们需要手动指定容器的 `db` 。同样的,还需要把用户名修改成和 postgres 镜像预定的一致。 打开最新生成的 `database.yml` 文件。用以下内容替换: @@ -87,11 +95,13 @@ test: <<: *default database: myapp_test ``` + 现在就可以启动应用了。 ```bash $ docker-compose up ``` + 如果一切正常,你应该可以看到 PostgreSQL 的输出,几秒后可以看到这样的重复信息: ```bash @@ -99,11 +109,13 @@ myapp_web_1 | [2014-01-17 17:16:29] INFO WEBrick 1.3.1 myapp_web_1 | [2014-01-17 17:16:29] INFO ruby 2.0.0 (2013-11-22) [x86_64-linux-gnu] myapp_web_1 | [2014-01-17 17:16:29] INFO WEBrick::HTTPServer#start: pid=1 port=3000 ``` + 最后, 我们需要做的是创建数据库,打开另一个终端,运行: ```bash $ docker-compose run web rake db:create ``` + 这个 web 应用已经开始在你的 docker 守护进程里面监听着 3000 端口了。 ![](../_images/docker-compose-rails-screenshot.png) From b8dc1a7b1613a2eafa8fc89884ae1bbb250d0e31 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 3 Jul 2019 12:22:22 +0800 Subject: [PATCH 403/611] Add image Signed-off-by: Kang HuaiShuai --- introduction/what.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/introduction/what.md b/introduction/what.md index 2b5b37315..84060c501 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -6,6 +6,12 @@ Docker 自开源后受到广泛的关注和讨论,至今其 [GitHub 项目](ht 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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 +![Docker 架构](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/media/docker-on-linux.png) + +> `runc` 是一个 Linux 命令行工具,用于根据 [OCI容器运行时规范](https://github.com/opencontainers/runtime-spec) 创建和运行容器。 + +> `containerd` 是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。 + Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。 下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。 @@ -14,6 +20,4 @@ Docker 在容器的基础上,进行了进一步的封装,从文件系统、 ![Docker](_images/docker.png) - - [docker-soft]:https://en.wikipedia.org/wiki/Docker_(software) From 823239010aaae0988922f7f73176c41d11acf5ab Mon Sep 17 00:00:00 2001 From: baijunyao Date: Wed, 14 Aug 2019 21:50:30 +0800 Subject: [PATCH 404/611] Use aliyun compose mirrors --- image/multistage-builds/example/laravel/Dockerfile | 2 +- image/multistage-builds/laravel.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/image/multistage-builds/example/laravel/Dockerfile b/image/multistage-builds/example/laravel/Dockerfile index c2e44b7ea..2f6913411 100644 --- a/image/multistage-builds/example/laravel/Dockerfile +++ b/image/multistage-builds/example/laravel/Dockerfile @@ -17,7 +17,7 @@ COPY database/ /app/database/ COPY composer.json /app/ RUN cd /app \ - && composer config -g repo.packagist composer https://packagist.laravel-china.org \ + && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \ && composer install \ --ignore-platform-reqs \ --no-interaction \ diff --git a/image/multistage-builds/laravel.md b/image/multistage-builds/laravel.md index 1209aecf6..e8c8f10ac 100644 --- a/image/multistage-builds/laravel.md +++ b/image/multistage-builds/laravel.md @@ -76,7 +76,7 @@ COPY database/ /app/database/ COPY composer.json composer.lock /app/ RUN cd /app \ - && composer config -g repo.packagist composer https://packagist.laravel-china.org \ + && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \ && composer install \ --ignore-platform-reqs \ --no-interaction \ @@ -184,7 +184,7 @@ COPY database/ /app/database/ COPY composer.json /app/ RUN cd /app \ - && composer config -g repo.packagist composer https://packagist.laravel-china.org \ + && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \ && composer install \ --ignore-platform-reqs \ --no-interaction \ From c075122492f4fcb139a8e3a42ab93d694fc0b45e Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 31 Aug 2019 17:47:38 +0800 Subject: [PATCH 405/611] Update project docker image name #416 --- .travis.yml | 14 ++++++++++---- .travis/Dockerfile | 2 +- .travis/book.json | 2 +- CHANGELOG.md | 5 +++-- README.md | 2 +- docker-compose.yml | 9 +++------ 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/.travis.yml b/.travis.yml index de0aad397..e3e9d033e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,14 +17,20 @@ script: after_success: - sudo chmod -R 777 _book -- echo "FROM nginx:1.13.8-alpine" >> Dockerfile + +- echo "FROM nginx:alpine" >> Dockerfile - echo "COPY _book /usr/share/nginx/html" >> Dockerfile + - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin -- docker build -t dockerpracticecn/docker_practice . -- docker run -dit --rm -p 4000:80 dockerpracticecn/docker_practice + +- docker build -t dockerpracticesig/docker_practice . +- docker run -dit --rm -p 4000:80 dockerpracticesig/docker_practice + - sleep 5 - curl 127.0.0.1:4000 -- docker push dockerpracticecn/docker_practice + +- docker push dockerpracticesig/docker_practice + - cd _book - git init - git remote add origin "$REPO" diff --git a/.travis/Dockerfile b/.travis/Dockerfile index 0a2315b8c..cee1e5e2b 100644 --- a/.travis/Dockerfile +++ b/.travis/Dockerfile @@ -1,4 +1,4 @@ -FROM node:9-alpine +FROM node:alpine ENV TZ=Asia/Shanghai diff --git a/.travis/book.json b/.travis/book.json index c9f0ea4bc..95d0b6758 100644 --- a/.travis/book.json +++ b/.travis/book.json @@ -11,7 +11,7 @@ "-livereload", "image-captions", "github", - "page-treeview", + "page-treeview@2.9.8", "editlink" ], "pluginsConfig": { diff --git a/CHANGELOG.md b/CHANGELOG.md index 70430f96e..055b45edc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,11 @@ ## 主要修订记录 -* 1.1.0 2019-06-30 +* 1.1.0 2019-12-31 + * 全面支持 v19.x 新版本 * 增加 `BuildKit` * 增加 `docker manifest` 命令使用说明 * 移除 `Ubuntu 14.04` `Debian 8` `Debian 7` - + * 1.0.0: 2018-12-31 * 全面支持 v18.x 新版本 * 添加如何调试 Docker diff --git a/README.md b/README.md index 9c89555f0..3185e3035 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ * 在线阅读:[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[GitBook 国内镜像](https://docker_practice.gitee.io/),[GitBook 英文版国内镜像](https://docker_practice.gitee.io/us_en),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD),[epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) -* [离线阅读 `$ docker run -it --rm -p 4000:80 dockerpracticecn/docker_practice`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) +* [离线阅读 `$ docker run -it --rm -p 4000:80 dockerpracticesig/docker_practice`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) * [英文翻译](https://github.com/yeasy/docker_practice/issues/363) Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新稳定版本的 Docker 进行学习实践。欢迎 [参与项目维护](CONTRIBUTING.md)。 diff --git a/docker-compose.yml b/docker-compose.yml index 509f2654f..624994749 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,8 @@ version: "3" + services: # $ docker-compose up server => up a server,Only Support Linux or macOS - server: image: yeasy/docker_practice:latest ports: @@ -19,13 +19,10 @@ services: - ./:/srv/gitbook-src command: build - # $ docker run -it --rm -p 4000:80 dockerpracticecn/docker_practice - - # $ docker up offline - + # $ docker run -it --rm -p 4000:80 dockerpracticesig/docker_practice offline: # this image build by travis ci - image: dockerpracticecn/docker_practice + image: dockerpracticesig/docker_practice ports: - 4000:80 From 8a3be4634ebf276ba8b73304ff067d99a44a10c9 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 31 Aug 2019 18:35:14 +0800 Subject: [PATCH 406/611] Update install --- install/fedora.md | 4 ++-- install/mirror.md | 4 ++-- install/raspberry-pi.md | 2 -- install/ubuntu.md | 2 ++ 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/install/fedora.md b/install/fedora.md index e398da5cc..0f235e99c 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -8,9 +8,9 @@ Docker CE 支持以下版本的 [Fedora](https://fedoraproject.org/) 操作系统: -* 26 (Docker CE v18.03 及以下版本) -* 27 * 28 +* 29 +* 30 #### 卸载旧版本 diff --git a/install/mirror.md b/install/mirror.md index 7fbe805ed..25ee0f65a 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -58,7 +58,7 @@ Registry Mirrors: 国内无法直接获取 `gcr.io/*` 镜像,我们可以将 `gcr.io//:` 替换为 `gcr.azk8s.cn//:` ,例如 ```bash -# docker pull gcr.io/google_containers/hyperkube-amd64:v1.9.2 +# $ docker pull gcr.io/google_containers/hyperkube-amd64:v1.9.2 -docker pull gcr.azk8s.cn/google_containers/hyperkube-amd64:v1.9.2 +$ docker pull gcr.azk8s.cn/google_containers/hyperkube-amd64:v1.9.2 ``` diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 2d5fffdac..4a15a035e 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -10,8 +10,6 @@ Docker CE 支持以下版本的 [Raspbian](https://www.raspberrypi.org/downloads * Raspbian Stretch -* Raspbian Jessie (Docker CE v18.06 及以下版本) - *注:* `Raspbian` 是树莓派的开发与维护机构 [树莓派基金会](http://www.raspberrypi.org/) 推荐用于树莓派的首选系统,其基于 `Debian`。 ### 使用 APT 安装 diff --git a/install/ubuntu.md b/install/ubuntu.md index b4dc412db..ad6e20060 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -8,6 +8,8 @@ Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作系统: +* Disco 19.04 +* Cosmic 18.10 * Bionic 18.04 (LTS) * Xenial 16.04 (LTS) From 5a00a6b32f3299224d21c35213c1d8059643ac31 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 31 Aug 2019 18:36:00 +0800 Subject: [PATCH 407/611] Update CI * Update drone to v1.x * Add GitHub Actions --- .drone.yml | 32 ++- .github/workflows/ci.yaml | 18 ++ .travis/docker-entrypoint.sh | 8 +- SUMMARY.md | 6 +- cases/.image/drone-github.png | Bin 87776 -> 0 bytes cases/ci/actions/README.md | 28 +++ cases/ci/demo/drone/.drone.yml | 17 -- cases/ci/demo/drone/docker-compose.yml | 35 ---- cases/ci/drone.md | 183 ------------------ cases/ci/drone/.env.example | 6 + cases/ci/drone/.gitignore | 2 + cases/ci/drone/README.md | 99 ++++++++++ cases/ci/drone/demo/.drone.yml | 19 ++ cases/ci/drone/demo/README.md | 1 + cases/ci/{demo/drone => drone/demo}/app.go | 2 +- cases/ci/drone/docker-compose.yml | 39 ++++ cases/ci/drone/install.md | 87 +++++++++ cases/ci/{travis.md => travis/README.md} | 0 .../{demo/travis => travis/demo}/.travis.yml | 0 .../{demo/travis => travis/demo}/Dockerfile | 0 20 files changed, 324 insertions(+), 258 deletions(-) create mode 100644 .github/workflows/ci.yaml delete mode 100644 cases/.image/drone-github.png create mode 100644 cases/ci/actions/README.md delete mode 100644 cases/ci/demo/drone/.drone.yml delete mode 100644 cases/ci/demo/drone/docker-compose.yml delete mode 100644 cases/ci/drone.md create mode 100644 cases/ci/drone/.env.example create mode 100644 cases/ci/drone/.gitignore create mode 100644 cases/ci/drone/README.md create mode 100644 cases/ci/drone/demo/.drone.yml create mode 100644 cases/ci/drone/demo/README.md rename cases/ci/{demo/drone => drone/demo}/app.go (55%) create mode 100644 cases/ci/drone/docker-compose.yml create mode 100644 cases/ci/drone/install.md rename cases/ci/{travis.md => travis/README.md} (100%) rename cases/ci/{demo/travis => travis/demo}/.travis.yml (100%) rename cases/ci/{demo/travis => travis/demo}/Dockerfile (100%) diff --git a/.drone.yml b/.drone.yml index 12b698e57..d4ced5486 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,17 +1,15 @@ -workspace: - base: /srv/gitbook-src - path: . -pipeline: - build: - image: yeasy/docker_practice:latest - # pull: true - environment: - - TZ=Asia/Shanghai - secrets: [key1, key2] - commands: - # - echo $${key1} - # - echo $KEY2 - - docker-entrypoint.sh build - when: - event: [push, pull_request, tag, deployment] - branch: master +kind: pipeline +type: docker +name: build +steps: + - name: build + image: yeasy/docker_practice:latest + pull: if-not-exists # always never + environment: + TZ: Asia/Shanghai + commands: + - docker-entrypoint.sh build + +trigger: + branch: + - master diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 000000000..2a9b40867 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,18 @@ +on: + push: + pull_request: + +name: CI + +jobs: + build: + name: Build GitBook + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + with: + fetch-depth: 2 + - name: Build + uses: docker://yeasy/docker_practice + with: + args: build diff --git a/.travis/docker-entrypoint.sh b/.travis/docker-entrypoint.sh index 6cb04ae04..95026b45d 100755 --- a/.travis/docker-entrypoint.sh +++ b/.travis/docker-entrypoint.sh @@ -6,12 +6,14 @@ if [ $1 = "sh" ];then sh ; exit 0; fi rm -rf node_modules _book -cp -a . ../gitbook +srcDir=$PWD -cd ../gitbook +cp -a . /srv/gitbook + +cd /srv/gitbook main(){ - if [ "$1" = build ];then gitbook build; cp -a _book ../gitbook-src; echo $START; date "+%F %T"; exit 0; fi + if [ "$1" = build ];then gitbook build; cp -a _book $srcDir; echo $START; date "+%F %T"; exit 0; fi exec gitbook serve exit 0 } diff --git a/SUMMARY.md b/SUMMARY.md index bced391fb..832d6bc99 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -144,8 +144,10 @@ * [CentOS Fedora](cases/os/centos.md) * [本章小结](cases/os/summary.md) * [实战案例-CI/CD](cases/ci/README.md) - * [Drone](cases/ci/drone.md) - * [Travis CI](cases/ci/travis.md) + * [GitHub Actions](cases/ci/actions/README.md) + * [Drone](cases/ci/drone/README.md) + * [部署 Drone](cases/ci/drone/install.md) + * [Travis CI](cases/ci/travis/README.md) * [Docker 开源项目](opensource/README.md) * [LinuxKit](opensource/linuxkit.md) * [附录](appendix/README.md) diff --git a/cases/.image/drone-github.png b/cases/.image/drone-github.png deleted file mode 100644 index 9e84569cc1789fb25bb92295ce26d7a9f3983c63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87776 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 Date: Sat, 31 Aug 2019 22:11:14 +0800 Subject: [PATCH 408/611] compose wordpress update mysql to v8.0.x #415 --- appendix/repo/nginx.md | 2 +- appendix/repo/nodejs.md | 2 +- appendix/repo/ubuntu.md | 2 +- compose/demo/wordpress/docker-compose.yml | 6 +++++- compose/wordpress.md | 6 +++++- 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/appendix/repo/nginx.md b/appendix/repo/nginx.md index e190d1068..b649a31ee 100644 --- a/appendix/repo/nginx.md +++ b/appendix/repo/nginx.md @@ -4,7 +4,7 @@ [Nginx](https://en.wikipedia.org/wiki/Nginx) 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。 -该仓库位于 `https://hub.docker.com/_/nginx/` ,提供了 Nginx 1.0 ~ 1.15.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/nginx/` ,提供了 Nginx 1.0 ~ 1.17.x 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/nodejs.md b/appendix/repo/nodejs.md index dc488707d..10b24b10d 100644 --- a/appendix/repo/nodejs.md +++ b/appendix/repo/nodejs.md @@ -4,7 +4,7 @@ [Node.js](https://en.wikipedia.org/wiki/Node.js) 是基于 JavaScript 的可扩展服务端和网络软件开发平台。 -该仓库位于 `https://hub.docker.com/_/node/` ,提供了 Node.js 0.10 ~ 11.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/node/` ,提供了 Node.js 0.10 ~ 12.x 各个版本的镜像。 ### 使用方法 diff --git a/appendix/repo/ubuntu.md b/appendix/repo/ubuntu.md index 769ff2a06..20aea1d6a 100644 --- a/appendix/repo/ubuntu.md +++ b/appendix/repo/ubuntu.md @@ -4,7 +4,7 @@ [Ubuntu](https://en.wikipedia.org/wiki/Ubuntu) 是流行的 Linux 发行版,其自带软件版本往往较新一些。 -该仓库位于 `https://hub.docker.com/_/ubuntu/` ,提供了 Ubuntu 从 12.04 ~ 18.04 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/ubuntu/` ,提供了 Ubuntu 从 12.04 ~ 19.04 各个版本的镜像。 ### 使用方法 diff --git a/compose/demo/wordpress/docker-compose.yml b/compose/demo/wordpress/docker-compose.yml index 9438e1edc..97109f88c 100644 --- a/compose/demo/wordpress/docker-compose.yml +++ b/compose/demo/wordpress/docker-compose.yml @@ -2,7 +2,11 @@ version: "3" services: db: - image: mysql:5.7 + image: mysql:8.0 + command: + - --default_authentication_plugin=mysql_native_password + - --character-set-server=utf8mb4 + - --collation-server=utf8mb4_unicode_ci volumes: - db_data:/var/lib/mysql restart: always diff --git a/compose/wordpress.md b/compose/wordpress.md index e61adcf60..7188bb35b 100644 --- a/compose/wordpress.md +++ b/compose/wordpress.md @@ -17,7 +17,11 @@ version: "3" services: db: - image: mysql:5.7 + image: mysql:8.0 + command: + - --default_authentication_plugin=mysql_native_password + - --character-set-server=utf8mb4 + - --collation-server=utf8mb4_unicode_ci volumes: - db_data:/var/lib/mysql restart: always From 6c6d2ac97320553a89312835cc4e81f35e3f4467 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sat, 31 Aug 2019 22:57:43 +0800 Subject: [PATCH 409/611] [etcd] Update to v3.4.x --- etcd/cluster.md | 6 ++-- etcd/demo/cluster/docker-compose.yml | 6 ++-- etcd/etcdctl-v2.md | 2 +- etcd/etcdctl.md | 6 ++-- etcd/install.md | 54 ++++++++++++++-------------- etcd/intro.md | 2 +- image/build.md | 2 +- 7 files changed, 38 insertions(+), 40 deletions(-) diff --git a/etcd/cluster.md b/etcd/cluster.md index fe7b27063..dc39d33ae 100644 --- a/etcd/cluster.md +++ b/etcd/cluster.md @@ -9,7 +9,7 @@ version: "3.6" services: node1: - image: quay.io/coreos/etcd + image: quay.io/coreos/etcd:v3.4.0 volumes: - node1-data:/etcd-data expose: @@ -41,7 +41,7 @@ services: - docker-etcd node2: - image: quay.io/coreos/etcd + image: quay.io/coreos/etcd:v3.4.0 volumes: - node2-data:/etcd-data networks: @@ -73,7 +73,7 @@ services: - docker-etcd node3: - image: quay.io/coreos/etcd + image: quay.io/coreos/etcd:v3.4.0 volumes: - node3-data:/etcd-data networks: diff --git a/etcd/demo/cluster/docker-compose.yml b/etcd/demo/cluster/docker-compose.yml index 2a365d576..43d7a06e9 100644 --- a/etcd/demo/cluster/docker-compose.yml +++ b/etcd/demo/cluster/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.6" services: node1: - image: quay.io/coreos/etcd + image: quay.io/coreos/etcd:v3.4.0 volumes: - node1-data:/etcd-data expose: @@ -34,7 +34,7 @@ services: - docker-etcd node2: - image: quay.io/coreos/etcd + image: quay.io/coreos/etcd:v3.4.0 volumes: - node2-data:/etcd-data networks: @@ -66,7 +66,7 @@ services: - docker-etcd node3: - image: quay.io/coreos/etcd + image: quay.io/coreos/etcd:v3.4.0 volumes: - node3-data:/etcd-data networks: diff --git a/etcd/etcdctl-v2.md b/etcd/etcdctl-v2.md index 904fc4911..6e66a9ff8 100644 --- a/etcd/etcdctl-v2.md +++ b/etcd/etcdctl-v2.md @@ -2,7 +2,7 @@ `etcdctl` 是一个命令行客户端,它能提供一些简洁的命令,供用户直接跟 `etcd` 服务打交道,而无需基于 `HTTP API` 方式。这在某些情况下将很方便,例如用户对服务进行测试或者手动修改数据库内容。我们也推荐在刚接触 `etcd` 时通过 `etcdctl` 命令来熟悉相关的操作,这些操作跟 `HTTP API` 实际上是对应的。 -`etcd` 项目二进制发行包中已经包含了 `etcdctl` 工具,没有的话,可以从 [github.com/coreos/etcd/releases](https://github.com/coreos/etcd/releases) 下载。 +`etcd` 项目二进制发行包中已经包含了 `etcdctl` 工具,没有的话,可以从 [github.com/etcd-io/etcd/releases](https://github.com/etcd-io/etcd/releases) 下载。 `etcdctl` 支持如下的命令,大体上分为数据库操作和非数据库操作两类,后面将分别进行解释。 diff --git a/etcd/etcdctl.md b/etcd/etcdctl.md index 78684311c..e9d398a74 100644 --- a/etcd/etcdctl.md +++ b/etcd/etcdctl.md @@ -2,7 +2,7 @@ `etcdctl` 是一个命令行客户端,它能提供一些简洁的命令,供用户直接跟 `etcd` 服务打交道,而无需基于 `HTTP API` 方式。这在某些情况下将很方便,例如用户对服务进行测试或者手动修改数据库内容。我们也推荐在刚接触 `etcd` 时通过 `etcdctl` 命令来熟悉相关的操作,这些操作跟 `HTTP API` 实际上是对应的。 -`etcd` 项目二进制发行包中已经包含了 `etcdctl` 工具,没有的话,可以从 [github.com/coreos/etcd/releases](https://github.com/coreos/etcd/releases) 下载。 +`etcd` 项目二进制发行包中已经包含了 `etcdctl` 工具,没有的话,可以从 [github.com/etcd-io/etcd/releases](https://github.com/etcd-io/etcd/releases) 下载。 `etcdctl` 支持如下的命令,大体上分为数据库操作和非数据库操作两类,后面将分别进行解释。 @@ -14,10 +14,10 @@ USAGE: etcdctl VERSION: - 3.2.10 + 3.4.0 API VERSION: - 3.2 + 3.4 COMMANDS: diff --git a/etcd/install.md b/etcd/install.md index ce3f67f2c..472865d48 100644 --- a/etcd/install.md +++ b/etcd/install.md @@ -1,19 +1,19 @@ ## 安装 -`etcd` 基于 `Go` 语言实现,因此,用户可以从 [项目主页](https://github.com/coreos/etcd) 下载源代码自行编译,也可以下载编译好的二进制文件,甚至直接使用制作好的 `Docker` 镜像文件来体验。 +`etcd` 基于 `Go` 语言实现,因此,用户可以从 [项目主页](https://github.com/etcd-io/etcd) 下载源代码自行编译,也可以下载编译好的二进制文件,甚至直接使用制作好的 `Docker` 镜像文件来体验。 ->注意:本章节内容基于 etcd `3.x` 版本 +>注意:本章节内容基于 etcd `3.4.x` 版本 ### 二进制文件方式下载 -编译好的二进制文件都在 [github.com/coreos/etcd/releases](https://github.com/coreos/etcd/releases/) 页面,用户可以选择需要的版本,或通过下载工具下载。 +编译好的二进制文件都在 [github.com/etcd-io/etcd/releases](https://github.com/etcd-io/etcd/releases/) 页面,用户可以选择需要的版本,或通过下载工具下载。 例如,使用 `curl` 工具下载压缩包,并解压。 ```bash -$ curl -L https://github.com/coreos/etcd/releases/download/v3.2.10/etcd-v3.2.10-linux-amd64.tar.gz -o etcd-v3.2.10-linux-amd64.tar.gz -$ tar xzvf etcd-v3.2.10-linux-amd64.tar.gz -$ cd etcd-v3.2.10-linux-amd64 +$ curl -L https://github.com/etcd-io/etcd/releases/download/v3.4.0/etcd-v3.4.0-linux-amd64.tar.gz -o etcd-v3.4.0-linux-amd64.tar.gz +$ tar xzvf etcd-v3.4.0-linux-amd64.tar.gz +$ cd etcd-v3.4.0-linux-amd64 ``` 解压后,可以看到文件包括 @@ -35,14 +35,7 @@ $ sudo cp etcd* /usr/local/bin/ ```bash $ etcd -2017-12-03 11:18:34.406082 I | etcdmain: etcd Version: 3.2.10 -2017-12-03 11:18:34.406226 I | etcdmain: Git SHA: GitNotFound -2017-12-03 11:18:34.406235 I | etcdmain: Go Version: go1.9.2 -2017-12-03 11:18:34.406242 I | etcdmain: Go OS/Arch: darwin/amd64 -2017-12-03 11:18:34.406250 I | etcdmain: setting maximum number of CPUs to 4, total number of available CPUs is 4 -2017-12-03 11:18:34.406265 N | etcdmain: failed to detect default host (default host not supported on darwin_amd64) -2017-12-03 11:18:34.406279 W | etcdmain: no data-dir provided, using default data-dir ./default.etcd -2017-12-03 11:18:34.406457 N | etcdmain: the server is already initialized as member before, starting as etcd member... +... 2017-12-03 11:18:34.411579 I | embed: listening for peers on http://localhost:2380 2017-12-03 11:18:34.411938 I | embed: listening for client requests on localhost:2379 ``` @@ -68,22 +61,27 @@ hello world 镜像名称为 `quay.io/coreos/etcd`,可以通过下面的命令启动 `etcd` 服务监听到 `2379` 和 `2380` 端口。 ```bash -$ export NODE1=192.168.1.21 - -$ docker run --name etcd \ - -p 2379:2379 \ - -p 2380:2380 \ - --volume=etcd-data:/etcd-data \ - quay.io/coreos/etcd:latest \ - /usr/local/bin/etcd \ - --data-dir=/etcd-data --name node1 \ - --initial-advertise-peer-urls http://${NODE1}:2380 --listen-peer-urls http://0.0.0.0:2380 \ - --advertise-client-urls http://${NODE1}:2379 --listen-client-urls http://0.0.0.0:2379 \ - --initial-cluster node1=http://${NODE1}:2380 +$ docker run \ +-p 2379:2379 \ +-p 2380:2380 \ +--mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \ +--name etcd-gcr-v3.4.0 \ +quay.io/coreos/etcd:v3.4.0 \ +/usr/local/bin/etcd \ +--name s1 \ +--data-dir /etcd-data \ +--listen-client-urls http://0.0.0.0:2379 \ +--advertise-client-urls http://0.0.0.0:2379 \ +--listen-peer-urls http://0.0.0.0:2380 \ +--initial-advertise-peer-urls http://0.0.0.0:2380 \ +--initial-cluster s1=http://0.0.0.0:2380 \ +--initial-cluster-token tkn \ +--initial-cluster-state new \ +--log-level info \ +--logger zap \ +--log-outputs stderr ``` ->注意:etcd 官方标注 `quay.io/coreos/etcd` 即将废弃,启用新的 `gcr.io/etcd-development/etcd` 镜像,但后者由于网络原因,国内不能下载到该镜像,这里仍然使用前者作为演示。 - 打开新的终端按照上一步的方法测试 `etcd` 是否成功启动。 ### macOS 中运行 diff --git a/etcd/intro.md b/etcd/intro.md index 95f8ba957..186209192 100644 --- a/etcd/intro.md +++ b/etcd/intro.md @@ -4,7 +4,7 @@ `etcd` 是 `CoreOS` 团队于 2013 年 6 月发起的开源项目,它的目标是构建一个高可用的分布式键值(`key-value`)数据库,基于 `Go` 语言实现。我们知道,在分布式系统中,各种服务的配置信息的管理分享,服务的发现是一个很基本同时也是很重要的问题。`CoreOS` 项目就希望基于 `etcd` 来解决这一问题。 -`etcd` 目前在 [github.com/coreos/etcd](https://github.com/coreos/etcd) 进行维护。 +`etcd` 目前在 [github.com/etcd-io/etcd](https://github.com/etcd-io/etcd) 进行维护。 受到 [Apache ZooKeeper](https://zookeeper.apache.org/) 项目和 [doozer](https://github.com/ha/doozerd) 项目的启发,`etcd` 在设计的时候重点考虑了下面四个要素: diff --git a/image/build.md b/image/build.md index 7a74516b2..ed2ca60e0 100644 --- a/image/build.md +++ b/image/build.md @@ -40,7 +40,7 @@ FROM scratch 如果你以 `scratch` 为基础镜像的话,意味着你不以任何镜像为基础,接下来所写的指令将作为镜像第一层开始存在。 -不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,比如 [`swarm`](https://hub.docker.com/_/swarm/)、[`coreos/etcd`](https://quay.io/repository/coreos/etcd)。对于 Linux 下静态编译的程序来说,并不需要有操作系统提供运行时支持,所需的一切库都已经在可执行文件里了,因此直接 `FROM scratch` 会让镜像体积更加小巧。使用 [Go 语言](https://golang.org/) 开发的应用很多会使用这种方式来制作镜像,这也是为什么有人认为 Go 是特别适合容器微服务架构的语言的原因之一。 +不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,比如 [`swarm`](https://hub.docker.com/_/swarm/)、[`etcd`](https://quay.io/repository/coreos/etcd)。对于 Linux 下静态编译的程序来说,并不需要有操作系统提供运行时支持,所需的一切库都已经在可执行文件里了,因此直接 `FROM scratch` 会让镜像体积更加小巧。使用 [Go 语言](https://golang.org/) 开发的应用很多会使用这种方式来制作镜像,这也是为什么有人认为 Go 是特别适合容器微服务架构的语言的原因之一。 ### RUN 执行命令 From 6bca9e8dff9ccd6c385c1d50f4534c0f45dcd913 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 1 Sep 2019 14:16:10 +0800 Subject: [PATCH 410/611] Update CoreOS: remove outdated quickstart --- coreos/README.md | 2 +- coreos/intro.md | 6 +-- coreos/intro_tools.md | 7 ---- coreos/quickstart.md | 85 ------------------------------------------- 4 files changed, 3 insertions(+), 97 deletions(-) delete mode 100644 coreos/quickstart.md diff --git a/coreos/README.md b/coreos/README.md index 03f8f4eb1..90d240f8a 100644 --- a/coreos/README.md +++ b/coreos/README.md @@ -4,4 +4,4 @@ CoreOS 的设计是为你提供能够像谷歌一样的大型互联网公司一 CoreOS 的安装文件和运行依赖非常小,它提供了精简的 Linux 系统。它使用 Linux 容器在更高的抽象层来管理你的服务,而不是通过常规的 YUM 和 APT 来安装包。 -同时,CoreOS 几乎可以运行在任何平台:VirtualBox, Amazon EC2, QEMU/KVM, VMware 和 OpenStack 等等,甚至你所使用的硬件环境。 +同时,CoreOS 几乎可以运行在任何平台:`VirtualBox`, `Amazon EC2`, `QEMU/KVM`, `VMware` 和 `OpenStack` 等 。 diff --git a/coreos/intro.md b/coreos/intro.md index 23f250d0c..9b1a64da8 100644 --- a/coreos/intro.md +++ b/coreos/intro.md @@ -1,8 +1,6 @@ # CoreOS 介绍 -提起 Docker,我们不得不提的就是 [CoreOS](https://coreos.com/). - -CoreOS 对 Docker 甚至容器技术的发展都带来了巨大的推动作用。其提供了运行现代基础设施的特性,支持大规模服务部署,使得在基于最小化的现代操作系统上构建规模化的计算仓库成为了可能。 +[CoreOS](https://coreos.com/) 对 Docker 甚至容器技术的发展都带来了巨大的推动作用。其提供了运行现代基础设施的特性,支持大规模服务部署,使得在基于最小化的现代操作系统上构建规模化的计算仓库成为了可能。 # CoreOS 特性 @@ -30,4 +28,4 @@ CoreOS 可以在一个机器上很好地运行,但是它被设计用来搭建 ## 服务发现 -很容易定位服务在集群的那里运行并当发生变化时进行通知。它是复杂高动态集群必不可少的。在 CoreOS 中构建高可用和自动故障负载。 +很容易定位服务在集群的那里运行并当发生变化时进行通知。它是复杂高动态集群必不可少的。 diff --git a/coreos/intro_tools.md b/coreos/intro_tools.md index 378c09b01..9144d4826 100644 --- a/coreos/intro_tools.md +++ b/coreos/intro_tools.md @@ -6,13 +6,6 @@ `CoreOS` 的第一个重要组件就是使用 `etcd` 来实现的服务发现。在 `CoreOS` 中 `etcd` 默认以 `rkt` 容器方式运行。 -```bash -$ rkt list - -UUID APP IMAGE NAME STATE CREATED STARTED NETWORKS -57581644 etcd quay.io/coreos/etcd:v3.2.10 running 1 minute ago 1 minute ago -``` - `etcd` 使用方法请查看 [etcd 章节](../etcd/)。 ## 容器管理 diff --git a/coreos/quickstart.md b/coreos/quickstart.md deleted file mode 100644 index c584879d1..000000000 --- a/coreos/quickstart.md +++ /dev/null @@ -1,85 +0,0 @@ -# 快速搭建 CoreOS 集群 - -在这里我们要搭建一个集群环境,毕竟单机环境没有什么挑战不是? - -然后为了在你的电脑运行一个集群环境,我们使用 Vagrant。 - -*Vagrant 的使用这里不再阐述,请自行学习* - -如果你第一次接触 CoreOS 这样的分布式平台,运行一个集群看起来好像一个很复杂的任务,这里我们给你展示在本地快速搭建一个 CoreOS 集群环境是多么的容易。 - -## 准备工作 - -首先要确认在你本地的机器上已经安装了最新版本的 Virtualbox, Vagrant 和 git。 - -这是我们可以在本地模拟集群环境的前提条件,如果你已经拥有,请继续,否则自行搜索学习。 - -## 配置工作 - -从 CoreOS 官方代码库获取基本配置,并进行修改 - -首先,获取模板配置文件 - -```bash -$ git clone https://github.com/coreos/coreos-vagrant -$ cd coreos-vagrant -$ cp user-data.sample user-data -``` - -获取新的 token - -```bash -$ curl https://discovery.etcd.io/new -``` - -把获取的 token 放到 user-data 文件中,示例如下: - -```yml -#cloud-config - -coreos: - etcd: - discovery: https://discovery.etcd.io/ -``` - -## 启动集群 - -默认情况下,CoreOS Vagrantfile 将会启动单机。 - -我们需要复制并修改 config.rb.sample 文件. - -复制文件 - -```bash -cp config.rb.sample config.rb -``` - -修改集群配置参数 num_instances为3。 - -启动集群 - -```bash -vagrant up -=> -Bringing machine 'core-01' up with 'virtualbox' provider... -Bringing machine 'core-02' up with 'virtualbox' provider... -Bringing machine 'core-03' up with 'virtualbox' provider... -==> core-01: Box 'coreos-alpha' could not be found. Attempting to find and install... - core-01: Box Provider: virtualbox - core-01: Box Version: >= 0 -==> core-01: Adding box 'coreos-alpha' (v0) for provider: virtualbox - core-01: Downloading: http://storage.core-os.net/coreos/amd64-usr/alpha/coreos_production_vagrant.box - core-01: Progress: 46% (Rate: 6105k/s, Estimated time remaining: 0:00:16) -``` - -添加 ssh 的公匙 - -```bash -ssh-add ~/.vagrant.d/insecure_private_key -``` - -连接集群中的第一台机器 - -```bash -vagrant ssh core-01 -- -A -``` From 7ec38273bbfd513aa3d86e00fa1091dff99ca7d6 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 1 Sep 2019 14:46:33 +0800 Subject: [PATCH 411/611] [Compose] Update to v1.24.1 Signed-off-by: khs1994 --- .github/ISSUE_TEMPLATE/Bug_report.md | 8 ++-- .github/ISSUE_TEMPLATE/Custom.md | 8 ++-- compose/commands.md | 19 ++++++++ compose/compose_file.md | 23 ++++++++- compose/install.md | 70 +++------------------------- install/mac.md | 6 +-- manifest | 7 +++ 7 files changed, 64 insertions(+), 77 deletions(-) create mode 100644 manifest diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md index f3fc58550..8528cd1f5 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -21,11 +21,11 @@ about: Create a report to help us improve * [x] Others (Pls describe below) ### Docker Version - - + + -* [x] Edge (v18.09) -* [x] Stable (v18.09) +* [x] Edge (v19.03) +* [x] Stable (v19.03) * [x] 1.13.0 or Before ### Problem Description diff --git a/.github/ISSUE_TEMPLATE/Custom.md b/.github/ISSUE_TEMPLATE/Custom.md index ebf5e0c09..650a860b6 100644 --- a/.github/ISSUE_TEMPLATE/Custom.md +++ b/.github/ISSUE_TEMPLATE/Custom.md @@ -21,11 +21,11 @@ about: Create a issue about Docker * [x] Others (Pls describe below) ### Docker Version - - + + -* [x] Edge (v18.09) -* [x] Stable (v18.09) +* [x] Edge (v19.03) +* [x] Stable (v19.03) * [x] 1.13.0 or Before ### Problem Description diff --git a/compose/commands.md b/compose/commands.md index c444c2296..23d9c8196 100644 --- a/compose/commands.md +++ b/compose/commands.md @@ -1,6 +1,7 @@ ## Compose 命令说明 ### 命令对象与格式 + 对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器。如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响。 执行 `docker-compose [COMMAND] --help` 或者 `docker-compose help [COMMAND]` 可以查看具体某个命令的使用格式。 @@ -66,6 +67,7 @@ docker-compose [-f=...] [options] [COMMAND] [ARGS...] 列出 Compose 文件中包含的镜像。 #### `kill` + 格式为 `docker-compose kill [options] [SERVICE...]`。 通过发送 `SIGKILL` 信号来强制停止服务容器。 @@ -77,6 +79,7 @@ $ docker-compose kill -s SIGINT ``` #### `logs` + 格式为 `docker-compose logs [options] [SERVICE...]`。 查看服务容器的输出。默认情况下,docker-compose 将对不同的服务输出使用不同的颜色来区分。可以通过 `--no-color` 来关闭颜色。 @@ -84,11 +87,13 @@ $ docker-compose kill -s SIGINT 该命令在调试问题的时候十分有用。 #### `pause` + 格式为 `docker-compose pause [SERVICE...]`。 暂停一个服务容器。 #### `port` + 格式为 `docker-compose port [options] SERVICE PRIVATE_PORT`。 打印某个容器端口所映射的公共端口。 @@ -100,6 +105,7 @@ $ docker-compose kill -s SIGINT * `--index=index` 如果同一服务存在多个容器,指定命令对象容器的序号(默认为 1)。 #### `ps` + 格式为 `docker-compose ps [options] [SERVICE...]`。 列出项目中目前的所有容器。 @@ -109,6 +115,7 @@ $ docker-compose kill -s SIGINT * `-q` 只打印容器的 ID 信息。 #### `pull` + 格式为 `docker-compose pull [options] [SERVICE...]`。 拉取服务依赖的镜像。 @@ -122,6 +129,7 @@ $ docker-compose kill -s SIGINT 推送服务依赖的镜像到 Docker 镜像仓库。 #### `restart` + 格式为 `docker-compose restart [options] [SERVICE...]`。 重启项目中的服务。 @@ -131,6 +139,7 @@ $ docker-compose kill -s SIGINT * `-t, --timeout TIMEOUT` 指定重启前停止容器的超时(默认为 10 秒)。 #### `rm` + 格式为 `docker-compose rm [options] [SERVICE...]`。 删除所有(停止状态的)服务容器。推荐先执行 `docker-compose stop` 命令来停止容器。 @@ -195,6 +204,7 @@ $ docker-compose run --no-deps web python manage.py shell * `-T` 不分配伪 tty,意味着依赖 tty 的指令将无法运行。 #### `scale` + 格式为 `docker-compose scale [options] [SERVICE=NUM...]`。 设置指定服务运行的容器个数。 @@ -214,11 +224,13 @@ $ docker-compose scale web=3 db=2 * `-t, --timeout TIMEOUT` 停止容器时候的超时(默认为 10 秒)。 #### `start` + 格式为 `docker-compose start [SERVICE...]`。 启动已经存在的服务容器。 #### `stop` + 格式为 `docker-compose stop [options] [SERVICE...]`。 停止已经处于运行状态的容器,但不删除它。通过 `docker-compose start` 可以再次启动这些容器。 @@ -232,11 +244,13 @@ $ docker-compose scale web=3 db=2 查看各个服务容器内运行的进程。 #### `unpause` + 格式为 `docker-compose unpause [SERVICE...]`。 恢复处于暂停状态中的服务。 #### `up` + 格式为 `docker-compose up [options] [SERVICE...]`。 该命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。 @@ -270,6 +284,11 @@ $ docker-compose scale web=3 db=2 * `-t, --timeout TIMEOUT` 停止容器时候的超时(默认为 10 秒)。 #### `version` + 格式为 `docker-compose version`。 打印版本信息。 + +### 参考资料 + +* [官方文档](https://docs.docker.com/compose/reference/overview/) diff --git a/compose/compose_file.md b/compose/compose_file.md index f11383815..d41ea4152 100644 --- a/compose/compose_file.md +++ b/compose/compose_file.md @@ -18,7 +18,7 @@ services: 注意每个服务都必须通过 `image` 指令指定镜像或 `build` 指令(需要 Dockerfile)等来自动构建生成镜像。 -如果使用 `build` 指令,在 `Dockerfile` 中设置的选项(例如:`CMD`, `EXPOSE`, `VOLUME`, `ENV` 等) 将会自动被获取,无需在 `docker-compose.yml` 中再次设置。 +如果使用 `build` 指令,在 `Dockerfile` 中设置的选项(例如:`CMD`, `EXPOSE`, `VOLUME`, `ENV` 等) 将会自动被获取,无需在 `docker-compose.yml` 中重复设置。 下面分别介绍各个指令的用法。 @@ -460,7 +460,7 @@ sysctls: ### `volumes` -数据卷所挂载路径设置。可以设置宿主机路径 (`HOST:CONTAINER`) 或加上访问模式 (`HOST:CONTAINER:ro`)。 +数据卷所挂载路径设置。可以设置为宿主机路径(`HOST:CONTAINER`)或者数据卷名称(`VOLUME:CONTAINER`),并且可以设置访问模式 (`HOST:CONTAINER:ro`)。 该指令中路径支持相对路径。 @@ -471,6 +471,21 @@ volumes: - ~/configs:/etc/configs/:ro ``` +如果路径为数据卷名称,必须在文件中配置数据卷。 + +```yaml +version: "3" + +services: + my_src: + image: mysql:8.0 + volumes: + - mysql_data:/var/lib/mysql + +volumes: + mysql_data: +``` + ### 其它指令 此外,还有包括 `domainname, entrypoint, hostname, ipc, mac_address, privileged, read_only, shm_size, restart, stdin_open, tty, user, working_dir` 等指令,基本跟 `docker run` 中对应参数的功能一致。 @@ -557,3 +572,7 @@ MONGO_VERSION=3.6 ``` 执行 `docker-compose up` 则会启动一个 `mongo:3.6` 镜像的容器。 + +### 参考资料 + +* [官方文档](https://docs.docker.com/compose/compose-file/) diff --git a/compose/install.md b/compose/install.md index 2e72d8417..47e91a83f 100644 --- a/compose/install.md +++ b/compose/install.md @@ -4,14 +4,12 @@ `Compose` 可以通过 Python 的包管理工具 `pip` 进行安装,也可以直接下载编译好的二进制文件使用,甚至能够直接在 Docker 容器中运行。 -前两种方式是传统方式,适合本地环境下安装使用;最后一种方式则不破坏系统环境,更适合云计算场景。 - -`Docker for Mac` 、`Docker for Windows` 自带 `docker-compose` 二进制文件,安装 Docker 之后可以直接使用。 +`Docker Desktop` 自带 `docker-compose` 二进制文件,安装 Docker 之后可以直接使用。 ```bash $ docker-compose --version -docker-compose version 1.17.1, build 6d101fb +docker-compose version 1.24.1, build 4667896b ``` Linux 系统请使用以下介绍的方法安装。 @@ -23,7 +21,8 @@ Linux 系统请使用以下介绍的方法安装。 例如,在 Linux 64 位系统上直接下载对应的二进制包。 ```bash -$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose +$ sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose + $ sudo chmod +x /usr/local/bin/docker-compose ``` @@ -43,7 +42,7 @@ $ sudo pip install -U docker-compose ```bash Collecting docker-compose - Downloading docker-compose-1.17.1.tar.gz (149kB): 149kB downloaded + Downloading docker-compose-1.24.1.tar.gz (149kB): 149kB downloaded ... Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress ``` @@ -51,66 +50,9 @@ Successfully installed docker-compose cached-property requests texttable websock ### bash 补全命令 ```bash -$ curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose -``` - -### 容器中执行 - -Compose 既然是一个 Python 应用,自然也可以直接用容器来执行它。 - -```bash -$ curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose -$ chmod +x /usr/local/bin/docker-compose -``` - -实际上,查看下载的 `run.sh` 脚本内容,如下 - -```bash -set -e - -VERSION="1.8.0" -IMAGE="docker/compose:$VERSION" - - -# Setup options for connecting to docker host -if [ -z "$DOCKER_HOST" ]; then - DOCKER_HOST="/var/run/docker.sock" -fi -if [ -S "$DOCKER_HOST" ]; then - DOCKER_ADDR="-v $DOCKER_HOST:$DOCKER_HOST -e DOCKER_HOST" -else - DOCKER_ADDR="-e DOCKER_HOST -e DOCKER_TLS_VERIFY -e DOCKER_CERT_PATH" -fi - - -# Setup volume mounts for compose config and context -if [ "$(pwd)" != '/' ]; then - VOLUMES="-v $(pwd):$(pwd)" -fi -if [ -n "$COMPOSE_FILE" ]; then - compose_dir=$(dirname $COMPOSE_FILE) -fi -# TODO: also check --file argument -if [ -n "$compose_dir" ]; then - VOLUMES="$VOLUMES -v $compose_dir:$compose_dir" -fi -if [ -n "$HOME" ]; then - VOLUMES="$VOLUMES -v $HOME:$HOME -v $HOME:/root" # mount $HOME in /root to share docker.config -fi - -# Only allocate tty if we detect one -if [ -t 1 ]; then - DOCKER_RUN_OPTIONS="-t" -fi -if [ -t 0 ]; then - DOCKER_RUN_OPTIONS="$DOCKER_RUN_OPTIONS -i" -fi - -exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w "$(pwd)" $IMAGE "$@" +$ curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose ``` -可以看到,它其实是下载了 `docker/compose` 镜像并运行。 - ### 卸载 如果是二进制包方式安装的,删除二进制文件即可。 diff --git a/install/mac.md b/install/mac.md index d52916d74..5059da138 100644 --- a/install/mac.md +++ b/install/mac.md @@ -44,11 +44,11 @@ $ brew cask install docker ```bash $ docker --version -Docker version 18.09.0, build 4d60db4 +Docker version 19.03.1, build 74b1e89 $ docker-compose --version -docker-compose version 1.23.2, build 1110ad01 +docker-compose version 1.24.1, build 4667896b $ docker-machine --version -docker-machine version 0.16.0, build 702c267f +docker-machine version 0.16.1, build cce350d7 ``` 如果 `docker version`、`docker info` 都正常的话,可以尝试运行一个 [Nginx 服务器](https://hub.docker.com/_/nginx/): diff --git a/manifest b/manifest new file mode 100644 index 000000000..26541a231 --- /dev/null +++ b/manifest @@ -0,0 +1,7 @@ +DOCKER_VERSION=19.03.1 +DOCKER_COMPOSE_VERSION=1.24.1 +DOCKER_MACHINE_VERSION=0.13.0 +ETCD_VERSION=3.4.0 +KUBERNETES_VERSION=1.14.3 +UBUNTU=18.04 +DEBIAN=9 From 84c2183cc891bceee2422275a860404025ef7259 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 1 Sep 2019 14:50:40 +0800 Subject: [PATCH 412/611] [Machine] Update to v0.16.1 Signed-off-by: khs1994 --- machine/install.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/machine/install.md b/machine/install.md index 8d6dab47e..7f20908cd 100644 --- a/machine/install.md +++ b/machine/install.md @@ -4,13 +4,13 @@ Docker Machine 可以在多种操作系统平台上安装,包括 Linux、macOS ### macOS、Windows -Docker for Mac、Docker for Windows 自带 `docker-machine` 二进制包,安装之后即可使用。 +`Docker Desktop` 自带 `docker-machine` 二进制包,安装之后即可使用。 查看版本信息。 ```bash $ docker-machine -v -docker-machine version 0.13.0, build 9ba6da9 +docker-machine version 0.16.1, build cce350d7 ``` ### Linux @@ -20,7 +20,8 @@ docker-machine version 0.13.0, build 9ba6da9 例如,在 Linux 64 位系统上直接下载对应的二进制包。 ```bash -$ sudo curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine +$ sudo curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine + $ sudo chmod +x /usr/local/bin/docker-machine ``` @@ -28,5 +29,5 @@ $ sudo chmod +x /usr/local/bin/docker-machine ```bash $ docker-machine -v -docker-machine version 0.13.0, build 9ba6da9 +docker-machine version 0.16.1, build cce350d7 ``` From 8666d2683fd0b7bbc4fdd9889e4b19f191c934f1 Mon Sep 17 00:00:00 2001 From: khs1994 Date: Sun, 1 Sep 2019 15:03:32 +0800 Subject: [PATCH 413/611] Update Docker Desktop name Signed-off-by: khs1994 --- compose/install.md | 2 +- image/commit.md | 4 ++-- install/mac.md | 14 +++++++++----- install/windows.md | 12 ++++++++---- machine/install.md | 2 +- machine/usage.md | 2 +- repository/registry.md | 2 +- 7 files changed, 23 insertions(+), 15 deletions(-) diff --git a/compose/install.md b/compose/install.md index 47e91a83f..4a7ba479f 100644 --- a/compose/install.md +++ b/compose/install.md @@ -4,7 +4,7 @@ `Compose` 可以通过 Python 的包管理工具 `pip` 进行安装,也可以直接下载编译好的二进制文件使用,甚至能够直接在 Docker 容器中运行。 -`Docker Desktop` 自带 `docker-compose` 二进制文件,安装 Docker 之后可以直接使用。 +`Docker Desktop for Mac/Windows` 自带 `docker-compose` 二进制文件,安装 Docker 之后可以直接使用。 ```bash $ docker-compose --version diff --git a/image/commit.md b/image/commit.md index 2cb9008d9..37664cb68 100644 --- a/image/commit.md +++ b/image/commit.md @@ -17,7 +17,7 @@ $ docker run --name webserver -d -p 80:80 nginx 这条命令会用 `nginx` 镜像启动一个容器,命名为 `webserver`,并且映射了 80 端口,这样我们可以用浏览器去访问这个 `nginx` 服务器。 - 如果是在 Linux 本机运行的 Docker,或者如果使用的是 Docker for Mac、Docker for Windows,那么可以直接访问:;如果使用的是 Docker Toolbox,或者是在虚拟机、云服务器上安装的 Docker,则需要将 `localhost` 换为虚拟机地址或者实际云服务器地址。 + 如果是在 Linux 本机运行的 Docker,或者如果使用的是 Docker Desktop for Mac/Windows,那么可以直接访问:;如果使用的是 Docker Toolbox,或者是在虚拟机、云服务器上安装的 Docker,则需要将 `localhost` 换为虚拟机地址或者实际云服务器地址。 直接用浏览器访问的话,我们会看到默认的 Nginx 欢迎页面。 @@ -116,7 +116,7 @@ e43d811ce2f4 4 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "da docker run --name web2 -d -p 81:80 nginx:v2 ``` -这里我们命名为新的服务为 `web2`,并且映射到 `81` 端口。如果是 Docker for Mac/Windows 或 Linux 桌面的话,我们就可以直接访问 看到结果,其内容应该和之前修改后的 `webserver` 一样。 +这里我们命名为新的服务为 `web2`,并且映射到 `81` 端口。如果是 Docker Desktop for Mac/Windows 或 Linux 桌面的话,我们就可以直接访问 看到结果,其内容应该和之前修改后的 `webserver` 一样。 至此,我们第一次完成了定制镜像,使用的是 `docker commit` 命令,手动操作给旧的镜像添加了新的一层,形成新的镜像,对镜像多层存储应该有了更直观的感觉。 diff --git a/install/mac.md b/install/mac.md index 5059da138..44a571b6a 100644 --- a/install/mac.md +++ b/install/mac.md @@ -1,14 +1,14 @@ -## macOS 安装 Docker +## macOS 安装 Docker Desktop CE ### 系统要求 -[Docker for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS El Capitan 10.11。 +[Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS El Capitan 10.11。 ### 安装 #### 使用 Homebrew 安装 -[Homebrew](https://brew.sh/) 的 [Cask](https://caskroom.github.io/) 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: +[Homebrew](https://brew.sh/) 的 [Cask](https://caskroom.github.io/) 已经支持 Docker Desktop for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: ```bash $ brew cask install docker @@ -16,7 +16,7 @@ $ brew cask install docker #### 手动下载安装 -如果需要手动下载,请点击以下链接下载 [Stable](https://download.docker.com/mac/stable/Docker.dmg) 或 [Edge](https://download.docker.com/mac/edge/Docker.dmg) 版本的 Docker for Mac。 +如果需要手动下载,请点击以下链接下载 [Stable](https://download.docker.com/mac/stable/Docker.dmg) 或 [Edge](https://download.docker.com/mac/edge/Docker.dmg) 版本的 Docker Desktop for Mac。 如同 macOS 其它软件一样,安装也非常简单,双击下载的 `.dmg` 文件,然后将那只叫 [Moby](https://blog.docker.com/2013/10/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可(其间需要输入用户密码)。 @@ -57,7 +57,7 @@ docker-machine version 0.16.1, build cce350d7 $ docker run -d -p 80:80 --name webserver nginx ``` -服务运行后,可以访问 ,如果看到了 "Welcome to nginx!",就说明 Docker for Mac 安装成功了。 +服务运行后,可以访问 ,如果看到了 "Welcome to nginx!",就说明 Docker Desktop for Mac 安装成功了。 ![](_images/install-mac-example-nginx.png) @@ -71,3 +71,7 @@ $ docker rm webserver ### 镜像加速 如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 + +### 参考链接 + +* [官方文档](https://docs.docker.com/docker-for-mac/install/) diff --git a/install/windows.md b/install/windows.md index 851dac245..2caa7601c 100644 --- a/install/windows.md +++ b/install/windows.md @@ -1,14 +1,14 @@ -## Windows 10 PC 安装 Docker CE +## Windows 10 PC 安装 Docker Desktop CE ### 系统要求 -[Docker for Windows](https://docs.docker.com/docker-for-windows/install/) 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V。 +[Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/install/) 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V。 ### 安装 -点击以下链接下载 [Stable](https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe) 或 [Edge](https://download.docker.com/win/edge/Docker%20for%20Windows%20Installer.exe) 版本的 Docker for Windows。 +点击以下链接下载 [Stable](https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe) 或 [Edge](https://download.docker.com/win/edge/Docker%20Desktop%20Installer.exe) 版本的 Docker Desktop for Windows。 -下载好之后双击 Docker for Windows Installer.exe 开始安装。 +下载好之后双击 `Docker Desktop Installer.exe` 开始安装。 ### 运行 @@ -27,3 +27,7 @@ Docker CE 启动之后会在 Windows 任务栏出现鲸鱼图标。 ### 镜像加速 如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 + +### 参考链接 + +* [官方文档](https://docs.docker.com/docker-for-windows/install/) diff --git a/machine/install.md b/machine/install.md index 7f20908cd..24afd532a 100644 --- a/machine/install.md +++ b/machine/install.md @@ -4,7 +4,7 @@ Docker Machine 可以在多种操作系统平台上安装,包括 Linux、macOS ### macOS、Windows -`Docker Desktop` 自带 `docker-machine` 二进制包,安装之后即可使用。 +`Docker Desktop for Mac/Windows` 自带 `docker-machine` 二进制包,安装之后即可使用。 查看版本信息。 diff --git a/machine/usage.md b/machine/usage.md index 828067579..3330fafd9 100644 --- a/machine/usage.md +++ b/machine/usage.md @@ -50,7 +50,7 @@ $ docker-machine create \ #### Windows 10 -Windows 10 安装 Docker for Windows 之后不能再安装 VirtualBox,也就不能使用 `virtualbox` 驱动来创建 Docker Machine,我们可以选择使用 `hyperv` 驱动。 +Windows 10 安装 Docker Desktop for Windows 之后不能再安装 VirtualBox,也就不能使用 `virtualbox` 驱动来创建 Docker Machine,我们可以选择使用 `hyperv` 驱动。 > 注意,必须事先在 `Hyper-V` 管理器中新建一个 **外部虚拟交换机** 执行下面的命令时,使用 `--hyperv-virtual-switch=MY_SWITCH` 指定虚拟交换机名称 diff --git a/repository/registry.md b/repository/registry.md index 1b3e03fe7..9b11e1caa 100644 --- a/repository/registry.md +++ b/repository/registry.md @@ -116,4 +116,4 @@ REPOSITORY TAG IMAGE ID CREAT ### 其他 -对于 Docker for Windows 、 Docker for Mac 在设置中编辑 `daemon.json` 增加和上边一样的字符串即可。 +对于 Docker Desktop for Windows 、 Docker Desktop for Mac 在设置中编辑 `daemon.json` 增加和上边一样的字符串即可。 From 48718d603590308368d6cc75bb29ea79cc50e924 Mon Sep 17 00:00:00 2001 From: Kang Date: Sun, 1 Sep 2019 15:14:46 +0800 Subject: [PATCH 414/611] Fixed error Signed-off-by: Kang Huaishuai --- .travis/docker-entrypoint.sh | 2 +- SUMMARY.md | 1 - manifest | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis/docker-entrypoint.sh b/.travis/docker-entrypoint.sh index 95026b45d..fe7b61d74 100755 --- a/.travis/docker-entrypoint.sh +++ b/.travis/docker-entrypoint.sh @@ -13,7 +13,7 @@ cp -a . /srv/gitbook cd /srv/gitbook main(){ - if [ "$1" = build ];then gitbook build; cp -a _book $srcDir; echo $START; date "+%F %T"; exit 0; fi + if [ "$1" = build ];then gitbook build && cp -a _book $srcDir && echo $START && date "+%F %T" && exit 0; fi exec gitbook serve exit 0 } diff --git a/SUMMARY.md b/SUMMARY.md index 832d6bc99..322669b75 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -116,7 +116,6 @@ * [CoreOS 项目](coreos/README.md) * [简介](coreos/intro.md) * [工具](coreos/intro_tools.md) - * [快速搭建 CoreOS 集群](coreos/quickstart.md) * [Kubernetes 项目](kubernetes/README.md) * [简介](kubernetes/intro.md) * [快速上手](kubernetes/quickstart.md) diff --git a/manifest b/manifest index 26541a231..f577b1ec6 100644 --- a/manifest +++ b/manifest @@ -1,6 +1,6 @@ DOCKER_VERSION=19.03.1 DOCKER_COMPOSE_VERSION=1.24.1 -DOCKER_MACHINE_VERSION=0.13.0 +DOCKER_MACHINE_VERSION=0.16.1 ETCD_VERSION=3.4.0 KUBERNETES_VERSION=1.14.3 UBUNTU=18.04 From 4e84715725107499dd90f76150edb429cd9909f8 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 1 Sep 2019 20:05:43 +0800 Subject: [PATCH 415/611] Fixed error --- .travis/docker-entrypoint.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.travis/docker-entrypoint.sh b/.travis/docker-entrypoint.sh index fe7b61d74..21d66fc9a 100755 --- a/.travis/docker-entrypoint.sh +++ b/.travis/docker-entrypoint.sh @@ -13,9 +13,11 @@ cp -a . /srv/gitbook cd /srv/gitbook main(){ - if [ "$1" = build ];then gitbook build && cp -a _book $srcDir && echo $START && date "+%F %T" && exit 0; fi - exec gitbook serve - exit 0 + if [ "$1" = build ];then + gitbook build && cp -a _book $srcDir && echo $START && date "+%F %T" && exit 0 + else + exec gitbook serve + fi } main $1 $2 $3 From 96aa9b99debf5161acf04bfdc02dcfdc3f05f6be Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 5 Sep 2019 12:59:25 +0800 Subject: [PATCH 416/611] deploy pages to docker-practice/zh-cn Signed-off-by: Kang HuaiShuai --- .travis.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index e3e9d033e..e98d6bbb9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,7 +33,7 @@ after_success: - cd _book - git init -- git remote add origin "$REPO" +- git remote add origin "$DEPLOY_REPO" - git add . - COMMIT=`date "+%F %T"` - git commit -m "Travis CI Site updated $COMMIT" @@ -41,9 +41,8 @@ after_success: env: global: - - DEPLOY_BRANCH: pages - # - DEPLOY_BRANCH: legacy-pages - - REPO: git@github.com:yeasy/docker_practice.git + - DEPLOY_BRANCH: master + - DEPLOY_REPO: git@github.com:docker-practice/zh-cn.git addons: ssh_known_hosts: @@ -52,5 +51,3 @@ addons: branches: only: - master - - dev - # - docker-legacy From dd060d026a55193c32b3cc0e161c06dffae67006 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 5 Sep 2019 13:40:53 +0800 Subject: [PATCH 417/611] add docker-practice.com Signed-off-by: Kang HuaiShuai --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3185e3035..e4622086f 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ | 语言 | 构建状态 | - | | :------------- | :------------- | :--- | -| [zh-hans](https://github.com/yeasy/docker_practice) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/) | +| [zh-hans](https://github.com/yeasy/docker_practice) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/zh-cn) | | [us-en](https://github.com/yeasy/docker_practice/tree/english) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=english)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/us_en) | | [zh-hant](https://github.com/yeasy/docker_practice/tree/zh-Hant) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=zh-hant)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/zh_hant) | @@ -16,7 +16,7 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 -* 在线阅读:[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[GitBook 国内镜像](https://docker_practice.gitee.io/),[GitBook 英文版国内镜像](https://docker_practice.gitee.io/us_en),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) +* 在线阅读:[docker-practice.com](https://docker-practice.com/),[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[GitBook 国内镜像](https://docker_practice.gitee.io/zh-cn),[GitBook 英文版国内镜像](https://docker_practice.gitee.io/us_en),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD),[epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) * [离线阅读 `$ docker run -it --rm -p 4000:80 dockerpracticesig/docker_practice`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) * [英文翻译](https://github.com/yeasy/docker_practice/issues/363) From 49ef715e99ae57b78245e87c32908e1e87345740 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Fri, 20 Sep 2019 14:06:04 +0800 Subject: [PATCH 418/611] [install] Update settings Signed-off-by: Kang HuaiShuai --- SUMMARY.md | 2 +- .../_images/install-win-docker-app-search.png | Bin 454686 -> 12146 bytes install/mac.md | 2 +- install/mirror.md | 22 ++++++++++++++++-- install/windows.md | 2 +- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index 322669b75..64897ab19 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -17,7 +17,7 @@ * [CentOS](install/centos.md) * [Raspberry Pi](install/raspberry-pi.md) * [macOS](install/mac.md) - * [Windows PC](install/windows.md) + * [Windows 10](install/windows.md) * [镜像加速器](install/mirror.md) * [使用镜像](image/README.md) * [获取镜像](image/pull.md) diff --git a/install/_images/install-win-docker-app-search.png b/install/_images/install-win-docker-app-search.png index 02d8afaa7b5f035f011b27536bc899d89aed4e99..42361f6110ea592aea41042732fc5281194e9b6d 100644 GIT binary patch literal 12146 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 literal 454686 zcmZ6zWl$VU(6)=ayDaV!T$aUc(co@DgS)%CTW}Wl-~N zRLzf>>7K5xd#>v0XcZ+HbQBU4C@3g&Iaw(+C@2`!|3(!O!hb6yOsH`GP0+4tG7?a= z(|}VbC^0BGDRB)i==0y!^#?2NtDZhr0k2*B+?nXTXbo7X(3fG1Y6ensKgKnvwPV(q z-Q<-F5?B(da7MN@)5jUK*V5&gzU8^7;kTRr4Ygx3wM+S-ODjDOha5!NfF9I${_p5Q z|0-|$YI7wNTB$&P_;p%Pr>frU?j40%4%lGYO z&a#YPCo<_v;xXZ0sSQXx0NWshZ73)Igaskwz+k3;MM z4ILdFdfrdFk^f$^xGkA&ZEc^uEiDUC&Wn6xKB`hzku39lO1~%`{F9 z`pX#aUVH633@*Kkjnnx3C#z!vx~k1B@=?>aMQ@3e-=TzC8kU!&?%qfEO27N8dizSd z?dmu)E9>Us1oS_y_}_+z;uEcIZz}`c)3T?&gOoOj_OBGLJ;9q4yT@^E`AT`9!*|YV zm*N4s?l{@6c@;6(jMPdX8D5fVwl80noDyt!bRM^yfOglv$2%dm_ddV--`$FATJ*v( z0-2LM;12%3hkcruK}9lxi&a4qPeNvI*~kG?qlD8-nUBzqGRD@Uk8?*yM@SGEOIxWh z8$Y7t>`mQiZVhQ7mSROOy{#2*8x7|4BQK%l;BjBSTJ7p3&?8GcxOn&&<&inGZ%5QF z1`z-8|GxMCH4=h?w$llhFc0@>5hBRF*9nP)5*^$oPO0J@uh%#o=(V zp0W51C{IuY7kbUmb)gcnncqcUeI;?Yv1$Ci+HYn%Cmvd%9ttM)TM4eZ>6~8VDN2tg ze;4@wyYn+}xVI3Nw+}KGO|mi#wzHd*ZDk zPO2SshW55R-)B6eWdJD+L*w;s+|OMjXGceqq)Tt$GU|1I7%9?*Cniodo@HPD%P{A7 zw^bihX6@>qjK{9a&BuW#Cz5-s(V485X^2{0kLEbwXh6A|pX7ov7tGx<;KSox{#DTH zm}TNCY4&nfKc9IRi$7svKP+ZTWTXqN2=Y=vZbRzFYo z#N(K~iP#G{2Y5aUif;PaF`>-Uwla86I>Cgkei z8Uy}{?eFm^uf6Sy|I0?+>q3X8gSi~A!AnNSKr;z&MVN%XU zRes}Gi0-Q$-^QFwKDfBEco}}V^_NO_`nNKt-)j$d(|7L|`wa(wF20H?Pkie4eCqR- zeB?QtJ@cPGCv+)J^t71u{O0Dv2=uc}x0bwm3*etGE5%7@<-JS2{5o+gi2euqvfiOv zv+y;?>&f-ZW&Ja+gXjBi&*yy2Ercz+uvTudD!};nRL_>@p-=7Pmz=_9Gh}{VL za$9xb>4>%D!tL|N_qEE)+^w-a^|mdwk>ywsmexuEw)mCi`-k^h{~y$jwzu}*wg>gC zyd9LhT7m~PR&{XVct9o!zkyxZW%LYap zRJzriMUEZ(Psq6}zms^GfD5x(fGRzYhZLX7;+}7XV+Dy2o=W%c8%s9DYNVP)T=U*% zm@M}u#q(tDMXDFl#n8s_-|w7vm|6Lk5vGWC23tmj9l`AMNNVsIwj5ib-?=&YU4;ma zGm8EgMEls|aW@TEEs;3SR*w|Sh>hM?Eiri6lC+C=U7w*k`@ZX)dp?>vSc`yDuSNqmz!9Cp$85HE7=C- zdY+2JP9{ZMz=*i0%@T@P9dsXXc#~pIBoId%+8^MmbK=ml%&?xgCDq=^ZEGu%I4Z}gZHh4BWHa>Fd?58?mtPv$xBH<$iTX&7~y%8FSF?Wq*`} z;&!>8o1@WyAq{a?((g>a!a1D0Z-k)OK}W;6>rLu-SO3JNkI-j)DnlM%-56g9sG2JgOIP10UeyP!c-08&OpNg{RV zgC3h31LTmFHpgSoed;RVD-S*UZQrM#!y@V0m57fS+GW&)dIctEN6uWSKD=7haY6nI z#)~|>@Mz$C(maimc2j|7aC?kWRqH3cQ{=!nzkYSJHiGhAiZm)5RF zfckBT*#ZBE_5R*08$vI)M(b>3T>3Qs`*ic{!gy*8v^`npTjtYYSu~4${YWoY>k%^^kC73PEo%FS5L-$wOiOmuEuhBm>YuK%>R zSr%*V;oe4ev?)f+#;i(&;OaKNrAMqH?bLl24k)T5amUp@vtrM_^K?FXDkS)pu!yqZ*2bMIx(5Q^mfhMX)CjugOT(DH&`ABNCxHL-|(Tmbd()hSyZAn zPj@3CTu-k+HEIUjiD+>Ae{zEUam)AWi5v19cdo&f$mv9wFSl<{Gt0aFg;Mb39zqgl z1Ig|!8TjCMNp)DvhAM#q$tIQkCZ)vtdf8&F_WhJ*b*@_4j0aI3W~d`_o=s620Y7x) zhIrYy{?F<*Y+;L>o8A)88AjGQm)Yv+yFWc~8}&YA98PmuPVokQg&4jMQLhUo{HLDpFyDSkUw(Rx9w+a}+RdZJA z&GK87xRD(o4-2=6%c93ZvC0M;d=M{WM3|k3sr(>GyBYl;tLs-;uPvAiuS5MgnB%f4 zZ&EcYa_>xycUkC892!!ns+pyj)ligLoFX5JaJQ)LSszHb{u4AQ0#yzRfX5SHCu^mW z&@eODGvK#EQ`b=G_!!9FQTg}h2F4TJegG?4{sh1{h$I|p7lfFc0mSDto$UAp-Ce@; zHu?$#*;@%N&qYM=4xfoph50deojSP(wXBbLms|u(l)&o8gG(bjfMTjPi&)0S6h$g8 zB;v+e$kw#Hcm-_mTA4Ap@P;l#X@~)2pi|7uUOLB0roJnz+=8wH zitTaJMXkDJM>O4!-QyA5(A_XlQc3ZpYXe$o5l)iIz53crnMMpks}th+Eno>f>yN!P1N7sC?m@|;~y^m(EX#lIf^v9OXTC_DDQexVdTU~!?)CLGU3eo@_`99 zr%6DOow+P+x@a3R5$lt|325b6#M_j&Whu#@J^xr`k}~Gf7y8@i;pliBm3UYZ9{Tp`-#Jgl2)le6S`O9=%Bsu|NI`b5bKt2Nk7W@=sr9z-hg(_Q>>H1{Pr04COpb zCL>e5xkLg~L#~z897|l)!&`?@PmwMP6@3lu?3JI$>ObJ@ucb2&ZQb9Yh;nr*`AZ+M z^3#HH^|3;ow zqAS|m-I7p=lxLDgaS`;sS3Eoxr^4CO?%U`+K3+$VQbLt4BS8U&7?EJ3h<9W!b^y+S zu8CP%@}}HJmWe~-dt*Sp9$DIIax$SmxFg!8u73$494Q!}*ohAo=c%C3ImYY|X(_i! zRB7P-f&Pk}T%^|5a&dSh-3m_dHX#y4z-wb;O;(N)3~j{7-KSdv)}8vw3Y}%eRSOi$ z9r0hImK8C1C-nRT%vFW`N|PVRvDb_o%=tLH>bozUM$#{^Y5NH8l|jsL zWFg}TNWZuZTbvq0Q6gT|c!<@zCJbmi$a|eY0uP93jN%Gh)8^ge!&(;oo>?g#gISZ= z7b;F-qzO%0w)2rn&~XW{MX>2}JUetixyT^cZ;bWxK8pHG$w)<4T#lfAQwfV;V-V_v zI--Jn;7(5W-(F2_P;lta`3(C0jF`9?*j$s>h@HhR(~#zB2}FFG2W$A3xjr(b0@5h# zpDA+ruJqb{j5`50he0`Um?l4d@aCdfW}e3fJHw*ASO?49^iPCVx z(qq)N`J%2G<8VSaPBhBRkSK36ud7N@x8kJfShwRd6;F85by=UJvqs}83m9p>DL&;- zx1>l)^~+X0hGnFMNUl?5j1r#0!#fmln|WEUii&ACbsu7y+n=xYrn?cJszlQ`i41!c zw5$C(oC^yzN%~aNb21p?zHRNnA25GDqhjNQA*t$k3OZK9VbpWe>QmOjcTUR! zw!_NIYgy!7Lp7-)#%qIrS2za3YXzt$?j~smZOBE>k>D5m$NJ`3qvQ6GUl*%dD8^}a zovogrk!rf%u87URAa6VO9!P)6Sq^`fl3cb?1N(Ch5+`fNo7!@aEr|&i&8y@;$L}GR za~;De6f^iz!bN*#OSB4#2X|kmL{!3vT90;~?0Q7rAsa(flts3-w-5P?l1{#eN&c7! zi!pN9ED0&l#^73?D?*c_udhfZXoGN)(3Os`R^JdHSu{yuLd89}k^jAA;wb+pj6YC4 z(SgNmU+h0VuqFF)*ZCp^g*v?ypXqVU1pv@ar`BbG#x`gUdVm%?BF@gEqSp=0E_4Od zu)Q+3LX@RHQ}4y3-I}qXwh=|*+X0oVhf**^#_51+AcL6z!`L`rqo-FwUdT@$t?ifO zAL^NB1<<#}4AD~YU&@9Io9o8;fBU;F)jFK-0qWb zrJ2+UP$n?S6%&k56aCzkgilJO^JEdw7|5kYSnT2D;C&oU8|>sgf_HsHKOK7a#)|UUp<<_JKmrTwX&BZgSkh{v$taM& zdFp6R*PkE^FT!Zljv?I_ zXh#~?lGRe}6=l&8TX&v+39+UZo8=hK;3#45?FL0dT?W zCR@Kx93Ra*dq{Hx6@VJ?z+VL_FvgLG{e2$i^(ERg5{scKf6T3f)?mvdxUylSWJnmU z;dag8;*lH$q(msV($!J0f&CnUWt?F)l!l1!Mra*UtmanuFkva~VxB&Aa>8qQ9jB}} zTk!NW(9~+hte0;LTP|e>lV~U;YWIzCAV=AadKCXyTqC5a^VA58f`unlqr)$V6+z_} zOsvdG!cLOwF)eX^BbYgW-#e`Q}eyK|c1%^LMHj91vejkwMjpmxg(CzjNDU6%CE{=Y#yX%O97ls)d z9_l`VV+SpkaF|o9@6=8}P#IBvw}suyS|SVOt+M;araQW53;~{5&8{RhQ(GbuFE;6V zy=S@vC}LJ6w*rbcip`qnOvzHN8=Bk)`f)Ek1Jd_xFYZILdFy_Ug?CHi2eYuH>)vV= zD9vm~=_T4Toxw+Cu=tFpAwK5zg_&w zkpGb9#F#NAvq)wNl)3&=0n6b7?L2;ehlAPPTo^u^l_^2n{fx-KiIIlajK7TH#luV_ z`BW5<3^fCLAcr`|(E%>uncXuKxlU;vtTeMu;iB}930dR} z*4k7ygaLqgdFjCtJo8*3HuQNaB*dym^=pHz`*Vz)Jo!pU`#d;u8KZrL!Og@=n^Yg? z-vFnJ6+5nKy_v6W2V5F?7F~9@M!by`Lg-O(MO;u3(Wu+-MXazA>O~&?6`Uzh?W$2e zY`#e~*ni$(MONhetvCdv0<5&fbJ)BqG2v9647z0*m_-RcS~>?A3{|kR`y4$Ojh^k? zMk;dK=BcnUKo(h@&=9r0Po~rdmWuJlWGUUDQZK|~^OiB;-BCs?wP#u$mRQGO>S7h(pjw7jL-$S9HSKDxveD`k8iA-kw82dYSkDUcGe^p z;|6mb>j(hZ9?(1Qb}-5sL7+7MMemu331=LtYwFRUv8)E$$h~V$$UUm7e5>Q13oDj* zw<`c-HiTW|NUYrUykgy|R;$OlJ3TeSP^08SUs-(35T(X~dAh0^nLqDLpk&bs^Eo;o zz(&IRl9Oyc%#@$~mLD7sz;8B18}|k^Z%#z%?3J7#F)-eip7QzUGMg+t5J>&gA`@h= zmz4Y(NJbG&Q5?d3|6M6f@{vn!9LDbN1P$6rO>m*B>=GNSiY`wST%n`xJ_56_D6o8} z!xTU4zt5QSs02>9F^p{TX%?}j2NBQVI%5V179M-*hE@Ob`eTQaMr67uhxZmiqbRIu zy(SNH{fHlZbeDLDL?NKs7qMZL*F53o{KSsOG;wV^voypX&`>)~Ds}5JTzLy8%Cu>! zO4Mb5nqEZgo^-7t*J-RdF7B`uj2iKG?*fL+A}jdfQdJ=W%3)k?5$*Lk0k=HmylGJ* zOs&*35GRMwUSYL=5G5Bw^R$8pv~!qmpQ%sR#FVZZX3F*3e~lfs&>m^(3f$?#D3GT& zP!FDW8I~iC-1pKbsf;thh<77Y-sIGwM2~@)CIUS3xY>~QUpB@no*aHlpGqQ5;%Rm; z(UK2=fJt}z1~e&ua!34gV>=Ay%5jlJiL|%g!8Yw~&de8V(zIHTm`{|*OlaSSM`kmT zqq79~<3fp(Z96tJ>R8ZM9egL>Mbi6}>*uNofp3=p?;YqavaONqKa|FXGJ@4o5;aMgZ|V0<`c5V#7*KuJWJaQa$kiv|#1P z%-UcIlCs@BZfxgb#3M0c??+9vvBF^mol||DU2|m8uNL1(hI4zZh*FdfRRhd|KGX-} z80jGuJ$=sUe1nH*9jm1SZe1mvt}X$NJhRW&;qHBk{iVfgBXVUbw@HsC3|7Oy7WfCb zyuHo6W=X;kS(zR2{n+>d!%S4)qQ2pFQ|d(-hw!#pBUqW9m&~0x+3)kIoG7uR2@!5p z`HMlMKe;s}yyBBA4#q=3xYrIKD2d^~cIxMiQqYEEh7wqc`G6SU|Mx8FAO*9HyDH7+ zs9rc(zA2i*oBrNuoXoGNoO`M3ik87&gR(OA&?K$KFEy3d zEeIoEZsUyhd5JSx$y+^_M3u@^nRHM19?8sM0CLu%s+n!pv~$|6N|wEUO+84c8_^So z@OM+rcb6Lm?&*2{=wuKWa8pF)a$CEZKE_LtoHv+duL{wLLd|5CVRuc?9_Ow z-@ZGfWhT=co+wm|>zo}%)?CLncH27uwrI<_4p(ljM);@^4MuY1bR_=ATx8}*@ru8C z&n)rmawW3duqs1Af}trDL)K9he7+o*!C(>_xRlm{zA~5dGL9TJU0=2zlY zdcnq$j}5!BqiZAfE1=6ioiDDsyly{bT-JcV$o3a#+&J z%tJdqNIxs49qnv`rcR-%*M`FA+Ni}wXR@i@r^C@A5*mxNxE7PZwlK@yW*xP0SyJcp%u7Tjr#x%rol1T4NESK#R zMI~B09AjK+p+slA+{HC_El@4CsP_j}aa5uDkrZ7IqX$T+H;naEYF(3ac{$ut)!|E; zCz$C;6;WnjM@OT-zX)ehfIGxSieX3wbg~T93>?e4+tnHDX;XrgY;Fr~2ooR46F zj_8!yfeM+~Gs=Qf!S5b`<~7yNpUDkJkt^AgSXFVdBFzr_R(}GnrN18Bg7%g~6zpA( zz4(d#VmUCpDS_77Nvw9oW0@I;-=35)YhgeFJ1nscJ|CnjGFf3#Xb&5GMCsZsi4Ugt zJBnpuFQKBHwvIr#4MCaDl`}qeP2XM^LsUM?i8Bsipi@Vy4m$Mo=Eto~reXJ%6uFpB zd@CHV(39*~ySDEfGRN9aG?W*ro^(%gbK-p=;r1RHkG8!YUZ%XPT#Z$y%>`$mbnuQ6 zaSV&@vyxja1Tk?hGG&)^S$Yqb^-Y(mz3xCB{e#=YdInra`IR6FoJOYri2;}WX`7R@LkSV|+w7-Uasc8i94GT1BDR(-Cx>HsSRm~2tH2z#zPq~Uy3 zTqwnN7?DE?+%bleC_PkiC_<9X+#nUfV${20Y>hz1*fECLnbNEvAse+)vs{Lfx5hkdh)c1 zLNvY%7P8_mYV_Wy0P{PcXH4B@gDUb9Wr4g8BW0P|>&C{DuoOtpR{%2fcsxEy!#BhW*JXDur;~fx(`5@-JvCU1=4dEX>KQaUkg%sb%`c z)qY#_+kNZ{!!WxRCT}aY(1Xbz7#c_@Uejg7;p3CK=JYMq z1}VhEo$5v=?m}@n+0l^(>$vQjguHtL4`NUjL_tVOiv%QPy%kV>CWd+{T9!;JotjD- zn$9Ht^Te~kDp@~9qx_*zoj}zM^=2jQ09>R&xdOplPB1*%*hOyvf59$JyUOEUZ}5BD z{GaFx0XP%}&N)cZ#5IOo8|qj5GdD$?fPf~NnE&9e)-wnD);l5r3dDu`8HT|Q>T9g} zs<})-M6}k=#QNiTdW3=_+K>R>S#BC6W}I>2rCDH=EHBBBvu0M|fm2k&AE-VwYz`d0 z>r8G9ht-}aerl#%5*@PDA1_e3r&tzhHT4tQKV%w|Je^LZqP|&vsvu_1myO2~{{Xl@ClFR}ycz=s zWk80|DHv(uF|SbNC5FRL5v4+@^IbB?pFH@>Bg6;F07_&-B}k7hFune3%=o-d9AlfM z-W@Y*jWjbBaE_FOUr{U_b_>Zz{S=(4|KlE(RUy*_s_4bh339N9SKVRS>jxzh;u}3L zlKBMRe;|+oJJ{;1@k$zQtL%Ut*0Q*9DOEdt^ir}RhzV(O7OHtP?6#YOoo`m8USHLK zq72I0Ove?At}ICf zh^A6w(&#{4zVQ(uW!OpHnlBE7UlC(FnCy`5sL9`HF!K@;{htcG-hLnNz4@2V2fHw_ z6{F79LTTl4>wFrY1B?Y$PtFRmzLLOPnfMKJ{AP6d z(f?V(P^@e*sCzFRWd0!;Zh6G;lxz59Ch zcLUFMOyJXb;(pfq(#aG|F%ZGYy1J0BbCpXZf zyhvRLB7WLM)us#Wm?X3NQ7cp@3UfY))!&~#*_IWOgP-7w^2Y#2^T zx!Io7lLFpF{sm@1JJ=G)o%JUwpvp#nO_hE)j#~#1#g1^sSEj#e{+CrHrelF6A{Op0 zOM#%T3Eao62^r+WisLOZd-UwjAxh(F%BIvK>et~W@hmBQ7J^W@WVq zx&m7H?wNUte3_Xpek$|r0O;KVeVGudfnr>S>-osQ+ol{dm*bKqKQ?Rj5qVVi)I+Yl zgv&`J8jFSr}SeMl_(8C}N5rYt2oK#*pK z!3!oEhVnrl5t~8MUtIqTgQS(}Kx-rFBdjnlOm7B>9xqgRh+A{VahrP`Zt6n&*94sd ze6SDr8(HMs9>OU<$ep~HYhq67-%0RN^@>7s>(;A6>enI*S#UT`R#I)&5 z@@ZBiDLoEuqSdc_q8S-{on~p`tSPZrLF$$?^sDQTj$LoI@wVxr)%{`T8IbGGQOyw5 zn+wGT2XrYE;vOH_i_WmCP{~FZ3m+%-*~UWh4#J;>ecmK&31%!&Uiq>imGJ$fAea*r z*iHUnp_IWGge1rad5Xw%f@DS$Lu`*T`Ct}HIuN=>zHP2fQL1O;5 zC`>j$EGpxH*>pEPS`{T|asP0%t02>pc2T*b%MlqKYMc&rdnE54Py?cGH6*HEGeohy z9%~C;Ao5l9@tGuo$BQa7%M-4i@Tx$^Lr*|b2a97Xoo#* zaoeIUexrZuhqABFkYP)tOcEF?DID%0FDu#nV0$oe<|l3$<*Jf(gvhhXgq4Zvs+^LF4U>R4&<$KuaI02`Pr%g7YEP${ zsd-Jhu4E}z&XA6;Ib!B<82_LvLCt{r;pXjvDN%I*P$vH32ScXb&ZX<*JuVkC-HOrR z%}n1~?CHu%Vo|73X{ph>v7ms*`5m}TZSW@dLa<+VGv_@Ay)sv*okoB>2)uV7z`B|) zQfrtSM#C^6+q#p*7^&mrw(bo1XF8|^FR7o3mendU&e2~! zCeA&C6L2HdnZHqsg7BxSgmIvvQuv<=V3gJlJzcrfAhQuy;Np0Uwzs4N5{n5J zCbO{STQe|eVf3>xwPOhM+!JXf!2t16sqoF=q^<#dN}(fXLU^E?Ryy4?XNHtjG0}fj zDA(cp3Y*XjLjb7Hi&PKy*&U1G49`12D!0Qx9SUyvMWW|D1$CxUH3#tpn-b$bq7wt# z9*|5!3x3{dgN$H$w1j>4p$=h18K?Td2L%_KY}o4H)3{Db+nsUJ)17#fQ4E|!EOjQa zuJ!8+tPJP(;&UL|LpXpXaE+pCzth}pj7K2J2PAQ%N56l~Ph)be<@{?f(G3cG6UKUt z-=(Af(r-B?y3GAT#U8|*$3ky`fKihEG~O6cz)toia-9*~0>U6dLOH3gsJ_jmPx&zd zEK{;ud&u+hF#Vy#>tvp$?=BlDA!@Fu19*zfV1iYYr6j(RMK+ErOl{l+#_^0P+*Sa` zTy6qNICbwZ;EPWI;H)_yYsrp(X zCRz0mA<*tG(In3fy#6TmTkx4(NZ#scs#6@6K0kheYx;PVbaNC@+(;8&O zFy*rHz<=zM7jhDzsKhEyhF8i*rZseaXai!^d|k6YoQSG52omu7@D<_b?r$u9{0%rH zgv5M%L8VBLp%BTi0-jtAlWwpNU0mL;64#D=7^70nL8)-Q3Jo&)Gb(=lb?13DiEuXI zT;!U-xO4h+UM@-md0#}_KaADh!~8tazZv=V;b3=_EE)#&*RK@8Lx|aG0~*t`10k}6 z>u>`}I#m^aM~k>3x0!7^SMx+eSv;5<^KX#8^Ccsognd+b>0JF-!sHkGXRv@S<;KGn zTpJ@yK%wWaJaY7&3K1`K-F=vmkF8$kk#%vHQmS|N{yK)Z3f@d)iI9yFv zvO3PlsrD-;-d%9$aicyB8LoA~>_P%AZn-rPxL6nEBXhukx3Qfx&BKsj(t^Z!)E~Xb z=@5rm-sqP{b$ugxDPwHPK!pHUW;a2*bu~wwp9-ddgIl?s(~|n)yT6~YksWVoyK9$p;BEOPyZeI@=OPuQFrRN3NDw^EqYS>)4P97+PRV+%s zJ#0NBg*|jYo4HhHI{;xij;l@a$boaB*VzwYWYKlfB5oczAjl|T=wF$50csq4+*J5D^0=ipd4aH>=?fVlX0zG0Vt16&L%^hg|O&*&RX z3zhNRyE(igN}&s=y1Kd9+i-M}%_q=2D{@Hc$K2_Y7nIyp0sB3+{~WH@c{RFiLYDCN zfA!^dlLvbC1#S7{RQq)`%wuyo@c#T3SNznC91F3^^B0f= zlLr?KyPyEpNUsDWVTKFGNM^lMKJn~SAN+e-6m}$KBbv%!N%v` zmn$TjqWHB=uG&UeYADKaIKSWet!94_MPpuk8JwSoR!sLxCpfwFs7Jz}RTiED(=G64 zlCqMDd5p{dup(x?Z{Bzat@U~(XDqmig_Ca0y9eBK_k4=BnP0QP=>(?-q>e6z0w5p0 z`l((Hsa9}cqr(-;FB)_fnFa_c*Ie%+GOU|j?y-L?U6bU>4&c6X)Zn@si^0Ch8d&0S zx%j*^GrU53V<2Cjmg_)P7(BJ!Mug#?9$Sc%JkI_*kua&WCNB(*@2>f$HtMnN+shm%NQub)uh zl!2VnUYoF#nnt;L+Jr}fj7-G={+KAUQ@Sw;>v~I9V~r4r@I>kN;ry;6yDbG4=zQ~` zJ&uDFx3>e|jBh7K4qxVkPpmH0j+zTl|H&aOBBGqA0ZN<67W;+|4mpV{6gvyQR6-v# z!)hSgviZ(xgBBCgGY)U9VdD}b)K^vw&PdLx%X!c&tfhrDKm&JNO0O`cFQWtOO~QE# zDXtj|lC~AS;hojx5e%5hM<4$wqc(Cczuq~NS1EK*K5_V5at|-C{cn1Jno*tsrxDcD zr+}3)9s+~PG#!u7kiat0-snQa^$DYnZe*-D?N2^zDGiu8im}!BhIVRT6XT_naD?*19$Hj(*rO;T-Yl&gxAb_ z-;|QsT{x*BI%MY3yL@y*6Uct!keH-TB{%?Nj$NH0q8FV>jg8wB8U9}-{&g{K#ew)V zPt#O7u0obnw})A}kR`nlkoK~MJ0$az`K~Y?YXl|kOefd7RFPvkHh+_U?r&c6KzGtTm>F8PM;m2DB9Ak4nvja| ztoAHR;z9F}8Q*xCggcTq*FGtun--9M$Q|A}z?$!5t=L`GD^Q-dE%ZHwj>nrKa<}hT47f{h1N&Au*pyu;* zuBoHk_XTp*^{?}6Bk=5xKY6f=>!*#unlCS3r>&iReq!V_BvCo=_WjN<)-uqI>A{#M zBk7it1c`*m^xO#+xZug2h!1oNFg9jlAvZVu#ymKwF2RiDdtI$Ud?=9&VAgeoo}_}V z;X;)gDmUQRh+In+mlz?kuu9u~(7@XP=9P2NgA@u~1p1JaaEmW@vvJY+{9BxAUZk{^ zN0aq8wqgyhH+E{8cxtb!C9Z-iE8y`6r<0N?0ktnsZ9Az}IJ~O(H2Npv^66`d!+i0A zPbKvChQlfXb2tN<#3x9^Q@k-2iz8OaJj+hSu}%k`97?&G{bEC|S=c`;;C?KL!=XeV z&1O0uG~zz>cw8`Z`}2Kcojg`57#b3I%8-;JZYqCS(T$<83N=Hhzx&eDpE zd_ox!7ex02>D|^PV7J77%o>j8D`bLbQNoAyJ5-3tkJB#{Ca4EaL9XnUPq)y`53WZ^ zy^=7)+i%5E#Rb>ztba3*7*uTRb_w0p#(%!CMN(hg zHuGQ^l`0vQiQ|7S?H<*`pvhayH7@D8>HPG@@3uI<^$cLgP~AA8+Wupp4oJm0OnG#Z zjfabI44gP25d4+bHo9@^3qk_IVKgC5`<{sArDF>P{97lj5pi>k9$~0^SxsyqT`_a? z|B~>xZGcoss3zxGFRnI0)wVo=k9kDr`Rl6TckZg>h`fea{eZphw!S%42yD5R1|q0Z z4iW#ocm_(g*(~RT;-sV)0+~Bxo66}lhdq3 z)Ug_1Eb>WsaPKNrW-}@JD|iBBKMs|<>Xm4)gx#q#rMp>jVXL_F&HtXxW43N&b5AIz z1*p=&De1r|7*iPkp!hPO9_4u(>a&Co>#mUJS1TV*B($~m@S$aAR~HPc=V!8ph(ulw#u}W3I=7=u_iyu#Hsp2KE=u=8rYoqgQ={iGcPF8PxX)z*t#5X zx;K&7bN#PBtUQiPFV<~%FuiUE(G*^Vocra%gtmA<2=}0!I~Sj5YQ??45MRqlnOq>4ueTEz!)BSH?uv0E&FO$XX0$&y`T&QhC!LgwUV+!HKKhGIv!<1kZ>RA{4Fp-U3>b>my^zRaePPsgpHW zp+*9)+bhz6A~1WvxVzTXIZvG8I~m(QJh{v|83A0;(}#pfc0_+l^sXH3e-2$<=(9Rg zwgFQtuLR@k2RtbK{C)Y){!P$MnHYPtn#|iH)dW==P-PlOg+VtV6c?judep~C6yS`{ z@}ykpl3f?8zLUEY{RaL*TUH zK9)`z%ahCT#{U6WK&QW}I0!vv*K>rV-@Dj}xz=(yFNGPCGn-5j#W}747lBli3JJ@M zZBT=+8H3A7J}*nfp*B}RmdFBbw~EqnfB`{u$DuhqnYi6xJkSLj1WYJmc9N1=kj~i# zytT)+Iq(n@5i0P|R}rK1*ptUH5pX_SVLJTz>8O*jl?0yuMsA)Yt+m`U2~TeCG!kB>ZY-$Jlq29z%N$F zNR~6!c_Llrxp+pN%P8i1w9y6W;KFl-A>jiEsbZE_r%U%dm|-6dY>>v-JEBcBeKoOK$rv`70)MohnLBCF@y_eX`}LG};UYJey7vjAUM(NB^`qR-nT~a_?Z5<+j9R9?4>qi%2`V9?6eRJWPwxAxph4F0c(A{Zgl`oP4Ok(78G^i!%!Z z1~^g$p*nZsRNP?FzH8s|6p~L&9sRpcU&sm@;B=-%mQH7nWkb)KgE5n~J|)A6y^~dG zuMGEbK*e!7uFy(6r(RAu@UxD&(=Yx(8}&(p38q6+F69L}Lms)uSn@G&((7F=M*PlK zhxO`bpZj5~tzL;>dz3&$;W);O(-No^xT$!Z+hS z@G?)HIuWNlEc5CWmh`q^cv;qe<(j^~GbI1-|DqGufr0)id0DmQZ2aL(^1KM0stnCj z@%c{33c?3BN)+CG?8_cA28HNge?7)mOpY|XJ&Ii(7`EU!SwuddC6a|ffXO;A;|O6t zU}o$xjYef)REK&L<+ukT21ugkK5esmX?McX6P|UC=+gP~C*r^UFaJ_J_UMJUy?ZNu zu=cIEvi};5!?-9VKt;u%5Dw8JBTO&zdGeaRTjLZ;HPKOIcmfdUG~ z!al9*jxG&ACfvfjDwtfRqW?6MFt?ZCdX*nfa>V!&dWEM{?&d=|b9Pw;X3KtZ#tE(H z9;FLjBpvO#6Dc_2pszCKS%_@Wi~15_XdW;(BKp*AZbygn&FVa3YP7u{tG6#lYh^yp z+`mHdIdpHKGNF~ulg`kD*>;0-jm%pRN;3y_moh5FJ>l1R)@cwQ85S2F#_s(*vj(ws z8M`D@!Z1XL*d3cur5OzPga`Ll#x5fml>i5{NtOp^tnD&;r4Kr8W9ZtP^u2v^BUW#0 z$BngDVbuYVgIyxQ?(h^(t+@BThne}k!6BE+@yG)Y#tr1~;-%+VI@^doM$1Q??5-2> zB5DQq!i!K0<)sYw_c;P$|2FclO-|WfJoC(-+yIcjw{3uYciX0(+~Y=3(rp8wHWyzmk^l_$=|`E!q=08!SA z_sqF-;2VQ!v>H53`9bG9A6CoYeKLXcg}nLFan|5Dvy|}`78a9M@{}j_b4DI5NduIv zjs}WS$4v!mAGS?L>72T=Q0GHNGN~U9K&F8QKJ(F2P8^hZm+lK})B}goI<=Z`@y$!$ zCX>yb<#SUgGS}|V`LLX{_1%Y)!?CG9G71Ac%9MQWq(J$0nJFEC1iO5eW-0@Ro{7;~ zVEEN!U*WT;j->eN;EJ-Cb>L=cmG7PT%#}?Cvlt-j<3Lg` zqaY**r~Y)o#tYjXQp-7z;hfYf53`G z?!*H&zy%KArcuY?ILm1G1wKhf(xE~l^|n}aBJ57`%pFRsT31D`LnCxLmv8~~)$6(2 z8Dr_AV@%d|(xejyYve>HlmCgNOnHTU?%9U}HL5*I*{4}9`DTcHNEn%Dx^cr%=sf5^ zPa|YTS2~_aLevAUhzfEy80`@4@4{bBv`Zvsj+KsMt;HZj7nk2yCvt2>(uRi=H~j`x1Fldpuh3b$(cDbp;?B#l)!&MbpZr{W;E9LgZ~yjx6#xDI@DJnGDzin#RL;#|wn15qB`UZy z#2wEyQEADzV;xeEny1vGP;$m%A39IeD>G|Bvpj9(EI?tTj58tI;H80JUdnw&MMYuE z@lhv6qS}nrhgwGkx-*lXU0IB!S(dzp$eFZuhK;Np;KWoWd+;mgfnnsF zF*e8SdW*I40B)4`3`Ct}d903cQmMExqJpA7cVdQRwoNt>3}d<3P3O1+9*z@DZ4;r& z-8f*)+2AHl)lKBwNSn!)+eDhgy}JdSF>h^Ojqg8ujd4rgYJB+pA3<5|#EU=v4vy4| z9FW_J=bu^Qxl>G{)D=3N(wV5z0GjDg@W=s_I7#X|yGg5aryq_pr%uL|D_2MdAU|uu zQ^+x79;>0!^WnI|5%{K8^J01^P$N7}NOYVu`E%pm-0LX; zZ(Apv2Be61b|#-^1<}57kc5q44WY>vhpsvSTA~jm8-Aq@a?*kKHHPNh*sceeia&tJ zh=I{bzq(9RBP~Ox&KyHeH+OvM1ILiE=m)OcEK!8hW{`c`wQPy5xTDl(qxO3`B_p@py$T= zRvh3|EiV$}FyR?pp~F9e111u#-MAXJcXpUm;Q#^6{5K5&f>HaPN*+$1K5o?VrZd?zXN zqYNoGAPX2l96X#+TFQ0MJucbG03|mPoFlW+M_J7XATTP6xnhEj5RcNguWiubqwSPe z+K{)DMOxzpqTb=6$A8_$u7(CXb0{fMJ@FJuA)w4OP}I)eI}@fMM4)z8aW2*{u*^&t zJ&~&U7;m!7C!$PfQ5`t(Wx5!ehN z^1w|H`LjRsp}2ALTDx_8(U=dfrS15O5uq#O_p+`?CYe%MU6Yl!V_8|4cupB1IW^8P2`c zTaABlG9=i~K`@j8__`84a57}MA5-504aoL}WDs?+mH2{1|p>;;D5*F@E zXhabkMKjN#Fe|^n$U5v36sB-1C=N~s#e4&oJQWI;P2@q15U53&uog~@a^8xDhB`V; zyt~v>c2Jdwm&(tz{(Y9QhA60c#-?Z(;ralP(q_!X)=n=@CtU2|@?*SQmJAHS4|kn}uaW+sk& z+>z(^xV3za@+-^B%y5ZVs>t}~qlfn3r_p3HKJxzi;-Rz4(O|~f-P|Of00q{5uWOA2 zK4+1s657^qsW^JM6<^~--XfnDT>?Nc?0^0V;KspccT|t0;Xdv894nU(UV8oY_~FYJ z$)_UfjCSv{+$cTjcxVH1=e9O?;BRS#(O~9y_RJY(hRt~FJtyPrv8SN1IZHU5L}d?n z!nzEm0qEn5<#P_XBVG3}6ef|oqwe_p0v_rfyL&t2S+?Qw9tXj0NZ5?Zc+g~}G7p-` zZ^D_%^THTM8ZX9af9Zh3iyoFMulOuPoh|7kT_{1ng;!;s{7zk+Dyc8 zKTMp~Nj0KlL|La(*_2m}zw*4xG!?rb-x{l6SFO=m;7y zicd4@7N;G3obk;2$!f>|co`rMMj~g?1s>0##&Bm|E#cCi!g;bh?P@fQBIx7@gZk5P z8u<|sq9rG4;8mQu?4-_+%F;+07>SZ*o|R_QQ*Gr2ixIhx{jSUGL~EEt_b}?SL}|pQ z5oKYu4<~6gRt(%CFFzkJVKEJ4ZgvKl7H{Y=dj#e>PMSO`12J@T4fw!z7|qN`7qo68 z%d;F?LkeO%_xcMQ6ZCpKihet}w49Oi3KM--G@MZBz`4O=vCUBdz~sutE-O4kWXhdm z9%kvX;KmNmm!%(VT=E7p{Rt@z8Fgc&L!E0P_1^j(yHO9&J*UC>T;_$Dlj|f|UT3z4 zgC$qp5N?aWvWknS9nU%Sa;kT(&k+ zCC@77MLgtJ_#6IErjtJ`<51MY$b~Q)Z8E}Xn@$>B>dR$k4k4DN%5QO^DDp1XyE;+M z=w^weR5?Zb04K=DKx6_Zj5BgJNW-3&Bg+r)A}?Kg6(o=>2BO;l*c!uB*WQ4mc0evb z!O&^Efm^1}m!D}zfb;U^-PhZ{-~HRa>F2{H?fWNP+QMTvg@0wa8P{3LxQ#Fm33)o} zbym_~spZi}A7u8>kIT>9j$i)VC*wDM?Kk2d|G^)}Kl+pJM2)2(w|pB0ZYl+V@^>6%IJn_V%afMm` zH*fuEYz{Uv0_ApX{^upO5@Y;PsQ616lhd8qp)6zo72!`9vP`Lw&(J2H%{Nd{XHow6 zyBaUwq3v34Exvy1Yw_9Y=i{Rvel))HrLFkg-~Ho^Dwy9RL*@%Obf#Rc${idCT6r7^ zZ37SU9)PA*KKsC19|K|zfyO1**8PotswI;Kojtg8nCH1TTH8RHGxvl(+VGysS2bp_ z=G}-J>7|lXY2~sEPFRmwjd0B(q#iU%tyDff4{-(sd<=o#A)$3|cQdLdG2+a=>iamq z@cj~b3c?w?8`NSPI9OGbuF)IM{7HWg&}1!fp7|hrF=RhW)X@-ik3P*o5u*yN#@Cz* zb1qymGpug7+N9R$Ov`0IG%;jF(V{yHd_DQT`{U<6bRi}itFeCNdMbzZG7iWL_-62l zYjKF&8uIorGhLjZjm=$@>k_#$Isz!5)9h2_Y3a=lzcJ}CnsRIf<4KgE)geKB=0waa z9S2v)0g>hoeCdw51Muka1safp1LPkEq{Ga4o!vwA{@Hl%gP%&nw!Mo&zV`u?IMFre z;Sz^AQD<>hQ~nvdc@Z~ntztM)m^ewSK0;nCjHyP_$lU7Ip$-B! z@`*gJ(zBlJrf~;{Iw*NaC%?6cD7$px>B!EkGvChI$_%)2`B1+%pI|SKK~t4Cq?X;1 zu;v!IY~m3fI(<&DT$;(HGHHFNlwBI~694Ja1DA?D&zk`zbKJaY&_EfXX7bG)y_6kN zU$O(AiriegG!hyp?kO*TM&GtA7oH)6Js0VoFQFXX@C$Z^O`T)y%WD?6$j#LKaDX$jv z^1L>W+YqkIXGHEGEjGZ-4agT`GUY@annw)*d@kR@E&3ad(WO8gHP5;-D570#k^k!C zD^~)Nr?Sg;{PV6(lw&x?Y?U+zJl*~D;xbAA5!k**XAp!z_E3B{sxTZLGP7bMFGde) zoIbw7@>T|H0SdTN(G`XVNCY#1RR~1HJA%m%5cA*V1?cez4$xm-ZpA;?VpfAdkC~}C zvyef4@cr*bcjHF(2om@ufKJ{}?#TEwo>E~a; z2_RPt?2O%xPA63qlnWD8%25rb>GP->wv^v^F?N{={mQR@AwKcxr(%6?ExvK{PvbTY zjA!ns9?&ayF4d-LR-(@}7UI#R$KqIf1;++K+j}Ff@#-?$aQW}7vr;^`9Qqz;^p|GFF%cv@OfT9qQZe$ zbB3y~q(X+Fg>#?+ceV$OHE=uN#zbB7>vU9e=Mv1C+m#W7asdbJNp{a@GU}o+pJ)5A z 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 z

    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

    gX~FA~EQUKcK&d`IaTMDP}ci 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⪚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%0A-vOgC^y3) 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

    )ItYOgJ~kbj)3$49lhO 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 z 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 diff --git a/install/mac.md b/install/mac.md index 44a571b6a..52513e9fc 100644 --- a/install/mac.md +++ b/install/mac.md @@ -2,7 +2,7 @@ ### 系统要求 -[Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS El Capitan 10.11。 +[Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS Sierra 10.12。 ### 安装 diff --git a/install/mirror.md b/install/mirror.md index 25ee0f65a..57ee1a3ec 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -38,11 +38,29 @@ $ sudo systemctl restart docker ### Windows 10 -对于使用 Windows 10 的系统,在系统右下角托盘 Docker 图标内右键菜单选择 `Settings`,打开配置窗口后左侧导航菜单选择 `Daemon`。在 `Registry mirrors` 一栏中填写加速器地址 `https://dockerhub.azk8s.cn`,之后点击 `Apply` 保存后 Docker 就会重启并应用配置的镜像地址了。 +对于使用 Windows 10 的系统,在系统右下角托盘 Docker 图标内右键菜单选择 `Settings`,打开配置窗口后在左侧导航菜单选择 `Docker Engine`,在右侧像下边一样编辑 json 文件,之后点击 `Apply & Restart` 保存后 Docker 就会重启并应用配置的镜像地址了。 + +```json +{ + "registry-mirrors": [ + "https://dockerhub.azk8s.cn", + "https://reg-mirror.qiniu.com" + ] +} +``` ### macOS -对于使用 macOS 的用户,在任务栏点击 Docker Desktop 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址 `https://dockerhub.azk8s.cn`。修改完成之后,点击 `Apply & Restart` 按钮,Docker 就会重启并应用配置的镜像地址了。 +对于使用 macOS 的用户,在任务栏点击 Docker Desktop 应用图标 -> `Perferences`,在左侧导航菜单选择 `Docker Engine`,在右侧像下边一样编辑 json 文件。修改完成之后,点击 `Apply & Restart` 按钮,Docker 就会重启并应用配置的镜像地址了。 + +```json +{ + "registry-mirrors": [ + "https://dockerhub.azk8s.cn", + "https://reg-mirror.qiniu.com" + ] +} +``` ### 检查加速器是否生效 diff --git a/install/windows.md b/install/windows.md index 2caa7601c..c7e387694 100644 --- a/install/windows.md +++ b/install/windows.md @@ -1,4 +1,4 @@ -## Windows 10 PC 安装 Docker Desktop CE +## Windows 10 安装 Docker Desktop CE ### 系统要求 From 1aef2b77347857868f13e204ac4659642ac9e621 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Fri, 20 Sep 2019 14:08:30 +0800 Subject: [PATCH 419/611] [cases] Fixed typo Signed-off-by: Kang HuaiShuai --- cases/ci/actions/README.md | 4 ++-- cases/{ => ci/drone}/.image/drone-build.png | Bin cases/ci/drone/README.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename cases/{ => ci/drone}/.image/drone-build.png (100%) diff --git a/cases/ci/actions/README.md b/cases/ci/actions/README.md index 42ad77f19..ce36b1d72 100644 --- a/cases/ci/actions/README.md +++ b/cases/ci/actions/README.md @@ -1,8 +1,8 @@ # GitHub Actions -GitGub Actions 是 GitHub 推出的一款 CI/CD 工具。 +GitHub [Actions](https://github.com/features/actions) 是 GitHub 推出的一款 CI/CD 工具。 -我们可以在每个 job 的 step 中使用 Docker 执行构建步骤。 +我们可以在每个 `job` 的 `step` 中使用 Docker 执行构建步骤。 ```yaml on: push diff --git a/cases/.image/drone-build.png b/cases/ci/drone/.image/drone-build.png similarity index 100% rename from cases/.image/drone-build.png rename to cases/ci/drone/.image/drone-build.png diff --git a/cases/ci/drone/README.md b/cases/ci/drone/README.md index daa8de1e0..994eb114c 100644 --- a/cases/ci/drone/README.md +++ b/cases/ci/drone/README.md @@ -86,7 +86,7 @@ $ git push origin master 打开我们部署好的 `Drone` 网站或者 Drone Cloud,即可看到构建结果。 -![](../.image/drone-build.png) +![](.image/drone-build.png) 当然我们也可以把构建结果上传到 GitHub,Docker Registry,云服务商提供的对象存储,或者生产环境中。 @@ -95,5 +95,5 @@ $ git push origin master ## 参考链接 * [Drone Github](https://github.com/drone/drone) -* [Drone 文档](http://docs.drone.io/) +* [Drone 文档](https://docs.drone.io/) * [Drone 示例](https://github.com/docker-practice/drone-demo) From 4873267f31e62a71a3c2b02c529f8ee206f01e95 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Fri, 20 Sep 2019 14:28:50 +0800 Subject: [PATCH 420/611] Update format Signed-off-by: Kang HuaiShuai --- cases/os/README.md | 4 ++-- cases/os/alpine.md | 10 +++++----- cases/os/busybox.md | 14 +++++++------- cases/os/centos.md | 10 +++++----- cases/os/debian.md | 10 +++++----- cases/os/summary.md | 2 +- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/cases/os/README.md b/cases/os/README.md index 09b654576..2c2d839b4 100644 --- a/cases/os/README.md +++ b/cases/os/README.md @@ -1,9 +1,9 @@ # 操作系统 -目前常用的 Linux 发行版主要包括 Debian/Ubuntu 系列和 CentOS/Fedora 系列。 +目前常用的 Linux 发行版主要包括 `Debian/Ubuntu` 系列和 `CentOS/Fedora` 系列。 前者以自带软件包版本较新而出名;后者则宣称运行更稳定一些。选择哪个操作系统取决于读者的具体需求。 使用 Docker,读者只需要一个命令就能快速获取一个 Linux 发行版镜像,这是以往包括各种虚拟化技术都难以实现的。这些镜像一般都很精简,但是可以支持完整 Linux 系统的大部分功能。 -本章将介绍如何使用 Docker 安装和使用 Busybox、Alphine、Debian/Ubuntu、CentOS/Fedora 等操作系统。 +本章将介绍如何使用 Docker 安装和使用 `Busybox`、`Alphine`、`Debian/Ubuntu`、`CentOS/Fedora` 等操作系统。 diff --git a/cases/os/alpine.md b/cases/os/alpine.md index 58cd84225..842644984 100644 --- a/cases/os/alpine.md +++ b/cases/os/alpine.md @@ -33,15 +33,15 @@ $ docker run alpine echo '123' ### 迁移至 `Alpine` 基础镜像 -目前,大部分 Docker 官方镜像都已经支持 Alpine 作为基础镜像,可以很容易进行迁移。 +目前,大部分 Docker 官方镜像都已经支持 `Alpine` 作为基础镜像,可以很容易进行迁移。 例如: -* ubuntu/debian -> alpine -* python:2.7 -> python:2.7-alpine -* ruby:2.3 -> ruby:2.3-alpine +* `ubuntu/debian` -> `alpine` +* `python:3` -> `python:3-alpine` +* `ruby:2.6` -> `ruby:2.6-alpine` -另外,如果使用 `Alpine` 镜像替换 `Ubuntu` 基础镜像,安装软件包时需要用 apk 包管理器替换 apt 工具,如 +另外,如果使用 `Alpine` 镜像替换 `Ubuntu` 基础镜像,安装软件包时需要用 `apk` 包管理器替换 `apt` 工具,如 ```bash $ apk add --no-cache diff --git a/cases/os/busybox.md b/cases/os/busybox.md index 188e33157..e18b0b4a0 100644 --- a/cases/os/busybox.md +++ b/cases/os/busybox.md @@ -4,13 +4,13 @@ ![Busybox - Linux 瑞士军刀](_images/busybox-logo.png) -BusyBox 是一个集成了一百多个最常用 Linux 命令和工具(如 cat、echo、grep、mount、telnet 等)的精简工具箱,它只需要几 MB 的大小,很方便进行各种快速验证,被誉为“Linux 系统的瑞士军刀”。 +`BusyBox` 是一个集成了一百多个最常用 Linux 命令和工具(如 `cat`、`echo`、`grep`、`mount`、`telnet` 等)的精简工具箱,它只需要几 MB 的大小,很方便进行各种快速验证,被誉为“Linux 系统的瑞士军刀”。 -BusyBox 可运行于多款 POSIX 环境的操作系统中,如 Linux(包括 Android)、Hurd、FreeBSD 等。 +`BusyBox` 可运行于多款 POSIX 环境的操作系统中,如 `Linux`(包括 `Android`)、`Hurd`、`FreeBSD` 等。 ### 获取官方镜像 -在 Docker Hub 中搜索 busybox 相关的镜像。 +在 Docker Hub 中搜索 `busybox` 相关的镜像。 ```bash $ docker search busybox @@ -24,7 +24,7 @@ azukiapp/busybox This image is meant to be used as the base... ... ``` -读者可以看到最受欢迎的镜像同时带有 OFFICIAL 标记,说明它是官方镜像。用户使用 docker pull 指令下载镜像 `busybox:latest`: +读者可以看到最受欢迎的镜像同时带有 `OFFICIAL` 标记,说明它是官方镜像。用户使用 `docker pull` 指令下载 `busybox:latest` 镜像: ```bash $ docker pull busybox:latest @@ -36,7 +36,7 @@ df7546f9f060: Pull complete Status: Downloaded newer image for busybox:latest ``` -下载后,可以看到 busybox 镜像只有2.433 MB: +下载后,可以看到 `busybox` 镜像只有 2.433 MB: ```bash $ docker image ls @@ -46,7 +46,7 @@ busybox latest e72ac664f4f0 6 weeks ago ### 运行 busybox -启动一个 busybox 容器,并在容器中执行 grep 命令。 +启动一个 `busybox` 容器,并在容器中执行 `grep` 命令。 ```bash $ docker run -it busybox @@ -103,7 +103,7 @@ proc on /proc/bus type proc (ro,nosuid,nodev,noexec,relatime) tmpfs on /proc/kcore type tmpfs (rw,nosuid,mode=755) ``` -busybox 镜像虽然小巧,但包括了大量常见的 Linux 命令,读者可以用它快速熟悉 Linux 命令。 +`busybox` 镜像虽然小巧,但包括了大量常见的 Linux 命令,读者可以用它快速熟悉 Linux 命令。 ### 相关资源 diff --git a/cases/os/centos.md b/cases/os/centos.md index 287a4b543..463607532 100644 --- a/cases/os/centos.md +++ b/cases/os/centos.md @@ -2,11 +2,11 @@ ### CentOS 系统简介 -CentOS 和 Fedora 都是基于 Redhat 的常见 Linux 分支。CentOS 是目前企业级服务器的常用操作系统;Fedora 则主要面向个人桌面用户。 +`CentOS` 和 `Fedora` 都是基于 `Redhat` 的常见 Linux 分支。`CentOS` 是目前企业级服务器的常用操作系统;`Fedora` 则主要面向个人桌面用户。 ![CentOS 操作系统](_images/centos-logo.png) -CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统),它是基于 Red Hat Enterprise Linux 源代码编译而成。由于 CentOS 与 Redhat Linux 源于相同的代码基础,所以很多成本敏感且需要高稳定性的公司就使用 CentOS 来替代商业版 Red Hat Enterprise Linux。CentOS 自身不包含闭源软件。 +CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统),它是基于 Red Hat Enterprise Linux 源代码编译而成。由于 CentOS 与 Redhat Linux 源于相同的代码基础,所以很多成本敏感且需要高稳定性的公司就使用 `CentOS` 来替代商业版 Red Hat Enterprise Linux。CentOS 自身不包含闭源软件。 #### 使用 CentOS 官方镜像 @@ -19,7 +19,7 @@ centos The official... 2543 [OK] jdeathe/centos-ssh 27 [OK] ``` -使用 docker run 直接运行最新的 CentOS 镜像,并登录 bash。 +使用 docker run 直接运行最新的 CentOS 镜像,并登录 `bash`。 ```bash $ docker run -it centos bash @@ -36,7 +36,7 @@ CentOS Linux release 7.2.1511 (Core) ![Fedora 操作系统](_images/fedora-logo.png) -Fedora 由 Fedora Project 社区开发,红帽公司赞助的 Linux 发行版。它的目标是创建一套新颖、多功能并且自由和开源的操作系统。Fedora 的功能对于用户而言,它是一套功能完备的,可以更新的免费操作系统,而对赞助商 Red Hat 而言,它是许多新技术的测试平台。被认为可用的技术最终会加入到 Red Hat Enterprise Linux中。 +`Fedora` 由 Fedora Project 社区开发,红帽公司赞助的 Linux 发行版。它的目标是创建一套新颖、多功能并且自由和开源的操作系统。`Fedora` 的功能对于用户而言,它是一套功能完备的,可以更新的免费操作系统,而对赞助商 Red Hat 而言,它是许多新技术的测试平台。被认为可用的技术最终会加入到 Red Hat Enterprise Linux 中。 #### 使用 Fedora 官方镜像 @@ -51,7 +51,7 @@ gluster/gluster-fedora Official GlusterFS image [ Fedora 21 + Glu... 3 startx/fedora Simple container used for all startx based... 2 [OK] ``` -使用 docker run 命令直接运行 Fedora 官方镜像,并登录 bash。 +使用 `docker run` 命令直接运行 `Fedora` 官方镜像,并登录 `bash`。 ```bash $ docker run -it fedora bash diff --git a/cases/os/debian.md b/cases/os/debian.md index 3cdaa168a..b27bb7dc9 100644 --- a/cases/os/debian.md +++ b/cases/os/debian.md @@ -1,11 +1,11 @@ ## Debian/Ubuntu -Debian 和 Ubuntu 都是目前较为流行的 Debian 系的服务器操作系统,十分适合研发场景。Docker Hub 上提供了官方镜像,国内各大容器云服务也基本都提供了相应的支持。 +`Debian` 和 `Ubuntu` 都是目前较为流行的 Debian 系的服务器操作系统,十分适合研发场景。Docker Hub 上提供了官方镜像,国内各大容器云服务也基本都提供了相应的支持。 ### Debian 系统简介 ![Debian 操作系统](_images/debian-logo.png) -Debian 是由 GPL 和其他自由软件许可协议授权的自由软件组成的操作系统,由Debian 计划(Debian Project)组织维护。Debian 计划是一个独立的、分散的组织,由 3000 人志愿者组成,接受世界多个非盈利组织的资金支持,Software in the Public Interest 提供支持并持有商标作为保护机构。Debian 以其坚守 Unix 和自由软件的精神,以及其给予用户的众多选择而闻名。现时 Debian 包括了超过 25,000 个软件包并支持 12 个计算机系统结构。 +`Debian` 是由 `GPL` 和其他自由软件许可协议授权的自由软件组成的操作系统,由 Debian 计划(Debian Project)组织维护。Debian 计划是一个独立的、分散的组织,由 3000 人志愿者组成,接受世界多个非盈利组织的资金支持,Software in the Public Interest 提供支持并持有商标作为保护机构。Debian 以其坚守 Unix 和自由软件的精神,以及其给予用户的众多选择而闻名。现时 Debian 包括了超过 25,000 个软件包并支持 12 个计算机系统结构。 Debian 作为一个大的系统组织框架,其下有多种不同操作系统核心的分支计划,主要为采用 Linux 核心的 Debian GNU/Linux 系统,其他还有采用 GNU Hurd 核心的 Debian GNU/Hurd 系统、采用 FreeBSD 核心的 Debian GNU/kFreeBSD 系统,以及采用 NetBSD 核心的 Debian GNU/NetBSD 系统。甚至还有利用 Debian 的系统架构和工具,采用 OpenSolaris 核心构建而成的 Nexenta OS 系统。在这些 Debian 系统中,以采用 Linux 核心的 Debian GNU/Linux 最为著名。 @@ -63,9 +63,9 @@ tutum/ubuntu Ubuntu image with SSH access. For the root. 根据搜索出来的结果,读者可以自行选择下载镜像并使用。 -下面以 ubuntu 18.04 为例,演示如何使用该镜像安装一些常用软件。 +下面以 `ubuntu:18.04` 为例,演示如何使用该镜像安装一些常用软件。 -首先使用 `-ti` 参数启动容器,登录 bash,查看 ubuntu 的发行版本号。 +首先使用 `-ti` 参数启动容器,登录 `bash`,查看 `ubuntu` 的发行版本号。 ```bash $ docker run -ti ubuntu:18.04 /bin/bash @@ -94,7 +94,7 @@ Reading state information... Done E: Unable to locate package curl ``` -这并非系统不支持 `apt-get` 命令。Docker 镜像在制作时为了精简清除了 apt 仓库信息,因此需要先执行 `apt-get update` 命令来更新仓库信息。更新信息后即可成功通过 apt-get 命令来安装软件。 +这并非系统不支持 `apt-get` 命令。Docker 镜像在制作时为了精简清除了 `apt` 仓库信息,因此需要先执行 `apt-get update` 命令来更新仓库信息。更新信息后即可成功通过 `apt-get` 命令来安装软件。 ```bash root@7d93de07bf76:/# apt-get update diff --git a/cases/os/summary.md b/cases/os/summary.md index 0817e80be..88136dce0 100644 --- a/cases/os/summary.md +++ b/cases/os/summary.md @@ -6,6 +6,6 @@ 读者可以根据具体情况来选择。一般来说: -* 官方镜像体积都比较小,只带有一些基本的组件。 精简的系统有利于安全、稳定和高效的运行,也适合进行定制化。 +* 官方镜像体积都比较小,只带有一些基本的组件。 精简的系统有利于安全、稳定和高效的运行,也适合进行个性化定制。 * 出于安全考虑,几乎所有官方制作的镜像都没有安装 SSH 服务,无法通过用户名和密码直接登录到容器中。 From 803b93c1fc2e166bff8d907e4ff9acef7215ed2f Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Fri, 20 Sep 2019 14:48:54 +0800 Subject: [PATCH 421/611] Update format Signed-off-by: Kang HuaiShuai --- README.md | 2 +- advanced_network/example.md | 2 +- cases/ci/travis/README.md | 2 +- coreos/README.md | 6 +++--- swarm_mode/create.md | 2 +- swarm_mode/deploy.md | 2 +- underly/namespace.md | 10 +++++----- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index e4622086f..002356db3 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 -* 在线阅读:[docker-practice.com](https://docker-practice.com/),[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[GitBook 国内镜像](https://docker_practice.gitee.io/zh-cn),[GitBook 英文版国内镜像](https://docker_practice.gitee.io/us_en),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F) +* 在线阅读:[docker-practice.com](https://docker-practice.com/),[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[GitBook 国内镜像](https://docker_practice.gitee.io/zh-cn),[GitBook 英文版国内镜像](https://docker_practice.gitee.io/us_en),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F), [新版 GitBook](https://gitbook.docker-practice.com/) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD),[epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) * [离线阅读 `$ docker run -it --rm -p 4000:80 dockerpracticesig/docker_practice`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) * [英文翻译](https://github.com/yeasy/docker_practice/issues/363) diff --git a/advanced_network/example.md b/advanced_network/example.md index 2bad70204..23ac7af13 100644 --- a/advanced_network/example.md +++ b/advanced_network/example.md @@ -5,4 +5,4 @@ Jérôme Petazzoni 编写了一个叫 [pipework](https://github.com/jpetazzo/pipework) 的 shell 脚本,可以帮助用户在比较复杂的场景中完成容器的连接。 ### playground -Brandon Rhodes 创建了一个提供完整的 Docker 容器网络拓扑管理的 [Python库](https://github.com/brandon-rhodes/fopnp/tree/m/playground),包括路由、NAT 防火墙;以及一些提供 HTTP, SMTP, POP, IMAP, Telnet, SSH, FTP 的服务器。 +Brandon Rhodes 创建了一个提供完整的 Docker 容器网络拓扑管理的 [Python库](https://github.com/brandon-rhodes/fopnp/tree/m/playground),包括路由、NAT 防火墙;以及一些提供 `HTTP` `SMTP` `POP` `IMAP` `Telnet` `SSH` `FTP` 的服务器。 diff --git a/cases/ci/travis/README.md b/cases/ci/travis/README.md index 5d6fbaa62..b845309ec 100644 --- a/cases/ci/travis/README.md +++ b/cases/ci/travis/README.md @@ -44,4 +44,4 @@ after_success: ### 查看结果 -将项目推送到 GitHub, 登录 [Travis CI](https://travis-ci.com/) 查看构建详情。 +将项目推送到 GitHub,登录 [Travis CI](https://travis-ci.com/) 查看构建详情。 diff --git a/coreos/README.md b/coreos/README.md index 90d240f8a..dbde5c5ba 100644 --- a/coreos/README.md +++ b/coreos/README.md @@ -1,7 +1,7 @@ # CoreOS -CoreOS 的设计是为你提供能够像谷歌一样的大型互联网公司一样的基础设施管理能力来动态扩展和管理的计算能力。 +`CoreOS` 的设计是为你提供能够像谷歌一样的大型互联网公司一样的基础设施管理能力来动态扩展和管理的计算能力。 -CoreOS 的安装文件和运行依赖非常小,它提供了精简的 Linux 系统。它使用 Linux 容器在更高的抽象层来管理你的服务,而不是通过常规的 YUM 和 APT 来安装包。 +`CoreOS` 的安装文件和运行依赖非常小,它提供了精简的 Linux 系统。它使用 Linux 容器在更高的抽象层来管理你的服务,而不是通过常规的包管理工具 `yum` 或 `apt` 来安装包。 -同时,CoreOS 几乎可以运行在任何平台:`VirtualBox`, `Amazon EC2`, `QEMU/KVM`, `VMware` 和 `OpenStack` 等 。 +同时,`CoreOS` 几乎可以运行在任何平台:`VirtualBox` `Amazon EC2` `QEMU/KVM` `VMware` `Bare Metal` 和 `OpenStack` 等 。 diff --git a/swarm_mode/create.md b/swarm_mode/create.md index 4e35b6174..a64fb5c57 100644 --- a/swarm_mode/create.md +++ b/swarm_mode/create.md @@ -61,7 +61,7 @@ docker@worker1:~$ docker swarm join \ This node joined a swarm as a worker. ``` ->注意:一些细心的读者可能通过 `docker-machine create --help` 查看到 `--swarm*` 等一系列参数。该参数是用于旧的 `Docker Swarm`,与本章所讲的 `Swarm mode` 没有关系。 +>注意:一些细心的读者可能通过 `docker-machine create --help` 查看到 `--swarm*` 等一系列参数。该参数是用于旧的 `Docker Swarm`,与本章所讲的 `Swarm mode` 没有关系。 ### 查看集群 diff --git a/swarm_mode/deploy.md b/swarm_mode/deploy.md index 9d46c3720..91a84ffd2 100644 --- a/swarm_mode/deploy.md +++ b/swarm_mode/deploy.md @@ -10,7 +10,7 @@ $ docker service create --replicas 3 -p 80:80 --name nginx nginx:1.13.7-alpine ``` -现在我们使用浏览器,输入任意节点 IP ,即可看到 nginx 默认页面。 +现在我们使用浏览器,输入任意节点 IP ,即可看到 nginx 默认页面。 ### 查看服务 diff --git a/underly/namespace.md b/underly/namespace.md index 35cf38653..b4226aff4 100644 --- a/underly/namespace.md +++ b/underly/namespace.md @@ -2,21 +2,21 @@ 命名空间是 Linux 内核一个强大的特性。每个容器都有自己单独的命名空间,运行在其中的应用都像是在独立的操作系统中运行一样。命名空间保证了容器之间彼此互不影响。 ### pid 命名空间 -不同用户的进程就是通过 pid 命名空间隔离开的,且不同命名空间中可以有相同 pid。所有的 LXC 进程在 Docker 中的父进程为Docker进程,每个 LXC 进程具有不同的命名空间。同时由于允许嵌套,因此可以很方便的实现嵌套的 Docker 容器。 +不同用户的进程就是通过 pid 命名空间隔离开的,且不同命名空间中可以有相同 pid。所有的 LXC 进程在 Docker 中的父进程为 Docker 进程,每个 LXC 进程具有不同的命名空间。同时由于允许嵌套,因此可以很方便的实现嵌套的 Docker 容器。 ### net 命名空间 -有了 pid 命名空间, 每个命名空间中的 pid 能够相互隔离,但是网络端口还是共享 host 的端口。网络隔离是通过 net 命名空间实现的, 每个 net 命名空间有独立的 网络设备, IP 地址, 路由表, /proc/net 目录。这样每个容器的网络就能隔离开来。Docker 默认采用 veth 的方式,将容器中的虚拟网卡同 host 上的一 个Docker 网桥 docker0 连接在一起。 +有了 pid 命名空间,每个命名空间中的 pid 能够相互隔离,但是网络端口还是共享 host 的端口。网络隔离是通过 net 命名空间实现的, 每个 net 命名空间有独立的 网络设备,IP 地址,路由表,/proc/net 目录。这样每个容器的网络就能隔离开来。Docker 默认采用 veth 的方式,将容器中的虚拟网卡同 host 上的一 个Docker 网桥 docker0 连接在一起。 ### ipc 命名空间 -容器中进程交互还是采用了 Linux 常见的进程间交互方法(interprocess communication - IPC), 包括信号量、消息队列和共享内存等。然而同 VM 不同的是,容器的进程间交互实际上还是 host 上具有相同 pid 命名空间中的进程间交互,因此需要在 IPC 资源申请时加入命名空间信息,每个 IPC 资源有一个唯一的 32 位 id。 +容器中进程交互还是采用了 Linux 常见的进程间交互方法(interprocess communication - IPC), 包括信号量、消息队列和共享内存等。然而同 VM 不同的是,容器的进程间交互实际上还是 host 上具有相同 pid 命名空间中的进程间交互,因此需要在 IPC 资源申请时加入命名空间信息,每个 IPC 资源有一个唯一的 32 位 id。 ### mnt 命名空间 类似 chroot,将一个进程放到一个特定的目录执行。mnt 命名空间允许不同命名空间的进程看到的文件结构不同,这样每个命名空间 中的进程所看到的文件目录就被隔离开了。同 chroot 不同,每个命名空间中的容器在 /proc/mounts 的信息只包含所在命名空间的 mount point。 ### uts 命名空间 -UTS("UNIX Time-sharing System") 命名空间允许每个容器拥有独立的 hostname 和 domain name, 使其在网络上可以被视作一个独立的节点而非 主机上的一个进程。 +UTS("UNIX Time-sharing System") 命名空间允许每个容器拥有独立的 hostname 和 domain name, 使其在网络上可以被视作一个独立的节点而非 主机上的一个进程。 ### user 命名空间 -每个容器可以有不同的用户和组 id, 也就是说可以在容器内用容器内部的用户执行程序而非主机上的用户。 +每个容器可以有不同的用户和组 id, 也就是说可以在容器内用容器内部的用户执行程序而非主机上的用户。 *注:更多关于 Linux 上命名空间的信息,请阅读 [这篇文章](https://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/)。 From 21a811d265524300fda2411d9daadf83bddf9517 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Fri, 20 Sep 2019 15:05:06 +0800 Subject: [PATCH 422/611] [install] Fixed error Signed-off-by: Kang HuaiShuai --- install/README.md | 4 ++-- install/mirror.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install/README.md b/install/README.md index 915f7f0d8..eb6180d80 100644 --- a/install/README.md +++ b/install/README.md @@ -2,6 +2,6 @@ Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 -Docker CE 分为 **stable**, **test**, 和 **nightly** 三个更新频道。每六个月发布一个 **stable** 版本 (18.09, 19.03, 19.09...)。 +Docker CE 分为 `stable` `test` 和 `nightly` 三个更新频道。每六个月发布一个 `stable` 版本 (`18.09`, `19.03`, `19.09`...)。 -官方网站上有各种环境下的 [安装指南](https://docs.docker.com/engine/installation/),这里主要介绍 Docker CE 在 Linux 、Windows 10 (PC) 和 macOS 上的安装。 +官方网站上有各种环境下的 [安装指南](https://docs.docker.com/install/),这里主要介绍 Docker CE 在 `Linux` 、`Windows 10` 和 `macOS` 上的安装。 diff --git a/install/mirror.md b/install/mirror.md index 57ee1a3ec..3b7e25e44 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -10,7 +10,7 @@ > 国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档。 -我们以 Azure 中国镜像 `https://dockerhub.azk8s.cn` 为例进行介绍。 +本节我们以 Azure 中国镜像 `https://dockerhub.azk8s.cn` 为例进行介绍。 ### Ubuntu 16.04+、Debian 8+、CentOS 7 @@ -38,7 +38,7 @@ $ sudo systemctl restart docker ### Windows 10 -对于使用 Windows 10 的系统,在系统右下角托盘 Docker 图标内右键菜单选择 `Settings`,打开配置窗口后在左侧导航菜单选择 `Docker Engine`,在右侧像下边一样编辑 json 文件,之后点击 `Apply & Restart` 保存后 Docker 就会重启并应用配置的镜像地址了。 +对于使用 `Windows 10` 的用户,在任务栏托盘 Docker 图标内右键菜单选择 `Settings`,打开配置窗口后在左侧导航菜单选择 `Docker Engine`,在右侧像下边一样编辑 json 文件,之后点击 `Apply & Restart` 保存后 Docker 就会重启并应用配置的镜像地址了。 ```json { From f17f29bf4174fff3e81c3ca587f84281bf60ff0c Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Fri, 20 Sep 2019 15:29:02 +0800 Subject: [PATCH 423/611] Update format Signed-off-by: Kang HuaiShuai --- cases/os/alpine.md | 2 +- cases/os/busybox.md | 8 ++++---- cases/os/centos.md | 10 +++++----- cases/os/debian.md | 26 +++++++++++++------------- cases/os/summary.md | 2 +- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/cases/os/alpine.md b/cases/os/alpine.md index 842644984..89398ab71 100644 --- a/cases/os/alpine.md +++ b/cases/os/alpine.md @@ -8,7 +8,7 @@ `Alpine` 由非商业组织维护的,支持广泛场景的 `Linux`发行版,它特别为资深/重度`Linux`用户而优化,关注安全,性能和资源效能。`Alpine` 镜像可以适用于更多常用场景,并且是一个优秀的可以适用于生产的基础系统/环境。 -`Alpine` Docker 镜像也继承了 Alpine Linux 发行版的这些优势。相比于其他 `Docker` 镜像,它的容量非常小,仅仅只有 5 MB 左右(对比 Ubuntu 系列镜像接近 200 MB),且拥有非常友好的包管理机制。官方镜像来自 `docker-alpine` 项目。 +`Alpine` Docker 镜像也继承了 `Alpine Linux` 发行版的这些优势。相比于其他 `Docker` 镜像,它的容量非常小,仅仅只有 **5 MB** 左右(对比 `Ubuntu` 系列镜像接近 `200 MB`),且拥有非常友好的包管理机制。官方镜像来自 `docker-alpine` 项目。 目前 Docker 官方已开始推荐使用 `Alpine` 替代之前的 `Ubuntu` 做为基础镜像环境。这样会带来多个好处。包括镜像下载速度加快,镜像安全性提高,主机之间的切换更方便,占用更少磁盘空间等。 diff --git a/cases/os/busybox.md b/cases/os/busybox.md index e18b0b4a0..16bd26cb3 100644 --- a/cases/os/busybox.md +++ b/cases/os/busybox.md @@ -6,11 +6,11 @@ `BusyBox` 是一个集成了一百多个最常用 Linux 命令和工具(如 `cat`、`echo`、`grep`、`mount`、`telnet` 等)的精简工具箱,它只需要几 MB 的大小,很方便进行各种快速验证,被誉为“Linux 系统的瑞士军刀”。 -`BusyBox` 可运行于多款 POSIX 环境的操作系统中,如 `Linux`(包括 `Android`)、`Hurd`、`FreeBSD` 等。 +`BusyBox` 可运行于多款 `POSIX` 环境的操作系统中,如 `Linux`(包括 `Android`)、`Hurd`、`FreeBSD` 等。 ### 获取官方镜像 -在 Docker Hub 中搜索 `busybox` 相关的镜像。 +在 `Docker Hub` 中搜索 `busybox` 相关的镜像。 ```bash $ docker search busybox @@ -36,7 +36,7 @@ df7546f9f060: Pull complete Status: Downloaded newer image for busybox:latest ``` -下载后,可以看到 `busybox` 镜像只有 2.433 MB: +下载后,可以看到 `busybox` 镜像只有 **2.433 MB**: ```bash $ docker image ls @@ -103,7 +103,7 @@ proc on /proc/bus type proc (ro,nosuid,nodev,noexec,relatime) tmpfs on /proc/kcore type tmpfs (rw,nosuid,mode=755) ``` -`busybox` 镜像虽然小巧,但包括了大量常见的 Linux 命令,读者可以用它快速熟悉 Linux 命令。 +`busybox` 镜像虽然小巧,但包括了大量常见的 `Linux` 命令,读者可以用它快速熟悉 `Linux` 命令。 ### 相关资源 diff --git a/cases/os/centos.md b/cases/os/centos.md index 463607532..10ed74467 100644 --- a/cases/os/centos.md +++ b/cases/os/centos.md @@ -6,11 +6,11 @@ ![CentOS 操作系统](_images/centos-logo.png) -CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统),它是基于 Red Hat Enterprise Linux 源代码编译而成。由于 CentOS 与 Redhat Linux 源于相同的代码基础,所以很多成本敏感且需要高稳定性的公司就使用 `CentOS` 来替代商业版 Red Hat Enterprise Linux。CentOS 自身不包含闭源软件。 +CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统),它是基于 `Red Hat Enterprise Linux` 源代码编译而成。由于 `CentOS` 与 `Redhat Linux` 源于相同的代码基础,所以很多成本敏感且需要高稳定性的公司就使用 `CentOS` 来替代商业版 `Red Hat Enterprise Linux`。`CentOS` 自身不包含闭源软件。 #### 使用 CentOS 官方镜像 -首先使用 `docker search` 命令来搜索标星至少为 25 的 CentOS 相关镜像。 +首先使用 `docker search` 命令来搜索标星至少为 `25` 的 `CentOS` 相关镜像。 ```bash $ docker search -f stars=25 centos @@ -19,7 +19,7 @@ centos The official... 2543 [OK] jdeathe/centos-ssh 27 [OK] ``` -使用 docker run 直接运行最新的 CentOS 镜像,并登录 `bash`。 +使用 `docker run` 直接运行最新的 `CentOS` 镜像,并登录 `bash`。 ```bash $ docker run -it centos bash @@ -36,11 +36,11 @@ CentOS Linux release 7.2.1511 (Core) ![Fedora 操作系统](_images/fedora-logo.png) -`Fedora` 由 Fedora Project 社区开发,红帽公司赞助的 Linux 发行版。它的目标是创建一套新颖、多功能并且自由和开源的操作系统。`Fedora` 的功能对于用户而言,它是一套功能完备的,可以更新的免费操作系统,而对赞助商 Red Hat 而言,它是许多新技术的测试平台。被认为可用的技术最终会加入到 Red Hat Enterprise Linux 中。 +`Fedora` 由 `Fedora Project` 社区开发,红帽公司赞助的 `Linux` 发行版。它的目标是创建一套新颖、多功能并且自由和开源的操作系统。`Fedora` 的功能对于用户而言,它是一套功能完备的,可以更新的免费操作系统,而对赞助商 `Red Hat` 而言,它是许多新技术的测试平台。被认为可用的技术最终会加入到 `Red Hat Enterprise Linux` 中。 #### 使用 Fedora 官方镜像 -首先使用 `docker search` 命令来搜索标星至少为 2 的 Fedora 相关镜像,结果如下。 +首先使用 `docker search` 命令来搜索标星至少为 `2` 的 `Fedora` 相关镜像,结果如下。 ```bash $ docker search -f stars=2 fedora diff --git a/cases/os/debian.md b/cases/os/debian.md index b27bb7dc9..ce975dde8 100644 --- a/cases/os/debian.md +++ b/cases/os/debian.md @@ -1,19 +1,19 @@ ## Debian/Ubuntu -`Debian` 和 `Ubuntu` 都是目前较为流行的 Debian 系的服务器操作系统,十分适合研发场景。Docker Hub 上提供了官方镜像,国内各大容器云服务也基本都提供了相应的支持。 +`Debian` 和 `Ubuntu` 都是目前较为流行的 **Debian 系** 的服务器操作系统,十分适合研发场景。`Docker Hub` 上提供了官方镜像,国内各大容器云服务也基本都提供了相应的支持。 ### Debian 系统简介 ![Debian 操作系统](_images/debian-logo.png) -`Debian` 是由 `GPL` 和其他自由软件许可协议授权的自由软件组成的操作系统,由 Debian 计划(Debian Project)组织维护。Debian 计划是一个独立的、分散的组织,由 3000 人志愿者组成,接受世界多个非盈利组织的资金支持,Software in the Public Interest 提供支持并持有商标作为保护机构。Debian 以其坚守 Unix 和自由软件的精神,以及其给予用户的众多选择而闻名。现时 Debian 包括了超过 25,000 个软件包并支持 12 个计算机系统结构。 +`Debian` 是由 `GPL` 和其他自由软件许可协议授权的自由软件组成的操作系统,由 **Debian 计划(Debian Project)** 组织维护。**Debian 计划** 是一个独立的、分散的组织,由 `3000` 人志愿者组成,接受世界多个非盈利组织的资金支持,`Software in the Public Interest` 提供支持并持有商标作为保护机构。`Debian` 以其坚守 `Unix` 和自由软件的精神,以及其给予用户的众多选择而闻名。现时 `Debian` 包括了超过 `25,000` 个软件包并支持 `12` 个计算机系统结构。 -Debian 作为一个大的系统组织框架,其下有多种不同操作系统核心的分支计划,主要为采用 Linux 核心的 Debian GNU/Linux 系统,其他还有采用 GNU Hurd 核心的 Debian GNU/Hurd 系统、采用 FreeBSD 核心的 Debian GNU/kFreeBSD 系统,以及采用 NetBSD 核心的 Debian GNU/NetBSD 系统。甚至还有利用 Debian 的系统架构和工具,采用 OpenSolaris 核心构建而成的 Nexenta OS 系统。在这些 Debian 系统中,以采用 Linux 核心的 Debian GNU/Linux 最为著名。 +`Debian` 作为一个大的系统组织框架,其下有多种不同操作系统核心的分支计划,主要为采用 `Linux` 核心的 `Debian GNU/Linux` 系统,其他还有采用 `GNU Hurd` 核心的 `Debian GNU/Hurd` 系统、采用 `FreeBSD` 核心的 `Debian GNU/kFreeBSD` 系统,以及采用 `NetBSD` 核心的 `Debian GNU/NetBSD` 系统。甚至还有利用 `Debian` 的系统架构和工具,采用 `OpenSolaris` 核心构建而成的 `Nexenta OS` 系统。在这些 `Debian` 系统中,以采用 `Linux` 核心的 `Debian GNU/Linux` 最为著名。 -众多的 Linux 发行版,例如 Ubuntu、Knoppix 和 Linspire 及 Xandros 等,都基于 Debian GNU/Linux。 +众多的 `Linux` 发行版,例如 `Ubuntu`、`Knoppix` 和 `Linspire` 及 `Xandros` 等,都基于 `Debian GNU/Linux`。 #### 使用 Debian 官方镜像 -读者可以使用 docker search 搜索 Docker Hub,查找 Debian 镜像: +读者可以使用 `docker search` 查找 `Debian` 镜像: ```bash $ docker search debian @@ -24,9 +24,9 @@ armbuild/debian port of debian 8 [OK] ... ``` -官方提供了大家熟知的 debian 镜像以及面向科研领域的 neurodebian 镜像。 +官方提供了大家熟知的 `debian` 镜像以及面向科研领域的 `neurodebian` 镜像。 -可以使用 docker run 直接运行 Debian 镜像。 +可以使用 `docker run` 直接运行 `Debian` 镜像。 ```bash $ docker run -it debian bash @@ -34,17 +34,17 @@ root@668e178d8d69:/# cat /etc/issue Debian GNU/Linux 8 ``` -Debian 镜像很适合作为基础镜像,构建自定义镜像。 +`Debian` 镜像很适合作为基础镜像,构建自定义镜像。 ### Ubuntu 系统简介 ![Ubuntu 操作系统](_images/ubuntu-logo.jpg) -Ubuntu 是一个以桌面应用为主的GNU/Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(官方译名“友帮拓”,另有“吾帮托”、“乌班图”、“有奔头”或“乌斑兔”等译名)。Ubuntu 意思是“人性”以及“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。 Ubuntu 基于 Debian 发行版和 GNOME/Unity 桌面环境,与 Debian 的不同在于它每 6 个月会发布一个新版本,每 2 年推出一个长期支持(Long Term Support,LTS)版本,一般支持 3 年时间。 +`Ubuntu` 是一个以桌面应用为主的 `GNU/Linux` 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(官方译名“友帮拓”,另有“吾帮托”、“乌班图”、“有奔头”或“乌斑兔”等译名)。`Ubuntu` 意思是“人性”以及“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。 `Ubuntu` 基于 `Debian` 发行版和 `GNOME/Unity` 桌面环境,与 `Debian` 的不同在于它每 6 个月会发布一个新版本,每 2 年推出一个长期支持 **(Long Term Support,LTS)** 版本,一般支持 3 年时间。 #### 使用 Ubuntu 官方镜像 -Ubuntu 相关的镜像有很多,这里使用 `--filter=stars=10` 参数,只搜索那些被收藏 10 次以上的镜像。 +`Ubuntu` 相关的镜像有很多,这里使用 `--filter=stars=10` 参数,只搜索那些被收藏 `10` 次以上的镜像。 ```bash $ docker search --filter=stars=10 ubuntu @@ -106,7 +106,7 @@ Get:1 http://archive.ubuntu.com trusty Release.gpg [933 B] ... ``` -首先,安装 curl 工具。 +首先,安装 `curl` 工具。 ```bash root@7d93de07bf76:/# apt-get install curl @@ -125,7 +125,7 @@ root@7d93de07bf76:/# curl curl: try 'curl --help' or 'curl --manual' for more information ``` -接下来,再安装 apache 服务。 +接下来,再安装 `apache` 服务。 ```bash root@7d93de07bf76:/# apt-get install -y apache2 @@ -138,7 +138,7 @@ The following extra packages will be installed: ... ``` -启动这个 apache 服务,然后使用 curl 来测试本地访问。 +启动这个 `apache` 服务,然后使用 `curl` 来测试本地访问。 ```bash root@7d93de07bf76:/# service apache2 start diff --git a/cases/os/summary.md b/cases/os/summary.md index 88136dce0..48afe0436 100644 --- a/cases/os/summary.md +++ b/cases/os/summary.md @@ -2,7 +2,7 @@ 本章讲解了典型操作系统镜像的下载和使用。 -除了官方的镜像外,在 Docker Hub 上还有许多第三方组织或个人上传的 Docker 镜像。 +除了官方的镜像外,在 `Docker Hub` 上还有许多第三方组织或个人上传的 Docker 镜像。 读者可以根据具体情况来选择。一般来说: From f260e3ba88551b7540b9e7a14160a6565ea5bd07 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Fri, 20 Sep 2019 16:50:32 +0800 Subject: [PATCH 424/611] Add wechat group Signed-off-by: Kang HuaiShuai --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 002356db3..26f81731b 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,13 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 * QQ 群 IX (已满):571502246 * QQ 群 X (可加):145983035 ->如果有问题,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new/choose) 来提出。 +>如果有容器相关的疑问,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new/choose) 来提出。 + +

    + +

    + +

    微信扫码 加入群聊~

    ## 进阶学习 From 224fbe9fedb1960be84806dd1019c2c22bf65828 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Fri, 20 Sep 2019 16:51:04 +0800 Subject: [PATCH 425/611] Fixed outdated content Signed-off-by: Kang HuaiShuai --- SUMMARY.md | 2 +- appendix/repo/nodejs.md | 4 ++-- cases/ci/README.md | 6 +++--- cases/ci/drone/README.md | 2 +- cases/ci/drone/{.image => _images}/drone-build.png | Bin 5 files changed, 7 insertions(+), 7 deletions(-) rename cases/ci/drone/{.image => _images}/drone-build.png (100%) diff --git a/SUMMARY.md b/SUMMARY.md index 64897ab19..b2a8b868e 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -156,11 +156,11 @@ * [CentOS](appendix/repo/centos.md) * [Nginx](appendix/repo/nginx.md) * [PHP](appendix/repo/php.md) + * [Node.js](appendix/repo/nodejs.md) * [MySQL](appendix/repo/mysql.md) * [WordPress](appendix/repo/wordpress.md) * [MongoDB](appendix/repo/mongodb.md) * [Redis](appendix/repo/redis.md) - * [Node.js](appendix/repo/nodejs.md) * [附录三:Docker 命令查询](appendix/command/README.md) * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) * [附录五:如何调试 Docker](appendix/debug.md) diff --git a/appendix/repo/nodejs.md b/appendix/repo/nodejs.md index 10b24b10d..38503a9d3 100644 --- a/appendix/repo/nodejs.md +++ b/appendix/repo/nodejs.md @@ -11,7 +11,7 @@ 在项目中创建一个 Dockerfile。 ```bash -FROM node:9 +FROM node:12 # replace this with your application's default port EXPOSE 8888 ``` @@ -31,7 +31,7 @@ $ docker run -it --rm \ # -v "$(pwd)":/usr/src/myapp \ --mount type=bind,src=`$(pwd)`,target=/usr/src/myapp \ -w /usr/src/myapp \ - node:9-alpine \ + node:12-alpine \ node your-daemon-or-script.js ``` diff --git a/cases/ci/README.md b/cases/ci/README.md index 40910184d..e304f68ec 100644 --- a/cases/ci/README.md +++ b/cases/ci/README.md @@ -1,7 +1,7 @@ # CI/CD -持续集成(Continuous integration)是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 +**持续集成(Continuous integration)** 是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 -持续部署(continuous deployment)是通过自动化的构建、测试和部署循环来快速交付高质量的产品。 +**持续部署(continuous deployment)** 是通过自动化的构建、测试和部署循环来快速交付高质量的产品。 -与 `Jenkins` 不同的是,基于 Docker 的 CI/CD 每一步都运行在 Docker 镜像中,所以理论上支持所有的编程语言。 +与 `Jenkins` 不同的是,基于 Docker 的 CI/CD 每一步都运行在 Docker 容器中,所以理论上支持所有的编程语言。 diff --git a/cases/ci/drone/README.md b/cases/ci/drone/README.md index 994eb114c..69271c39a 100644 --- a/cases/ci/drone/README.md +++ b/cases/ci/drone/README.md @@ -86,7 +86,7 @@ $ git push origin master 打开我们部署好的 `Drone` 网站或者 Drone Cloud,即可看到构建结果。 -![](.image/drone-build.png) +![](_images/drone-build.png) 当然我们也可以把构建结果上传到 GitHub,Docker Registry,云服务商提供的对象存储,或者生产环境中。 diff --git a/cases/ci/drone/.image/drone-build.png b/cases/ci/drone/_images/drone-build.png similarity index 100% rename from cases/ci/drone/.image/drone-build.png rename to cases/ci/drone/_images/drone-build.png From 38e810a407a8b2dc808ed87ee6d6a520fc5c55be Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 25 Sep 2019 10:30:12 +0800 Subject: [PATCH 426/611] [install] Fixed script install, default channel is stable Signed-off-by: Kang HuaiShuai --- install/centos.md | 5 +++-- install/debian.md | 5 +++-- install/fedora.md | 5 +++-- install/raspberry-pi.md | 5 +++-- install/ubuntu.md | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/install/centos.md b/install/centos.md index 8c986a700..d0d2ec3d0 100644 --- a/install/centos.md +++ b/install/centos.md @@ -74,14 +74,15 @@ $ sudo yum install docker-ce ### 使用脚本自动安装 -在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装: +在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: ```bash $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun +# $ sudo sh get-docker.sh --mirror AzureChinaCloud ``` -执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的 Edge 版本安装在系统中。 +执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 ### 启动 Docker CE diff --git a/install/debian.md b/install/debian.md index fa7f7fa5e..3d38b1f28 100644 --- a/install/debian.md +++ b/install/debian.md @@ -78,14 +78,15 @@ $ sudo apt-get install docker-ce ### 使用脚本自动安装 -在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装: +在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: ```bash $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun +# $ sudo sh get-docker.sh --mirror AzureChinaCloud ``` -执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的 Edge 版本安装在系统中。 +执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 ### 启动 Docker CE diff --git a/install/fedora.md b/install/fedora.md index 0f235e99c..dfd4d4f8a 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -92,14 +92,15 @@ $ sudo dnf -y install docker-ce-18.06.1.ce ### 使用脚本自动安装 -在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装: +在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: ```bash $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun +# $ sudo sh get-docker.sh --mirror AzureChinaCloud ``` -执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 最新版本安装在系统中。 +执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 最新稳定(stable)版本安装在系统中。 ### 启动 Docker CE diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 4a15a035e..5d04de4df 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -70,14 +70,15 @@ $ sudo apt-get install docker-ce ### 使用脚本自动安装 -在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Raspbian 系统上可以使用这套脚本安装: +在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Raspbian 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: ```bash $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun +# $ sudo sh get-docker.sh --mirror AzureChinaCloud ``` -执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的 Edge 版本安装在系统中。 +执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 ### 启动 Docker CE diff --git a/install/ubuntu.md b/install/ubuntu.md index ad6e20060..9cd599d35 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -81,14 +81,15 @@ $ sudo apt-get install docker-ce ### 使用脚本自动安装 -在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装: +在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: ```bash $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun +# $ sudo sh get-docker.sh --mirror AzureChinaCloud ``` -执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的 Edge 版本安装在系统中。 +执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 ### 启动 Docker CE From b11cac80fb9e910457dea4fc0316eb138ab06ebf Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 25 Sep 2019 10:49:40 +0800 Subject: [PATCH 427/611] [Registry Mirror] Update mirror Signed-off-by: Kang HuaiShuai --- machine/usage.md | 4 ++-- repository/registry.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/machine/usage.md b/machine/usage.md index 3330fafd9..f9b90d416 100644 --- a/machine/usage.md +++ b/machine/usage.md @@ -16,7 +16,7 @@ $ docker-machine create -d virtualbox test `--engine-opt dns=114.114.114.114` 配置 Docker 的默认 DNS -`--engine-registry-mirror https://registry.docker-cn.com` 配置 Docker 的仓库镜像 +`--engine-registry-mirror https://dockerhub.azk8s.cn` 配置 Docker 的仓库镜像 `--virtualbox-memory 2048` 配置主机内存 @@ -37,7 +37,7 @@ $ docker-machine create \ -d xhyve \ # --xhyve-boot2docker-url ~/.docker/machine/cache/boot2docker.iso \ --engine-opt dns=114.114.114.114 \ - --engine-registry-mirror https://registry.docker-cn.com \ + --engine-registry-mirror https://dockerhub.azk8s.cn \ --xhyve-memory-size 2048 \ --xhyve-rawdisk \ --xhyve-cpu-count 2 \ diff --git a/repository/registry.md b/repository/registry.md index 9b11e1caa..bacc3a150 100644 --- a/repository/registry.md +++ b/repository/registry.md @@ -104,7 +104,7 @@ REPOSITORY TAG IMAGE ID CREAT ```json { "registry-mirror": [ - "https://registry.docker-cn.com" + "https://dockerhub.azk8s.cn" ], "insecure-registries": [ "192.168.199.100:5000" @@ -116,4 +116,4 @@ REPOSITORY TAG IMAGE ID CREAT ### 其他 -对于 Docker Desktop for Windows 、 Docker Desktop for Mac 在设置中编辑 `daemon.json` 增加和上边一样的字符串即可。 +对于 Docker Desktop for Windows 、 Docker Desktop for Mac 在设置中的 `Docker Engine` 中进行编辑 ,增加和上边一样的字符串即可。 From 3923858f00702efa2ccd1e93b96ecba9f40f5991 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 25 Sep 2019 11:00:57 +0800 Subject: [PATCH 428/611] Update format Signed-off-by: Kang HuaiShuai --- introduction/README.md | 4 ++-- introduction/what.md | 10 +++++----- introduction/why.md | 16 ++++++++-------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/introduction/README.md b/introduction/README.md index 55f5dac92..2907907a5 100644 --- a/introduction/README.md +++ b/introduction/README.md @@ -1,7 +1,7 @@ # 简介 -本章将带领你进入 Docker 的世界。 +本章将带领你进入 **Docker** 的世界。 -什么是 Docker? +什么是 **Docker**? 用它会带来什么样的好处? diff --git a/introduction/what.md b/introduction/what.md index 84060c501..dd568dd5f 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -1,10 +1,10 @@ ## 什么是 Docker -Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源][docker-soft],主要项目代码在 [GitHub](https://github.com/moby/moby) 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 [开放容器联盟(OCI)](https://www.opencontainers.org/)。 +**Docker** 最初是 `dotCloud` 公司创始人 [Solomon Hykes](https://github.com/shykes) 在法国期间发起的一个公司内部项目,它是基于 `dotCloud` 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源][docker-soft],主要项目代码在 [GitHub](https://github.com/moby/moby) 上进行维护。`Docker` 项目后来还加入了 Linux 基金会,并成立推动 [开放容器联盟(OCI)](https://www.opencontainers.org/)。 -Docker 自开源后受到广泛的关注和讨论,至今其 [GitHub 项目](https://github.com/moby/moby) 已经超过 5 万 2 千个星标和一万多个 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 项目](https://github.com/moby/moby) 已经超过 5 万 4 千个星标和一万多个 `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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 +**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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 ![Docker 架构](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/media/docker-on-linux.png) @@ -12,9 +12,9 @@ Docker 使用 Google 公司推出的 [Go 语言](https://golang.org/) 进行开 > `containerd` 是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。 -Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。 +**Docker** 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 `Docker` 技术比虚拟机技术更为轻便、快捷。 -下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。 +下面的图片比较了 **Docker** 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。 ![传统虚拟化](_images/virtualization.png) diff --git a/introduction/why.md b/introduction/why.md index 0f7ae0823..d083044f1 100644 --- a/introduction/why.md +++ b/introduction/why.md @@ -1,34 +1,34 @@ ## 为什么要使用 Docker? -作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。 +作为一种新兴的虚拟化方式,`Docker` 跟传统的虚拟化方式相比具有众多的优势。 ### 更高效的利用系统资源 -由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。 +由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,`Docker` 对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。 ### 更快速的启动时间 -传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。 +传统的虚拟机技术启动应用服务往往需要数分钟,而 `Docker` 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。 ### 一致的运行环境 -开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 *「这段代码在我机器上没问题啊」* 这类问题。 +开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 `Docker` 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 *「这段代码在我机器上没问题啊」* 这类问题。 ### 持续交付和部署 对开发和运维([DevOps](https://zh.wikipedia.org/wiki/DevOps))人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。 -使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 [Dockerfile](../image/dockerfile/) 来进行镜像构建,并结合 [持续集成(Continuous Integration)](https://en.wikipedia.org/wiki/Continuous_integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 [持续部署(Continuous Delivery/Deployment)](https://en.wikipedia.org/wiki/Continuous_delivery) 系统进行自动部署。 +使用 `Docker` 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 [Dockerfile](../image/dockerfile/) 来进行镜像构建,并结合 [持续集成(Continuous Integration)](https://en.wikipedia.org/wiki/Continuous_integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 [持续部署(Continuous Delivery/Deployment)](https://en.wikipedia.org/wiki/Continuous_delivery) 系统进行自动部署。 -而且使用 `Dockerfile` 使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。 +而且使用 [`Dockerfile`](../image/build.md) 使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。 ### 更轻松的迁移 -由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。 +由于 `Docker` 确保了执行环境的一致性,使得应用的迁移更加容易。`Docker` 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。 ### 更轻松的维护和扩展 -Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的 [官方镜像](https://hub.docker.com/search/?type=image&image_filter=official),既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。 +`Docker` 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。此外,`Docker` 团队同各个开源项目团队一起维护了一大批高质量的 [官方镜像](https://hub.docker.com/search/?type=image&image_filter=official),既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。 ### 对比传统虚拟机总结 From 008f01592b02ca86e6591a99cd03ace50c7f7a74 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 25 Sep 2019 11:04:01 +0800 Subject: [PATCH 429/611] Update docker hub Signed-off-by: Kang HuaiShuai --- repository/dockerhub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/dockerhub.md b/repository/dockerhub.md index 2284b9cbd..7ed35aafb 100644 --- a/repository/dockerhub.md +++ b/repository/dockerhub.md @@ -1,6 +1,6 @@ ## Docker Hub -目前 Docker 官方维护了一个公共仓库 [Docker Hub](https://hub.docker.com/),其中已经包括了数量超过 15,000 的镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。 +目前 Docker 官方维护了一个公共仓库 [Docker Hub](https://hub.docker.com/),其中已经包括了数量超过 [2,650,000](https://hub.docker.com/search/?type=image) 的镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。 ### 注册 From a3647ec3a3f65f4062a0b407fae83d33ca15d679 Mon Sep 17 00:00:00 2001 From: uscwifi <42139780+uscwifi@users.noreply.github.com> Date: Sat, 5 Oct 2019 23:18:48 +0800 Subject: [PATCH 430/611] Update centos.md --- appendix/repo/centos.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appendix/repo/centos.md b/appendix/repo/centos.md index 96b7d7192..3ef727ff0 100644 --- a/appendix/repo/centos.md +++ b/appendix/repo/centos.md @@ -4,7 +4,7 @@ [CentOS](https://en.wikipedia.org/wiki/CentOS) 是流行的 Linux 发行版,其软件包大多跟 RedHat 系列保持一致。 -该仓库位于 `https://hub.docker.com/_/centos` ,提供了 CentOS 从 5 ~ 7 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/centos` ,提供了 CentOS 从 5 ~ 8 各个版本的镜像。 ### 使用方法 From c788212aad0502dd36659d254296aa3758460b20 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 29 Oct 2019 14:31:45 +0800 Subject: [PATCH 431/611] Use vuepress build book Signed-off-by: Kang HuaiShuai --- .github/workflows/ci.yaml | 14 ++ .gitignore | 1 + .vuepress/config.js | 352 +++++++++++++++++++++++++++++ CHANGELOG.md | 3 +- CONTRIBUTING.md | 2 +- SUMMARY.md | 4 +- appendix/best_practices.md | 28 +-- appendix/faq/README.md | 11 +- basic_concept/container.md | 2 +- basic_concept/image.md | 4 +- basic_concept/repository.md | 6 +- cases/ci/travis/README.md | 2 +- compose/django.md | 2 +- compose/rails.md | 4 +- compose/usage.md | 2 +- image/build.md | 12 +- image/buildkit.md | 2 +- image/buildx.md | 148 ++++++++++++ image/buildx_multi-arch-images.md | 78 +++++++ image/commit.md | 4 +- image/demo/multi-arch/Dockerfile | 5 + image/dockerfile/add.md | 4 +- image/dockerfile/cmd.md | 8 +- image/dockerfile/copy.md | 6 +- image/dockerfile/entrypoint.md | 6 +- image/dockerfile/env.md | 2 +- image/dockerfile/healthcheck.md | 2 +- image/dockerfile/onbuild.md | 10 +- image/dockerfile/user.md | 4 +- image/dockerfile/volume.md | 2 +- image/manifest.md | 4 +- image/multistage-builds/README.md | 12 +- image/multistage-builds/laravel.md | 10 +- introduction/what.md | 2 +- introduction/why.md | 16 +- 35 files changed, 690 insertions(+), 84 deletions(-) create mode 100644 .vuepress/config.js create mode 100644 image/buildx.md create mode 100644 image/buildx_multi-arch-images.md create mode 100644 image/demo/multi-arch/Dockerfile diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2a9b40867..24b1f2e83 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,3 +16,17 @@ jobs: uses: docker://yeasy/docker_practice with: args: build + - name: vuepress + run: | + npx vuepress build + - name: Upload Vuepress dist + uses: docker://pcit/pages + env: + PCIT_EMAIL: khs1994@khs1994.com + PCIT_GIT_TOKEN: ${{ secrets.PCIT_GIT_TOKEN }} + PCIT_GIT_URL: github.com/docker-practice/vuepress + PCIT_KEEP_HISTORY: "1" + PCIT_LOCAL_DIR: .vuepress/dist + PCIT_MESSAGE: Sync from yeasy/docker-practice@${{github.sha}} by PCIT + PCIT_TARGET_BRANCH: master + PCIT_USERNAME: khs1994 diff --git a/.gitignore b/.gitignore index e9372eb0f..5bd7cae1d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ _book/ *.edx .DS_Store node_modules/ +.vuepress/dist diff --git a/.vuepress/config.js b/.vuepress/config.js new file mode 100644 index 000000000..094378553 --- /dev/null +++ b/.vuepress/config.js @@ -0,0 +1,352 @@ +module.exports = { + title: 'Docker 从入门到实践', + base: '/', + themeConfig: { + docsRepo: 'yeasy/docker_practice', + docsDir: '/', + editLinks: true, + nav: [{ + text: '安装 Docker', + link: '/install/', + }, + { + text: 'Docker 入门', + link: '/' + }, + { + text: 'Docker 实战', + link: '/cases/os/' + }, + { + text: 'CI/CD', + link: '/cases/ci/' + }, + { + text: 'Docker 仓库', + link: '/repository/' + }, + { + text: '底层实现', + link: '/underly/', + }, + { + text: 'Compose', + link: '/compose/', + }, + { + text: 'Kubernetes', + link: '/kubernetes/', + }, + { + text: 'GitHub', + link: 'https://github.com/yeasy/docker_practice' + }, + // { + // text: '捐赠', + // link: '' + // }, + { + text: '腾讯云容器服务', + link: 'https://cloud.tencent.com/redirect.php?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61' + }, + // { + // text: '语言', + // items: [{ + // text: 'English', + // link: '' + // }] + // } + ], + sidebar: { + '/kubernetes/': [ + 'intro', + 'quickstart', + 'concepts', + 'kubectl', + 'design', + ], + '/compose/': [ + 'introduction', + 'install', + 'usage', + 'commands', + 'compose_file', + 'django', + 'rails', + 'wordpress', + ], + '/install/': [ + '/install/', + 'ubuntu', + 'debian', + 'fedora', + 'centos', + 'raspberry-pi', + 'mac', + 'windows', + 'mirror', + ], + '/underly/': [ + '/underly/', + 'arch', + 'namespace', + 'cgroups', + 'ufs', + 'container_format', + 'network', + ], + '/repository/': [ + '/repository/', + 'dockerhub', + 'registry', + 'registry_auth', + 'nexus3_registry', + ], + '/cases/os/': [ + { + title: "操作系统", + collapsable:false, + children: [ + '/cases/os/', + 'busybox', + 'alpine', + 'debian', + 'centos', + 'summary', + ], + }, + ], + '/cases/ci/': [ + '/cases/ci/', + '/cases/ci/actions/', + { + title: "Drone", + collapsable: false, + children: [ + 'drone/', + 'drone/install' + ] + }, + 'travis/' + ], + '/': [ + '/', + '/CHANGELOG', + '/CONTRIBUTING', + { + title: "Docker 简介", + collapsable: false, + children: [ + '/introduction/', + '/introduction/what', + '/introduction/why', + ] + },{ + title: "基本概念", + collapsable: false, + children: [ + '/basic_concept/', + '/basic_concept/image', + '/basic_concept/container', + '/basic_concept/repository' + ] + }, + { + title: "使用镜像", + collapsable: false, + children: [ + '/image/', + '/image/pull', + '/image/list', + '/image/rm', + '/image/commit', + '/image/build', + '/image/other.md', + '/image/internal.md', + ] + }, + { + title: 'Dockerfile', + collapsable: false, + children: [ + "/image/dockerfile/", + '/image/dockerfile/copy', + '/image/dockerfile/add', + '/image/dockerfile/cmd', + '/image/dockerfile/entrypoint', + '/image/dockerfile/env', + '/image/dockerfile/arg', + '/image/dockerfile/volume', + '/image/dockerfile/expose', + '/image/dockerfile/workdir', + '/image/dockerfile/user', + '/image/dockerfile/healthcheck', + '/image/dockerfile/onbuild', + '/image/dockerfile/references', + '/image/multistage-builds/', + '/image/multistage-builds/laravel', + '/image/manifest', + '/image/buildx_multi-arch-images', + '/image/buildkit', + '/image/buildx', + ] + },{ + title: "操作容器", + collapsable: false, + children: [ + 'container/', + 'container/run', + 'container/daemon', + 'container/stop', + 'container/attach_exec', + 'container/import_export', + 'container/rm', + ], + }, + { + title: "数据管理", + collapsable:false, + children: [ + 'data_management/', + 'data_management/volume', + 'data_management/bind-mounts', + ], + },{ + title: "使用网络", + collapsable:false, + children: [ + 'network/', + 'network/port_mapping', + 'network/linking', + 'network/dns', + ], + }, + { + title: "高级网络配置", + collapsable:false, + children: [ + 'advanced_network/', + 'advanced_network/quick_guide', + 'advanced_network/access_control', + 'advanced_network/port_mapping', + 'advanced_network/bridge', + 'advanced_network/example', + 'advanced_network/config_file', + 'advanced_network/ptp', + ], + }, + { + title: "Swarm mode", + collapsable:false, + children: [ + 'swarm_mode/', + 'swarm_mode/overview', + 'swarm_mode/create', + 'swarm_mode/deploy', + 'swarm_mode/stack', + 'swarm_mode/secret', + 'swarm_mode/config', + 'swarm_mode/rolling_update', + ], + }, + { + title: "安全", + collapsable: false, + children: [ + 'security/', + 'security/kernel_ns', + 'security/control_group', + 'security/daemon_sec', + 'security/kernel_capability', + 'security/other_feature', + 'security/summary', + ], + }, + { + title: "Etcd", + collapsable:false, + children: [ + 'etcd/', + 'etcd/intro', + 'etcd/install', + 'etcd/cluster', + 'etcd/etcdctl', + ], + }, + { + title: "Fedora CoreOS", + collapsable: false, + children: [ + 'coreos/', + 'coreos/intro', + 'coreos/intro_tools', + ], + }, + { + title: "容器与云计算", + collapsable:false, + children: [ + 'cloud/', + 'cloud/intro', + 'cloud/aws', + 'cloud/tencentCloud', + 'cloud/alicloud', + 'cloud/summary', + ], + }, + { + title: "Docker 开源项目", + collapsable:false, + children:[ + 'opensource/', + 'opensource/linuxkit', + ], + }, + { + title: "附录", + collapsable:false, + children: [ + 'appendix/', + 'appendix/faq/', + 'appendix/repo/', + 'appendix/repo/ubuntu', + 'appendix/repo/centos', + 'appendix/repo/nginx', + 'appendix/repo/php', + 'appendix/repo/nodejs', + 'appendix/repo/mysql', + 'appendix/repo/wordpress', + 'appendix/repo/mongodb', + 'appendix/repo/redis', + 'appendix/command/', + 'appendix/best_practices', + 'appendix/debug', + 'appendix/resources' + ], + }, + { + title: "Docker Machine", + collapsable: false, + children: [ + 'machine/', + 'machine/install', + 'machine/usage', + ], + }, + { + title: 'Mesos', + collapsable: false, + children: [ + '/mesos/intro', + '/mesos/installation', + '/mesos/architecture', + '/mesos/configuration', + '/mesos/monitor', + '/mesos/framework', + '/mesos/summary', + ] + }, + ], + }, + } +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 055b45edc..dd7d2e578 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,9 @@ -## 主要修订记录 +# 修订记录 * 1.1.0 2019-12-31 * 全面支持 v19.x 新版本 * 增加 `BuildKit` + * 增加 `docker buildx` 命令使用说明 * 增加 `docker manifest` 命令使用说明 * 移除 `Ubuntu 14.04` `Debian 8` `Debian 7` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0a2460660..65162c145 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -## 如何贡献项目 +# 如何贡献 领取或创建新的 [Issue](https://github.com/yeasy/docker_practice/issues),如 [issue 235](https://github.com/yeasy/docker_practice/issues/235),添加自己为 `Assignee`。 diff --git a/SUMMARY.md b/SUMMARY.md index b2a8b868e..3496d9b26 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -42,7 +42,9 @@ * [Dockerfile 多阶段构建](image/multistage-builds/README.md) * [实战多阶段构建 Laravel 镜像](image/multistage-builds/laravel.md) * [构建多种系统架构支持的 Docker 镜像](image/manifest.md) - * [使用 BuildKit 构建镜像](image/buildkit.md) + * [使用 buildx 构建多种系统架构支持的 Docker 镜像](image/buildx_multi-arch-images.md) + * [Docker v18.09 版本使用 BuildKit 构建镜像](image/buildkit.md) + * [Docker v19.03 版本使用 BuildKit 构建镜像](image/buildx.md) * [其它制作镜像的方式](image/other.md) * [实现原理](image/internal.md) * [操作容器](container/README.md) diff --git a/appendix/best_practices.md b/appendix/best_practices.md index 1aa165fe7..e93f8e2ec 100644 --- a/appendix/best_practices.md +++ b/appendix/best_practices.md @@ -36,7 +36,7 @@ 下面是来自 `buildpack-deps` 镜像的例子: -```dockerfile +```docker RUN apt-get update && apt-get install -y \ bzr \ cvs \ @@ -72,7 +72,7 @@ RUN apt-get update && apt-get install -y \ >注意:如果你的字符串中包含空格,必须将字符串放入引号中或者对空格使用转义。如果字符串内容本身就包含引号,必须对引号使用转义。 -```dockerfile +```docker # Set one or more individual labels LABEL com.example.version="0.0.1-beta" @@ -85,7 +85,7 @@ LABEL com.example.version.is-production="" 一个镜像可以包含多个标签,但建议将多个标签放入到一个 `LABEL` 指令中。 -```dockerfile +```docker # Set multiple labels at once, using line-continuation characters to break long lines LABEL vendor=ACME\ Incorporated \ com.example.is-beta= \ @@ -108,7 +108,7 @@ LABEL vendor=ACME\ Incorporated \ 永远将 `RUN apt-get update` 和 `apt-get install` 组合成一条 `RUN` 声明,例如: -```dockerfile +```docker RUN apt-get update && apt-get install -y \ package-bar \ package-baz \ @@ -117,7 +117,7 @@ RUN apt-get update && apt-get install -y \ 将 `apt-get update` 放在一条单独的 `RUN` 声明中会导致缓存问题以及后续的 `apt-get install` 失败。比如,假设你有一个 `Dockerfile` 文件: -```dockerfile +```docker FROM ubuntu:18.04 RUN apt-get update @@ -127,7 +127,7 @@ RUN apt-get install -y curl 构建镜像后,所有的层都在 Docker 的缓存中。假设你后来又修改了其中的 `apt-get install` 添加了一个包: -```dockerfile +```docker FROM ubuntu:18.04 RUN apt-get update @@ -139,7 +139,7 @@ Docker 发现修改后的 `RUN apt-get update` 指令和之前的完全一样。 使用 `RUN apt-get update && apt-get install -y` 可以确保你的 Dockerfiles 每次安装的都是包的最新的版本,而且这个过程不需要进一步的编码或额外干预。这项技术叫作 `cache busting`。你也可以显示指定一个包的版本号来达到 `cache-busting`,这就是所谓的固定版本,例如: -```dockerfile +```docker RUN apt-get update && apt-get install -y \ package-bar \ package-baz \ @@ -150,7 +150,7 @@ RUN apt-get update && apt-get install -y \ 下面是一个 `RUN` 指令的示例模板,展示了所有关于 `apt-get` 的建议。 -```dockerfile +```docker RUN apt-get update && apt-get install -y \ aufs-tools \ automake \ @@ -193,7 +193,7 @@ RUN apt-get update && apt-get install -y \ 最后,`ENV` 也能用于设置常见的版本号,比如下面的示例: -```dockerfile +```docker ENV PG_MAJOR 9.3 ENV PG_VERSION 9.3.4 @@ -211,7 +211,7 @@ ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH 如果你的 `Dockerfile` 有多个步骤需要使用上下文中不同的文件。单独 `COPY` 每个文件,而不是一次性的 `COPY` 所有文件,这将保证每个步骤的构建缓存只在特定的文件变化时失效。例如: -```dockerfile +```docker COPY requirements.txt /tmp/ RUN pip install --requirement /tmp/requirements.txt @@ -223,7 +223,7 @@ COPY . /tmp/ 为了让镜像尽量小,最好不要使用 `ADD` 指令从远程 URL 获取包,而是使用 `curl` 和 `wget`。这样你可以在文件提取完之后删掉不再需要的文件来避免在镜像中额外添加一层。比如尽量避免下面的用法: -```dockerfile +```docker ADD http://example.com/big.tar.xz /usr/src/things/ RUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things @@ -233,7 +233,7 @@ RUN make -C /usr/src/things all 而是应该使用下面这种方法: -```dockerfile +```docker RUN mkdir -p /usr/src/things \ && curl -SL http://example.com/big.tar.xz \ | tar -xJC /usr/src/things \ @@ -250,7 +250,7 @@ RUN mkdir -p /usr/src/things \ 例如,下面的示例镜像提供了命令行工具 `s3cmd`: -```dockerfile +```docker ENTRYPOINT ["s3cmd"] CMD ["--help"] @@ -295,7 +295,7 @@ exec "$@" 该辅助脚本被拷贝到容器,并在容器启动时通过 `ENTRYPOINT` 执行: -```dockerfile +```docker COPY ./docker-entrypoint.sh / ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/appendix/faq/README.md b/appendix/faq/README.md index cd91454af..5870c85bd 100644 --- a/appendix/faq/README.md +++ b/appendix/faq/README.md @@ -52,11 +52,18 @@ ### 如何获取某个容器的 PID 信息? -答:可以使用 `docker inspect --format '{{ .State.Pid }}' ` 命令。 +答:可以使用 + +```bash +docker inspect --format '{{ .State.Pid }}' +``` ### 如何获取某个容器的 IP 地址? -答:可以使用 `docker inspect --format '{{ .NetworkSettings.IPAddress }}' ` 命令 +答:可以使用 +```bash +docker inspect --format '{{ .NetworkSettings.IPAddress }}' +``` ### 如何给容器指定一个固定 IP 地址,而不是每次重启容器 IP 地址都会变? diff --git a/basic_concept/container.md b/basic_concept/container.md index aafb4093d..cd1dd441b 100644 --- a/basic_concept/container.md +++ b/basic_concept/container.md @@ -1,4 +1,4 @@ -## Docker 容器 +# Docker 容器 镜像(`Image`)和容器(`Container`)的关系,就像是面向对象程序设计中的 `类` 和 `实例` 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 diff --git a/basic_concept/image.md b/basic_concept/image.md index 6e4443e7f..5718a1556 100644 --- a/basic_concept/image.md +++ b/basic_concept/image.md @@ -1,10 +1,10 @@ -## Docker 镜像 +# Docker 镜像 我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 `root` 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 `root` 文件系统。比如官方镜像 `ubuntu:18.04` 就包含了完整的一套 Ubuntu 18.04 最小系统的 `root` 文件系统。 Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 -### 分层存储 +## 分层存储 因为镜像包含操作系统完整的 `root` 文件系统,其体积往往是庞大的,因此在 Docker 设计时,就充分利用 [Union FS](https://en.wikipedia.org/wiki/Union_mount) 的技术,将其设计为分层存储的架构。所以严格来说,镜像并非是像一个 ISO 那样的打包文件,镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。 diff --git a/basic_concept/repository.md b/basic_concept/repository.md index c1dae8242..f7255873d 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -1,4 +1,4 @@ -## Docker Registry +# Docker Registry 镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,[Docker Registry](../repository/registry.md) 就是这样的服务。 @@ -10,7 +10,7 @@ 仓库名经常以 *两段式路径* 形式出现,比如 `jwilder/nginx-proxy`,前者往往意味着 Docker Registry 多用户环境下的用户名,后者则往往是对应的软件名。但这并非绝对,取决于所使用的具体 Docker Registry 的软件或服务。 -### Docker Registry 公开服务 +## Docker Registry 公开服务 Docker Registry 公开服务是开放给用户使用、允许用户管理镜像的 Registry 服务。一般这类公开服务允许用户免费上传、下载公开的镜像,并可能提供收费服务供用户管理私有镜像。 @@ -20,7 +20,7 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像 国内也有一些云服务商提供类似于 Docker Hub 的公开服务。比如 [时速云镜像仓库](https://hub.tenxcloud.com/)、[网易云镜像服务](https://c.163.com/hub#/m/library/)、[DaoCloud 镜像市场](https://hub.daocloud.io/)、[阿里云镜像库](https://cr.console.aliyun.com) 等。 -### 私有 Docker Registry +## 私有 Docker Registry 除了使用公开服务外,用户还可以在本地搭建私有 Docker Registry。Docker 官方提供了 [Docker Registry](https://hub.docker.com/_/registry/) 镜像,可以直接使用做为私有 Registry 服务。在 [私有仓库](../repository/registry.md) 一节中,会有进一步的搭建私有 Registry 服务的讲解。 diff --git a/cases/ci/travis/README.md b/cases/ci/travis/README.md index b845309ec..d3337da6d 100644 --- a/cases/ci/travis/README.md +++ b/cases/ci/travis/README.md @@ -10,7 +10,7 @@ 在项目根目录新建一个 `Dockerfile` 文件。 -```dockerfile +```docker FROM alpine RUN echo "Hello World" diff --git a/compose/django.md b/compose/django.md index ce8fd7c41..c0f9f455c 100644 --- a/compose/django.md +++ b/compose/django.md @@ -8,7 +8,7 @@ 第一步,因为应用将要运行在一个满足所有环境依赖的 Docker 容器里面,那么我们可以通过编辑 `Dockerfile` 文件来指定 Docker 容器要安装内容。内容如下: -```dockerfile +```docker FROM python:3 ENV PYTHONUNBUFFERED 1 RUN mkdir /code diff --git a/compose/rails.md b/compose/rails.md index 96b2bb8f5..66db4a5c3 100644 --- a/compose/rails.md +++ b/compose/rails.md @@ -8,7 +8,7 @@ 首先,因为应用将要运行在一个满足所有环境依赖的 Docker 容器里面,那么我们可以通过编辑 `Dockerfile` 文件来指定 Docker 容器要安装内容。内容如下: -```dockerfile +```docker FROM ruby RUN apt-get update -qq && apt-get install -y build-essential libpq-dev RUN mkdir /myapp @@ -117,5 +117,3 @@ $ docker-compose run web rake db:create ``` 这个 web 应用已经开始在你的 docker 守护进程里面监听着 3000 端口了。 - -![](../_images/docker-compose-rails-screenshot.png) diff --git a/compose/usage.md b/compose/usage.md index 7f3d8b515..39cef0c6b 100644 --- a/compose/usage.md +++ b/compose/usage.md @@ -40,7 +40,7 @@ if __name__ == "__main__": 编写 `Dockerfile` 文件,内容为 -```dockerfile +```docker FROM python:3.6-alpine ADD . /code WORKDIR /code diff --git a/image/build.md b/image/build.md index ed2ca60e0..135207ddb 100644 --- a/image/build.md +++ b/image/build.md @@ -16,7 +16,7 @@ $ touch Dockerfile 其内容为: -```dockerfile +```docker FROM nginx RUN echo '

    Hello, Docker!

    ' > /usr/share/nginx/html/index.html ``` @@ -33,7 +33,7 @@ RUN echo '

    Hello, Docker!

    ' > /usr/share/nginx/html/index.html 除了选择现有镜像为基础镜像外,Docker 还存在一个特殊的镜像,名为 `scratch`。这个镜像是虚拟的概念,并不实际存在,它表示一个空白的镜像。 -```dockerfile +```docker FROM scratch ... ``` @@ -48,7 +48,7 @@ FROM scratch * *shell* 格式:`RUN <命令>`,就像直接在命令行中输入的命令一样。刚才写的 Dockerfile 中的 `RUN` 指令就是这种格式。 -```Dockerfile +```docker RUN echo '

    Hello, Docker!

    ' > /usr/share/nginx/html/index.html ``` @@ -56,7 +56,7 @@ RUN echo '

    Hello, Docker!

    ' > /usr/share/nginx/html/index.html 既然 `RUN` 就像 Shell 脚本一样可以执行命令,那么我们是否就可以像 Shell 脚本一样把每个命令对应一个 RUN 呢?比如这样: -```dockerfile +```docker FROM debian:stretch RUN apt-get update @@ -77,7 +77,7 @@ RUN make -C /usr/src/redis install 上面的 `Dockerfile` 正确的写法应该是这样: -```dockerfile +```docker FROM debian:stretch RUN buildDeps='gcc libc6-dev make wget' \ @@ -142,7 +142,7 @@ docker build [选项] <上下文路径/URL/-> 如果在 `Dockerfile` 中这么写: -```Dockerfile +```docker COPY ./package.json /app/ ``` diff --git a/image/buildkit.md b/image/buildkit.md index cf82aa636..7dc176f43 100644 --- a/image/buildkit.md +++ b/image/buildkit.md @@ -6,7 +6,7 @@ **注意:docker-compose build 命令暂时不支持 BuildKit** -下面介绍如何在 Docker CE 18.09+ 版本中使用 `BuildKit` 提供的 `Dockerfile` 新指令来更快、更安全的构建 Docker 镜像。 +下面介绍如何在 Docker CE 18.09 版本中使用 `BuildKit` 提供的 `Dockerfile` 新指令来更快、更安全的构建 Docker 镜像。 ### 启用 `BuildKit` diff --git a/image/buildx.md b/image/buildx.md new file mode 100644 index 000000000..a6ef6c796 --- /dev/null +++ b/image/buildx.md @@ -0,0 +1,148 @@ +## 使用 `Buildx` 构建镜像 + +**BuildKit** 是下一代的镜像构建组件,在 https://github.com/moby/buildkit 开源。 + +**注意:如果您的镜像构建使用的是云服务商提供的镜像构建服务(Docker Hub 自动构建、腾讯云容器服务、阿里云容器服务等),由于上述服务提供商的 Docker 版本低于 18.09,BuildKit 无法使用,将造成镜像构建失败。建议使用 BuildKit 构建镜像时使用一个新的 Dockerfile 文件(例如 Dockerfile.buildkit)** + +下面介绍如何在 Docker CE 19.03+ 版本中使用 `BuildKit` 提供的 `Dockerfile` 新指令来更快、更安全的构建 Docker 镜像。 + +### `Dockerfile` 新增指令详解 + +启用 `BuildKit` 之后,我们可以使用下面几个新的指令来加快镜像构建。为了使用 `BuildKit` 我们 **必须** 使用新的 `$ docker buildx build` 命令来构建 Docker 镜像。 + +#### `RUN --mount=type=cache` + +目前,几乎所有的程序都会使用依赖管理工具,例如 `Go` 中的 `go mod`、`Node.js` 中的 `npm` 等等,当我们构建一个镜像时,往往会重复的从互联网中获取依赖包,难以缓存,大大降低了镜像的构建效率。 + +例如一个前端工程需要用到 `npm`: + +```docker +FROM node:alpine as builder + +WORKDIR /app + +COPY package.json /app/ + +RUN npm i --registry=https://registry.npm.taobao.org \ + && rm -rf ~/.npm + +COPY src /app/src + +RUN npm run build + +FROM nginx:alpine + +COPY --from=builder /app/dist /app/dist +``` + +使用多阶段构建,构建的镜像中只包含了目标文件夹 `dist`,但仍然存在一些问题,当 `package.json` 文件变动时,`RUN npm i && rm -rf ~/.npm` 这一层会重新执行,变更多次后,生成了大量的中间层镜像。 + +为解决这个问题,进一步的我们可以设想一个类似 **数据卷** 的功能,在镜像构建时把 `node_modules` 文件夹挂载上去,在构建完成后,这个 `node_modules` 文件夹会自动卸载,实际的镜像中并不包含 `node_modules` 这个文件夹,这样我们就省去了每次获取依赖的时间,大大增加了镜像构建效率,同时也避免了生成了大量的中间层镜像。 + +`BuildKit` 提供了 `RUN --mount=type=cache` 指令,可以实现上边的设想。 + +```docker +FROM node:alpine as builder + +WORKDIR /app + +COPY package.json /app/ + +RUN --mount=type=cache,target=/app/node_modules,id=my_app_npm_module,sharing=locked \ + --mount=type=cache,target=/root/.npm,id=npm_cache \ + npm i --registry=https://registry.npm.taobao.org + +COPY src /app/src + +RUN --mount=type=cache,target=/app/node_modules,id=my_app_npm_module,sharing=locked \ +# --mount=type=cache,target=/app/dist,id=my_app_dist,sharing=locked \ + npm run build + +FROM nginx:alpine + +# COPY --from=builder /app/dist /app/dist + +# 为了更直观的说明 from 和 source 指令,这里使用 RUN 指令 +RUN --mount=type=cache,target=/tmp/dist,from=builder,source=/app/dist \ + # --mount=type=cache,target/tmp/dist,from=my_app_dist,sharing=locked \ + mkdir -p /app/dist && cp -r /tmp/dist/* /app/dist +``` + +第一个 `RUN` 指令执行后,`id` 为 `my_app_npm_module` 的缓存文件夹挂载到了 `/app/node_modules` 文件夹中。多次执行也不会产生多个中间层镜像。 + +第二个 `RUN` 指令执行时需要用到 `node_modules` 文件夹,`node_modules` 已经挂载,命令也可以正确执行。 + +第三个 `RUN` 指令将上一阶段产生的文件复制到指定位置,`from` 指明缓存的来源,这里 `builder` 表示缓存来源于构建的第一阶段,`source` 指明缓存来源的文件夹。 + +上面的 `Dockerfile` 中 `--mount=type=cache,...` 中指令作用如下: + +|Option |Description| +|---------------------|-----------| +|`id` | `id` 设置一个标志,以便区分缓存。| +|`target` (必填项) | 缓存的挂载目标文件夹。| +|`ro`,`readonly` | 只读,缓存文件夹不能被写入。 | +|`sharing` | 有 `shared` `private` `locked` 值可供选择。`sharing` 设置当一个缓存被多次使用时的表现,由于 `BuildKit` 支持并行构建,当多个步骤使用同一缓存时(同一 `id`)会发生冲突。`shared` 表示多个步骤可以同时读写,`private` 表示当多个步骤使用同一缓存时,每个步骤使用不同的缓存,`locked` 表示当一个步骤完成释放缓存后,后一个步骤才能继续使用该缓存。| +|`from` | 缓存来源(构建阶段),不填写时为空文件夹。| +|`source` | 来源的文件夹路径。| + +#### `RUN --mount=type=bind` + +该指令可以将一个镜像(或上一构建阶段)的文件挂载到指定位置。 + +```docker +RUN --mount=type=bind,from=php:alpine,source=/usr/local/bin/docker-php-entrypoint,target=/docker-php-entrypoint \ + cat /docker-php-entrypoint +``` + +#### `RUN --mount=type=tmpfs` + +该指令可以将一个 `tmpfs` 文件系统挂载到指定位置。 + +```docker +RUN --mount=type=tmpfs,target=/temp \ + mount | grep /temp +``` + +#### `RUN --mount=type=secret` + +该指令可以将一个文件挂载到指定位置。 + +```docker +RUN --mount=type=secret,id=aws,target=/root/.aws/credentials \ + cat /root/.aws/credentials +``` + +```bash +$ docker buildx build -t test --secret id=aws,src=$HOME/.aws/credentials . +``` + +#### `RUN --mount=type=ssh` + +该指令可以挂载 `ssh` 密钥。 + +```docker +FROM alpine +RUN apk add --no-cache openssh-client +RUN mkdir -p -m 0700 ~/.ssh && ssh-keyscan gitlab.com >> ~/.ssh/known_hosts +RUN --mount=type=ssh ssh git@gitlab.com | tee /hello +``` + +```bash +$ eval $(ssh-agent) +$ ssh-add ~/.ssh/id_rsa +(Input your passphrase here) + +$ docker buildx build -t test --ssh default=$SSH_AUTH_SOCK . +``` + +### 清理构建缓存 + +执行以下命令清理构建缓存 + +```bash +$ docker builder prune +``` + +### 官方文档 + +* https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md diff --git a/image/buildx_multi-arch-images.md b/image/buildx_multi-arch-images.md new file mode 100644 index 000000000..62ead2bd5 --- /dev/null +++ b/image/buildx_multi-arch-images.md @@ -0,0 +1,78 @@ +# 使用 buildx 构建多种系统架构支持的 Docker 镜像 + +在之前的版本中构建多种系统架构支持的 Docker 镜像,要想使用统一的名字必须使用 [`$ docker manifest`](manifest.md) 命令。 + +在 Docker 19.03+ 版本中可以使用 `$ docker buildx build` 命令使用 `BuildKit` 构建镜像。 + +该命令支持 `--platform` 参数可以同时构建支持多种系统架构的 Docker 镜像,大大简化了构建步骤。 + +## 设置环境变量 + +`buildx` 命令属于实验特性,必须设置环境变量以使用该命令。 + +Linux/macOS + +```bash +$ export DOCKER_CLI_EXPERIMENTAL=enabled +``` + +Windows + +```bash +$ set $env:DOCKER_CLI_EXPERIMENTAL=enabled +``` + +## 新建 `builder` 实例 + +Docker for Linux 不支持构建 `arm` 架构镜像,我们可以运行一个新的容器让其支持该特性,Docker 桌面版无需进行此项设置。 + +```bash +$ docker run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd4447ad3 +``` + +由于 Docker 默认的 `builder` 实例不支持同时指定多个 `--platform`,我们必须首先创建一个新的 `builder` 实例。 + +```bash +$ docker buildx create --name mybuilder + +$ docker buildx use mybuilder +``` + +## 构建镜像 + +新建 Dockerfile 文件。 + +```docker +FROM --platform=$TARGETPLATFORM alpine + +RUN uname -a > /os.txt + +CMD cat /os.txt +``` + +使用 `$ docker buildx build` 命令构建镜像,注意将 `myusername` 替换为自己的 Docker Hub 用户名。 + +`--push` 参数表示将构建好的镜像推送到 Docker 仓库。 + +```bash +$ docker buildx build --platform linux/arm,linux/arm64,linux/amd64 -t myusername/hello . --push + +# 查看镜像信息 +$ docker buildx imagetools inspect myusername/hello +``` + +在不同架构运行该镜像,可以得到该架构的信息。 + +```bash +# arm +$ docker run -it --rm myusername/hello +Linux buildkitsandbox 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 armv7l Linux + +# arm64 +$ docker run -it --rm myusername/hello +Linux buildkitsandbox 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 aarch64 Linux + +# amd64 +$ docker run -it --rm myusername/hello +Linux buildkitsandbox 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 Linux +``` diff --git a/image/commit.md b/image/commit.md index 37664cb68..6f921e546 100644 --- a/image/commit.md +++ b/image/commit.md @@ -21,7 +21,7 @@ $ docker run --name webserver -d -p 80:80 nginx 直接用浏览器访问的话,我们会看到默认的 Nginx 欢迎页面。 - +![](_images/images-mac-example-nginx.png) 现在,假设我们非常不喜欢这个欢迎页面,我们希望改成欢迎 Docker 的文字,我们可以使用 `docker exec` 命令进入容器,修改其内容。 @@ -38,7 +38,7 @@ exit 现在我们再刷新浏览器的话,会发现内容被改变了。 - +![](_images/images-create-nginx-docker.png) 我们修改了容器的文件,也就是改动了容器的存储层。我们可以通过 `docker diff` 命令看到具体的改动。 diff --git a/image/demo/multi-arch/Dockerfile b/image/demo/multi-arch/Dockerfile new file mode 100644 index 000000000..9fbaba74e --- /dev/null +++ b/image/demo/multi-arch/Dockerfile @@ -0,0 +1,5 @@ +FROM --platform=$TARGETPLATFORM alpine + +RUN uname -a > /os.txt + +CMD cat /os.txt diff --git a/image/dockerfile/add.md b/image/dockerfile/add.md index 3c3a2dcf7..5d9f18f25 100644 --- a/image/dockerfile/add.md +++ b/image/dockerfile/add.md @@ -8,7 +8,7 @@ 在某些情况下,这个自动解压缩的功能非常有用,比如官方镜像 `ubuntu` 中: -```Dockerfile +```docker FROM scratch ADD ubuntu-xenial-core-cloudimg-amd64-root.tar.gz / ... @@ -24,7 +24,7 @@ ADD ubuntu-xenial-core-cloudimg-amd64-root.tar.gz / 在使用该指令的时候还可以加上 `--chown=:` 选项来改变文件的所属用户及所属组。 -```Dockerfile +```docker ADD --chown=55:mygroup files* /mydir/ ADD --chown=bin files* /mydir/ ADD --chown=1 files* /mydir/ diff --git a/image/dockerfile/cmd.md b/image/dockerfile/cmd.md index d21c61184..9877c00e5 100644 --- a/image/dockerfile/cmd.md +++ b/image/dockerfile/cmd.md @@ -14,13 +14,13 @@ 如果使用 `shell` 格式的话,实际的命令会被包装为 `sh -c` 的参数的形式进行执行。比如: -```Dockerfile +```docker CMD echo $HOME ``` 在实际执行中,会将其变更为: -```Dockerfile +```docker CMD [ "sh", "-c", "echo $HOME" ] ``` @@ -32,7 +32,7 @@ Docker 不是虚拟机,容器中的应用都应该以前台执行,而不是 一些初学者将 `CMD` 写为: -```Dockerfile +```docker CMD service nginx start ``` @@ -44,6 +44,6 @@ CMD service nginx start 正确的做法是直接执行 `nginx` 可执行文件,并且要求以前台形式运行。比如: -```Dockerfile +```docker CMD ["nginx", "-g", "daemon off;"] ``` diff --git a/image/dockerfile/copy.md b/image/dockerfile/copy.md index 53914a46a..d12b446c8 100644 --- a/image/dockerfile/copy.md +++ b/image/dockerfile/copy.md @@ -9,13 +9,13 @@ `COPY` 指令将从构建上下文目录中 `<源路径>` 的文件/目录复制到新的一层的镜像内的 `<目标路径>` 位置。比如: -```Dockerfile +```docker COPY package.json /usr/src/app/ ``` `<源路径>` 可以是多个,甚至可以是通配符,其通配符规则要满足 Go 的 [`filepath.Match`](https://golang.org/pkg/path/filepath/#Match) 规则,如: -```Dockerfile +```docker COPY hom* /mydir/ COPY hom?.txt /mydir/ ``` @@ -26,7 +26,7 @@ COPY hom?.txt /mydir/ 在使用该指令的时候还可以加上 `--chown=:` 选项来改变文件的所属用户及所属组。 -```Dockerfile +```docker COPY --chown=55:mygroup files* /mydir/ COPY --chown=bin files* /mydir/ COPY --chown=1 files* /mydir/ diff --git a/image/dockerfile/entrypoint.md b/image/dockerfile/entrypoint.md index 07e79e034..25090dd46 100644 --- a/image/dockerfile/entrypoint.md +++ b/image/dockerfile/entrypoint.md @@ -16,7 +16,7 @@ 假设我们需要一个得知自己当前公网 IP 的镜像,那么可以先用 `CMD` 来实现: -```Dockerfile +```docker FROM ubuntu:18.04 RUN apt-get update \ && apt-get install -y curl \ @@ -48,7 +48,7 @@ $ docker run myip curl -s https://ip.cn -i 这显然不是很好的解决方案,而使用 `ENTRYPOINT` 就可以解决这个问题。现在我们重新用 `ENTRYPOINT` 来实现这个镜像: -```Dockerfile +```docker FROM ubuntu:18.04 RUN apt-get update \ && apt-get install -y curl \ @@ -91,7 +91,7 @@ Connection: keep-alive 这些准备工作是和容器 `CMD` 无关的,无论 `CMD` 为什么,都需要事先进行一个预处理的工作。这种情况下,可以写一个脚本,然后放入 `ENTRYPOINT` 中去执行,而这个脚本会将接到的参数(也就是 ``)作为命令,在脚本最后执行。比如官方镜像 `redis` 中就是这么做的: -```Dockerfile +```docker FROM alpine:3.4 ... RUN addgroup -S redis && adduser -S -G redis redis diff --git a/image/dockerfile/env.md b/image/dockerfile/env.md index 58108bdfb..f55d567d8 100644 --- a/image/dockerfile/env.md +++ b/image/dockerfile/env.md @@ -16,7 +16,7 @@ ENV VERSION=1.0 DEBUG=on \ 定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。比如在官方 `node` 镜像 `Dockerfile` 中,就有类似这样的代码: -```Dockerfile +```docker ENV NODE_VERSION 7.2.0 RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \ diff --git a/image/dockerfile/healthcheck.md b/image/dockerfile/healthcheck.md index 7daa2e3d9..78a83a6db 100644 --- a/image/dockerfile/healthcheck.md +++ b/image/dockerfile/healthcheck.md @@ -25,7 +25,7 @@ 假设我们有个镜像是个最简单的 Web 服务,我们希望增加健康检查来判断其 Web 服务是否在正常工作,我们可以用 `curl` 来帮助判断,其 `Dockerfile` 的 `HEALTHCHECK` 可以这么写: -```Dockerfile +```docker FROM nginx RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* HEALTHCHECK --interval=5s --timeout=3s \ diff --git a/image/dockerfile/onbuild.md b/image/dockerfile/onbuild.md index 0c2e02257..dbe1384a0 100644 --- a/image/dockerfile/onbuild.md +++ b/image/dockerfile/onbuild.md @@ -8,7 +8,7 @@ 假设我们要制作 Node.js 所写的应用的镜像。我们都知道 Node.js 使用 `npm` 进行包管理,所有依赖、配置、启动信息等会放到 `package.json` 文件里。在拿到程序代码后,需要先进行 `npm install` 才可以获得所有需要的依赖。然后就可以通过 `npm start` 来启动应用。因此,一般来说会这样写 `Dockerfile`: -```Dockerfile +```docker FROM node:slim RUN mkdir /app WORKDIR /app @@ -24,7 +24,7 @@ CMD [ "npm", "start" ] 那么我们可不可以做一个基础镜像,然后各个项目使用这个基础镜像呢?这样基础镜像更新,各个项目不用同步 `Dockerfile` 的变化,重新构建后就继承了基础镜像的更新?好吧,可以,让我们看看这样的结果。那么上面的这个 `Dockerfile` 就会变为: -```Dockerfile +```docker FROM node:slim RUN mkdir /app WORKDIR /app @@ -33,7 +33,7 @@ CMD [ "npm", "start" ] 这里我们把项目相关的构建指令拿出来,放到子项目里去。假设这个基础镜像的名字为 `my-node` 的话,各个项目内的自己的 `Dockerfile` 就变为: -```Dockerfile +```docker FROM my-node COPY ./package.json /app RUN [ "npm", "install" ] @@ -46,7 +46,7 @@ COPY . /app/ `ONBUILD` 可以解决这个问题。让我们用 `ONBUILD` 重新写一下基础镜像的 `Dockerfile`: -```Dockerfile +```docker FROM node:slim RUN mkdir /app WORKDIR /app @@ -58,7 +58,7 @@ CMD [ "npm", "start" ] 这次我们回到原始的 `Dockerfile`,但是这次将项目相关的指令加上 `ONBUILD`,这样在构建基础镜像的时候,这三行并不会被执行。然后各个项目的 `Dockerfile` 就变成了简单地: -```Dockerfile +```docker FROM my-node ``` diff --git a/image/dockerfile/user.md b/image/dockerfile/user.md index 68af82200..260b439b1 100644 --- a/image/dockerfile/user.md +++ b/image/dockerfile/user.md @@ -6,7 +6,7 @@ 当然,和 `WORKDIR` 一样,`USER` 只是帮助你切换到指定用户而已,这个用户必须是事先建立好的,否则无法切换。 -```Dockerfile +```docker RUN groupadd -r redis && useradd -r -g redis redis USER redis RUN [ "redis-server" ] @@ -14,7 +14,7 @@ RUN [ "redis-server" ] 如果以 `root` 执行的脚本,在执行期间希望改变身份,比如希望以某个已经建立好的用户来运行某个服务进程,不要使用 `su` 或者 `sudo`,这些都需要比较麻烦的配置,而且在 TTY 缺失的环境下经常出错。建议使用 [`gosu`](https://github.com/tianon/gosu)。 -```Dockerfile +```docker # 建立 redis 用户,并使用 gosu 换另一个用户执行命令 RUN groupadd -r redis && useradd -r -g redis redis # 下载 gosu diff --git a/image/dockerfile/volume.md b/image/dockerfile/volume.md index 59dca9c4d..d27172f6a 100644 --- a/image/dockerfile/volume.md +++ b/image/dockerfile/volume.md @@ -7,7 +7,7 @@ 之前我们说过,容器运行时应该尽量保持容器存储层不发生写操作,对于数据库类需要保存动态数据的应用,其数据库文件应该保存于卷(volume)中,后面的章节我们会进一步介绍 Docker 卷的概念。为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在 `Dockerfile` 中,我们可以事先指定某些目录挂载为匿名卷,这样在运行时如果用户不指定挂载,其应用也可以正常运行,不会向容器存储层写入大量数据。 -```Dockerfile +```docker VOLUME /data ``` diff --git a/image/manifest.md b/image/manifest.md index 0c98c7860..e77eb40c3 100644 --- a/image/manifest.md +++ b/image/manifest.md @@ -2,11 +2,11 @@ 我们知道使用镜像创建一个容器,该镜像必须与 Docker 宿主机系统架构一致,例如 `Linux x86_64` 架构的系统中只能使用 `Linux x86_64` 的镜像创建容器。 -> macOS 除外,其使用了 [binfmt_misc](https://docs.docker.com/docker-for-mac/multi-arch/) 提供了多种架构支持,在 macOS 系统上 (x86_64) 可以运行 arm 等其他架构的镜像。 +> Windows、macOS 除外,其使用了 [binfmt_misc](https://docs.docker.com/docker-for-mac/multi-arch/) 提供了多种架构支持,在 Windows、macOS 系统上 (x86_64) 可以运行 arm 等其他架构的镜像。 例如我们在 `Linux x86_64` 中构建一个 `username/test` 镜像。 -```Dockerfile +```docker FROM alpine CMD echo 1 diff --git a/image/multistage-builds/README.md b/image/multistage-builds/README.md index 59c37071e..97a61610f 100644 --- a/image/multistage-builds/README.md +++ b/image/multistage-builds/README.md @@ -26,7 +26,7 @@ func main(){ 编写 `Dockerfile.one` 文件 -```dockerfile +```docker FROM golang:1.9-alpine RUN apk --no-cache add git ca-certificates @@ -56,7 +56,7 @@ $ docker build -t go/helloworld:1 -f Dockerfile.one . 例如,编写 `Dockerfile.build` 文件 -```dockerfile +```docker FROM golang:1.9-alpine RUN apk --no-cache add git @@ -71,7 +71,7 @@ RUN go get -d -v github.com/go-sql-driver/mysql \ 编写 `Dockerfile.copy` 文件 -```dockerfile +```docker FROM alpine:latest RUN apk --no-cache add ca-certificates @@ -125,7 +125,7 @@ go/helloworld 1 f55d3e16affc 2 minutes ago 295MB 例如,编写 `Dockerfile` 文件 -```dockerfile +```docker FROM golang:1.9-alpine as builder RUN apk --no-cache add git @@ -172,7 +172,7 @@ go/helloworld 1 f55d3e16affc 2 minutes ago 295MB 我们可以使用 `as` 来为某一阶段命名,例如 -```dockerfile +```docker FROM golang:1.9-alpine as builder ``` @@ -186,6 +186,6 @@ $ docker build --target builder -t username/imagename:tag . 上面例子中我们使用 `COPY --from=0 /go/src/github.com/go/helloworld/app .` 从上一阶段的镜像中复制文件,我们也可以复制任意镜像中的文件。 -```dockerfile +```docker $ COPY --from=nginx:latest /etc/nginx/nginx.conf /nginx.conf ``` diff --git a/image/multistage-builds/laravel.md b/image/multistage-builds/laravel.md index e8c8f10ac..5d7a44b10 100644 --- a/image/multistage-builds/laravel.md +++ b/image/multistage-builds/laravel.md @@ -50,7 +50,7 @@ server { 第一阶段进行前端构建。 -```dockerfile +```docker FROM node:alpine as frontend COPY package.json /app/ @@ -69,7 +69,7 @@ RUN cd /app \ 第二阶段安装 Composer 依赖。 -```dockerfile +```docker FROM composer as composer COPY database/ /app/database/ @@ -89,7 +89,7 @@ RUN cd /app \ 第三阶段对以上阶段生成的文件进行整合。 -```dockerfile +```docker FROM php:7.2-fpm-alpine as laravel ARG LARAVEL_PATH=/app/laravel @@ -113,7 +113,7 @@ RUN cd ${LARAVEL_PATH} \ ### 最后一个阶段构建 NGINX 镜像 -```dockerfile +```docker FROM nginx:alpine as nginx ARG LARAVEL_PATH=/app/laravel @@ -164,7 +164,7 @@ $ docker run -it --rm --network=laravel -p 8080:80 my/nginx 完整的 `Dockerfile` 文件如下。 -```dockerfile +```docker FROM node:alpine as frontend COPY package.json /app/ diff --git a/introduction/what.md b/introduction/what.md index dd568dd5f..1351afeaf 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -1,4 +1,4 @@ -## 什么是 Docker +# 什么是 Docker **Docker** 最初是 `dotCloud` 公司创始人 [Solomon Hykes](https://github.com/shykes) 在法国期间发起的一个公司内部项目,它是基于 `dotCloud` 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源][docker-soft],主要项目代码在 [GitHub](https://github.com/moby/moby) 上进行维护。`Docker` 项目后来还加入了 Linux 基金会,并成立推动 [开放容器联盟(OCI)](https://www.opencontainers.org/)。 diff --git a/introduction/why.md b/introduction/why.md index d083044f1..df6ce2c11 100644 --- a/introduction/why.md +++ b/introduction/why.md @@ -1,20 +1,20 @@ -## 为什么要使用 Docker? +# 为什么要使用 Docker? 作为一种新兴的虚拟化方式,`Docker` 跟传统的虚拟化方式相比具有众多的优势。 -### 更高效的利用系统资源 +## 更高效的利用系统资源 由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,`Docker` 对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。 -### 更快速的启动时间 +## 更快速的启动时间 传统的虚拟机技术启动应用服务往往需要数分钟,而 `Docker` 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。 -### 一致的运行环境 +## 一致的运行环境 开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 `Docker` 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 *「这段代码在我机器上没问题啊」* 这类问题。 -### 持续交付和部署 +## 持续交付和部署 对开发和运维([DevOps](https://zh.wikipedia.org/wiki/DevOps))人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。 @@ -22,15 +22,15 @@ 而且使用 [`Dockerfile`](../image/build.md) 使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。 -### 更轻松的迁移 +## 更轻松的迁移 由于 `Docker` 确保了执行环境的一致性,使得应用的迁移更加容易。`Docker` 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。 -### 更轻松的维护和扩展 +## 更轻松的维护和扩展 `Docker` 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。此外,`Docker` 团队同各个开源项目团队一起维护了一大批高质量的 [官方镜像](https://hub.docker.com/search/?type=image&image_filter=official),既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。 -### 对比传统虚拟机总结 +## 对比传统虚拟机总结 | 特性 | 容器 | 虚拟机 | | :-------- | :-------- | :---------- | From fadf84bb69465a0a11b5cc33a7b2d4e701173d5d Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 5 Nov 2019 19:26:45 +0800 Subject: [PATCH 432/611] Archive docker-machine mesos docker-swarm, close #425 Signed-off-by: Kang HuaiShuai --- .vuepress/config.js | 7 +++++++ SUMMARY.md | 27 ++++++++++++++------------- archive/README.md | 3 +++ 3 files changed, 24 insertions(+), 13 deletions(-) create mode 100644 archive/README.md diff --git a/.vuepress/config.js b/.vuepress/config.js index 094378553..fbdc4a69f 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -324,6 +324,13 @@ module.exports = { 'appendix/resources' ], }, + { + title: "归档", + collapsable: false, + children: [ + 'archive/', + ], + }, { title: "Docker Machine", collapsable: false, diff --git a/SUMMARY.md b/SUMMARY.md index 3496d9b26..f3bd82b85 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -75,7 +75,7 @@ * [工具和示例](advanced_network/example.md) * [编辑网络配置文件](advanced_network/config_file.md) * [实例:创建一个点到点连接](advanced_network/ptp.md) -* [Docker 三剑客之 Compose 项目](compose/README.md) +* [Docker Compose](compose/README.md) * [简介](compose/introduction.md) * [安装与卸载](compose/install.md) * [使用](compose/usage.md) @@ -84,10 +84,6 @@ * [实战 Django](compose/django.md) * [实战 Rails](compose/rails.md) * [实战 WordPress](compose/wordpress.md) -* [Docker 三剑客之 Machine 项目](machine/README.md) - * [安装](machine/install.md) - * [使用](machine/usage.md) -* [Docker 三剑客之 Docker Swarm](swarm/README.md) * [Swarm mode](swarm_mode/README.md) * [基本概念](swarm_mode/overview.md) * [创建 Swarm 集群](swarm_mode/create.md) @@ -124,14 +120,6 @@ * [基本概念](kubernetes/concepts.md) * [kubectl 使用](kubernetes/kubectl.md) * [架构设计](kubernetes/design.md) -* [Mesos - 优秀的集群资源调度平台](mesos/README.md) - * [Mesos 简介](mesos/intro.md) - * [安装与使用](mesos/installation.md) - * [原理与架构](mesos/architecture.md) - * [Mesos 配置项解析](mesos/configuration.md) - * [日志与监控](mesos/monitor.md) - * [常见应用框架](mesos/framework.md) - * [本章小结](mesos/summary.md) * [容器与云计算](cloud/README.md) * [简介](cloud/intro.md) * [亚马逊云](cloud/aws.md) @@ -167,3 +155,16 @@ * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) * [附录五:如何调试 Docker](appendix/debug.md) * [附录六:资源链接](appendix/resources.md) +* [归档](archive/README.md) + * [Mesos - 优秀的集群资源调度平台](mesos/README.md) + * [Mesos 简介](mesos/intro.md) + * [安装与使用](mesos/installation.md) + * [原理与架构](mesos/architecture.md) + * [Mesos 配置项解析](mesos/configuration.md) + * [日志与监控](mesos/monitor.md) + * [常见应用框架](mesos/framework.md) + * [本章小结](mesos/summary.md) + * [Docker Machine](machine/README.md) + * [安装](machine/install.md) + * [使用](machine/usage.md) + * [Docker Swarm](swarm/README.md) diff --git a/archive/README.md b/archive/README.md new file mode 100644 index 000000000..042dde31c --- /dev/null +++ b/archive/README.md @@ -0,0 +1,3 @@ +# 归档项目 + +以下项目不被官方支持或内容陈旧,将在下一版本中删除。 From eb274b16f6d933235d27178b6872dac49add3664 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 5 Nov 2019 21:50:05 +0800 Subject: [PATCH 433/611] Add Docker Buildx Signed-off-by: Kang HuaiShuai --- .github/workflows/ci.yaml | 2 +- .vuepress/config.js | 15 +- SUMMARY.md | 7 +- buildx/README.md | 5 + {image => buildx}/buildkit.md | 48 ++---- buildx/buildx.md | 33 ++++ .../multi-arch-images.md | 26 +-- image/buildx.md | 148 ------------------ 8 files changed, 69 insertions(+), 215 deletions(-) create mode 100644 buildx/README.md rename {image => buildx}/buildkit.md (85%) create mode 100644 buildx/buildx.md rename image/buildx_multi-arch-images.md => buildx/multi-arch-images.md (78%) delete mode 100644 image/buildx.md diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 24b1f2e83..62c10c980 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -27,6 +27,6 @@ jobs: PCIT_GIT_URL: github.com/docker-practice/vuepress PCIT_KEEP_HISTORY: "1" PCIT_LOCAL_DIR: .vuepress/dist - PCIT_MESSAGE: Sync from yeasy/docker-practice@${{github.sha}} by PCIT + PCIT_MESSAGE: Sync from yeasy/docker_practice@${{github.sha}} by PCIT PCIT_TARGET_BRANCH: master PCIT_USERNAME: khs1994 diff --git a/.vuepress/config.js b/.vuepress/config.js index fbdc4a69f..18948e3c3 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -3,7 +3,7 @@ module.exports = { base: '/', themeConfig: { docsRepo: 'yeasy/docker_practice', - docsDir: '/', + docsDir: '/vuepress', editLinks: true, nav: [{ text: '安装 Docker', @@ -186,9 +186,6 @@ module.exports = { '/image/multistage-builds/', '/image/multistage-builds/laravel', '/image/manifest', - '/image/buildx_multi-arch-images', - '/image/buildkit', - '/image/buildx', ] },{ title: "操作容器", @@ -262,6 +259,16 @@ module.exports = { 'security/summary', ], }, + { + title: "Docker Buildx", + collapsable: false, + children: [ + "buildx/", + "buildx/buildkit", + "buildx/buildx", + "buildx/multi-arch-images", + ], + }, { title: "Etcd", collapsable:false, diff --git a/SUMMARY.md b/SUMMARY.md index f3bd82b85..4dc717700 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -42,9 +42,6 @@ * [Dockerfile 多阶段构建](image/multistage-builds/README.md) * [实战多阶段构建 Laravel 镜像](image/multistage-builds/laravel.md) * [构建多种系统架构支持的 Docker 镜像](image/manifest.md) - * [使用 buildx 构建多种系统架构支持的 Docker 镜像](image/buildx_multi-arch-images.md) - * [Docker v18.09 版本使用 BuildKit 构建镜像](image/buildkit.md) - * [Docker v19.03 版本使用 BuildKit 构建镜像](image/buildx.md) * [其它制作镜像的方式](image/other.md) * [实现原理](image/internal.md) * [操作容器](container/README.md) @@ -75,6 +72,10 @@ * [工具和示例](advanced_network/example.md) * [编辑网络配置文件](advanced_network/config_file.md) * [实例:创建一个点到点连接](advanced_network/ptp.md) +* [Docker Buildx](buildx/README.md) + * [BuildKit](buildx/buildkit.md) + * [使用 buildx 构建镜像](buildx/buildx.md) + * [使用 buildx 构建多种系统架构支持的 Docker 镜像](buildx/multi-arch-images.md) * [Docker Compose](compose/README.md) * [简介](compose/introduction.md) * [安装与卸载](compose/install.md) diff --git a/buildx/README.md b/buildx/README.md new file mode 100644 index 000000000..1408b3bc8 --- /dev/null +++ b/buildx/README.md @@ -0,0 +1,5 @@ +# Docker Buildx + +Docker Buildx 是一个 docker CLI 插件,其扩展了 docker 命令,支持 [Moby BuildKit](buildkit.md) 提供的功能。提供了与 docker build 相同的用户体验,并增加了许多新功能。 + +> 该功能仅适用于 Docker v19.03+ 版本 diff --git a/image/buildkit.md b/buildx/buildkit.md similarity index 85% rename from image/buildkit.md rename to buildx/buildkit.md index 7dc176f43..f1b7e9f1d 100644 --- a/image/buildkit.md +++ b/buildx/buildkit.md @@ -1,4 +1,4 @@ -## 使用 `BuildKit` 构建镜像 +# 使用 `BuildKit` 构建镜像 **BuildKit** 是下一代的镜像构建组件,在 https://github.com/moby/buildkit 开源。 @@ -6,31 +6,11 @@ **注意:docker-compose build 命令暂时不支持 BuildKit** -下面介绍如何在 Docker CE 18.09 版本中使用 `BuildKit` 提供的 `Dockerfile` 新指令来更快、更安全的构建 Docker 镜像。 +## `Dockerfile` 新增指令详解 -### 启用 `BuildKit` +启用 `BuildKit` 之后,我们可以使用下面几个新的 `Dockerfile` 指令来加快镜像构建。 -启用 `BuildKit` 必须先设置 **环境变量**。 - -Linux、macOS 执行如下命令: - -```bash -$ export DOCKER_BUILDKIT=1 -``` - -Windows 执行如下命令: - -```powershell -$ set $env:DOCKER_BUILDKIT=1 -``` - -> 以上是设置环境变量的临时方法,若使环境变量永久生效请读者自行设置。 - -### `Dockerfile` 新增指令详解 - -启用 `BuildKit` 之后,我们可以使用下面几个新的指令来加快镜像构建。 - -#### `RUN --mount=type=cache` +### `RUN --mount=type=cache` 目前,几乎所有的程序都会使用依赖管理工具,例如 `Go` 中的 `go mod`、`Node.js` 中的 `npm` 等等,当我们构建一个镜像时,往往会重复的从互联网中获取依赖包,难以缓存,大大降低了镜像的构建效率。 @@ -112,7 +92,7 @@ RUN --mount=type=cache,target=/tmp/dist,from=builder,source=/app/dist \ |`from` | 缓存来源(构建阶段),不填写时为空文件夹。| |`source` | 来源的文件夹路径。| -#### `RUN --mount=type=bind` +### `RUN --mount=type=bind` 该指令可以将一个镜像(或上一构建阶段)的文件挂载到指定位置。 @@ -122,7 +102,7 @@ RUN --mount=type=bind,from=php:alpine,source=/usr/local/bin/docker-php-entrypoin cat /docker-php-entrypoint ``` -#### `RUN --mount=type=tmpfs` +### `RUN --mount=type=tmpfs` 该指令可以将一个 `tmpfs` 文件系统挂载到指定位置。 @@ -132,9 +112,9 @@ RUN --mount=type=tmpfs,target=/temp \ mount | grep /temp ``` -#### `RUN --mount=type=secret` +### `RUN --mount=type=secret` -该指令可以将一个文件挂载到指定位置。 +该指令可以将一个文件(例如密钥)挂载到指定位置。 ```docker # syntax = docker/dockerfile:experimental @@ -146,7 +126,7 @@ RUN --mount=type=secret,id=aws,target=/root/.aws/credentials \ $ docker build -t test --secret id=aws,src=$HOME/.aws/credentials . ``` -#### `RUN --mount=type=ssh` +### `RUN --mount=type=ssh` 该指令可以挂载 `ssh` 密钥。 @@ -165,14 +145,6 @@ $ ssh-add ~/.ssh/id_rsa $ docker build -t test --ssh default=$SSH_AUTH_SOCK . ``` -### 清理构建缓存 - -执行以下命令清理构建缓存 - -```bash -$ docker builder prune -``` - -### 官方文档 +## 官方文档 * https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md diff --git a/buildx/buildx.md b/buildx/buildx.md new file mode 100644 index 000000000..6dc2c9985 --- /dev/null +++ b/buildx/buildx.md @@ -0,0 +1,33 @@ +# 使用 Buildx 构建镜像 + +## 启用 Buildx + +`buildx` 命令属于实验特性,必须设置环境变量以使用该命令。 + +Linux/macOS + +```bash +$ export DOCKER_CLI_EXPERIMENTAL=enabled +``` + +Windows + +```bash +$ set $env:DOCKER_CLI_EXPERIMENTAL=enabled +``` + +## 使用 + +你可以直接使用 `docker buildx build` 命令构建镜像。 + +```bash +$ docker buildx build . +[+] Building 8.4s (23/32) + => ... +``` + +Buildx 使用 [BuildKit 引擎](buildkit.md) 进行构建,支持许多新的功能,具体参考 [Buildkit](buildkit.md) 一节。 + +## 官方文档 + +* https://docs.docker.com/engine/reference/commandline/buildx/ diff --git a/image/buildx_multi-arch-images.md b/buildx/multi-arch-images.md similarity index 78% rename from image/buildx_multi-arch-images.md rename to buildx/multi-arch-images.md index 62ead2bd5..d423dfc8b 100644 --- a/image/buildx_multi-arch-images.md +++ b/buildx/multi-arch-images.md @@ -1,26 +1,8 @@ # 使用 buildx 构建多种系统架构支持的 Docker 镜像 -在之前的版本中构建多种系统架构支持的 Docker 镜像,要想使用统一的名字必须使用 [`$ docker manifest`](manifest.md) 命令。 +在之前的版本中构建多种系统架构支持的 Docker 镜像,要想使用统一的名字必须使用 [`$ docker manifest`](../image/manifest.md) 命令。 -在 Docker 19.03+ 版本中可以使用 `$ docker buildx build` 命令使用 `BuildKit` 构建镜像。 - -该命令支持 `--platform` 参数可以同时构建支持多种系统架构的 Docker 镜像,大大简化了构建步骤。 - -## 设置环境变量 - -`buildx` 命令属于实验特性,必须设置环境变量以使用该命令。 - -Linux/macOS - -```bash -$ export DOCKER_CLI_EXPERIMENTAL=enabled -``` - -Windows - -```bash -$ set $env:DOCKER_CLI_EXPERIMENTAL=enabled -``` +在 Docker 19.03+ 版本中可以使用 `$ docker buildx build` 命令使用 `BuildKit` 构建镜像。该命令支持 `--platform` 参数可以同时构建支持多种系统架构的 Docker 镜像,大大简化了构建步骤。 ## 新建 `builder` 实例 @@ -33,7 +15,9 @@ $ docker run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd44 由于 Docker 默认的 `builder` 实例不支持同时指定多个 `--platform`,我们必须首先创建一个新的 `builder` 实例。 ```bash -$ docker buildx create --name mybuilder +# $ docker buildx create --name mybuilder + +$ docker buildx create --name=mybuilder --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master $ docker buildx use mybuilder ``` diff --git a/image/buildx.md b/image/buildx.md deleted file mode 100644 index a6ef6c796..000000000 --- a/image/buildx.md +++ /dev/null @@ -1,148 +0,0 @@ -## 使用 `Buildx` 构建镜像 - -**BuildKit** 是下一代的镜像构建组件,在 https://github.com/moby/buildkit 开源。 - -**注意:如果您的镜像构建使用的是云服务商提供的镜像构建服务(Docker Hub 自动构建、腾讯云容器服务、阿里云容器服务等),由于上述服务提供商的 Docker 版本低于 18.09,BuildKit 无法使用,将造成镜像构建失败。建议使用 BuildKit 构建镜像时使用一个新的 Dockerfile 文件(例如 Dockerfile.buildkit)** - -下面介绍如何在 Docker CE 19.03+ 版本中使用 `BuildKit` 提供的 `Dockerfile` 新指令来更快、更安全的构建 Docker 镜像。 - -### `Dockerfile` 新增指令详解 - -启用 `BuildKit` 之后,我们可以使用下面几个新的指令来加快镜像构建。为了使用 `BuildKit` 我们 **必须** 使用新的 `$ docker buildx build` 命令来构建 Docker 镜像。 - -#### `RUN --mount=type=cache` - -目前,几乎所有的程序都会使用依赖管理工具,例如 `Go` 中的 `go mod`、`Node.js` 中的 `npm` 等等,当我们构建一个镜像时,往往会重复的从互联网中获取依赖包,难以缓存,大大降低了镜像的构建效率。 - -例如一个前端工程需要用到 `npm`: - -```docker -FROM node:alpine as builder - -WORKDIR /app - -COPY package.json /app/ - -RUN npm i --registry=https://registry.npm.taobao.org \ - && rm -rf ~/.npm - -COPY src /app/src - -RUN npm run build - -FROM nginx:alpine - -COPY --from=builder /app/dist /app/dist -``` - -使用多阶段构建,构建的镜像中只包含了目标文件夹 `dist`,但仍然存在一些问题,当 `package.json` 文件变动时,`RUN npm i && rm -rf ~/.npm` 这一层会重新执行,变更多次后,生成了大量的中间层镜像。 - -为解决这个问题,进一步的我们可以设想一个类似 **数据卷** 的功能,在镜像构建时把 `node_modules` 文件夹挂载上去,在构建完成后,这个 `node_modules` 文件夹会自动卸载,实际的镜像中并不包含 `node_modules` 这个文件夹,这样我们就省去了每次获取依赖的时间,大大增加了镜像构建效率,同时也避免了生成了大量的中间层镜像。 - -`BuildKit` 提供了 `RUN --mount=type=cache` 指令,可以实现上边的设想。 - -```docker -FROM node:alpine as builder - -WORKDIR /app - -COPY package.json /app/ - -RUN --mount=type=cache,target=/app/node_modules,id=my_app_npm_module,sharing=locked \ - --mount=type=cache,target=/root/.npm,id=npm_cache \ - npm i --registry=https://registry.npm.taobao.org - -COPY src /app/src - -RUN --mount=type=cache,target=/app/node_modules,id=my_app_npm_module,sharing=locked \ -# --mount=type=cache,target=/app/dist,id=my_app_dist,sharing=locked \ - npm run build - -FROM nginx:alpine - -# COPY --from=builder /app/dist /app/dist - -# 为了更直观的说明 from 和 source 指令,这里使用 RUN 指令 -RUN --mount=type=cache,target=/tmp/dist,from=builder,source=/app/dist \ - # --mount=type=cache,target/tmp/dist,from=my_app_dist,sharing=locked \ - mkdir -p /app/dist && cp -r /tmp/dist/* /app/dist -``` - -第一个 `RUN` 指令执行后,`id` 为 `my_app_npm_module` 的缓存文件夹挂载到了 `/app/node_modules` 文件夹中。多次执行也不会产生多个中间层镜像。 - -第二个 `RUN` 指令执行时需要用到 `node_modules` 文件夹,`node_modules` 已经挂载,命令也可以正确执行。 - -第三个 `RUN` 指令将上一阶段产生的文件复制到指定位置,`from` 指明缓存的来源,这里 `builder` 表示缓存来源于构建的第一阶段,`source` 指明缓存来源的文件夹。 - -上面的 `Dockerfile` 中 `--mount=type=cache,...` 中指令作用如下: - -|Option |Description| -|---------------------|-----------| -|`id` | `id` 设置一个标志,以便区分缓存。| -|`target` (必填项) | 缓存的挂载目标文件夹。| -|`ro`,`readonly` | 只读,缓存文件夹不能被写入。 | -|`sharing` | 有 `shared` `private` `locked` 值可供选择。`sharing` 设置当一个缓存被多次使用时的表现,由于 `BuildKit` 支持并行构建,当多个步骤使用同一缓存时(同一 `id`)会发生冲突。`shared` 表示多个步骤可以同时读写,`private` 表示当多个步骤使用同一缓存时,每个步骤使用不同的缓存,`locked` 表示当一个步骤完成释放缓存后,后一个步骤才能继续使用该缓存。| -|`from` | 缓存来源(构建阶段),不填写时为空文件夹。| -|`source` | 来源的文件夹路径。| - -#### `RUN --mount=type=bind` - -该指令可以将一个镜像(或上一构建阶段)的文件挂载到指定位置。 - -```docker -RUN --mount=type=bind,from=php:alpine,source=/usr/local/bin/docker-php-entrypoint,target=/docker-php-entrypoint \ - cat /docker-php-entrypoint -``` - -#### `RUN --mount=type=tmpfs` - -该指令可以将一个 `tmpfs` 文件系统挂载到指定位置。 - -```docker -RUN --mount=type=tmpfs,target=/temp \ - mount | grep /temp -``` - -#### `RUN --mount=type=secret` - -该指令可以将一个文件挂载到指定位置。 - -```docker -RUN --mount=type=secret,id=aws,target=/root/.aws/credentials \ - cat /root/.aws/credentials -``` - -```bash -$ docker buildx build -t test --secret id=aws,src=$HOME/.aws/credentials . -``` - -#### `RUN --mount=type=ssh` - -该指令可以挂载 `ssh` 密钥。 - -```docker -FROM alpine -RUN apk add --no-cache openssh-client -RUN mkdir -p -m 0700 ~/.ssh && ssh-keyscan gitlab.com >> ~/.ssh/known_hosts -RUN --mount=type=ssh ssh git@gitlab.com | tee /hello -``` - -```bash -$ eval $(ssh-agent) -$ ssh-add ~/.ssh/id_rsa -(Input your passphrase here) - -$ docker buildx build -t test --ssh default=$SSH_AUTH_SOCK . -``` - -### 清理构建缓存 - -执行以下命令清理构建缓存 - -```bash -$ docker builder prune -``` - -### 官方文档 - -* https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md From f44a3ee402a6935fee789977e989d4691030ccfc Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 5 Nov 2019 22:19:50 +0800 Subject: [PATCH 434/611] Add ide with docker Signed-off-by: Kang HuaiShuai --- .github/workflows/ci.yaml | 1 + .vuepress/config.js | 8 ++++++++ IDE/README.md | 3 +++ IDE/vsCode.md | 5 +++++ SUMMARY.md | 2 ++ 5 files changed, 19 insertions(+) create mode 100644 IDE/README.md create mode 100644 IDE/vsCode.md diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 62c10c980..4a2625c21 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,6 +18,7 @@ jobs: args: build - name: vuepress run: | + rm -rf _book npx vuepress build - name: Upload Vuepress dist uses: docker://pcit/pages diff --git a/.vuepress/config.js b/.vuepress/config.js index 18948e3c3..f9e96cc70 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -115,6 +115,14 @@ module.exports = { 'summary', ], }, + { + title: "在 IDE 中使用 Docker", + collapsable: false, + children: [ + '/ide/', + '/ide/vscode', + ], + }, ], '/cases/ci/': [ '/cases/ci/', diff --git a/IDE/README.md b/IDE/README.md new file mode 100644 index 000000000..a0bb743e3 --- /dev/null +++ b/IDE/README.md @@ -0,0 +1,3 @@ +# 在 IDE 中使用 Docker + +使用 IDE 进行开发,往往要求本地安装好工具链。一些 IDE 支持 Docker 容器中的工具链,这样充分利用了 Docker 的优点,而无需在本地安装。 diff --git a/IDE/vsCode.md b/IDE/vsCode.md new file mode 100644 index 000000000..762077619 --- /dev/null +++ b/IDE/vsCode.md @@ -0,0 +1,5 @@ +# VS Code 中使用 Docker + +## 将 Docker 容器作为远程开发环境 + +无需本地安装开发工具,直接将 Docker 容器作为开发环境,具体参考 [官方文档](https://code.visualstudio.com/docs/remote/containers)。 diff --git a/SUMMARY.md b/SUMMARY.md index 4dc717700..6057f12fc 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -138,6 +138,8 @@ * [Drone](cases/ci/drone/README.md) * [部署 Drone](cases/ci/drone/install.md) * [Travis CI](cases/ci/travis/README.md) +* [在 IDE 中使用 Docker](IDE/README.md) + * [VS Code](IDE/vsCode.md) * [Docker 开源项目](opensource/README.md) * [LinuxKit](opensource/linuxkit.md) * [附录](appendix/README.md) From 3ba7560b4d304b4ee74a773ec40fb492a2b7f8ee Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 5 Nov 2019 23:28:01 +0800 Subject: [PATCH 435/611] Add experimental Signed-off-by: Kang HuaiShuai --- SUMMARY.md | 1 + install/experimental.md | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 install/experimental.md diff --git a/SUMMARY.md b/SUMMARY.md index 6057f12fc..f3b2d3ae7 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -19,6 +19,7 @@ * [macOS](install/mac.md) * [Windows 10](install/windows.md) * [镜像加速器](install/mirror.md) + * [开启实验特性](install/experimental.md) * [使用镜像](image/README.md) * [获取镜像](image/pull.md) * [列出镜像](image/list.md) diff --git a/install/experimental.md b/install/experimental.md new file mode 100644 index 000000000..f4f6895e2 --- /dev/null +++ b/install/experimental.md @@ -0,0 +1,37 @@ +# 开启实验特性 + +一些 docker 命令或功能仅当 **实验特性** 开启时才能使用,请按照以下方法进行设置。 + +## 开启 Docker CLI 的实验特性 + +编辑 `~/.docker/config.json` 文件,新增如下条目 + +```json +{ + "experimental": "enabled" +} +``` + +或者通过设置环境变量的方式: + +**Linux/macOS** + +```bash +$ export DOCKER_CLI_EXPERIMENTAL=enabled +``` + +**Windows** + +```powershell +$ set $env:DOCKER_CLI_EXPERIMENTAL=enabled +``` + +## 开启 Dockerd 的实验特性 + +编辑 `/etc/docker/daemon.json`,新增如下条目 + +```json +{ + "experimental": true +} +``` From 709c77adcbb46cf75a8b316495de30c5db4ca521 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 5 Nov 2019 23:35:43 +0800 Subject: [PATCH 436/611] Update title style Signed-off-by: Kang HuaiShuai --- .vuepress/config.js | 121 +++++++++++++++++----------------- archive/README.md | 4 ++ buildx/buildx.md | 14 +--- cases/ci/travis/README.md | 6 +- cases/os/alpine.md | 10 +-- cases/os/busybox.md | 10 +-- cases/os/debian.md | 12 ++-- cloud/alicloud.md | 2 +- cloud/aws.md | 2 +- cloud/intro.md | 4 +- cloud/summary.md | 2 +- cloud/tencentCloud.md | 2 +- compose/commands.md | 56 ++++++++-------- compose/compose_file.md | 72 ++++++++++---------- compose/django.md | 2 +- compose/install.md | 10 +-- compose/introduction.md | 2 +- compose/rails.md | 2 +- compose/usage.md | 14 ++-- compose/wordpress.md | 8 +-- image/manifest.md | 16 +---- install/centos.md | 26 ++++---- install/debian.md | 24 +++---- install/fedora.md | 24 +++---- install/mac.md | 16 ++--- install/mirror.md | 12 ++-- install/raspberry-pi.md | 18 ++--- install/ubuntu.md | 24 +++---- install/windows.md | 12 ++-- repository/dockerhub.md | 12 ++-- repository/nexus3_registry.md | 12 ++-- repository/registry.md | 14 ++-- repository/registry_auth.md | 18 ++--- underly/arch.md | 2 +- underly/cgroups.md | 2 +- underly/container_format.md | 2 +- underly/namespace.md | 14 ++-- underly/network.md | 8 +-- underly/ufs.md | 2 +- 39 files changed, 297 insertions(+), 316 deletions(-) diff --git a/.vuepress/config.js b/.vuepress/config.js index f9e96cc70..af5b2815f 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -37,6 +37,10 @@ module.exports = { text: 'Kubernetes', link: '/kubernetes/', }, + { + text: "云计算", + link: "/cloud/", + }, { text: 'GitHub', link: 'https://github.com/yeasy/docker_practice' @@ -58,6 +62,13 @@ module.exports = { // } ], sidebar: { + '/cloud/': [ + 'intro', + 'aws', + 'tencentCloud', + 'alicloud', + 'summary', + ], '/kubernetes/': [ 'intro', 'quickstart', @@ -76,7 +87,6 @@ module.exports = { 'wordpress', ], '/install/': [ - '/install/', 'ubuntu', 'debian', 'fedora', @@ -85,9 +95,9 @@ module.exports = { 'mac', 'windows', 'mirror', + 'experimental', ], '/underly/': [ - '/underly/', 'arch', 'namespace', 'cgroups', @@ -96,7 +106,6 @@ module.exports = { 'network', ], '/repository/': [ - '/repository/', 'dockerhub', 'registry', 'registry_auth', @@ -107,7 +116,6 @@ module.exports = { title: "操作系统", collapsable:false, children: [ - '/cases/os/', 'busybox', 'alpine', 'debian', @@ -119,14 +127,13 @@ module.exports = { title: "在 IDE 中使用 Docker", collapsable: false, children: [ - '/ide/', - '/ide/vscode', + '/IDE/', + '/IDE/vsCode', ], }, ], '/cases/ci/': [ - '/cases/ci/', - '/cases/ci/actions/', + 'actions/', { title: "Drone", collapsable: false, @@ -145,55 +152,55 @@ module.exports = { title: "Docker 简介", collapsable: false, children: [ - '/introduction/', - '/introduction/what', - '/introduction/why', + 'introduction/', + 'introduction/what', + 'introduction/why', ] },{ title: "基本概念", collapsable: false, children: [ - '/basic_concept/', - '/basic_concept/image', - '/basic_concept/container', - '/basic_concept/repository' + 'basic_concept/', + 'basic_concept/image', + 'basic_concept/container', + 'basic_concept/repository' ] }, { title: "使用镜像", collapsable: false, children: [ - '/image/', - '/image/pull', - '/image/list', - '/image/rm', - '/image/commit', - '/image/build', - '/image/other.md', - '/image/internal.md', + 'image/', + 'image/pull', + 'image/list', + 'image/rm', + 'image/commit', + 'image/build', + 'image/other.md', + 'image/internal.md', ] }, { title: 'Dockerfile', collapsable: false, children: [ - "/image/dockerfile/", - '/image/dockerfile/copy', - '/image/dockerfile/add', - '/image/dockerfile/cmd', - '/image/dockerfile/entrypoint', - '/image/dockerfile/env', - '/image/dockerfile/arg', - '/image/dockerfile/volume', - '/image/dockerfile/expose', - '/image/dockerfile/workdir', - '/image/dockerfile/user', - '/image/dockerfile/healthcheck', - '/image/dockerfile/onbuild', - '/image/dockerfile/references', - '/image/multistage-builds/', - '/image/multistage-builds/laravel', - '/image/manifest', + "image/dockerfile/", + 'image/dockerfile/copy', + 'image/dockerfile/add', + 'image/dockerfile/cmd', + 'image/dockerfile/entrypoint', + 'image/dockerfile/env', + 'image/dockerfile/arg', + 'image/dockerfile/volume', + 'image/dockerfile/expose', + 'image/dockerfile/workdir', + 'image/dockerfile/user', + 'image/dockerfile/healthcheck', + 'image/dockerfile/onbuild', + 'image/dockerfile/references', + 'image/multistage-builds/', + 'image/multistage-builds/laravel', + 'image/manifest', ] },{ title: "操作容器", @@ -297,18 +304,6 @@ module.exports = { 'coreos/intro_tools', ], }, - { - title: "容器与云计算", - collapsable:false, - children: [ - 'cloud/', - 'cloud/intro', - 'cloud/aws', - 'cloud/tencentCloud', - 'cloud/alicloud', - 'cloud/summary', - ], - }, { title: "Docker 开源项目", collapsable:false, @@ -359,15 +354,23 @@ module.exports = { title: 'Mesos', collapsable: false, children: [ - '/mesos/intro', - '/mesos/installation', - '/mesos/architecture', - '/mesos/configuration', - '/mesos/monitor', - '/mesos/framework', - '/mesos/summary', + 'mesos/', + 'mesos/intro', + 'mesos/installation', + 'mesos/architecture', + 'mesos/configuration', + 'mesos/monitor', + 'mesos/framework', + 'mesos/summary', ] }, + { + title: 'Docker Swarm', + collapsable: false, + children: [ + "swarm/" + ] + } ], }, } diff --git a/archive/README.md b/archive/README.md index 042dde31c..5f748758a 100644 --- a/archive/README.md +++ b/archive/README.md @@ -1,3 +1,7 @@ # 归档项目 以下项目不被官方支持或内容陈旧,将在下一版本中删除。 + +* Docker Machine +* Mesos +* Docker Swarm diff --git a/buildx/buildx.md b/buildx/buildx.md index 6dc2c9985..02c7ca5fc 100644 --- a/buildx/buildx.md +++ b/buildx/buildx.md @@ -2,19 +2,7 @@ ## 启用 Buildx -`buildx` 命令属于实验特性,必须设置环境变量以使用该命令。 - -Linux/macOS - -```bash -$ export DOCKER_CLI_EXPERIMENTAL=enabled -``` - -Windows - -```bash -$ set $env:DOCKER_CLI_EXPERIMENTAL=enabled -``` +`buildx` 命令属于实验特性,参考 [开启实验特性](../install/experimental.md) 一节。 ## 使用 diff --git a/cases/ci/travis/README.md b/cases/ci/travis/README.md index d3337da6d..792a5cee1 100644 --- a/cases/ci/travis/README.md +++ b/cases/ci/travis/README.md @@ -1,10 +1,10 @@ -## 在 Travis CI 中使用 Docker +# 在 Travis CI 中使用 Docker 当代码提交到 GitHub 时,[Travis CI](https://travis-ci.com/) 会根据项目根目录 `.travis.yml` 文件设置的指令,执行一系列操作。 本小节介绍如何在 Travis CI 中使用 Docker 进行持续集成/持续部署(CI/CD)。这里以当代码提交到 GitHub 时自动构建 Docker 镜像并推送到 Docker Hub 为例进行介绍。 -### 准备 +## 准备 首先登录 https://travis-ci.com/account/repositories 选择 GitHub 仓库,按照指引安装 GitHub App 来启用 GitHub 仓库构建。 @@ -42,6 +42,6 @@ after_success: > 请提前在 Travis CI 仓库设置页面配置 `DOCKER_PASSWORD` `DOCKER_USERNAME` 变量 -### 查看结果 +## 查看结果 将项目推送到 GitHub,登录 [Travis CI](https://travis-ci.com/) 查看构建详情。 diff --git a/cases/os/alpine.md b/cases/os/alpine.md index 89398ab71..7c10df046 100644 --- a/cases/os/alpine.md +++ b/cases/os/alpine.md @@ -1,6 +1,6 @@ -## Alpine +# Alpine -### 简介 +## 简介 ![Apline Linux 操作系统](_images/alpinelinux-logo.png) @@ -22,7 +22,7 @@ ubuntu latest b39b81afc8ca 188.3 MB centos latest 8efe422e6104 210 MB ``` -### 获取并使用官方镜像 +## 获取并使用官方镜像 由于镜像很小,下载时间往往很短,读者可以直接使用 `docker run` 指令直接运行一个 `Alpine` 容器,并指定运行的 Linux 指令,例如: @@ -31,7 +31,7 @@ $ docker run alpine echo '123' 123 ``` -### 迁移至 `Alpine` 基础镜像 +## 迁移至 `Alpine` 基础镜像 目前,大部分 Docker 官方镜像都已经支持 `Alpine` 作为基础镜像,可以很容易进行迁移。 @@ -54,7 +54,7 @@ $ echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositorie $ apk --update add --no-cache ``` -### 相关资源 +## 相关资源 * `Alpine` 官网:https://www.alpinelinux.org/ * `Alpine` 官方仓库:https://github.com/alpinelinux diff --git a/cases/os/busybox.md b/cases/os/busybox.md index 16bd26cb3..1eb471a97 100644 --- a/cases/os/busybox.md +++ b/cases/os/busybox.md @@ -1,6 +1,6 @@ -## Busybox +# Busybox -### 简介 +## 简介 ![Busybox - Linux 瑞士军刀](_images/busybox-logo.png) @@ -8,7 +8,7 @@ `BusyBox` 可运行于多款 `POSIX` 环境的操作系统中,如 `Linux`(包括 `Android`)、`Hurd`、`FreeBSD` 等。 -### 获取官方镜像 +## 获取官方镜像 在 `Docker Hub` 中搜索 `busybox` 相关的镜像。 @@ -44,7 +44,7 @@ REPOSITORY TAG IMAGE ID CREATED busybox latest e72ac664f4f0 6 weeks ago 2.433 MB ``` -### 运行 busybox +## 运行 busybox 启动一个 `busybox` 容器,并在容器中执行 `grep` 命令。 @@ -105,7 +105,7 @@ tmpfs on /proc/kcore type tmpfs (rw,nosuid,mode=755) `busybox` 镜像虽然小巧,但包括了大量常见的 `Linux` 命令,读者可以用它快速熟悉 `Linux` 命令。 -### 相关资源 +## 相关资源 * `Busybox` 官网:https://busybox.net/ * `Busybox` 官方仓库:https://git.busybox.net/busybox/ diff --git a/cases/os/debian.md b/cases/os/debian.md index ce975dde8..6e8724197 100644 --- a/cases/os/debian.md +++ b/cases/os/debian.md @@ -1,7 +1,7 @@ -## Debian/Ubuntu +# Debian/Ubuntu `Debian` 和 `Ubuntu` 都是目前较为流行的 **Debian 系** 的服务器操作系统,十分适合研发场景。`Docker Hub` 上提供了官方镜像,国内各大容器云服务也基本都提供了相应的支持。 -### Debian 系统简介 +## Debian 系统简介 ![Debian 操作系统](_images/debian-logo.png) @@ -11,7 +11,7 @@ 众多的 `Linux` 发行版,例如 `Ubuntu`、`Knoppix` 和 `Linspire` 及 `Xandros` 等,都基于 `Debian GNU/Linux`。 -#### 使用 Debian 官方镜像 +### 使用 Debian 官方镜像 读者可以使用 `docker search` 查找 `Debian` 镜像: @@ -36,13 +36,13 @@ Debian GNU/Linux 8 `Debian` 镜像很适合作为基础镜像,构建自定义镜像。 -### Ubuntu 系统简介 +## Ubuntu 系统简介 ![Ubuntu 操作系统](_images/ubuntu-logo.jpg) `Ubuntu` 是一个以桌面应用为主的 `GNU/Linux` 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(官方译名“友帮拓”,另有“吾帮托”、“乌班图”、“有奔头”或“乌斑兔”等译名)。`Ubuntu` 意思是“人性”以及“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。 `Ubuntu` 基于 `Debian` 发行版和 `GNOME/Unity` 桌面环境,与 `Debian` 的不同在于它每 6 个月会发布一个新版本,每 2 年推出一个长期支持 **(Long Term Support,LTS)** 版本,一般支持 3 年时间。 -#### 使用 Ubuntu 官方镜像 +### 使用 Ubuntu 官方镜像 `Ubuntu` 相关的镜像有很多,这里使用 `--filter=stars=10` 参数,只搜索那些被收藏 `10` 次以上的镜像。 @@ -162,7 +162,7 @@ root@7d93de07bf76:/# curl 127.0.0.1 配合使用 `-p` 参数对外映射服务端口,可以允许容器外来访问该服务。 -### 相关资源 +## 相关资源 * `Debian` 官网:https://www.debian.org/ * `Neuro Debian` 官网:http://neuro.debian.net/ diff --git a/cloud/alicloud.md b/cloud/alicloud.md index cf48a9508..b8e59572b 100644 --- a/cloud/alicloud.md +++ b/cloud/alicloud.md @@ -1,4 +1,4 @@ -## 阿里云 +# 阿里云 ![阿里云](_images/aliyun-logo.png) diff --git a/cloud/aws.md b/cloud/aws.md index b73b87ad9..aea35a170 100644 --- a/cloud/aws.md +++ b/cloud/aws.md @@ -1,4 +1,4 @@ -## 亚马逊云 +# 亚马逊云 ![AWS](_images/aws-logo.jpg) diff --git a/cloud/intro.md b/cloud/intro.md index b91187802..ceffdf19a 100644 --- a/cloud/intro.md +++ b/cloud/intro.md @@ -1,7 +1,7 @@ -## 简介 +# 简介 目前与容器相关的云计算主要分为两种类型。 一种是传统的 IaaS 服务商提供对容器相关的服务,包括镜像下载、容器托管等。 -另一种是直接基于容器技术对外提供容器云服务,所谓 Container as a Service(CaaS)。 \ No newline at end of file +另一种是直接基于容器技术对外提供容器云服务,所谓 Container as a Service(CaaS)。 diff --git a/cloud/summary.md b/cloud/summary.md index fd3c1fb83..118332439 100644 --- a/cloud/summary.md +++ b/cloud/summary.md @@ -1,4 +1,4 @@ -## 本章小结 +# 本章小结 本章介绍了公有云服务对 Docker 的积极支持,以及新出现的容器云平台。 diff --git a/cloud/tencentCloud.md b/cloud/tencentCloud.md index 38933eac1..4af43eea4 100644 --- a/cloud/tencentCloud.md +++ b/cloud/tencentCloud.md @@ -1,4 +1,4 @@ -## 腾讯云 +# 腾讯云 ![腾讯云](_images/qcloud-logo.jpg) diff --git a/compose/commands.md b/compose/commands.md index 23d9c8196..dda0b834f 100644 --- a/compose/commands.md +++ b/compose/commands.md @@ -1,6 +1,6 @@ -## Compose 命令说明 +# Compose 命令说明 -### 命令对象与格式 +## 命令对象与格式 对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器。如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响。 @@ -12,7 +12,7 @@ docker-compose [-f=...] [options] [COMMAND] [ARGS...] ``` -### 命令选项 +## 命令选项 * `-f, --file FILE` 指定使用的 Compose 模板文件,默认为 `docker-compose.yml`,可以多次指定。 @@ -26,9 +26,9 @@ docker-compose [-f=...] [options] [COMMAND] [ARGS...] * `-v, --version` 打印版本并退出。 -### 命令使用说明 +## 命令使用说明 -#### `build` +### `build` 格式为 `docker-compose build [options] [SERVICE...]`。 @@ -46,27 +46,27 @@ docker-compose [-f=...] [options] [COMMAND] [ARGS...] * `--pull` 始终尝试通过 pull 来获取更新版本的镜像。 -#### `config` +### `config` 验证 Compose 文件格式是否正确,若正确则显示配置,若格式错误显示错误原因。 -#### `down` +### `down` 此命令将会停止 `up` 命令所启动的容器,并移除网络 -#### `exec` +### `exec` 进入指定的容器。 -#### `help` +### `help` 获得一个命令的帮助。 -#### `images` +### `images` 列出 Compose 文件中包含的镜像。 -#### `kill` +### `kill` 格式为 `docker-compose kill [options] [SERVICE...]`。 @@ -78,7 +78,7 @@ docker-compose [-f=...] [options] [COMMAND] [ARGS...] $ docker-compose kill -s SIGINT ``` -#### `logs` +### `logs` 格式为 `docker-compose logs [options] [SERVICE...]`。 @@ -86,13 +86,13 @@ $ docker-compose kill -s SIGINT 该命令在调试问题的时候十分有用。 -#### `pause` +### `pause` 格式为 `docker-compose pause [SERVICE...]`。 暂停一个服务容器。 -#### `port` +### `port` 格式为 `docker-compose port [options] SERVICE PRIVATE_PORT`。 @@ -104,7 +104,7 @@ $ docker-compose kill -s SIGINT * `--index=index` 如果同一服务存在多个容器,指定命令对象容器的序号(默认为 1)。 -#### `ps` +### `ps` 格式为 `docker-compose ps [options] [SERVICE...]`。 @@ -114,7 +114,7 @@ $ docker-compose kill -s SIGINT * `-q` 只打印容器的 ID 信息。 -#### `pull` +### `pull` 格式为 `docker-compose pull [options] [SERVICE...]`。 @@ -124,11 +124,11 @@ $ docker-compose kill -s SIGINT * `--ignore-pull-failures` 忽略拉取镜像过程中的错误。 -#### `push` +### `push` 推送服务依赖的镜像到 Docker 镜像仓库。 -#### `restart` +### `restart` 格式为 `docker-compose restart [options] [SERVICE...]`。 @@ -138,7 +138,7 @@ $ docker-compose kill -s SIGINT * `-t, --timeout TIMEOUT` 指定重启前停止容器的超时(默认为 10 秒)。 -#### `rm` +### `rm` 格式为 `docker-compose rm [options] [SERVICE...]`。 @@ -150,7 +150,7 @@ $ docker-compose kill -s SIGINT * `-v` 删除容器所挂载的数据卷。 -#### `run` +### `run` 格式为 `docker-compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]`。 在指定服务上执行一个命令。 @@ -203,7 +203,7 @@ $ docker-compose run --no-deps web python manage.py shell * `-T` 不分配伪 tty,意味着依赖 tty 的指令将无法运行。 -#### `scale` +### `scale` 格式为 `docker-compose scale [options] [SERVICE=NUM...]`。 @@ -223,13 +223,13 @@ $ docker-compose scale web=3 db=2 * `-t, --timeout TIMEOUT` 停止容器时候的超时(默认为 10 秒)。 -#### `start` +### `start` 格式为 `docker-compose start [SERVICE...]`。 启动已经存在的服务容器。 -#### `stop` +### `stop` 格式为 `docker-compose stop [options] [SERVICE...]`。 @@ -239,17 +239,17 @@ $ docker-compose scale web=3 db=2 * `-t, --timeout TIMEOUT` 停止容器时候的超时(默认为 10 秒)。 -#### `top` +### `top` 查看各个服务容器内运行的进程。 -#### `unpause` +### `unpause` 格式为 `docker-compose unpause [SERVICE...]`。 恢复处于暂停状态中的服务。 -#### `up` +### `up` 格式为 `docker-compose up [options] [SERVICE...]`。 @@ -283,12 +283,12 @@ $ docker-compose scale web=3 db=2 * `-t, --timeout TIMEOUT` 停止容器时候的超时(默认为 10 秒)。 -#### `version` +### `version` 格式为 `docker-compose version`。 打印版本信息。 -### 参考资料 +## 参考资料 * [官方文档](https://docs.docker.com/compose/reference/overview/) diff --git a/compose/compose_file.md b/compose/compose_file.md index d41ea4152..f99fb16b3 100644 --- a/compose/compose_file.md +++ b/compose/compose_file.md @@ -1,4 +1,4 @@ -## Compose 模板文件 +# Compose 模板文件 模板文件是使用 `Compose` 的核心,涉及到的指令关键字也比较多。但大家不用担心,这里面大部分指令跟 `docker run` 相关参数的含义都是类似的。 @@ -22,7 +22,7 @@ services: 下面分别介绍各个指令的用法。 -### `build` +## `build` 指定 `Dockerfile` 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。 `Compose` 将会利用它自动构建这个镜像,然后使用这个镜像。 @@ -62,7 +62,7 @@ build: - corp/web_app:3.14 ``` -### `cap_add, cap_drop` +## `cap_add, cap_drop` 指定容器的内核能力(capacity)分配。 @@ -80,7 +80,7 @@ cap_drop: - NET_ADMIN ``` -### `command` +## `command` 覆盖容器启动后默认执行的命令。 @@ -88,11 +88,11 @@ cap_drop: command: echo "hello world" ``` -### `configs` +## `configs` 仅用于 `Swarm mode`,详细内容请查看 [`Swarm mode`](../swarm_mode/) 一节。 -### `cgroup_parent` +## `cgroup_parent` 指定父 `cgroup` 组,意味着将继承该组的资源限制。 @@ -102,7 +102,7 @@ command: echo "hello world" cgroup_parent: cgroups_1 ``` -### `container_name` +## `container_name` 指定容器名称。默认将会使用 `项目名称_服务名称_序号` 这样的格式。 @@ -112,11 +112,11 @@ container_name: docker-web-container >注意: 指定容器名称后,该服务将无法进行扩展(scale),因为 Docker 不允许多个容器具有相同的名称。 -### `deploy` +## `deploy` 仅用于 `Swarm mode`,详细内容请查看 [`Swarm mode`](../swarm_mode/) 一节 -### `devices` +## `devices` 指定设备映射关系。 @@ -125,7 +125,7 @@ devices: - "/dev/ttyUSB1:/dev/ttyUSB0" ``` -### `depends_on` +## `depends_on` 解决容器的依赖、启动先后的问题。以下例子中会先启动 `redis` `db` 再启动 `web` @@ -148,7 +148,7 @@ services: >注意:`web` 服务不会等待 `redis` `db` 「完全启动」之后才启动。 -### `dns` +## `dns` 自定义 `DNS` 服务器。可以是一个值,也可以是一个列表。 @@ -160,7 +160,7 @@ dns: - 114.114.114.114 ``` -### `dns_search` +## `dns_search` 配置 `DNS` 搜索域。可以是一个值,也可以是一个列表。 @@ -172,7 +172,7 @@ dns_search: - domain2.example.com ``` -### `tmpfs` +## `tmpfs` 挂载一个 tmpfs 文件系统到容器。 @@ -183,7 +183,7 @@ tmpfs: - /tmp ``` -### `env_file` +## `env_file` 从文件中获取环境变量,可以为单独的文件路径或列表。 @@ -207,7 +207,7 @@ env_file: PROG_ENV=development ``` -### `environment` +## `environment` 设置环境变量。你可以使用数组或字典两种格式。 @@ -229,7 +229,7 @@ environment: y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF ``` -### `expose` +## `expose` 暴露端口,但不映射到宿主机,只被连接的服务访问。 @@ -241,7 +241,7 @@ expose: - "8000" ``` -### `external_links` +## `external_links` >注意:不建议使用该指令。 @@ -254,7 +254,7 @@ external_links: - project_db_1:postgresql ``` -### `extra_hosts` +## `extra_hosts` 类似 Docker 中的 `--add-host` 参数,指定额外的 host 名称映射信息。 @@ -271,7 +271,7 @@ extra_hosts: 52.1.157.61 dockerhub ``` -### `healthcheck` +## `healthcheck` 通过命令检查容器是否健康运行。 @@ -283,7 +283,7 @@ healthcheck: retries: 3 ``` -### `image` +## `image` 指定为镜像名称或镜像 ID。如果镜像在本地不存在,`Compose` 将会尝试拉取这个镜像。 @@ -293,7 +293,7 @@ image: orchardup/postgresql image: a4bc65fd ``` -### `labels` +## `labels` 为容器添加 Docker 元数据(metadata)信息。例如可以为容器添加辅助说明信息。 @@ -304,11 +304,11 @@ labels: com.startupteam.release: "rc3 for v1.0" ``` -### `links` +## `links` >注意:不推荐使用该指令。 -### `logging` +## `logging` 配置日志选项。 @@ -335,7 +335,7 @@ options: max-file: "10" ``` -### `network_mode` +## `network_mode` 设置网络模式。使用和 `docker run` 的 `--network` 参数一样的值。 @@ -347,7 +347,7 @@ network_mode: "service:[service name]" network_mode: "container:[container name/id]" ``` -### `networks` +## `networks` 配置容器连接的网络。 @@ -365,7 +365,7 @@ networks: other-network: ``` -### `pid` +## `pid` 跟主机系统共享进程命名空间。打开该选项的容器之间,以及容器和宿主机系统之间可以通过进程 ID 来相互访问和操作。 @@ -373,7 +373,7 @@ networks: pid: "host" ``` -### `ports` +## `ports` 暴露端口信息。 @@ -389,7 +389,7 @@ ports: *注意:当使用 `HOST:CONTAINER` 格式来映射端口时,如果你使用的容器端口小于 60 并且没放到引号里,可能会得到错误结果,因为 `YAML` 会自动解析 `xx:yy` 这种数字格式为 60 进制。为避免出现这种问题,建议数字串都采用引号包括起来的字符串格式。* -### `secrets` +## `secrets` 存储敏感数据,例如 `mysql` 服务密码。 @@ -412,7 +412,7 @@ secrets: external: true ``` -### `security_opt` +## `security_opt` 指定容器模板标签(label)机制的默认属性(用户、角色、类型、级别等)。例如配置标签的用户名和角色名。 @@ -422,7 +422,7 @@ security_opt: - label:role:ROLE ``` -### `stop_signal` +## `stop_signal` 设置另一个信号来停止容器。在默认情况下使用的是 SIGTERM 停止容器。 @@ -430,7 +430,7 @@ security_opt: stop_signal: SIGUSR1 ``` -### `sysctls` +## `sysctls` 配置容器内核参数。 @@ -444,7 +444,7 @@ sysctls: - net.ipv4.tcp_syncookies=0 ``` -### `ulimits` +## `ulimits` 指定容器的 ulimits 限制值。 @@ -458,7 +458,7 @@ sysctls: hard: 40000 ``` -### `volumes` +## `volumes` 数据卷所挂载路径设置。可以设置为宿主机路径(`HOST:CONTAINER`)或者数据卷名称(`VOLUME:CONTAINER`),并且可以设置访问模式 (`HOST:CONTAINER:ro`)。 @@ -486,7 +486,7 @@ volumes: mysql_data: ``` -### 其它指令 +## 其它指令 此外,还有包括 `domainname, entrypoint, hostname, ipc, mac_address, privileged, read_only, shm_size, restart, stdin_open, tty, user, working_dir` 等指令,基本跟 `docker run` 中对应参数的功能一致。 @@ -546,7 +546,7 @@ stdin_open: true tty: true ``` -### 读取变量 +## 读取变量 Compose 模板文件支持动态读取主机的系统环境变量和当前目录下的 `.env` 文件中的变量。 @@ -573,6 +573,6 @@ MONGO_VERSION=3.6 执行 `docker-compose up` 则会启动一个 `mongo:3.6` 镜像的容器。 -### 参考资料 +## 参考资料 * [官方文档](https://docs.docker.com/compose/compose-file/) diff --git a/compose/django.md b/compose/django.md index c0f9f455c..2b5219769 100644 --- a/compose/django.md +++ b/compose/django.md @@ -1,4 +1,4 @@ -## 使用 Django +# 使用 Django > 本小节内容适合 `Python` 开发人员阅读。 diff --git a/compose/install.md b/compose/install.md index 4a7ba479f..b9625e93d 100644 --- a/compose/install.md +++ b/compose/install.md @@ -1,4 +1,4 @@ -## 安装与卸载 +# 安装与卸载 `Compose` 支持 Linux、macOS、Windows 10 三大平台。 @@ -14,7 +14,7 @@ docker-compose version 1.24.1, build 4667896b Linux 系统请使用以下介绍的方法安装。 -### 二进制包 +## 二进制包 在 Linux 上的也安装十分简单,从 [官方 GitHub Release](https://github.com/docker/compose/releases) 处直接下载编译好的二进制文件即可。 @@ -26,7 +26,7 @@ $ sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker $ sudo chmod +x /usr/local/bin/docker-compose ``` -### PIP 安装 +## PIP 安装 *注:* `x86_64` 架构的 Linux 建议按照上边的方法下载二进制包进行安装,如果您计算机的架构是 `ARM` (例如,树莓派),再使用 `pip` 安装。 @@ -47,13 +47,13 @@ Collecting docker-compose Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress ``` -### bash 补全命令 +## bash 补全命令 ```bash $ curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose ``` -### 卸载 +## 卸载 如果是二进制包方式安装的,删除二进制文件即可。 diff --git a/compose/introduction.md b/compose/introduction.md index cde4affba..677761430 100644 --- a/compose/introduction.md +++ b/compose/introduction.md @@ -1,4 +1,4 @@ -## Compose 简介 +# Compose 简介 `Compose` 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟 `OpenStack` 中的 `Heat` 十分类似。 diff --git a/compose/rails.md b/compose/rails.md index 66db4a5c3..5222848f1 100644 --- a/compose/rails.md +++ b/compose/rails.md @@ -1,4 +1,4 @@ -## 使用 Rails +# 使用 Rails > 本小节内容适合 `Ruby` 开发人员阅读。 diff --git a/compose/usage.md b/compose/usage.md index 39cef0c6b..ec0479b0e 100644 --- a/compose/usage.md +++ b/compose/usage.md @@ -1,6 +1,6 @@ -## 使用 +# 使用 -### 术语 +## 术语 首先介绍几个术语。 @@ -10,13 +10,13 @@ 可见,一个项目可以由多个服务(容器)关联而成,`Compose` 面向项目进行管理。 -### 场景 +## 场景 最常见的项目是 web 网站,该项目应该包含 web 应用和缓存。 下面我们用 `Python` 来建立一个能够记录页面访问次数的 web 网站。 -#### web 应用 +### web 应用 新建文件夹,在该目录中编写 `app.py` 文件 @@ -36,7 +36,7 @@ if __name__ == "__main__": app.run(host="0.0.0.0", debug=True) ``` -#### Dockerfile +### Dockerfile 编写 `Dockerfile` 文件,内容为 @@ -48,7 +48,7 @@ RUN pip install redis flask CMD ["python", "app.py"] ``` -#### docker-compose.yml +### docker-compose.yml 编写 `docker-compose.yml` 文件,这个是 Compose 使用的主模板文件。 @@ -65,7 +65,7 @@ services: image: "redis:alpine" ``` -#### 运行 compose 项目 +### 运行 compose 项目 ```bash $ docker-compose up diff --git a/compose/wordpress.md b/compose/wordpress.md index 7188bb35b..170e54df7 100644 --- a/compose/wordpress.md +++ b/compose/wordpress.md @@ -1,14 +1,14 @@ -## 使用 WordPress +# 使用 WordPress > 本小节内容适合 `PHP` 开发人员阅读。 `Compose` 可以很便捷的让 `Wordpress` 运行在一个独立的环境中。 -### 创建空文件夹 +## 创建空文件夹 假设新建一个名为 `wordpress` 的文件夹,然后进入这个文件夹。 -### 创建 `docker-compose.yml` 文件 +## 创建 `docker-compose.yml` 文件 [`docker-compose.yml`](https://github.com/yeasy/docker_practice/blob/master/compose/demo/wordpress/docker-compose.yml) 文件将开启一个 `wordpress` 服务和一个独立的 `MySQL` 实例: @@ -46,6 +46,6 @@ volumes: db_data: ``` -### 构建并运行项目 +## 构建并运行项目 运行 `docker-compose up -d` Compose 就会拉取镜像再创建我们所需要的镜像,然后启动 `wordpress` 和数据库容器。 接着浏览器访问 `127.0.0.1:8000` 端口就能看到 `WordPress` 安装界面了。 diff --git a/image/manifest.md b/image/manifest.md index e77eb40c3..3783303c7 100644 --- a/image/manifest.md +++ b/image/manifest.md @@ -34,21 +34,7 @@ $ docker run -it --rm username/test 我们可以使用 `$ docker manifest inspect golang:alpine` 查看这个 `manifest` 列表的结构。 -由于该命令属于实验特性,必须设置如下 **环境变量** 之后才能使用: - -```bash -# Linux、macOS - -$ export DOCKER_CLI_EXPERIMENTAL=enabled - -# Windows - -$ set $env:DOCKER_CLI_EXPERIMENTAL=enabled -``` - -> 以上是设置环境变量的临时方法,若使环境变量永久生效请读者自行设置。 - -设置之后,执行结果如下 +> 该命令属于实验特性,请参考 [开启实验特性](../install/experimental) 一节。 ```bash $ docker manifest inspect golang:alpine diff --git a/install/centos.md b/install/centos.md index d0d2ec3d0..c368cae3c 100644 --- a/install/centos.md +++ b/install/centos.md @@ -1,14 +1,14 @@ -## CentOS 安装 Docker CE +# CentOS 安装 Docker CE >警告:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker. -### 准备工作 +## 准备工作 -#### 系统要求 +### 系统要求 Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 `overlay2` 存储层驱动)无法使用,并且部分功能可能不太稳定。 -#### 卸载旧版本 +### 卸载旧版本 旧版本的 Docker 称为 `docker` 或者 `docker-engine`,使用以下命令卸载旧版本: @@ -25,7 +25,7 @@ $ sudo yum remove docker \ docker-engine ``` -### 使用 yum 安装 +## 使用 yum 安装 执行以下命令安装依赖包: @@ -63,7 +63,7 @@ $ sudo yum-config-manager --enable docker-ce-test $ sudo yum-config-manager --enable docker-ce-nightly ``` -#### 安装 Docker CE +### 安装 Docker CE 更新 `yum` 软件源缓存,并安装 `docker-ce`。 @@ -72,7 +72,7 @@ $ sudo yum makecache fast $ sudo yum install docker-ce ``` -### 使用脚本自动安装 +## 使用脚本自动安装 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: @@ -84,14 +84,14 @@ $ sudo sh get-docker.sh --mirror Aliyun 执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 -### 启动 Docker CE +## 启动 Docker CE ```bash $ sudo systemctl enable docker $ sudo systemctl start docker ``` -### 建立 docker 用户组 +## 建立 docker 用户组 默认情况下,`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 @@ -109,7 +109,7 @@ $ sudo usermod -aG docker $USER 退出当前终端并重新登录,进行如下测试。 -### 测试 Docker 是否安装正确 +## 测试 Docker 是否安装正确 ```bash $ docker run hello-world @@ -144,11 +144,11 @@ For more examples and ideas, visit: 若能正常输出以上信息,则说明安装成功。 -### 镜像加速 +## 镜像加速 如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 -### 添加内核参数 +## 添加内核参数 如果在 CentOS 使用 Docker CE 看到下面的这些警告信息: @@ -172,6 +172,6 @@ EOF $ sudo sysctl -p ``` -### 参考文档 +## 参考文档 * [Docker 官方 CentOS 安装文档](https://docs.docker.com/install/linux/docker-ce/centos/)。 diff --git a/install/debian.md b/install/debian.md index 3d38b1f28..28c88a8a6 100644 --- a/install/debian.md +++ b/install/debian.md @@ -1,17 +1,17 @@ -## Debian 安装 Docker CE +# Debian 安装 Docker CE >警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. -### 准备工作 +## 准备工作 -#### 系统要求 +### 系统要求 Docker CE 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统: * Buster 10 * Stretch 9 -#### 卸载旧版本 +### 卸载旧版本 旧版本的 Docker 称为 `docker` 或者 `docker-engine`,使用以下命令卸载旧版本: @@ -21,7 +21,7 @@ $ sudo apt-get remove docker \ docker.io ``` -### 使用 APT 安装 +## 使用 APT 安装 由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 @@ -66,7 +66,7 @@ $ sudo add-apt-repository \ >以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。 -#### 安装 Docker CE +### 安装 Docker CE 更新 apt 软件包缓存,并安装 `docker-ce`。 @@ -76,7 +76,7 @@ $ sudo apt-get update $ sudo apt-get install docker-ce ``` -### 使用脚本自动安装 +## 使用脚本自动安装 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: @@ -88,14 +88,14 @@ $ sudo sh get-docker.sh --mirror Aliyun 执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 -### 启动 Docker CE +## 启动 Docker CE ```bash $ sudo systemctl enable docker $ sudo systemctl start docker ``` -### 建立 docker 用户组 +## 建立 docker 用户组 默认情况下,`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 @@ -113,7 +113,7 @@ $ sudo usermod -aG docker $USER 退出当前终端并重新登录,进行如下测试。 -### 测试 Docker 是否安装正确 +## 测试 Docker 是否安装正确 ```bash $ docker run hello-world @@ -148,10 +148,10 @@ For more examples and ideas, visit: 若能正常输出以上信息,则说明安装成功。 -### 镜像加速 +## 镜像加速 如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 -### 参考文档 +## 参考文档 * [Docker 官方 Debian 安装文档](https://docs.docker.com/install/linux/docker-ce/debian/) diff --git a/install/fedora.md b/install/fedora.md index dfd4d4f8a..05d0081fa 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -1,10 +1,10 @@ -## Fedora 安装 Docker CE +# Fedora 安装 Docker CE >警告:切勿在没有配置 Docker dnf 源的情况下直接使用 dnf 命令安装 Docker. -### 准备工作 +## 准备工作 -#### 系统要求 +### 系统要求 Docker CE 支持以下版本的 [Fedora](https://fedoraproject.org/) 操作系统: @@ -12,7 +12,7 @@ Docker CE 支持以下版本的 [Fedora](https://fedoraproject.org/) 操作系 * 29 * 30 -#### 卸载旧版本 +### 卸载旧版本 旧版本的 Docker 称为 `docker` 或者 `docker-engine`,使用以下命令卸载旧版本: @@ -29,7 +29,7 @@ $ sudo dnf remove docker \ docker-engine ``` -### 使用 dnf 安装 +## 使用 dnf 安装 执行以下命令安装依赖包: @@ -71,7 +71,7 @@ $ sudo dnf config-manager --set-enabled docker-ce-nightly $ sudo dnf config-manager --set-disabled docker-ce-test ``` -#### 安装 Docker CE +### 安装 Docker CE 更新 `dnf` 软件源缓存,并安装 `docker-ce`。 @@ -90,7 +90,7 @@ docker-ce.x86_64 18.06.1.ce-3.fc28 docker-ce-stable $ sudo dnf -y install docker-ce-18.06.1.ce ``` -### 使用脚本自动安装 +## 使用脚本自动安装 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: @@ -102,14 +102,14 @@ $ sudo sh get-docker.sh --mirror Aliyun 执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 最新稳定(stable)版本安装在系统中。 -### 启动 Docker CE +## 启动 Docker CE ```bash $ sudo systemctl enable docker $ sudo systemctl start docker ``` -### 建立 docker 用户组 +## 建立 docker 用户组 默认情况下,`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 @@ -127,7 +127,7 @@ $ sudo usermod -aG docker $USER 退出当前终端并重新登录,进行如下测试。 -### 测试 Docker 是否安装正确 +## 测试 Docker 是否安装正确 ```bash $ docker run hello-world @@ -162,10 +162,10 @@ For more examples and ideas, visit: 若能正常输出以上信息,则说明安装成功。 -### 镜像加速 +## 镜像加速 如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 -### 参考文档 +## 参考文档 * [Docker 官方 Fedora 安装文档](https://docs.docker.com/install/linux/docker-ce/fedora)。 diff --git a/install/mac.md b/install/mac.md index 52513e9fc..80a385dfe 100644 --- a/install/mac.md +++ b/install/mac.md @@ -1,12 +1,12 @@ -## macOS 安装 Docker Desktop CE +# macOS 安装 Docker Desktop CE -### 系统要求 +## 系统要求 [Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS Sierra 10.12。 -### 安装 +## 安装 -#### 使用 Homebrew 安装 +### 使用 Homebrew 安装 [Homebrew](https://brew.sh/) 的 [Cask](https://caskroom.github.io/) 已经支持 Docker Desktop for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: @@ -14,7 +14,7 @@ $ brew cask install docker ``` -#### 手动下载安装 +### 手动下载安装 如果需要手动下载,请点击以下链接下载 [Stable](https://download.docker.com/mac/stable/Docker.dmg) 或 [Edge](https://download.docker.com/mac/edge/Docker.dmg) 版本的 Docker Desktop for Mac。 @@ -22,7 +22,7 @@ $ brew cask install docker ![](_images/install-mac-dmg.png) -### 运行 +## 运行 从应用中找到 Docker 图标并点击运行。 @@ -68,10 +68,10 @@ $ docker stop webserver $ docker rm webserver ``` -### 镜像加速 +## 镜像加速 如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 -### 参考链接 +## 参考链接 * [官方文档](https://docs.docker.com/docker-for-mac/install/) diff --git a/install/mirror.md b/install/mirror.md index 3b7e25e44..b999b0505 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -1,4 +1,4 @@ -## 镜像加速器 +# 镜像加速器 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如: @@ -12,7 +12,7 @@ 本节我们以 Azure 中国镜像 `https://dockerhub.azk8s.cn` 为例进行介绍。 -### Ubuntu 16.04+、Debian 8+、CentOS 7 +## Ubuntu 16.04+、Debian 8+、CentOS 7 对于使用 [systemd](https://www.freedesktop.org/wiki/Software/systemd/) 的系统,请在 `/etc/docker/daemon.json` 中写入如下内容(如果文件不存在请新建该文件) @@ -36,7 +36,7 @@ $ sudo systemctl restart docker >注意:如果您之前查看旧教程,修改了 `docker.service` 文件内容,请去掉您添加的内容(`--registry-mirror=https://dockerhub.azk8s.cn`)。 -### Windows 10 +## Windows 10 对于使用 `Windows 10` 的用户,在任务栏托盘 Docker 图标内右键菜单选择 `Settings`,打开配置窗口后在左侧导航菜单选择 `Docker Engine`,在右侧像下边一样编辑 json 文件,之后点击 `Apply & Restart` 保存后 Docker 就会重启并应用配置的镜像地址了。 @@ -49,7 +49,7 @@ $ sudo systemctl restart docker } ``` -### macOS +## macOS 对于使用 macOS 的用户,在任务栏点击 Docker Desktop 应用图标 -> `Perferences`,在左侧导航菜单选择 `Docker Engine`,在右侧像下边一样编辑 json 文件。修改完成之后,点击 `Apply & Restart` 按钮,Docker 就会重启并应用配置的镜像地址了。 @@ -62,7 +62,7 @@ $ sudo systemctl restart docker } ``` -### 检查加速器是否生效 +## 检查加速器是否生效 执行 `$ docker info`,如果从结果中看到了如下内容,说明配置成功。 @@ -71,7 +71,7 @@ Registry Mirrors: https://dockerhub.azk8s.cn/ ``` -### gcr.io 镜像 +## gcr.io 镜像 国内无法直接获取 `gcr.io/*` 镜像,我们可以将 `gcr.io//:` 替换为 `gcr.azk8s.cn//:` ,例如 diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 5d04de4df..36d48c895 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -1,8 +1,8 @@ -## 树莓派卡片电脑安装 Docker CE +# 树莓派卡片电脑安装 Docker CE >警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. -### 系统要求 +## 系统要求 Docker CE 不仅支持 `x86_64` 架构的计算机,同时也支持 `ARM` 架构的计算机,本小节内容以树莓派单片电脑为例讲解 `ARM` 架构安装 Docker CE。 @@ -12,7 +12,7 @@ Docker CE 支持以下版本的 [Raspbian](https://www.raspberrypi.org/downloads *注:* `Raspbian` 是树莓派的开发与维护机构 [树莓派基金会](http://www.raspberrypi.org/) 推荐用于树莓派的首选系统,其基于 `Debian`。 -### 使用 APT 安装 +## 使用 APT 安装 由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 @@ -58,7 +58,7 @@ $ sudo add-apt-repository \ >以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。 -#### 安装 Docker CE +### 安装 Docker CE 更新 apt 软件包缓存,并安装 `docker-ce`。 @@ -68,7 +68,7 @@ $ sudo apt-get update $ sudo apt-get install docker-ce ``` -### 使用脚本自动安装 +## 使用脚本自动安装 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Raspbian 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: @@ -80,14 +80,14 @@ $ sudo sh get-docker.sh --mirror Aliyun 执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 -### 启动 Docker CE +## 启动 Docker CE ```bash $ sudo systemctl enable docker $ sudo systemctl start docker ``` -### 建立 docker 用户组 +## 建立 docker 用户组 默认情况下,`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 @@ -105,7 +105,7 @@ $ sudo usermod -aG docker $USER 退出当前终端并重新登录,进行如下测试。 -### 测试 Docker 是否安装正确 +## 测试 Docker 是否安装正确 ```bash $ docker run arm32v7/hello-world @@ -142,6 +142,6 @@ For more examples and ideas, visit: *注意:* ARM 平台不能使用 `x86` 镜像,查看 Raspbian 可使用镜像请访问 [arm32v7](https://hub.docker.com/u/arm32v7/)。 -### 镜像加速 +## 镜像加速 如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 diff --git a/install/ubuntu.md b/install/ubuntu.md index 9cd599d35..2c5516500 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -1,10 +1,10 @@ -## Ubuntu 安装 Docker CE +# Ubuntu 安装 Docker CE >警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. -### 准备工作 +## 准备工作 -#### 系统要求 +### 系统要求 Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作系统: @@ -15,7 +15,7 @@ Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作 Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。 -#### 卸载旧版本 +### 卸载旧版本 旧版本的 Docker 称为 `docker` 或者 `docker-engine`,使用以下命令卸载旧版本: @@ -25,7 +25,7 @@ $ sudo apt-get remove docker \ docker.io ``` -### 使用 APT 安装 +## 使用 APT 安装 由于 `apt` 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 @@ -69,7 +69,7 @@ $ sudo add-apt-repository \ >以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。 -#### 安装 Docker CE +### 安装 Docker CE 更新 apt 软件包缓存,并安装 `docker-ce`: @@ -79,7 +79,7 @@ $ sudo apt-get update $ sudo apt-get install docker-ce ``` -### 使用脚本自动安装 +## 使用脚本自动安装 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: @@ -91,14 +91,14 @@ $ sudo sh get-docker.sh --mirror Aliyun 执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 -### 启动 Docker CE +## 启动 Docker CE ```bash $ sudo systemctl enable docker $ sudo systemctl start docker ``` -### 建立 docker 用户组 +## 建立 docker 用户组 默认情况下,`docker` 命令会使用 [Unix socket](https://en.wikipedia.org/wiki/Unix_domain_socket) 与 Docker 引擎通讯。而只有 `root` 用户和 `docker` 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 `root` 用户。因此,更好地做法是将需要使用 `docker` 的用户加入 `docker` 用户组。 @@ -116,7 +116,7 @@ $ sudo usermod -aG docker $USER 退出当前终端并重新登录,进行如下测试。 -### 测试 Docker 是否安装正确 +## 测试 Docker 是否安装正确 ```bash $ docker run hello-world @@ -151,10 +151,10 @@ For more examples and ideas, visit: 若能正常输出以上信息,则说明安装成功。 -### 镜像加速 +## 镜像加速 如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 -### 参考文档 +## 参考文档 * [Docker 官方 Ubuntu 安装文档](https://docs.docker.com/install/linux/docker-ce/ubuntu/) diff --git a/install/windows.md b/install/windows.md index c7e387694..0286c28df 100644 --- a/install/windows.md +++ b/install/windows.md @@ -1,16 +1,16 @@ -## Windows 10 安装 Docker Desktop CE +# Windows 10 安装 Docker Desktop CE -### 系统要求 +## 系统要求 [Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/install/) 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V。 -### 安装 +## 安装 点击以下链接下载 [Stable](https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe) 或 [Edge](https://download.docker.com/win/edge/Docker%20Desktop%20Installer.exe) 版本的 Docker Desktop for Windows。 下载好之后双击 `Docker Desktop Installer.exe` 开始安装。 -### 运行 +## 运行 在 Windows 搜索栏输入 Docker 点击 Docker for Windows 开始运行。 @@ -24,10 +24,10 @@ Docker CE 启动之后会在 Windows 任务栏出现鲸鱼图标。 ![](_images/install-win-success-popup-cloud.png) -### 镜像加速 +## 镜像加速 如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker [国内镜像加速](mirror.md)。 -### 参考链接 +## 参考链接 * [官方文档](https://docs.docker.com/docker-for-windows/install/) diff --git a/repository/dockerhub.md b/repository/dockerhub.md index 7ed35aafb..1ea7bdddc 100644 --- a/repository/dockerhub.md +++ b/repository/dockerhub.md @@ -1,18 +1,18 @@ -## Docker Hub +# Docker Hub 目前 Docker 官方维护了一个公共仓库 [Docker Hub](https://hub.docker.com/),其中已经包括了数量超过 [2,650,000](https://hub.docker.com/search/?type=image) 的镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。 -### 注册 +## 注册 你可以在 https://hub.docker.com 免费注册一个 Docker 账号。 -### 登录 +## 登录 可以通过执行 `docker login` 命令交互式的输入用户名及密码来完成在命令行界面登录 Docker Hub。 你可以通过 `docker logout` 退出登录。 -### 拉取镜像 +## 拉取镜像 你可以通过 `docker search` 命令来查找官方仓库中的镜像,并利用 `docker pull` 命令来将它下载到本地。 @@ -49,7 +49,7 @@ Pulling repository centos 7064731afe90: Download complete ``` -### 推送镜像 +## 推送镜像 用户也可以在登录后通过 `docker push` 命令来将自己的镜像推送到 Docker Hub。 @@ -72,7 +72,7 @@ NAME DESCRIPTION STARS username/ubuntu ``` -### 自动构建 +## 自动构建 自动构建(Automated Builds)功能对于需要经常升级镜像内程序来说,十分方便。 diff --git a/repository/nexus3_registry.md b/repository/nexus3_registry.md index 45a6ae669..479e64478 100644 --- a/repository/nexus3_registry.md +++ b/repository/nexus3_registry.md @@ -1,8 +1,8 @@ -## Nexus3.x 的私有仓库 +# Nexus3.x 的私有仓库 使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry 程序。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/download-oss-sonatype/) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 -### 启动 Nexus 容器 +## 启动 Nexus 容器 ```bash $ docker run -d --name nexus3 --restart=always \ @@ -15,7 +15,7 @@ $ docker run -d --name nexus3 --restart=always \ 第一次启动 Nexus 的默认帐号是 `admin` 密码是 `admin123` 登录以后点击页面上方的齿轮按钮进行设置。 -### 创建仓库 +## 创建仓库 创建一个私有仓库的方法: `Repository->Repositories` 点击右边菜单 `Create repository` 选择 `docker (hosted)` @@ -26,7 +26,7 @@ $ docker run -d --name nexus3 --restart=always \ 其它的仓库创建方法请各位自己摸索,还可以创建一个 docker (proxy) 类型的仓库链接到 DockerHub 上。再创建一个 docker (group) 类型的仓库把刚才的 hosted 与 proxy 添加在一起。主机在访问的时候默认下载私有仓库中的镜像,如果没有将链接到 DockerHub 中下载并缓存到 Nexus 中。 -### 添加访问权限 +## 添加访问权限 菜单 `Security->Realms` 把 Docker Bearer Token Realm 移到右边的框中保存。 @@ -34,7 +34,7 @@ $ docker run -d --name nexus3 --restart=always \ 添加用户:菜单 `Security->Users`->`Create local user` 在 `Roles` 选项中选中刚才创建的规则移动到右边的窗口保存。 -### NGINX 加密代理 +## NGINX 加密代理 证书的生成请参见 [`私有仓库高级配置`](registry_auth.md) 里面证书生成一节。 @@ -89,7 +89,7 @@ server { } ``` -### Docker 主机访问镜像仓库 +## Docker 主机访问镜像仓库 如果不启用 SSL 加密可以通过前面章节的方法添加信任地址到 Docker 的配置文件中然后重启 Docker diff --git a/repository/registry.md b/repository/registry.md index bacc3a150..433262ab0 100644 --- a/repository/registry.md +++ b/repository/registry.md @@ -1,4 +1,4 @@ -## 私有仓库 +# 私有仓库 有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。 @@ -6,9 +6,9 @@ [`docker-registry`](https://docs.docker.com/registry/) 是官方提供的工具,可以用于构建私有的镜像仓库。本文内容基于 [`docker-registry`](https://github.com/docker/distribution) v2.x 版本。 -### 安装运行 docker-registry +## 安装运行 docker-registry -#### 容器运行 +### 容器运行 你可以通过获取官方 `registry` 镜像来运行。 @@ -25,7 +25,7 @@ $ docker run -d \ registry ``` -### 在私有仓库上传、搜索、下载镜像 +## 在私有仓库上传、搜索、下载镜像 创建好私有仓库之后,就可以使用 `docker tag` 来标记一个镜像,然后推送它到仓库。例如私有仓库地址为 `127.0.0.1:5000`。 @@ -91,13 +91,13 @@ REPOSITORY TAG IMAGE ID CREAT 127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB ``` -### 注意事项 +## 注意事项 如果你不想使用 `127.0.0.1:5000` 作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。你就得把例如 `192.168.199.100:5000` 这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。 这是因为 Docker 默认不允许非 `HTTPS` 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,或者查看下一节配置能够通过 `HTTPS` 访问的私有仓库。 -#### Ubuntu 16.04+, Debian 8+, centos 7 +### Ubuntu 16.04+, Debian 8+, centos 7 对于使用 `systemd` 的系统,请在 `/etc/docker/daemon.json` 中写入如下内容(如果文件不存在请新建该文件) @@ -114,6 +114,6 @@ REPOSITORY TAG IMAGE ID CREAT >注意:该文件必须符合 `json` 规范,否则 Docker 将不能启动。 -### 其他 +## 其他 对于 Docker Desktop for Windows 、 Docker Desktop for Mac 在设置中的 `Docker Engine` 中进行编辑 ,增加和上边一样的字符串即可。 diff --git a/repository/registry_auth.md b/repository/registry_auth.md index 9b5054400..68fda836a 100644 --- a/repository/registry_auth.md +++ b/repository/registry_auth.md @@ -1,10 +1,10 @@ -## 私有仓库高级配置 +# 私有仓库高级配置 上一节我们搭建了一个具有基础功能的私有仓库,本小节我们来使用 `Docker Compose` 搭建一个拥有权限认证、TLS 的私有仓库。 新建一个文件夹,以下步骤均在该文件夹中进行。 -### 准备站点证书 +## 准备站点证书 如果你拥有一个域名,国内各大云服务商均提供免费的站点证书。你也可以使用 `openssl` 自行签发证书。 @@ -82,7 +82,7 @@ $ openssl x509 -req -days 750 -in "site.csr" -sha256 \ 新建 `ssl` 文件夹并将 `docker.domain.com.key` `docker.domain.com.crt` `root-ca.crt` 这三个文件移入,删除其他文件。 -### 配置私有仓库 +## 配置私有仓库 私有仓库默认的配置文件位于 `/etc/docker/registry/config.yml`,我们先在本地编辑 `config.yml`,之后挂载到容器中。 @@ -124,7 +124,7 @@ health: threshold: 3 ``` -### 生成 http 认证文件 +## 生成 http 认证文件 ```bash $ mkdir auth @@ -137,7 +137,7 @@ $ docker run --rm \ > 将上面的 `username` `password` 替换为你自己的用户名和密码。 -### 编辑 `docker-compose.yml` +## 编辑 `docker-compose.yml` ```yaml version: '3' @@ -155,7 +155,7 @@ volumes: registry-data: ``` -### 修改 hosts +## 修改 hosts 编辑 `/etc/hosts` @@ -163,7 +163,7 @@ volumes: 127.0.0.1 docker.domain.com ``` -### 启动 +## 启动 ```bash $ docker-compose up -d @@ -171,7 +171,7 @@ $ docker-compose up -d 这样我们就搭建好了一个具有权限认证、TLS 的私有仓库,接下来我们测试其功能是否正常。 -### 测试私有仓库功能 +## 测试私有仓库功能 由于自行签发的 CA 根证书不被系统信任,所以我们需要将 CA 根证书 `ssl/root-ca.crt` 移入 `/etc/docker/certs.d/docker.domain.com` 文件夹中。 @@ -213,6 +213,6 @@ no basic auth credentials 发现会提示没有登录,不能将镜像推送到私有仓库中。 -### 注意事项 +## 注意事项 如果你本机占用了 `443` 端口,你可以配置 [Nginx 代理](https://docs.docker.com/registry/recipes/nginx/),这里不再赘述。 diff --git a/underly/arch.md b/underly/arch.md index 508ce5da9..b4366dfc9 100644 --- a/underly/arch.md +++ b/underly/arch.md @@ -1,4 +1,4 @@ -## 基本架构 +# 基本架构 Docker 采用了 `C/S` 架构,包括客户端和服务端。Docker 守护进程 (`Daemon`)作为服务端接受来自客户端的请求,并处理这些请求(创建、运行、分发容器)。 diff --git a/underly/cgroups.md b/underly/cgroups.md index 6ccd703d9..e7d5fd8f7 100644 --- a/underly/cgroups.md +++ b/underly/cgroups.md @@ -1,4 +1,4 @@ -## 控制组 +# 控制组 控制组([cgroups](https://en.wikipedia.org/wiki/Cgroups))是 Linux 内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。只有能控制分配到容器的资源,才能避免当多个容器同时运行时的对系统资源的竞争。 diff --git a/underly/container_format.md b/underly/container_format.md index d634e30e6..94944a8fc 100644 --- a/underly/container_format.md +++ b/underly/container_format.md @@ -1,4 +1,4 @@ -## 容器格式 +# 容器格式 最初,Docker 采用了 `LXC` 中的容器格式。从 0.7 版本以后开始去除 LXC,转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 1.11 开始,则进一步演进为使用 [runC](https://github.com/opencontainers/runc) 和 [containerd](https://containerd.tools/)。 diff --git a/underly/namespace.md b/underly/namespace.md index b4226aff4..ec66db213 100644 --- a/underly/namespace.md +++ b/underly/namespace.md @@ -1,22 +1,22 @@ -## 命名空间 +# 命名空间 命名空间是 Linux 内核一个强大的特性。每个容器都有自己单独的命名空间,运行在其中的应用都像是在独立的操作系统中运行一样。命名空间保证了容器之间彼此互不影响。 -### pid 命名空间 +## pid 命名空间 不同用户的进程就是通过 pid 命名空间隔离开的,且不同命名空间中可以有相同 pid。所有的 LXC 进程在 Docker 中的父进程为 Docker 进程,每个 LXC 进程具有不同的命名空间。同时由于允许嵌套,因此可以很方便的实现嵌套的 Docker 容器。 -### net 命名空间 +## net 命名空间 有了 pid 命名空间,每个命名空间中的 pid 能够相互隔离,但是网络端口还是共享 host 的端口。网络隔离是通过 net 命名空间实现的, 每个 net 命名空间有独立的 网络设备,IP 地址,路由表,/proc/net 目录。这样每个容器的网络就能隔离开来。Docker 默认采用 veth 的方式,将容器中的虚拟网卡同 host 上的一 个Docker 网桥 docker0 连接在一起。 -### ipc 命名空间 +## ipc 命名空间 容器中进程交互还是采用了 Linux 常见的进程间交互方法(interprocess communication - IPC), 包括信号量、消息队列和共享内存等。然而同 VM 不同的是,容器的进程间交互实际上还是 host 上具有相同 pid 命名空间中的进程间交互,因此需要在 IPC 资源申请时加入命名空间信息,每个 IPC 资源有一个唯一的 32 位 id。 -### mnt 命名空间 +## mnt 命名空间 类似 chroot,将一个进程放到一个特定的目录执行。mnt 命名空间允许不同命名空间的进程看到的文件结构不同,这样每个命名空间 中的进程所看到的文件目录就被隔离开了。同 chroot 不同,每个命名空间中的容器在 /proc/mounts 的信息只包含所在命名空间的 mount point。 -### uts 命名空间 +## uts 命名空间 UTS("UNIX Time-sharing System") 命名空间允许每个容器拥有独立的 hostname 和 domain name, 使其在网络上可以被视作一个独立的节点而非 主机上的一个进程。 -### user 命名空间 +## user 命名空间 每个容器可以有不同的用户和组 id, 也就是说可以在容器内用容器内部的用户执行程序而非主机上的用户。 *注:更多关于 Linux 上命名空间的信息,请阅读 [这篇文章](https://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/)。 diff --git a/underly/network.md b/underly/network.md index 4a0c20097..cec496c93 100644 --- a/underly/network.md +++ b/underly/network.md @@ -1,8 +1,8 @@ -## Docker 网络实现 +# Docker 网络实现 Docker 的网络实现其实就是利用了 Linux 上的网络命名空间和虚拟网络设备(特别是 veth pair)。建议先熟悉了解这两部分的基本概念再阅读本章。 -### 基本原理 +## 基本原理 首先,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)来收发数据包;此外,如果不同子网之间要进行通信,需要路由机制。 Docker 中的网络接口默认都是虚拟的接口。虚拟接口的优势之一是转发效率较高。 @@ -10,7 +10,7 @@ Linux 通过在内核中进行数据复制来实现虚拟接口之间的数据 Docker 容器网络就利用了这项技术。它在本地主机和容器内分别创建一个虚拟接口,并让它们彼此连通(这样的一对接口叫做 `veth pair`)。 -### 创建网络参数 +## 创建网络参数 Docker 创建一个容器的时候,会执行如下操作: * 创建一对虚拟接口,分别放到本地主机和新容器中; * 本地主机一端桥接到默认的 docker0 或指定网桥上,并具有一个唯一的名字,如 veth65f9; @@ -25,7 +25,7 @@ Docker 创建一个容器的时候,会执行如下操作: * `--net=container:NAME_or_ID` 让 Docker 将新建容器的进程放到一个已存在容器的网络栈中,新容器进程有自己的文件系统、进程列表和资源限制,但会和已存在的容器共享 IP 地址和端口等网络资源,两者进程可以直接通过 `lo` 环回接口通信。 * `--net=none` 让 Docker 将新容器放到隔离的网络栈中,但是不进行网络配置。之后,用户可以自己进行配置。 -### 网络配置细节 +## 网络配置细节 用户使用 `--net=none` 后,可以自行配置网络,让容器达到跟平常一样具有访问网络的权限。通过这个过程,可以了解 Docker 配置网络的细节。 首先,启动一个 `/bin/bash` 容器,指定 `--net=none` 参数。 diff --git a/underly/ufs.md b/underly/ufs.md index d9251a21e..78d0bd586 100644 --- a/underly/ufs.md +++ b/underly/ufs.md @@ -1,4 +1,4 @@ -## 联合文件系统 +# 联合文件系统 联合文件系统([UnionFS](https://en.wikipedia.org/wiki/UnionFS))是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。 From 6f96aaf5a6c2adf95356be3375d07fb8afe6c316 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 6 Nov 2019 10:44:57 +0800 Subject: [PATCH 437/611] [CI] Fixed actions Signed-off-by: Kang HuaiShuai --- .github/workflows/ci.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4a2625c21..99c253e68 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,10 +18,11 @@ jobs: args: build - name: vuepress run: | - rm -rf _book + sudo rm -rf _book npx vuepress build - name: Upload Vuepress dist uses: docker://pcit/pages + if: github.repository == 'docker-practice/docker_practice' env: PCIT_EMAIL: khs1994@khs1994.com PCIT_GIT_TOKEN: ${{ secrets.PCIT_GIT_TOKEN }} From 61492ff11a37146d5de53bc3f362c234308dbf99 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 6 Nov 2019 13:16:09 +0800 Subject: [PATCH 438/611] [vuepress] push dist to coding.net Signed-off-by: Kang HuaiShuai --- .github/workflows/ci.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 99c253e68..4cfaecefe 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,6 +20,7 @@ jobs: run: | sudo rm -rf _book npx vuepress build + echo "vuepress.docker-practice.com" > .vuepress/dist/CNAME - name: Upload Vuepress dist uses: docker://pcit/pages if: github.repository == 'docker-practice/docker_practice' @@ -32,3 +33,15 @@ jobs: PCIT_MESSAGE: Sync from yeasy/docker_practice@${{github.sha}} by PCIT PCIT_TARGET_BRANCH: master PCIT_USERNAME: khs1994 + - name: Upload Vuepress dist to coding.net + uses: docker://pcit/pages + if: github.repository == 'docker-practice/docker_practice' + env: + PCIT_EMAIL: khs1994@khs1994.com + PCIT_GIT_TOKEN: ${{ secrets.CODING_GIT_TOKEN }} + PCIT_GIT_URL: git.dev.tencent.com/khs1994/docker_practice + PCIT_KEEP_HISTORY: "1" + PCIT_LOCAL_DIR: .vuepress/dist + PCIT_MESSAGE: Sync from yeasy/docker_practice@${{github.sha}} by PCIT + PCIT_TARGET_BRANCH: master + PCIT_USERNAME: khs1994 From 99e470eb2ae2cbcfdb2837c86968348a5b48fd76 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 6 Nov 2019 14:22:02 +0800 Subject: [PATCH 439/611] Update link Signed-off-by: Kang HuaiShuai --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 26f81731b..afdcbad16 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # Docker — 从入门到实践 -[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v18.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS) +[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v19.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS) **v1.1.0** | 语言 | 构建状态 | - | | :------------- | :------------- | :--- | | [zh-hans](https://github.com/yeasy/docker_practice) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/zh-cn) | -| [us-en](https://github.com/yeasy/docker_practice/tree/english) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=english)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/us_en) | -| [zh-hant](https://github.com/yeasy/docker_practice/tree/zh-Hant) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=zh-hant)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/zh_hant) | +| [us-en](https://github.com/yeasy/docker_practice/tree/english) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=english)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/us-en) | +| [zh-hant](https://github.com/yeasy/docker_practice/tree/zh-Hant) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=zh-hant)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/zh-hant) | [Docker](https://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! @@ -16,7 +16,7 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 -* 在线阅读:[docker-practice.com](https://docker-practice.com/),[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[GitBook 国内镜像](https://docker_practice.gitee.io/zh-cn),[GitBook 英文版国内镜像](https://docker_practice.gitee.io/us_en),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F), [新版 GitBook](https://gitbook.docker-practice.com/) +* 在线阅读:[docker-practice.com](https://docker-practice.com/),[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[GitBook 国内镜像](https://docker_practice.gitee.io/zh-cn),[GitBook 英文版国内镜像](https://docker_practice.gitee.io/us-en),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F), [新版 GitBook](https://gitbook.docker-practice.com/) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD),[epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) * [离线阅读 `$ docker run -it --rm -p 4000:80 dockerpracticesig/docker_practice`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) * [英文翻译](https://github.com/yeasy/docker_practice/issues/363) From 5cb92f63cfd77f2164039cf0804c53d50ce6752d Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 6 Nov 2019 14:53:09 +0800 Subject: [PATCH 440/611] Update title style Signed-off-by: Kang HuaiShuai --- .vuepress/config.js | 23 +++++++------------ advanced_network/access_control.md | 10 ++++----- advanced_network/bridge.md | 2 +- advanced_network/config_file.md | 2 +- advanced_network/docker0.md | 2 +- advanced_network/example.md | 6 ++--- advanced_network/port_mapping.md | 6 ++--- advanced_network/ptp.md | 2 +- advanced_network/quick_guide.md | 2 +- appendix/repo/centos.md | 8 +++---- appendix/repo/mongodb.md | 8 +++---- appendix/repo/mysql.md | 8 +++---- appendix/repo/nginx.md | 8 +++---- appendix/repo/nodejs.md | 8 +++---- appendix/repo/php.md | 8 +++---- appendix/repo/redis.md | 8 +++---- appendix/repo/ubuntu.md | 8 +++---- appendix/repo/wordpress.md | 8 +++---- cases/os/centos.md | 12 +++++----- container/attach_exec.md | 8 +++---- container/daemon.md | 2 +- container/import_export.md | 6 ++--- container/rm.md | 4 ++-- container/run.md | 6 ++--- container/stop.md | 2 +- data_management/bind-mounts.md | 8 +++---- data_management/volume.md | 10 ++++----- etcd/cluster.md | 2 +- etcd/etcdctl-v2.md | 36 +++++++++++++++--------------- etcd/etcdctl.md | 16 ++++++------- etcd/install.md | 8 +++---- etcd/intro.md | 2 +- image/build.md | 20 ++++++++--------- image/commit.md | 5 ++--- image/dockerfile/README.md | 2 +- image/internal.md | 2 +- image/list.md | 12 +++++----- image/manifest.md | 16 ++++++------- image/multistage-builds/README.md | 14 ++++++------ image/multistage-builds/laravel.md | 20 ++++++++--------- image/other.md | 8 +++---- image/pull.md | 4 ++-- image/rm.md | 10 ++++----- network/dns.md | 2 +- network/linking.md | 8 +++---- network/port_mapping.md | 10 ++++----- opensource/linuxkit.md | 10 ++++----- security/control_group.md | 2 +- security/daemon_sec.md | 2 +- security/kernel_capability.md | 2 +- security/kernel_ns.md | 2 +- security/other_feature.md | 2 +- security/summary.md | 2 +- swarm_mode/config.md | 8 +++---- swarm_mode/create.md | 8 +++---- swarm_mode/deploy.md | 10 ++++----- swarm_mode/overview.md | 6 ++--- swarm_mode/rolling_update.md | 4 ++-- swarm_mode/secret.md | 8 +++---- swarm_mode/stack.md | 8 +++---- 60 files changed, 224 insertions(+), 232 deletions(-) diff --git a/.vuepress/config.js b/.vuepress/config.js index af5b2815f..ce4a00027 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -312,12 +312,11 @@ module.exports = { 'opensource/linuxkit', ], }, + 'appendix/faq/', { - title: "附录", - collapsable:false, + title: "热门镜像介绍", + collapsable: false, children: [ - 'appendix/', - 'appendix/faq/', 'appendix/repo/', 'appendix/repo/ubuntu', 'appendix/repo/centos', @@ -328,19 +327,13 @@ module.exports = { 'appendix/repo/wordpress', 'appendix/repo/mongodb', 'appendix/repo/redis', - 'appendix/command/', - 'appendix/best_practices', - 'appendix/debug', - 'appendix/resources' - ], - }, - { - title: "归档", - collapsable: false, - children: [ - 'archive/', ], }, + 'appendix/command/', + 'appendix/best_practices', + 'appendix/debug', + 'appendix/resources', + 'archive/', { title: "Docker Machine", collapsable: false, diff --git a/advanced_network/access_control.md b/advanced_network/access_control.md index e9fff7102..c382b5d7b 100644 --- a/advanced_network/access_control.md +++ b/advanced_network/access_control.md @@ -1,7 +1,7 @@ -## 容器访问控制 +# 容器访问控制 容器的访问控制,主要通过 Linux 上的 `iptables` 防火墙来进行管理和实现。`iptables` 是 Linux 上默认的防火墙软件,在大部分发行版中都自带。 -### 容器访问外部网络 +## 容器访问外部网络 容器要想访问外部网络,需要本地系统的转发支持。在Linux 系统中,检查转发是否打开。 ```bash @@ -14,17 +14,17 @@ $sysctl -w net.ipv4.ip_forward=1 ``` 如果在启动 Docker 服务的时候设定 `--ip-forward=true`, Docker 就会自动设定系统的 `ip_forward` 参数为 1。 -### 容器之间访问 +## 容器之间访问 容器之间相互访问,需要两方面的支持。 * 容器的网络拓扑是否已经互联。默认情况下,所有容器都会被连接到 `docker0` 网桥上。 * 本地系统的防火墙软件 -- `iptables` 是否允许通过。 -#### 访问所有端口 +### 访问所有端口 当启动 Docker 服务(即 dockerd)的时候,默认会添加一条转发策略到本地主机 iptables 的 FORWARD 链上。策略为通过(`ACCEPT`)还是禁止(`DROP`)取决于配置`--icc=true`(缺省值)还是 `--icc=false`。当然,如果手动指定 `--iptables=false` 则不会添加 `iptables` 规则。 可见,默认情况下,不同容器之间是允许网络互通的。如果为了安全考虑,可以在 `/etc/docker/daemon.json` 文件中配置 `{"icc": false}` 来禁止它。 -#### 访问指定端口 +### 访问指定端口 在通过 `-icc=false` 关闭网络访问后,还可以通过 `--link=CONTAINER_NAME:ALIAS` 选项来访问容器的开放端口。 例如,在启动 Docker 服务时,可以同时使用 `icc=false --iptables=true` 参数来关闭允许相互的网络访问,并让 Docker 可以修改系统中的 `iptables` 规则。 diff --git a/advanced_network/bridge.md b/advanced_network/bridge.md index 31e24b16e..0ce6a5298 100644 --- a/advanced_network/bridge.md +++ b/advanced_network/bridge.md @@ -1,4 +1,4 @@ -## 自定义网桥 +# 自定义网桥 除了默认的 `docker0` 网桥,用户也可以指定网桥来连接各个容器。 diff --git a/advanced_network/config_file.md b/advanced_network/config_file.md index 43733b821..b084c79ad 100644 --- a/advanced_network/config_file.md +++ b/advanced_network/config_file.md @@ -1,4 +1,4 @@ -## 编辑网络配置文件 +# 编辑网络配置文件 Docker 1.2.0 开始支持在运行中的容器里编辑 `/etc/hosts`, `/etc/hostname` 和 `/etc/resolv.conf` 文件。 diff --git a/advanced_network/docker0.md b/advanced_network/docker0.md index 99e578580..c21ce8b70 100644 --- a/advanced_network/docker0.md +++ b/advanced_network/docker0.md @@ -1,4 +1,4 @@ -## 配置 docker0 网桥 +# 配置 docker0 网桥 Docker 服务默认会创建一个 `docker0` 网桥(其上有一个 `docker0` 内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。 diff --git a/advanced_network/example.md b/advanced_network/example.md index 23ac7af13..f7ca843b1 100644 --- a/advanced_network/example.md +++ b/advanced_network/example.md @@ -1,8 +1,8 @@ -## 工具和示例 +# 工具和示例 在介绍自定义网络拓扑之前,你可能会对一些外部工具和例子感兴趣: -### pipework +## pipework Jérôme Petazzoni 编写了一个叫 [pipework](https://github.com/jpetazzo/pipework) 的 shell 脚本,可以帮助用户在比较复杂的场景中完成容器的连接。 -### playground +## playground Brandon Rhodes 创建了一个提供完整的 Docker 容器网络拓扑管理的 [Python库](https://github.com/brandon-rhodes/fopnp/tree/m/playground),包括路由、NAT 防火墙;以及一些提供 `HTTP` `SMTP` `POP` `IMAP` `Telnet` `SSH` `FTP` 的服务器。 diff --git a/advanced_network/port_mapping.md b/advanced_network/port_mapping.md index 8625e3a57..dc6f92d30 100644 --- a/advanced_network/port_mapping.md +++ b/advanced_network/port_mapping.md @@ -1,8 +1,8 @@ -## 映射容器端口到宿主主机的实现 +# 映射容器端口到宿主主机的实现 默认情况下,容器可以主动访问到外部网络的连接,但是外部网络无法访问到容器。 -### 容器访问外部实现 +## 容器访问外部实现 容器所有到外部网络的连接,源地址都会被 NAT 成本地系统的 IP 地址。这是使用 `iptables` 的源地址伪装操作实现的。 @@ -19,7 +19,7 @@ MASQUERADE all -- 172.17.0.0/16 !172.17.0.0/16 其中,上述规则将所有源地址在 `172.17.0.0/16` 网段,目标地址为其他网段(外部网络)的流量动态伪装为从系统网卡发出。MASQUERADE 跟传统 SNAT 的好处是它能动态从网卡获取地址。 -### 外部访问容器实现 +## 外部访问容器实现 容器允许外部访问,可以在 `docker run` 时候通过 `-p` 或 `-P` 参数来启用。 diff --git a/advanced_network/ptp.md b/advanced_network/ptp.md index 438f6f116..738a75171 100644 --- a/advanced_network/ptp.md +++ b/advanced_network/ptp.md @@ -1,4 +1,4 @@ -## 示例:创建一个点到点连接 +# 示例:创建一个点到点连接 默认情况下,Docker 会将所有容器连接到由 `docker0` 提供的虚拟子网中。 用户有时候需要两个容器之间可以直连通信,而不用通过主机网桥进行桥接。 diff --git a/advanced_network/quick_guide.md b/advanced_network/quick_guide.md index e32641816..455a81814 100644 --- a/advanced_network/quick_guide.md +++ b/advanced_network/quick_guide.md @@ -1,4 +1,4 @@ -## 快速配置指南 +# 快速配置指南 下面是一个跟 Docker 网络相关的命令列表。 diff --git a/appendix/repo/centos.md b/appendix/repo/centos.md index 3ef727ff0..5ebaf20f6 100644 --- a/appendix/repo/centos.md +++ b/appendix/repo/centos.md @@ -1,12 +1,12 @@ -## [CentOS](https://hub.docker.com/_/centos) +# [CentOS](https://hub.docker.com/_/centos) -### 基本信息 +## 基本信息 [CentOS](https://en.wikipedia.org/wiki/CentOS) 是流行的 Linux 发行版,其软件包大多跟 RedHat 系列保持一致。 该仓库位于 `https://hub.docker.com/_/centos` ,提供了 CentOS 从 5 ~ 8 各个版本的镜像。 -### 使用方法 +## 使用方法 默认会启动一个最小化的 CentOS 环境。 @@ -15,6 +15,6 @@ $ docker run --name centos -it centos bash bash-4.2# ``` -### Dockerfile +## Dockerfile 请到 https://github.com/docker-library/docs/tree/master/centos 查看。 diff --git a/appendix/repo/mongodb.md b/appendix/repo/mongodb.md index fc7025a67..129e90869 100644 --- a/appendix/repo/mongodb.md +++ b/appendix/repo/mongodb.md @@ -1,12 +1,12 @@ -## [MongoDB](https://hub.docker.com/_/mongo/) +# [MongoDB](https://hub.docker.com/_/mongo/) -### 基本信息 +## 基本信息 [MongoDB](https://en.wikipedia.org/wiki/MongoDB) 是开源的 NoSQL 数据库实现。 该仓库位于 `https://hub.docker.com/_/mongo/` ,提供了 MongoDB 2.x ~ 4.x 各个版本的镜像。 -### 使用方法 +## 使用方法 默认会在 `27017` 端口启动数据库。 @@ -29,6 +29,6 @@ $ docker run -it --rm \ sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"' ``` -### Dockerfile +## Dockerfile 请到 https://github.com/docker-library/docs/tree/master/mongo 查看。 diff --git a/appendix/repo/mysql.md b/appendix/repo/mysql.md index eef26d5a9..1a38c9dfc 100644 --- a/appendix/repo/mysql.md +++ b/appendix/repo/mysql.md @@ -1,12 +1,12 @@ -## [MySQL](https://hub.docker.com/_/mysql/) +# [MySQL](https://hub.docker.com/_/mysql/) -### 基本信息 +## 基本信息 [MySQL](https://en.wikipedia.org/wiki/MySQL) 是开源的关系数据库实现。 该仓库位于 `https://hub.docker.com/_/mysql/` ,提供了 MySQL 5.5 ~ 8.x 各个版本的镜像。 -### 使用方法 +## 使用方法 默认会在 `3306` 端口启动数据库。 @@ -29,6 +29,6 @@ $ docker run -it --rm \ sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"' ``` -### Dockerfile +## Dockerfile 请到 https://github.com/docker-library/docs/tree/master/mysql 查看 diff --git a/appendix/repo/nginx.md b/appendix/repo/nginx.md index b649a31ee..36b11c0e5 100644 --- a/appendix/repo/nginx.md +++ b/appendix/repo/nginx.md @@ -1,12 +1,12 @@ -## [Nginx](https://hub.docker.com/_/nginx/) +# [Nginx](https://hub.docker.com/_/nginx/) -### 基本信息 +## 基本信息 [Nginx](https://en.wikipedia.org/wiki/Nginx) 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。 该仓库位于 `https://hub.docker.com/_/nginx/` ,提供了 Nginx 1.0 ~ 1.17.x 各个版本的镜像。 -### 使用方法 +## 使用方法 下面的命令将作为一个静态页面服务器启动。 @@ -43,6 +43,6 @@ $ docker run -d \ nginx ``` -### Dockerfile +## Dockerfile 请到 https://github.com/docker-library/docs/tree/master/nginx 查看。 diff --git a/appendix/repo/nodejs.md b/appendix/repo/nodejs.md index 38503a9d3..ffe426743 100644 --- a/appendix/repo/nodejs.md +++ b/appendix/repo/nodejs.md @@ -1,12 +1,12 @@ -## [Node.js](https://hub.docker.com/_/node/) +# [Node.js](https://hub.docker.com/_/node/) -### 基本信息 +## 基本信息 [Node.js](https://en.wikipedia.org/wiki/Node.js) 是基于 JavaScript 的可扩展服务端和网络软件开发平台。 该仓库位于 `https://hub.docker.com/_/node/` ,提供了 Node.js 0.10 ~ 12.x 各个版本的镜像。 -### 使用方法 +## 使用方法 在项目中创建一个 Dockerfile。 @@ -35,6 +35,6 @@ $ docker run -it --rm \ node your-daemon-or-script.js ``` -### Dockerfile +## Dockerfile 请到 https://github.com/docker-library/docs/tree/master/node 查看。 diff --git a/appendix/repo/php.md b/appendix/repo/php.md index cf62af628..7edbb85be 100644 --- a/appendix/repo/php.md +++ b/appendix/repo/php.md @@ -1,12 +1,12 @@ -## [PHP](https://hub.docker.com/_/php/) +# [PHP](https://hub.docker.com/_/php/) -### 基本信息 +## 基本信息 [PHP](https://en.wikipedia.org/wiki/php)(Hypertext Preprocessor 超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。 该仓库位于 `https://hub.docker.com/_/php/` ,提供了 PHP 5.x ~ 7.x 各个版本的镜像。 -### 使用方法 +## 使用方法 下面的命令将运行一个已有的 PHP 脚本。 @@ -14,6 +14,6 @@ $ docker run -it --rm -v "$PWD":/app -w /app php:alpine php your-script.php ``` -### Dockerfile +## Dockerfile 请到 https://github.com/docker-library/docs/tree/master/php 查看。 diff --git a/appendix/repo/redis.md b/appendix/repo/redis.md index 92eb53f7d..9f06dedea 100644 --- a/appendix/repo/redis.md +++ b/appendix/repo/redis.md @@ -1,12 +1,12 @@ -## [Redis](https://hub.docker.com/_/redis/) +# [Redis](https://hub.docker.com/_/redis/) -### 基本信息 +## 基本信息 [Redis](https://en.wikipedia.org/wiki/Redis) 是开源的内存 Key-Value 数据库实现。 该仓库位于 `https://hub.docker.com/_/redis/` ,提供了 Redis 3.x ~ 5.x 各个版本的镜像。 -### 使用方法 +## 使用方法 默认会在 `6379` 端口启动数据库。 @@ -37,6 +37,6 @@ $ docker run -it --rm \ sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"' ``` -### Dockerfile +## Dockerfile 请到 https://github.com/docker-library/docs/tree/master/redis 查看。 diff --git a/appendix/repo/ubuntu.md b/appendix/repo/ubuntu.md index 20aea1d6a..c904d991c 100644 --- a/appendix/repo/ubuntu.md +++ b/appendix/repo/ubuntu.md @@ -1,12 +1,12 @@ -## [Ubuntu](https://hub.docker.com/_/ubuntu/) +# [Ubuntu](https://hub.docker.com/_/ubuntu/) -### 基本信息 +## 基本信息 [Ubuntu](https://en.wikipedia.org/wiki/Ubuntu) 是流行的 Linux 发行版,其自带软件版本往往较新一些。 该仓库位于 `https://hub.docker.com/_/ubuntu/` ,提供了 Ubuntu 从 12.04 ~ 19.04 各个版本的镜像。 -### 使用方法 +## 使用方法 默认会启动一个最小化的 Ubuntu 环境。 @@ -15,6 +15,6 @@ $ docker run --name some-ubuntu -it ubuntu:18.04 root@523c70904d54:/# ``` -### Dockerfile +## Dockerfile 请到 https://github.com/docker-library/docs/tree/master/ubuntu 查看。 diff --git a/appendix/repo/wordpress.md b/appendix/repo/wordpress.md index b6cace123..2e571c491 100644 --- a/appendix/repo/wordpress.md +++ b/appendix/repo/wordpress.md @@ -1,12 +1,12 @@ -## [WordPress](https://hub.docker.com/_/wordpress/) +# [WordPress](https://hub.docker.com/_/wordpress/) -### 基本信息 +## 基本信息 [WordPress](https://en.wikipedia.org/wiki/WordPress) 是开源的 Blog 和内容管理系统框架,它基于 PHP 和 MySQL。 该仓库位于 `https://hub.docker.com/_/wordpress/` ,提供了 WordPress 4.x ~ 5.x 版本的镜像。 -### 使用方法 +## 使用方法 启动容器需要 MySQL 的支持,默认端口为 `80`。 @@ -20,6 +20,6 @@ $ docker run --name some-wordpress --link some-mysql:mysql -d wordpress * `WORDPRESS_DB_PASSWORD` 缺省为连接 mysql 容器的环境变量 `MYSQL_ROOT_PASSWORD` 的值 * `WORDPRESS_DB_NAME` 缺省为 `wordpress` -### Dockerfile +## Dockerfile 请到 https://github.com/docker-library/docs/tree/master/wordpress 查看。 diff --git a/cases/os/centos.md b/cases/os/centos.md index 10ed74467..b331e0486 100644 --- a/cases/os/centos.md +++ b/cases/os/centos.md @@ -1,6 +1,6 @@ -## CentOS/Fedora +# CentOS/Fedora -### CentOS 系统简介 +## CentOS 系统简介 `CentOS` 和 `Fedora` 都是基于 `Redhat` 的常见 Linux 分支。`CentOS` 是目前企业级服务器的常用操作系统;`Fedora` 则主要面向个人桌面用户。 @@ -8,7 +8,7 @@ CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统),它是基于 `Red Hat Enterprise Linux` 源代码编译而成。由于 `CentOS` 与 `Redhat Linux` 源于相同的代码基础,所以很多成本敏感且需要高稳定性的公司就使用 `CentOS` 来替代商业版 `Red Hat Enterprise Linux`。`CentOS` 自身不包含闭源软件。 -#### 使用 CentOS 官方镜像 +### 使用 CentOS 官方镜像 首先使用 `docker search` 命令来搜索标星至少为 `25` 的 `CentOS` 相关镜像。 @@ -32,13 +32,13 @@ Status: Downloaded newer image for centos:latest CentOS Linux release 7.2.1511 (Core) ``` -### Fedora 系统简介 +## Fedora 系统简介 ![Fedora 操作系统](_images/fedora-logo.png) `Fedora` 由 `Fedora Project` 社区开发,红帽公司赞助的 `Linux` 发行版。它的目标是创建一套新颖、多功能并且自由和开源的操作系统。`Fedora` 的功能对于用户而言,它是一套功能完备的,可以更新的免费操作系统,而对赞助商 `Red Hat` 而言,它是许多新技术的测试平台。被认为可用的技术最终会加入到 `Red Hat Enterprise Linux` 中。 -#### 使用 Fedora 官方镜像 +### 使用 Fedora 官方镜像 首先使用 `docker search` 命令来搜索标星至少为 `2` 的 `Fedora` 相关镜像,结果如下。 @@ -64,7 +64,7 @@ Status: Downloaded newer image for fedora:latest Fedora release 24 (Twenty Four) ``` -### 相关资源 +## 相关资源 * `Fedora` 官网:https://getfedora.org/ * `Fedora` 官方仓库:https://github.com/fedora-infra diff --git a/container/attach_exec.md b/container/attach_exec.md index 0feb1342a..3c342cdce 100644 --- a/container/attach_exec.md +++ b/container/attach_exec.md @@ -1,10 +1,10 @@ -## 进入容器 +# 进入容器 在使用 `-d` 参数时,容器启动后会进入后台。 某些时候需要进入容器进行操作,包括使用 `docker attach` 命令或 `docker exec` 命令,推荐大家使用 `docker exec` 命令,原因会在下面说明。 -### `attach` 命令 +## `attach` 命令 下面示例如何使用 `docker attach` 命令。 @@ -22,9 +22,9 @@ root@243c32535da7:/# *注意:* 如果从这个 stdin 中 exit,会导致容器的停止。 -### `exec` 命令 +## `exec` 命令 -#### -i -t 参数 +### -i -t 参数 `docker exec` 后边可以跟多个参数,这里主要说明 `-i` `-t` 参数。 diff --git a/container/daemon.md b/container/daemon.md index 5175c3557..37840aff2 100644 --- a/container/daemon.md +++ b/container/daemon.md @@ -1,4 +1,4 @@ -## 后台运行 +# 后台运行 更多的时候,需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 `-d` 参数来实现。 diff --git a/container/import_export.md b/container/import_export.md index c2a76a29e..7f88763fd 100644 --- a/container/import_export.md +++ b/container/import_export.md @@ -1,6 +1,6 @@ -## 导出和导入容器 +# 导出和导入容器 -### 导出容器 +## 导出容器 如果要导出本地某个容器,可以使用 `docker export` 命令。 ```bash @@ -12,7 +12,7 @@ $ docker export 7691a814370e > ubuntu.tar 这样将导出容器快照到本地文件。 -### 导入容器快照 +## 导入容器快照 可以使用 `docker import` 从容器快照文件中再导入为镜像,例如 diff --git a/container/rm.md b/container/rm.md index 4de8504b9..5fce0fe17 100644 --- a/container/rm.md +++ b/container/rm.md @@ -1,4 +1,4 @@ -## 删除容器 +# 删除容器 可以使用 `docker container rm` 来删除一个处于终止状态的容器。例如 @@ -9,7 +9,7 @@ trusting_newton 如果要删除一个运行中的容器,可以添加 `-f` 参数。Docker 会发送 `SIGKILL` 信号给容器。 -## 清理所有处于终止状态的容器 +# 清理所有处于终止状态的容器 用 `docker container ls -a` 命令可以查看所有已经创建的包括终止状态的容器,如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器。 diff --git a/container/run.md b/container/run.md index 9dfd596ca..a58697e5f 100644 --- a/container/run.md +++ b/container/run.md @@ -1,10 +1,10 @@ -## 启动容器 +# 启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(`stopped`)的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 -### 新建并启动 +## 新建并启动 所需要的命令主要为 `docker run`。 @@ -45,7 +45,7 @@ bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr * 执行用户指定的应用程序 * 执行完毕后容器被终止 -### 启动已终止容器 +## 启动已终止容器 可以利用 `docker container start` 命令,直接将一个已经终止的容器启动运行。 diff --git a/container/stop.md b/container/stop.md index 31853a5d9..77dd73269 100644 --- a/container/stop.md +++ b/container/stop.md @@ -1,4 +1,4 @@ -## 终止容器 +# 终止容器 可以使用 `docker container stop` 来终止一个运行中的容器。 diff --git a/data_management/bind-mounts.md b/data_management/bind-mounts.md index 6d0bef720..8c9ac30c6 100644 --- a/data_management/bind-mounts.md +++ b/data_management/bind-mounts.md @@ -1,6 +1,6 @@ -## 挂载主机目录 +# 挂载主机目录 -### 挂载一个主机目录作为数据卷 +## 挂载一个主机目录作为数据卷 使用 `--mount` 标记可以指定挂载一个本地主机的目录到容器中去。 @@ -33,7 +33,7 @@ $ docker run -d -P \ touch: new.txt: Read-only file system ``` -### 查看数据卷的具体信息 +## 查看数据卷的具体信息 在主机里使用以下命令可以查看 `web` 容器的信息 @@ -56,7 +56,7 @@ $ docker inspect web ], ``` -### 挂载一个本地主机文件作为数据卷 +## 挂载一个本地主机文件作为数据卷 `--mount` 标记也可以从主机挂载单个文件到容器中 diff --git a/data_management/volume.md b/data_management/volume.md index b96b624c5..5fc3193cf 100644 --- a/data_management/volume.md +++ b/data_management/volume.md @@ -1,4 +1,4 @@ -## 数据卷 +# 数据卷 `数据卷` 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: @@ -12,7 +12,7 @@ >注意:`数据卷` 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的 `数据卷`。 -### 创建一个数据卷 +## 创建一个数据卷 ```bash $ docker volume create my-vol @@ -42,7 +42,7 @@ $ docker volume inspect my-vol ] ``` -### 启动一个挂载数据卷的容器 +## 启动一个挂载数据卷的容器 在用 `docker run` 命令的时候,使用 `--mount` 标记来将 `数据卷` 挂载到容器里。在一次 `docker run` 中可以挂载多个 `数据卷`。 @@ -57,7 +57,7 @@ $ docker run -d -P \ python app.py ``` -### 查看数据卷的具体信息 +## 查看数据卷的具体信息 在主机里使用以下命令可以查看 `web` 容器的信息 @@ -82,7 +82,7 @@ $ docker inspect web ], ``` -### 删除数据卷 +## 删除数据卷 ```bash $ docker volume rm my-vol diff --git a/etcd/cluster.md b/etcd/cluster.md index dc39d33ae..305e78e4a 100644 --- a/etcd/cluster.md +++ b/etcd/cluster.md @@ -1,4 +1,4 @@ -## etcd 集群 +# etcd 集群 下面我们使用 [Docker Compose](../compose/) 模拟启动一个 3 节点的 `etcd` 集群。 diff --git a/etcd/etcdctl-v2.md b/etcd/etcdctl-v2.md index 6e66a9ff8..d37e4ce75 100644 --- a/etcd/etcdctl-v2.md +++ b/etcd/etcdctl-v2.md @@ -1,4 +1,4 @@ -## 使用 etcdctl v2 +# 使用 etcdctl v2 `etcdctl` 是一个命令行客户端,它能提供一些简洁的命令,供用户直接跟 `etcd` 服务打交道,而无需基于 `HTTP API` 方式。这在某些情况下将很方便,例如用户对服务进行测试或者手动修改数据库内容。我们也推荐在刚接触 `etcd` 时通过 `etcdctl` 命令来熟悉相关的操作,这些操作跟 `HTTP API` 实际上是对应的。 @@ -46,14 +46,14 @@ GLOBAL OPTIONS: --version, -v print the version ``` -### 数据库操作 +## 数据库操作 数据库操作围绕对键值和目录的 CRUD (符合 REST 风格的一套操作:Create)完整生命周期的管理。 etcd 在键的组织上采用了层次化的空间结构(类似于文件系统中目录的概念),用户指定的键可以为单独的名字,如 `testkey`,此时实际上放在根目录 `/` 下面,也可以为指定目录结构,如 `cluster1/node2/testkey`,则将创建相应的目录结构。 *注:CRUD 即 Create, Read, Update, Delete,是符合 REST 风格的一套 API 操作。* -#### set +### set 指定某个键的值。例如 ```bash $ etcdctl set /testdir/testkey "Hello world" @@ -66,7 +66,7 @@ Hello world --swap-with-index '0' 若该键现在的索引值是指定索引,则进行设置操作 ``` -#### get +### get 获取指定键的值。例如 ```bash $ etcdctl set testkey hello @@ -87,7 +87,7 @@ Error: 100: Key not found (/testkey2) [1] --consistent 将请求发给主节点,保证获取内容的一致性 ``` -#### update +### update 当键存在时,更新值内容。例如 ```bash $ etcdctl set testkey hello @@ -107,7 +107,7 @@ Error: 100: Key not found (/testkey2) [1] --ttl '0' 超时时间(单位为秒),不配置(默认为 0)则永不超时 ``` -#### rm +### rm 删除某个键值。例如 ```bash $ etcdctl rm testkey @@ -127,7 +127,7 @@ Error: 100: Key not found (/testkey2) [8] --with-index '0' 检查现有的 index 是否匹配 ``` -#### mk +### mk 如果给定的键不存在,则创建一个新的键值。例如 ```bash $ etcdctl mk /testdir/testkey "Hello world" @@ -146,7 +146,7 @@ Error: 105: Key already exists (/testkey) [2] --ttl '0' 超时时间(单位为秒),不配置(默认为 0)则永不超时 ``` -#### mkdir +### mkdir 如果给定的键目录不存在,则创建一个新的键目录。例如 ```bash $ etcdctl mkdir testdir @@ -162,7 +162,7 @@ Error: 105: Key already exists (/testdir) [7] --ttl '0' 超时时间(单位为秒),不配置(默认为 0)则永不超时 ``` -#### setdir +### setdir 创建一个键目录,无论存在与否。 @@ -171,14 +171,14 @@ Error: 105: Key already exists (/testdir) [7] --ttl '0' 超时时间(单位为秒),不配置(默认为 0)则永不超时 ``` -#### updatedir +### updatedir 更新一个已经存在的目录。 支持的选项为 ```bash --ttl '0' 超时时间(单位为秒),不配置(默认为 0)则永不超时 ``` -#### rmdir +### rmdir 删除一个空目录,或者键值对。 若目录不空,会报错 @@ -189,7 +189,7 @@ $ etcdctl rmdir /dir Error: 108: Directory not empty (/dir) [13] ``` -#### ls +### ls 列出目录(默认为根目录)下的键或者子目录,默认不显示子目录中内容。 例如 @@ -212,9 +212,9 @@ $ ./etcdctl ls dir -p 对于输出为目录,在最后添加 `/` 进行区分 ``` -### 非数据库操作 +## 非数据库操作 -#### backup +### backup 备份 etcd 的数据。 支持的选项包括 @@ -222,7 +222,7 @@ $ ./etcdctl ls dir --data-dir etcd 的数据目录 --backup-dir 备份到指定路径 ``` -#### watch +### watch 监测一个键值的变化,一旦键值发生更新,就会输出最新的值并退出。 例如,用户更新 testkey 键值为 Hello world。 @@ -237,7 +237,7 @@ Hello world --after-index '0' 在指定 index 之前一直监测 --recursive 返回所有的键值和子键值 ``` -#### exec-watch +### exec-watch 监测一个键值的变化,一旦键值发生更新,就执行给定命令。 例如,用户更新 testkey 键值。 @@ -258,7 +258,7 @@ README.md --recursive 返回所有的键值和子键值 ``` -#### member +### member 通过 list、add、remove 命令列出、添加、删除 etcd 实例到 etcd 集群中。 @@ -269,7 +269,7 @@ $ etcdctl member list ce2a822cea30bfca: name=default peerURLs=http://localhost:2380,http://localhost:7001 clientURLs=http://localhost:2379,http://localhost:4001 ``` -### 命令选项 +## 命令选项 * `--debug` 输出 cURL 命令,显示执行命令的时候发起的请求 * `--no-sync` 发出请求之前不同步集群信息 * `--output, -o 'simple'` 输出内容的格式 (`simple` 为原始信息,`json` 为进行json格式解码,易读性好一些) diff --git a/etcd/etcdctl.md b/etcd/etcdctl.md index e9d398a74..29c0f0d9f 100644 --- a/etcd/etcdctl.md +++ b/etcd/etcdctl.md @@ -1,4 +1,4 @@ -## 使用 etcdctl +# 使用 etcdctl `etcdctl` 是一个命令行客户端,它能提供一些简洁的命令,供用户直接跟 `etcd` 服务打交道,而无需基于 `HTTP API` 方式。这在某些情况下将很方便,例如用户对服务进行测试或者手动修改数据库内容。我们也推荐在刚接触 `etcd` 时通过 `etcdctl` 命令来熟悉相关的操作,这些操作跟 `HTTP API` 实际上是对应的。 @@ -81,7 +81,7 @@ OPTIONS: -w, --write-out="simple" set the output format (fields, json, protobuf, simple, table) ``` -### 数据库操作 +## 数据库操作 数据库操作围绕对键值和目录的 CRUD (符合 REST 风格的一套操作:Create)完整生命周期的管理。 @@ -89,14 +89,14 @@ etcd 在键的组织上采用了层次化的空间结构(类似于文件系统 >注:CRUD 即 Create, Read, Update, Delete,是符合 REST 风格的一套 API 操作。 -#### put +### put ```bash $ etcdctl put /testdir/testkey "Hello world" OK ``` -#### get +### get 获取指定键的值。例如 @@ -114,7 +114,7 @@ hello `--consistent` 将请求发给主节点,保证获取内容的一致性 -#### del +### del 删除某个键值。例如 @@ -123,9 +123,9 @@ $ etcdctl del testkey 1 ``` -### 非数据库操作 +## 非数据库操作 -#### watch +### watch 监测一个键值的变化,一旦键值发生更新,就会输出最新的值。 @@ -138,7 +138,7 @@ testkey 2 ``` -#### member +### member 通过 `list`、`add`、`update`、`remove` 命令列出、添加、更新、删除 etcd 实例到 etcd 集群中。 diff --git a/etcd/install.md b/etcd/install.md index 472865d48..d188f5efe 100644 --- a/etcd/install.md +++ b/etcd/install.md @@ -1,10 +1,10 @@ -## 安装 +# 安装 `etcd` 基于 `Go` 语言实现,因此,用户可以从 [项目主页](https://github.com/etcd-io/etcd) 下载源代码自行编译,也可以下载编译好的二进制文件,甚至直接使用制作好的 `Docker` 镜像文件来体验。 >注意:本章节内容基于 etcd `3.4.x` 版本 -### 二进制文件方式下载 +## 二进制文件方式下载 编译好的二进制文件都在 [github.com/etcd-io/etcd/releases](https://github.com/etcd-io/etcd/releases/) 页面,用户可以选择需要的版本,或通过下载工具下载。 @@ -56,7 +56,7 @@ hello world 说明 etcd 服务已经成功启动了。 -### Docker 镜像方式运行 +## Docker 镜像方式运行 镜像名称为 `quay.io/coreos/etcd`,可以通过下面的命令启动 `etcd` 服务监听到 `2379` 和 `2380` 端口。 @@ -84,7 +84,7 @@ quay.io/coreos/etcd:v3.4.0 \ 打开新的终端按照上一步的方法测试 `etcd` 是否成功启动。 -### macOS 中运行 +## macOS 中运行 ```bash $ brew install etcd diff --git a/etcd/intro.md b/etcd/intro.md index 186209192..19f98b17c 100644 --- a/etcd/intro.md +++ b/etcd/intro.md @@ -1,4 +1,4 @@ -## 什么是 etcd +# 什么是 etcd ![](_images/etcd_logo.png) diff --git a/image/build.md b/image/build.md index 135207ddb..6fde477d6 100644 --- a/image/build.md +++ b/image/build.md @@ -1,4 +1,4 @@ -## 使用 Dockerfile 定制镜像 +# 使用 Dockerfile 定制镜像 从刚才的 `docker commit` 的学习中,我们可以了解到,镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。 @@ -23,7 +23,7 @@ RUN echo '

    Hello, Docker!

    ' > /usr/share/nginx/html/index.html 这个 Dockerfile 很简单,一共就两行。涉及到了两条指令,`FROM` 和 `RUN`。 -### FROM 指定基础镜像 +## FROM 指定基础镜像 所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。就像我们之前运行了一个 `nginx` 镜像的容器,再进行修改一样,基础镜像是必须指定的。而 `FROM` 就是指定 **基础镜像**,因此一个 `Dockerfile` 中 `FROM` 是必备的指令,并且必须是第一条指令。 @@ -42,7 +42,7 @@ FROM scratch 不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,比如 [`swarm`](https://hub.docker.com/_/swarm/)、[`etcd`](https://quay.io/repository/coreos/etcd)。对于 Linux 下静态编译的程序来说,并不需要有操作系统提供运行时支持,所需的一切库都已经在可执行文件里了,因此直接 `FROM scratch` 会让镜像体积更加小巧。使用 [Go 语言](https://golang.org/) 开发的应用很多会使用这种方式来制作镜像,这也是为什么有人认为 Go 是特别适合容器微服务架构的语言的原因之一。 -### RUN 执行命令 +## RUN 执行命令 `RUN` 指令是用来执行命令行命令的。由于命令行的强大能力,`RUN` 指令在定制镜像时是最常用的指令之一。其格式有两种: @@ -102,7 +102,7 @@ RUN buildDeps='gcc libc6-dev make wget' \ 很多人初学 Docker 制作出了很臃肿的镜像的原因之一,就是忘记了每一层构建的最后一定要清理掉无关文件。 -### 构建镜像 +## 构建镜像 好了,让我们再回到之前定制的 nginx 镜像的 Dockerfile 来。现在我们明白了这个 Dockerfile 的内容,那么让我们来构建这个镜像吧。 @@ -130,7 +130,7 @@ docker build [选项] <上下文路径/URL/-> 在这里我们指定了最终镜像的名称 `-t nginx:v3`,构建成功后,我们可以像之前运行 `nginx:v2` 那样来运行这个镜像,其结果会和 `nginx:v2` 一样。 -### 镜像构建上下文(Context) +## 镜像构建上下文(Context) 如果注意,会看到 `docker build` 命令最后有一个 `.`。`.` 表示当前目录,而 `Dockerfile` 就在当前目录,因此不少初学者以为这个路径是在指定 `Dockerfile` 所在路径,这么理解其实是不准确的。如果对应上面的命令格式,你可能会发现,这是在指定 **上下文路径**。那么什么是上下文呢? @@ -170,9 +170,9 @@ Sending build context to Docker daemon 2.048 kB 当然,一般大家习惯性的会使用默认的文件名 `Dockerfile`,以及会将其置于镜像构建上下文目录中。 -### 其它 `docker build` 的用法 +## 其它 `docker build` 的用法 -#### 直接用 Git repo 进行构建 +### 直接用 Git repo 进行构建 或许你已经注意到了,`docker build` 还支持从 URL 构建,比如可以直接从 Git repo 中构建: @@ -189,7 +189,7 @@ aed15891ba52: Already exists 这行命令指定了构建所需的 Git repo,并且指定默认的 `master` 分支,构建目录为 `/11.1/`,然后 Docker 就会自己去 `git clone` 这个项目、切换到指定分支、并进入到指定目录后开始构建。 -#### 用给定的 tar 压缩包构建 +### 用给定的 tar 压缩包构建 ```bash $ docker build http://server/context.tar.gz @@ -197,7 +197,7 @@ $ docker build http://server/context.tar.gz 如果所给出的 URL 不是个 Git repo,而是个 `tar` 压缩包,那么 Docker 引擎会下载这个包,并自动解压缩,以其作为上下文,开始构建。 -#### 从标准输入中读取 Dockerfile 进行构建 +### 从标准输入中读取 Dockerfile 进行构建 ```bash docker build - < Dockerfile @@ -211,7 +211,7 @@ cat Dockerfile | docker build - 如果标准输入传入的是文本文件,则将其视为 `Dockerfile`,并开始构建。这种形式由于直接从标准输入中读取 Dockerfile 的内容,它没有上下文,因此不可以像其他方法那样可以将本地文件 `COPY` 进镜像之类的事情。 -#### 从标准输入中读取上下文压缩包进行构建 +### 从标准输入中读取上下文压缩包进行构建 ```bash $ docker build - < context.tar.gz diff --git a/image/commit.md b/image/commit.md index 6f921e546..01ca00256 100644 --- a/image/commit.md +++ b/image/commit.md @@ -1,8 +1,7 @@ +# 利用 commit 理解镜像构成 >注意:如果您是初学者,您可以暂时跳过后面的内容,直接学习 [容器](../container) 一节。 -## 利用 commit 理解镜像构成 - 注意: `docker commit` 命令除了学习之外,还有一些特殊的应用场合,比如被入侵后保存现场等。但是,不要使用 `docker commit` 定制镜像,定制镜像应该使用 `Dockerfile` 来完成。如果你想要定制镜像请查看下一小节。 镜像是容器的基础,每次执行 `docker run` 的时候都会指定哪个镜像作为容器运行的基础。在之前的例子中,我们所使用的都是来自于 Docker Hub 的镜像。直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,我们就需要定制这些镜像。接下来的几节就将讲解如何定制镜像。 @@ -120,7 +119,7 @@ docker run --name web2 -d -p 81:80 nginx:v2 至此,我们第一次完成了定制镜像,使用的是 `docker commit` 命令,手动操作给旧的镜像添加了新的一层,形成新的镜像,对镜像多层存储应该有了更直观的感觉。 -### 慎用 `docker commit` +## 慎用 `docker commit` 使用 `docker commit` 命令虽然可以比较直观的帮助理解镜像分层存储的概念,但是实际环境中并不会这样使用。 diff --git a/image/dockerfile/README.md b/image/dockerfile/README.md index fa4d01f98..15f5d4fc5 100644 --- a/image/dockerfile/README.md +++ b/image/dockerfile/README.md @@ -1,3 +1,3 @@ -## Dockerfile 指令详解 +# Dockerfile 指令详解 我们已经介绍了 `FROM`,`RUN`,还提及了 `COPY`, `ADD`,其实 `Dockerfile` 功能很强大,它提供了十多个指令。下面我们继续讲解其他的指令。 diff --git a/image/internal.md b/image/internal.md index 8cb7ccf95..f22123b66 100644 --- a/image/internal.md +++ b/image/internal.md @@ -1,4 +1,4 @@ -## 镜像的实现原理 +# 镜像的实现原理 Docker 镜像是怎么实现增量的修改和维护的? diff --git a/image/list.md b/image/list.md index d3f60b22f..107c36d1b 100644 --- a/image/list.md +++ b/image/list.md @@ -1,4 +1,4 @@ -## 列出镜像 +# 列出镜像 要想列出已经下载下来的镜像,可以使用 `docker image ls` 命令。 @@ -17,7 +17,7 @@ ubuntu latest f753707788c5 4 weeks ago 其中仓库名、标签在之前的基础概念章节已经介绍过了。**镜像 ID** 则是镜像的唯一标识,一个镜像可以对应多个 **标签**。因此,在上面的例子中,我们可以看到 `ubuntu:18.04` 和 `ubuntu:latest` 拥有相同的 ID,因为它们对应的是同一个镜像。 -### 镜像体积 +## 镜像体积 如果仔细观察,会注意到,这里标识的所占用空间和在 Docker Hub 上看到的镜像大小不同。比如,`ubuntu:18.04` 镜像大小,在这里是 `127 MB`,但是在 [Docker Hub](https://hub.docker.com/r/library/ubuntu/tags/) 显示的却是 `50 MB`。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的大小是网络传输中更关心的流量大小。而 `docker image ls` 显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。 @@ -35,7 +35,7 @@ Local Volumes 9 0 652.2MB Build Cache 0B 0B ``` -### 虚悬镜像 +## 虚悬镜像 上面的镜像列表中,还可以看到一个特殊的镜像,这个镜像既没有仓库名,也没有标签,均为 ``。: @@ -57,7 +57,7 @@ REPOSITORY TAG IMAGE ID CREATED $ docker image prune ``` -### 中间层镜像 +## 中间层镜像 为了加速镜像构建、重复利用资源,Docker 会利用 **中间层镜像**。所以在使用一段时间后,可能会看到一些依赖的中间层镜像。默认的 `docker image ls` 列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像的话,需要加 `-a` 参数。 @@ -67,7 +67,7 @@ $ docker image ls -a 这样会看到很多无标签的镜像,与之前的虚悬镜像不同,这些无标签的镜像很多都是中间层镜像,是其它镜像所依赖的镜像。这些无标签镜像不应该删除,否则会导致上层镜像因为依赖丢失而出错。实际上,这些镜像也没必要删除,因为之前说过,相同的层只会存一遍,而这些镜像是别的镜像的依赖,因此并不会因为它们被列出来而多存了一份,无论如何你也会需要它们。只要删除那些依赖它们的镜像后,这些依赖的中间层镜像也会被连带删除。 -### 列出部分镜像 +## 列出部分镜像 不加任何参数的情况下,`docker image ls` 会列出所有顶层镜像,但是有时候我们只希望列出部分镜像。`docker image ls` 有好几个参数可以帮助做到这个事情。 @@ -106,7 +106,7 @@ $ docker image ls -f label=com.example.version=0.1 ... ``` -### 以特定格式显示 +## 以特定格式显示 默认情况下,`docker image ls` 会输出一个完整的表格,但是我们并非所有时候都会需要这些内容。比如,刚才删除虚悬镜像的时候,我们需要利用 `docker image ls` 把所有的虚悬镜像的 ID 列出来,然后才可以交给 `docker image rm` 命令作为参数来删除指定的这些镜像,这个时候就用到了 `-q` 参数。 diff --git a/image/manifest.md b/image/manifest.md index 3783303c7..78dd12851 100644 --- a/image/manifest.md +++ b/image/manifest.md @@ -1,4 +1,4 @@ -## 构建多种系统架构支持的 Docker 镜像 -- docker manifest 命令详解 +# 构建多种系统架构支持的 Docker 镜像 -- docker manifest 命令详解 我们知道使用镜像创建一个容器,该镜像必须与 Docker 宿主机系统架构一致,例如 `Linux x86_64` 架构的系统中只能使用 `Linux x86_64` 的镜像创建容器。 @@ -109,11 +109,11 @@ $ docker manifest inspect golang:alpine 下面介绍如何使用 `$ docker manifest` 命令创建并推送 `manifest` 列表到 Docker Hub。 -### 构建镜像 +## 构建镜像 首先在 `Linux x86_64` 构建 `username/x8664-test` 镜像。并在 `Linux arm64v8` 中构建 `username/arm64v8-test` 镜像,构建好之后推送到 Docker Hub。 -### 创建 `manifest` 列表 +## 创建 `manifest` 列表 ```bash # $ docker manifest create MANIFEST_LIST MANIFEST [MANIFEST...] @@ -124,7 +124,7 @@ $ docker manifest create username/test \ 当要修改一个 `manifest` 列表时,可以加入 `-a,--amend` 参数。 -### 设置 `manifest` 列表 +## 设置 `manifest` 列表 ```bash # $ docker manifest annotate [OPTIONS] MANIFEST_LIST MANIFEST @@ -139,13 +139,13 @@ $ docker manifest annotate username/test \ 这样就配置好了 `manifest` 列表。 -### 查看 `manifest` 列表 +## 查看 `manifest` 列表 ```bash $ docker manifest inspect username/test ``` -### 推送 `manifest` 列表 +## 推送 `manifest` 列表 最后我们可以将其推送到 Docker Hub。 @@ -153,11 +153,11 @@ $ docker manifest inspect username/test $ docker manifest push username/test ``` -### 测试 +## 测试 我们在 `Linux x86_64` `Linux arm64v8` 中分别执行 `$ docker run -it --rm username/test` 命令,发现可以正确的执行。 -### 官方博客 +## 官方博客 详细了解 `manifest` 可以阅读官方博客。 diff --git a/image/multistage-builds/README.md b/image/multistage-builds/README.md index 97a61610f..f924cd2d7 100644 --- a/image/multistage-builds/README.md +++ b/image/multistage-builds/README.md @@ -1,10 +1,10 @@ -## 多阶段构建 +# 多阶段构建 -### 之前的做法 +## 之前的做法 在 Docker 17.05 版本之前,我们构建 Docker 镜像时,通常会采用两种方式: -#### 全部放入一个 Dockerfile +### 全部放入一个 Dockerfile 一种方式是将所有的构建过程编包含在一个 `Dockerfile` 中,包括项目及其依赖库的编译、测试、打包等流程,这里可能会带来的一些问题: @@ -50,7 +50,7 @@ CMD ["./app"] $ docker build -t go/helloworld:1 -f Dockerfile.one . ``` -#### 分散到多个 Dockerfile +### 分散到多个 Dockerfile 另一种方式,就是我们事先在一个 `Dockerfile` 将项目及其依赖库编译测试打包好后,再将其拷贝到运行环境中,这种方式需要我们编写两个 `Dockerfile` 和一些编译脚本才能将其两个阶段自动整合起来,这种方式虽然可以很好地规避第一种方式存在的风险,但明显部署过程较复杂。 @@ -119,7 +119,7 @@ go/helloworld 2 f7cf3465432c 22 seconds ago 6.47MB go/helloworld 1 f55d3e16affc 2 minutes ago 295MB ``` -### 使用多阶段构建 +## 使用多阶段构建 为解决以上问题,Docker v17.05 开始支持多阶段构建 (`multistage builds`)。使用多阶段构建我们就可以很容易解决前面提到的问题,并且只需要编写一个 `Dockerfile`: @@ -168,7 +168,7 @@ go/helloworld 1 f55d3e16affc 2 minutes ago 295MB 很明显使用多阶段构建的镜像体积小,同时也完美解决了上边提到的问题。 -#### 只构建某一阶段的镜像 +### 只构建某一阶段的镜像 我们可以使用 `as` 来为某一阶段命名,例如 @@ -182,7 +182,7 @@ FROM golang:1.9-alpine as builder $ docker build --target builder -t username/imagename:tag . ``` -#### 构建时从其他镜像复制文件 +### 构建时从其他镜像复制文件 上面例子中我们使用 `COPY --from=0 /go/src/github.com/go/helloworld/app .` 从上一阶段的镜像中复制文件,我们也可以复制任意镜像中的文件。 diff --git a/image/multistage-builds/laravel.md b/image/multistage-builds/laravel.md index 5d7a44b10..da14fdb01 100644 --- a/image/multistage-builds/laravel.md +++ b/image/multistage-builds/laravel.md @@ -1,8 +1,8 @@ -## 实战多阶段构建 Laravel 镜像 +# 实战多阶段构建 Laravel 镜像 > 本节适用于 PHP 开发者阅读。 -### 准备 +## 准备 新建一个 `Laravel` 项目或在已有的 `Laravel` 项目根目录下新建 `Dockerfile` `.dockerignore` `laravel.conf` 文件。 @@ -46,7 +46,7 @@ server { } ``` -### 前端构建 +## 前端构建 第一阶段进行前端构建。 @@ -65,7 +65,7 @@ RUN cd /app \ && npm run production ``` -### 安装 Composer 依赖 +## 安装 Composer 依赖 第二阶段安装 Composer 依赖。 @@ -85,7 +85,7 @@ RUN cd /app \ --prefer-dist ``` -### 整合以上阶段所生成的文件 +## 整合以上阶段所生成的文件 第三阶段对以上阶段生成的文件进行整合。 @@ -111,7 +111,7 @@ RUN cd ${LARAVEL_PATH} \ && chmod -R 777 storage ``` -### 最后一个阶段构建 NGINX 镜像 +## 最后一个阶段构建 NGINX 镜像 ```docker FROM nginx:alpine as nginx @@ -122,7 +122,7 @@ COPY laravel.conf /etc/nginx/conf.d/ COPY --from=laravel ${LARAVEL_PATH}/public ${LARAVEL_PATH}/public ``` -### 构建 Laravel 及 Nginx 镜像 +## 构建 Laravel 及 Nginx 镜像 使用 `docker build` 命令构建镜像。 @@ -132,7 +132,7 @@ $ docker build -t my/laravel --target=laravel . $ docker build -t my/nginx --target=nginx . ``` -### 启动容器并测试 +## 启动容器并测试 新建 Docker 网络 @@ -156,11 +156,11 @@ $ docker run -it --rm --network=laravel -p 8080:80 my/nginx > 也许 Laravel 项目依赖其他外部服务,例如 redis、MySQL,请自行启动这些服务之后再进行测试,本小节不再赘述。 -### 生产环境优化 +## 生产环境优化 本小节内容为了方便测试,将配置文件直接放到了镜像中,实际在使用时 **建议** 将配置文件作为 `config` 或 `secret` 挂载到容器中,请读者自行学习 `Swarm mode` 或 `Kubernetes` 的相关内容。 -### 附录 +## 附录 完整的 `Dockerfile` 文件如下。 diff --git a/image/other.md b/image/other.md index 8a9414795..4d4dd1383 100644 --- a/image/other.md +++ b/image/other.md @@ -1,8 +1,8 @@ -## 其它制作镜像的方式 +# 其它制作镜像的方式 除了标准的使用 `Dockerfile` 生成镜像的方法外,由于各种特殊需求和历史原因,还提供了一些其它方法用以生成镜像。 -### 从 rootfs 压缩包导入 +## 从 rootfs 压缩包导入 格式:`docker import [选项] <文件>||- [<仓库名>[:<标签>]]` @@ -37,11 +37,11 @@ IMAGE CREATED CREATED BY SIZE f477a6e18e98 About a minute ago 214.9 MB Imported from http://download.openvz.org/template/precreated/ubuntu-16.04-x86_64.tar.gz ``` -### `docker save` 和 `docker load` +## `docker save` 和 `docker load` Docker 还提供了 `docker save` 和 `docker load` 命令,用以将镜像保存为一个文件,然后传输到另一个位置上,再加载进来。这是在没有 Docker Registry 时的做法,现在已经不推荐,镜像迁移应该直接使用 Docker Registry,无论是直接使用 Docker Hub 还是使用内网私有 Registry 都可以。 -#### 保存镜像 +### 保存镜像 使用 `docker save` 命令可以将镜像保存为归档文件。 diff --git a/image/pull.md b/image/pull.md index 7733f70b6..51c47c90e 100644 --- a/image/pull.md +++ b/image/pull.md @@ -1,4 +1,4 @@ -## 获取镜像 +# 获取镜像 之前提到过,[Docker Hub](https://hub.docker.com/explore/) 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。 @@ -35,7 +35,7 @@ Status: Downloaded newer image for ubuntu:18.04 *如果从 Docker Hub 下载镜像非常缓慢,可以参照 [镜像加速器](/install/mirror.md) 一节配置加速器。* -### 运行 +## 运行 有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。以上面的 `ubuntu:18.04` 为例,如果我们打算启动里面的 `bash` 并且进行交互式操作的话,可以执行下面的命令。 diff --git a/image/rm.md b/image/rm.md index d0870be49..07b0f19e4 100644 --- a/image/rm.md +++ b/image/rm.md @@ -1,4 +1,4 @@ -## 删除本地镜像 +# 删除本地镜像 如果要删除本地的镜像,可以使用 `docker image rm` 命令,其格式为: @@ -6,7 +6,7 @@ $ docker image rm [选项] <镜像1> [<镜像2> ...] ``` -### 用 ID、镜像名、摘要删除镜像 +## 用 ID、镜像名、摘要删除镜像 其中,`<镜像>` 可以是 `镜像短 ID`、`镜像长 ID`、`镜像名` 或者 `镜像摘要`。 @@ -58,7 +58,7 @@ $ docker image rm node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235 Untagged: node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228 ``` -### Untagged 和 Deleted +## Untagged 和 Deleted 如果观察上面这几个命令的运行输出信息的话,你会注意到删除行为分为两类,一类是 `Untagged`,另一类是 `Deleted`。我们之前介绍过,镜像的唯一标识是其 ID 和摘要,而一个镜像可以有多个标签。 @@ -68,7 +68,7 @@ Untagged: node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b16442 除了镜像依赖以外,还需要注意的是容器对镜像的依赖。如果有用这个镜像启动的容器存在(即使容器没有运行),那么同样不可以删除这个镜像。之前讲过,容器是以镜像为基础,再加一层容器存储层,组成这样的多层存储结构去运行的。因此该镜像如果被这个容器所依赖的,那么删除必然会导致故障。如果这些容器是不需要的,应该先将它们删除,然后再来删除镜像。 -### 用 docker image ls 命令来配合 +## 用 docker image ls 命令来配合 像其它可以承接多个实体的命令一样,可以使用 `docker image ls -q` 来配合使用 `docker image rm`,这样可以成批的删除希望删除的镜像。我们在“镜像列表”章节介绍过很多过滤镜像列表的方式都可以拿过来使用。 @@ -86,7 +86,7 @@ $ docker image rm $(docker image ls -q -f before=mongo:3.2) 充分利用你的想象力和 Linux 命令行的强大,你可以完成很多非常赞的功能。 -### CentOS/RHEL 的用户需要注意的事项 +## CentOS/RHEL 的用户需要注意的事项 > 以下内容仅适用于 Docker CE 18.09 以下版本,在 Docker CE 18.09 版本中默认使用的是 `overlay2` 驱动。 diff --git a/network/dns.md b/network/dns.md index a84f90ea1..f13bbb7c8 100644 --- a/network/dns.md +++ b/network/dns.md @@ -1,4 +1,4 @@ -## 配置 DNS +# 配置 DNS 如何自定义配置容器的主机名和 DNS 呢?秘诀就是 Docker 利用虚拟文件来挂载容器的 3 个相关配置文件。 diff --git a/network/linking.md b/network/linking.md index a4319a537..e24ebd9bd 100644 --- a/network/linking.md +++ b/network/linking.md @@ -1,10 +1,10 @@ -## 容器互联 +# 容器互联 如果你之前有 `Docker` 使用经验,你可能已经习惯了使用 `--link` 参数来使容器互联。 随着 Docker 网络的完善,强烈建议大家将容器加入自定义的 Docker 网络来连接多个容器,而不是使用 `--link` 参数。 -### 新建网络 +## 新建网络 下面先创建一个新的 Docker 网络。 @@ -14,7 +14,7 @@ $ docker network create -d bridge my-net `-d` 参数指定 Docker 网络类型,有 `bridge` `overlay`。其中 `overlay` 网络类型用于 [Swarm mode](../swarm_mode/),在本小节中你可以忽略它。 -### 连接容器 +## 连接容器 运行一个容器并连接到新建的 `my-net` 网络 @@ -62,6 +62,6 @@ PING busybox1 (172.19.0.2): 56 data bytes 这样,`busybox1` 容器和 `busybox2` 容器建立了互联关系。 -### Docker Compose +## Docker Compose 如果你有多个容器之间需要互相连接,推荐使用 [Docker Compose](../compose)。 diff --git a/network/port_mapping.md b/network/port_mapping.md index 59b0690cc..ef42475a3 100644 --- a/network/port_mapping.md +++ b/network/port_mapping.md @@ -1,4 +1,4 @@ -## 外部访问容器 +# 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 `-P` 或 `-p` 参数来指定端口映射。 @@ -25,7 +25,7 @@ $ docker logs -f nostalgic_morse `-p` 则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器。支持的格式有 `ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort`。 -### 映射所有接口地址 +## 映射所有接口地址 使用 `hostPort:containerPort` 格式本地的 5000 端口映射到容器的 5000 端口,可以执行 @@ -35,7 +35,7 @@ $ docker run -d -p 5000:5000 training/webapp python app.py 此时默认会绑定本地所有接口上的所有地址。 -### 映射到指定地址的指定端口 +## 映射到指定地址的指定端口 可以使用 `ip:hostPort:containerPort` 格式指定映射使用一个特定地址,比如 localhost 地址 127.0.0.1 @@ -43,7 +43,7 @@ $ docker run -d -p 5000:5000 training/webapp python app.py $ docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py ``` -### 映射到指定地址的任意端口 +## 映射到指定地址的任意端口 使用 `ip::containerPort` 绑定 localhost 的任意端口到容器的 5000 端口,本地主机会自动分配一个端口。 @@ -57,7 +57,7 @@ $ docker run -d -p 127.0.0.1::5000 training/webapp python app.py $ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py ``` -### 查看映射端口配置 +## 查看映射端口配置 使用 `docker port` 来查看当前映射的端口配置,也可以查看到绑定的地址 diff --git a/opensource/linuxkit.md b/opensource/linuxkit.md index a4513c0e6..ee491ebd7 100644 --- a/opensource/linuxkit.md +++ b/opensource/linuxkit.md @@ -1,10 +1,10 @@ -## LinuxKit +# LinuxKit `LinuxKit` 这个工具可以将多个 Docker 镜像组成一个最小化、可自由定制的 Linux 系统,最后的生成的系统只有几十 M 大小,可以很方便的在云端进行部署。 下面我们在 macOS 上通过实例,来编译并运行一个全部由 Docker 镜像组成的包含 nginx 服务的 Linux 系统。 -### 安装 Linuxkit +## 安装 Linuxkit ```bash $ brew tap linuxkit/linuxkit @@ -12,7 +12,7 @@ $ brew tap linuxkit/linuxkit $ brew install --HEAD linuxkit ``` -### 克隆源代码 +## 克隆源代码 ```bash $ git clone -b master --depth=1 https://github.com/linuxkit/linuxkit.git @@ -20,7 +20,7 @@ $ git clone -b master --depth=1 https://github.com/linuxkit/linuxkit.git $ cd linuxkit ``` -### 编译 Linux 系统 +## 编译 Linux 系统 LinuxKit 通过 `yaml` 文件配置。 @@ -40,7 +40,7 @@ LinuxKit 通过 `yaml` 文件配置。 $ linuxkit build linuxkit.yml ``` -### 启动 Linux 系统 +## 启动 Linux 系统 编译成功后,接下来启动这个 Linux 系统。 diff --git a/security/control_group.md b/security/control_group.md index 0940a3073..cd2bd39ed 100644 --- a/security/control_group.md +++ b/security/control_group.md @@ -1,4 +1,4 @@ -## 控制组 +# 控制组 控制组是 Linux 容器机制的另外一个关键组件,负责实现资源的审计和限制。 它提供了很多有用的特性;以及确保各个容器可以公平地分享主机的内存、CPU、磁盘 IO 等资源;当然,更重要的是,控制组确保了当容器内的资源使用产生压力时不会连累主机系统。 diff --git a/security/daemon_sec.md b/security/daemon_sec.md index c1b4057d6..7389ffba8 100644 --- a/security/daemon_sec.md +++ b/security/daemon_sec.md @@ -1,4 +1,4 @@ -## Docker服务端的防护 +# Docker服务端的防护 运行一个容器或应用程序的核心是通过 Docker 服务端。Docker 服务的运行目前需要 root 权限,因此其安全性十分关键。 首先,确保只有可信的用户才可以访问 Docker 服务。Docker 允许用户在主机和容器间共享文件夹,同时不需要限制容器的访问权限,这就容易让容器突破资源限制。例如,恶意用户启动容器的时候将主机的根目录`/`映射到容器的 `/host` 目录中,那么容器理论上就可以对主机的文件系统进行任意修改了。这听起来很疯狂?但是事实上几乎所有虚拟化系统都允许类似的资源共享,而没法禁止用户共享主机根文件系统到虚拟机系统。 diff --git a/security/kernel_capability.md b/security/kernel_capability.md index bbe3a5236..4ebc9eabf 100644 --- a/security/kernel_capability.md +++ b/security/kernel_capability.md @@ -1,4 +1,4 @@ -## 内核能力机制 +# 内核能力机制 能力机制(Capability)是 Linux 内核一个强大的特性,可以提供细粒度的权限访问控制。 Linux 内核自 2.2 版本起就支持能力机制,它将权限划分为更加细粒度的操作能力,既可以作用在进程上,也可以作用在文件上。 diff --git a/security/kernel_ns.md b/security/kernel_ns.md index 1ce607c37..18e070b1a 100644 --- a/security/kernel_ns.md +++ b/security/kernel_ns.md @@ -1,4 +1,4 @@ -## 内核命名空间 +# 内核命名空间 Docker 容器和 LXC 容器很相似,所提供的安全特性也差不多。当用 `docker run` 启动一个容器时,在后台 Docker 为容器创建了一个独立的命名空间和控制组集合。 命名空间提供了最基础也是最直接的隔离,在容器中运行的进程不会被运行在主机上的进程和其它容器发现和作用。 diff --git a/security/other_feature.md b/security/other_feature.md index 5b70b5fb1..3a288c9f2 100644 --- a/security/other_feature.md +++ b/security/other_feature.md @@ -1,4 +1,4 @@ -## 其它安全特性 +# 其它安全特性 除了能力机制之外,还可以利用一些现有的安全机制来增强使用 Docker 的安全性,例如 TOMOYO, AppArmor, SELinux, GRSEC 等。 Docker 当前默认只启用了能力机制。用户可以采用多种方案来加强 Docker 主机的安全,例如: diff --git a/security/summary.md b/security/summary.md index 0b2b52890..90d144b8f 100644 --- a/security/summary.md +++ b/security/summary.md @@ -1,4 +1,4 @@ -## 总结 +# 总结 总体来看,Docker 容器还是十分安全的,特别是在容器内不使用 root 权限来运行进程的话。 另外,用户可以使用现有工具,比如 Apparmor, SELinux, GRSEC 来增强安全性;甚至自己在内核中实现更复杂的安全机制。 diff --git a/swarm_mode/config.md b/swarm_mode/config.md index 484e94349..a18e5a1cf 100644 --- a/swarm_mode/config.md +++ b/swarm_mode/config.md @@ -1,4 +1,4 @@ -## 在 Swarm 集群中管理配置数据 +# 在 Swarm 集群中管理配置数据 在动态的、大规模的分布式集群上,管理和分发配置文件也是很重要的工作。传统的配置文件分发方式(如配置文件放入镜像中,设置环境变量,volume 动态挂载等)都降低了镜像的通用性。 @@ -8,7 +8,7 @@ 这里我们以在 Swarm 集群中部署 `redis` 服务为例。 -### 创建 config +## 创建 config 新建 `redis.conf` 文件 @@ -24,7 +24,7 @@ port 6380 $ docker config create redis.conf redis.conf ``` -### 查看 config +## 查看 config 使用 `docker config ls` 命令来查看 `config` @@ -35,7 +35,7 @@ ID NAME CREATED UPDATED yod8fx8iiqtoo84jgwadp86yk redis.conf 4 seconds ago 4 seconds ago ``` -### 创建 redis 服务 +## 创建 redis 服务 ```bash $ docker service create \ diff --git a/swarm_mode/create.md b/swarm_mode/create.md index a64fb5c57..91391242a 100644 --- a/swarm_mode/create.md +++ b/swarm_mode/create.md @@ -1,8 +1,8 @@ -## 创建 Swarm 集群 +# 创建 Swarm 集群 阅读 [基本概念](overview.md) 一节我们知道 `Swarm` 集群由 **管理节点** 和 **工作节点** 组成。本节我们来创建一个包含一个管理节点和两个工作节点的最小 `Swarm` 集群。 -### 初始化集群 +## 初始化集群 在 [`Docker Machine`](../machine) 一节中我们了解到 `Docker Machine` 可以在数秒内创建一个虚拟的 Docker 主机,下面我们使用它来创建三个 Docker 主机,并加入到集群中。 @@ -33,7 +33,7 @@ To add a manager to this swarm, run 'docker swarm join-token manager' and follow > 执行 `docker swarm init` 命令的节点自动成为管理节点。 -### 增加工作节点 +## 增加工作节点 上一步我们初始化了一个 `Swarm` 集群,拥有了一个管理节点,下面我们继续创建两个 Docker 主机作为工作节点,并加入到集群中。 @@ -63,7 +63,7 @@ This node joined a swarm as a worker. >注意:一些细心的读者可能通过 `docker-machine create --help` 查看到 `--swarm*` 等一系列参数。该参数是用于旧的 `Docker Swarm`,与本章所讲的 `Swarm mode` 没有关系。 -### 查看集群 +## 查看集群 经过上边的两步,我们已经拥有了一个最小的 `Swarm` 集群,包含一个管理节点和两个工作节点。 diff --git a/swarm_mode/deploy.md b/swarm_mode/deploy.md index 91a84ffd2..2c22679cc 100644 --- a/swarm_mode/deploy.md +++ b/swarm_mode/deploy.md @@ -1,8 +1,8 @@ -## 部署服务 +# 部署服务 我们使用 `docker service` 命令来管理 `Swarm` 集群中的服务,该命令只能在管理节点运行。 -### 新建服务 +## 新建服务 现在我们在上一节创建的 `Swarm` 集群中运行一个名为 `nginx` 服务。 @@ -12,7 +12,7 @@ $ docker service create --replicas 3 -p 80:80 --name nginx nginx:1.13.7-alpine 现在我们使用浏览器,输入任意节点 IP ,即可看到 nginx 默认页面。 -### 查看服务 +## 查看服务 使用 `docker service ls` 来查看当前 `Swarm` 集群运行的服务。 @@ -44,7 +44,7 @@ nginx.1.pjfzd39buzlt@swarm2 | 10.255.0.2 - - [25/Nov/2017:02:10:27 +0000] "GE nginx.1.pjfzd39buzlt@swarm2 | 2017/11/25 02:10:27 [error] 5#5: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 10.255.0.2, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.99.101" ``` -### 服务伸缩 +## 服务伸缩 我们可以使用 `docker service scale` 对一个服务运行的容器数量进行伸缩。 @@ -60,7 +60,7 @@ $ docker service scale nginx=5 $ docker service scale nginx=2 ``` -### 删除服务 +## 删除服务 使用 `docker service rm` 来从 `Swarm` 集群移除某个服务。 diff --git a/swarm_mode/overview.md b/swarm_mode/overview.md index d3f5264a6..cd853afe3 100644 --- a/swarm_mode/overview.md +++ b/swarm_mode/overview.md @@ -1,10 +1,10 @@ -## 基本概念 +# 基本概念 `Swarm` 是使用 [`SwarmKit`](https://github.com/docker/swarmkit/) 构建的 Docker 引擎内置(原生)的集群管理和编排工具。 使用 `Swarm` 集群之前需要了解以下几个概念。 -### 节点 +## 节点 运行 Docker 的主机可以主动初始化一个 `Swarm` 集群或者加入一个已存在的 `Swarm` 集群,这样这个运行 Docker 的主机就成为一个 `Swarm` 集群的节点 (`node`) 。 @@ -18,7 +18,7 @@ ![](https://docs.docker.com/engine/swarm/images/swarm-diagram.png) -### 服务和任务 +## 服务和任务 任务 (`Task`)是 `Swarm` 中的最小的调度单位,目前来说就是一个单一的容器。 diff --git a/swarm_mode/rolling_update.md b/swarm_mode/rolling_update.md index 767be2064..560b0ae5f 100644 --- a/swarm_mode/rolling_update.md +++ b/swarm_mode/rolling_update.md @@ -1,4 +1,4 @@ -## SWarm mode 与滚动升级 +# SWarm mode 与滚动升级 在 [部署服务](deploy.md) 一节中我们使用 `nginx:1.13.7-alpine` 镜像部署了一个名为 `nginx` 的服务。 @@ -24,7 +24,7 @@ $ docker service update \ 更多选项可以通过 `docker service update -h` 命令查看。 -### 服务回退 +## 服务回退 现在假设我们发现 `nginx` 服务的镜像升级到 `nginx:1.13.12-alpine` 出现了一些问题,我们可以使用命令一键回退。 diff --git a/swarm_mode/secret.md b/swarm_mode/secret.md index 4d8476568..28981d5f2 100644 --- a/swarm_mode/secret.md +++ b/swarm_mode/secret.md @@ -1,4 +1,4 @@ -## 在 Swarm 集群中管理敏感数据 +# 在 Swarm 集群中管理敏感数据 在动态的、大规模的分布式集群上,管理和分发 `密码`、`证书` 等敏感信息是极其重要的工作。传统的密钥分发方式(如密钥放入镜像中,设置环境变量,volume 动态挂载等)都存在着潜在的巨大的安全风险。 @@ -10,7 +10,7 @@ Docker 目前已经提供了 `secrets` 管理功能,用户可以在 Swarm 集 这里我们以在 Swarm 集群中部署 `mysql` 和 `wordpress` 服务为例。 -### 创建 secret +## 创建 secret 我们使用 `docker secret create` 命令以管道符的形式创建 `secret` @@ -20,7 +20,7 @@ $ openssl rand -base64 20 | docker secret create mysql_password - $ openssl rand -base64 20 | docker secret create mysql_root_password - ``` -### 查看 secret +## 查看 secret 使用 `docker secret ls` 命令来查看 `secret` @@ -32,7 +32,7 @@ l1vinzevzhj4goakjap5ya409 mysql_password 41 seconds ago 41 seconds yvsczlx9votfw3l0nz5rlidig mysql_root_password 12 seconds ago 12 seconds ago ``` -### 创建 MySQL 服务 +## 创建 MySQL 服务 创建服务相关命令已经在前边章节进行了介绍,这里直接列出命令。 diff --git a/swarm_mode/stack.md b/swarm_mode/stack.md index 66561f47e..a7d1ebd04 100644 --- a/swarm_mode/stack.md +++ b/swarm_mode/stack.md @@ -1,4 +1,4 @@ -## 在 Swarm 集群中使用 compose 文件 +# 在 Swarm 集群中使用 compose 文件 正如之前使用 `docker-compose.yml` 来一次配置、启动多个容器,在 `Swarm` 集群中也可以使用 `compose` 文件 (`docker-compose.yml`) 来配置、启动多个服务。 @@ -60,7 +60,7 @@ networks: 在 `Swarm` 集群中使用 `docker-compose.yml` 我们用 `docker stack` 命令,下面我们对该命令进行详细讲解。 -### 部署服务 +## 部署服务 部署服务使用 `docker stack deploy`,其中 `-c` 参数指定 compose 文件名。 @@ -74,7 +74,7 @@ $ docker stack deploy -c docker-compose.yml wordpress 在浏览器新的标签页输入 `任一节点IP` 即可看到 `WordPress` 安装界面,安装完成之后,输入 `任一节点IP` 即可看到 `WordPress` 页面。 -### 查看服务 +## 查看服务 ```bash $ docker stack ls @@ -82,7 +82,7 @@ NAME SERVICES wordpress 3 ``` -### 移除服务 +## 移除服务 要移除服务,使用 `docker stack down` From c836c65a78c67ae3dc76a11949f259c49206c722 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 14 Nov 2019 09:21:31 +0800 Subject: [PATCH 441/611] Update command Signed-off-by: Kang HuaiShuai --- .vuepress/config.js | 10 ++- SUMMARY.md | 2 + appendix/command/README.md | 118 +----------------------------------- appendix/command/docker.md | 70 +++++++++++++++++++++ appendix/command/dockerd.md | 58 ++++++++++++++++++ 5 files changed, 140 insertions(+), 118 deletions(-) create mode 100644 appendix/command/docker.md create mode 100644 appendix/command/dockerd.md diff --git a/.vuepress/config.js b/.vuepress/config.js index ce4a00027..b20b65199 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -329,7 +329,15 @@ module.exports = { 'appendix/repo/redis', ], }, - 'appendix/command/', + { + title: "Docker 命令", + collapsable: false, + children: [ + 'appendix/command/', + 'appendix/command/docker', + 'appendix/command/dockerd', + ] + }, 'appendix/best_practices', 'appendix/debug', 'appendix/resources', diff --git a/SUMMARY.md b/SUMMARY.md index f3b2d3ae7..0ca744407 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -156,6 +156,8 @@ * [MongoDB](appendix/repo/mongodb.md) * [Redis](appendix/repo/redis.md) * [附录三:Docker 命令查询](appendix/command/README.md) + * [客户端命令 (docker)](appendix/command/docker.md) + * [服务端命令 (dockerd)](appendix/command/dockerd.md) * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) * [附录五:如何调试 Docker](appendix/debug.md) * [附录六:资源链接](appendix/resources.md) diff --git a/appendix/command/README.md b/appendix/command/README.md index bb7ec866b..5bea7319c 100644 --- a/appendix/command/README.md +++ b/appendix/command/README.md @@ -10,120 +10,4 @@ Docker 命令有两大类,客户端命令和服务端命令。前者是主要 可以通过 `man docker` 或 `docker help` 来查看这些命令。 -## 客户端命令选项 - -* `--config=""`:指定客户端配置文件,默认为 `~/.docker`; -* `-D=true|false`:是否使用 debug 模式。默认不开启; -* `-H, --host=[]`:指定命令对应 Docker 守护进程的监听接口,可以为 unix 套接字 `unix:///path/to/socket`,文件句柄 `fd://socketfd` 或 tcp 套接字 `tcp://[host[:port]]`,默认为 `unix:///var/run/docker.sock`; -* `-l, --log-level="debug|info|warn|error|fatal"`:指定日志输出级别; -* `--tls=true|false`:是否对 Docker 守护进程启用 TLS 安全机制,默认为否; -* `--tlscacert=/.docker/ca.pem`:TLS CA 签名的可信证书文件路径; -* `--tlscert=/.docker/cert.pem`:TLS 可信证书文件路径; -* `--tlscert=/.docker/key.pem`:TLS 密钥文件路径; -* `--tlsverify=true|false`:启用 TLS 校验,默认为否。 - -## dockerd 命令选项 - -* `--api-cors-header=""`:CORS 头部域,默认不允许 CORS,要允许任意的跨域访问,可以指定为 "*"; -* `--authorization-plugin=""`:载入认证的插件; -* `-b=""`:将容器挂载到一个已存在的网桥上。指定为 `none` 时则禁用容器的网络,与 `--bip` 选项互斥; -* `--bip=""`:让动态创建的 `docker0` 网桥采用给定的 CIDR 地址; 与 `-b` 选项互斥; -* `--cgroup-parent=""`:指定 cgroup 的父组,默认 fs cgroup 驱动为 `/docker`,systemd cgroup 驱动为 `system.slice`; -* `--cluster-store=""`:构成集群(如 `Swarm`)时,集群键值数据库服务地址; -* `--cluster-advertise=""`:构成集群时,自身的被访问地址,可以为 `host:port` 或 `interface:port`; -* `--cluster-store-opt=""`:构成集群时,键值数据库的配置选项; -* `--config-file="/etc/docker/daemon.json"`:daemon 配置文件路径; -* `--containerd=""`:containerd 文件的路径; -* `-D, --debug=true|false`:是否使用 Debug 模式。缺省为 false; -* `--default-gateway=""`:容器的 IPv4 网关地址,必须在网桥的子网段内; -* `--default-gateway-v6=""`:容器的 IPv6 网关地址; -* `--default-ulimit=[]`:默认的 ulimit 值; -* `--disable-legacy-registry=true|false`:是否允许访问旧版本的镜像仓库服务器; -* `--dns=""`:指定容器使用的 DNS 服务器地址; -* `--dns-opt=""`:DNS 选项; -* `--dns-search=[]`:DNS 搜索域; -* `--exec-opt=[]`:运行时的执行选项; -* `--exec-root=""`:容器执行状态文件的根路径,默认为 `/var/run/docker`; -* `--fixed-cidr=""`:限定分配 IPv4 地址范围; -* `--fixed-cidr-v6=""`:限定分配 IPv6 地址范围; -* `-G, --group=""`:分配给 unix 套接字的组,默认为 `docker`; -* `-g, --graph=""`:Docker 运行时的根路径,默认为 `/var/lib/docker`; -* `-H, --host=[]`:指定命令对应 Docker daemon 的监听接口,可以为 unix 套接字 `unix:///path/to/socket`,文件句柄 `fd://socketfd` 或 tcp 套接字 `tcp://[host[:port]]`,默认为 `unix:///var/run/docker.sock`; -* `--icc=true|false`:是否启用容器间以及跟 daemon 所在主机的通信。默认为 true。 -* `--insecure-registry=[]`:允许访问给定的非安全仓库服务; -* `--ip=""`:绑定容器端口时候的默认 IP 地址。缺省为 `0.0.0.0`; -* `--ip-forward=true|false`:是否检查启动在 Docker 主机上的启用 IP 转发服务,默认开启。注意关闭该选项将不对系统转发能力进行任何检查修改; -* `--ip-masq=true|false`:是否进行地址伪装,用于容器访问外部网络,默认开启; -* `--iptables=true|false`:是否允许 Docker 添加 iptables 规则。缺省为 true; -* `--ipv6=true|false`:是否启用 IPv6 支持,默认关闭; -* `-l, --log-level="debug|info|warn|error|fatal"`:指定日志输出级别; -* `--label="[]"`:添加指定的键值对标注; -* `--log-driver="json-file|syslog|journald|gelf|fluentd|awslogs|splunk|etwlogs|gcplogs|none"`:指定日志后端驱动,默认为 `json-file`; -* `--log-opt=[]`:日志后端的选项; -* `--mtu=VALUE`:指定容器网络的 `mtu`; -* `-p=""`:指定 daemon 的 PID 文件路径。缺省为 `/var/run/docker.pid`; -* `--raw-logs`:输出原始,未加色彩的日志信息; -* `--registry-mirror=://`:指定 `docker pull` 时使用的注册服务器镜像地址; -* `-s, --storage-driver=""`:指定使用给定的存储后端; -* `--selinux-enabled=true|false`:是否启用 SELinux 支持。缺省值为 false。SELinux 目前尚不支持 overlay 存储驱动; -* `--storage-opt=[]`:驱动后端选项; -* `--tls=true|false`:是否对 Docker daemon 启用 TLS 安全机制,默认为否; -* `--tlscacert=/.docker/ca.pem`:TLS CA 签名的可信证书文件路径; -* `--tlscert=/.docker/cert.pem`:TLS 可信证书文件路径; -* `--tlscert=/.docker/key.pem`:TLS 密钥文件路径; -* `--tlsverify=true|false`:启用 TLS 校验,默认为否; -* `--userland-proxy=true|false`:是否使用用户态代理来实现容器间和出容器的回环通信,默认为 true; -* `--userns-remap=default|uid:gid|user:group|user|uid`:指定容器的用户命名空间,默认是创建新的 UID 和 GID 映射到容器内进程。 - -## 客户端命令 - -可以通过 `docker COMMAND --help` 来查看这些命令的具体用法。 - -* `attach`:依附到一个正在运行的容器中; -* `build`:从一个 Dockerfile 创建一个镜像; -* `commit`:从一个容器的修改中创建一个新的镜像; -* `cp`:在容器和本地宿主系统之间复制文件中; -* `create`:创建一个新容器,但并不运行它; -* `diff`:检查一个容器内文件系统的修改,包括修改和增加; -* `events`:从服务端获取实时的事件; -* `exec`:在运行的容器内执行命令; -* `export`:导出容器内容为一个 `tar` 包; -* `history`:显示一个镜像的历史信息; -* `images`:列出存在的镜像; -* `import`:导入一个文件(典型为 `tar` 包)路径或目录来创建一个本地镜像; -* `info`:显示一些相关的系统信息; -* `inspect`:显示一个容器的具体配置信息; -* `kill`:关闭一个运行中的容器 (包括进程和所有相关资源); -* `load`:从一个 tar 包中加载一个镜像; -* `login`:注册或登录到一个 Docker 的仓库服务器; -* `logout`:从 Docker 的仓库服务器登出; -* `logs`:获取容器的 log 信息; -* `network`:管理 Docker 的网络,包括查看、创建、删除、挂载、卸载等; -* `node`:管理 swarm 集群中的节点,包括查看、更新、删除、提升/取消管理节点等; -* `pause`:暂停一个容器中的所有进程; -* `port`:查找一个 nat 到一个私有网口的公共口; -* `ps`:列出主机上的容器; -* `pull`:从一个Docker的仓库服务器下拉一个镜像或仓库; -* `push`:将一个镜像或者仓库推送到一个 Docker 的注册服务器; -* `rename`:重命名一个容器; -* `restart`:重启一个运行中的容器; -* `rm`:删除给定的若干个容器; -* `rmi`:删除给定的若干个镜像; -* `run`:创建一个新容器,并在其中运行给定命令; -* `save`:保存一个镜像为 tar 包文件; -* `search`:在 Docker index 中搜索一个镜像; -* `service`:管理 Docker 所启动的应用服务,包括创建、更新、删除等; -* `start`:启动一个容器; -* `stats`:输出(一个或多个)容器的资源使用统计信息; -* `stop`:终止一个运行中的容器; -* `swarm`:管理 Docker swarm 集群,包括创建、加入、退出、更新等; -* `tag`:为一个镜像打标签; -* `top`:查看一个容器中的正在运行的进程信息; -* `unpause`:将一个容器内所有的进程从暂停状态中恢复; -* `update`:更新指定的若干容器的配置信息; -* `version`:输出 Docker 的版本信息; -* `volume`:管理 Docker volume,包括查看、创建、删除等; -* `wait`:阻塞直到一个容器终止,然后输出它的退出符。 - -## 一张图总结 Docker 的命令 -![Docker 命令总结](../_images/cmd_logic.png) +接下来的小节对这两个命令进行介绍。 diff --git a/appendix/command/docker.md b/appendix/command/docker.md new file mode 100644 index 000000000..6c2463a63 --- /dev/null +++ b/appendix/command/docker.md @@ -0,0 +1,70 @@ +# 客户端命令(docker) + +## 客户端命令选项 + +* `--config=""`:指定客户端配置文件,默认为 `~/.docker`; +* `-D=true|false`:是否使用 debug 模式。默认不开启; +* `-H, --host=[]`:指定命令对应 Docker 守护进程的监听接口,可以为 unix 套接字 `unix:///path/to/socket`,文件句柄 `fd://socketfd` 或 tcp 套接字 `tcp://[host[:port]]`,默认为 `unix:///var/run/docker.sock`; +* `-l, --log-level="debug|info|warn|error|fatal"`:指定日志输出级别; +* `--tls=true|false`:是否对 Docker 守护进程启用 TLS 安全机制,默认为否; +* `--tlscacert=/.docker/ca.pem`:TLS CA 签名的可信证书文件路径; +* `--tlscert=/.docker/cert.pem`:TLS 可信证书文件路径; +* `--tlscert=/.docker/key.pem`:TLS 密钥文件路径; +* `--tlsverify=true|false`:启用 TLS 校验,默认为否。 + +## 客户端命令 + +可以通过 `docker COMMAND --help` 来查看这些命令的具体用法。 + +* `attach`:依附到一个正在运行的容器中; +* `build`:从一个 Dockerfile 创建一个镜像; +* `commit`:从一个容器的修改中创建一个新的镜像; +* `cp`:在容器和本地宿主系统之间复制文件中; +* `create`:创建一个新容器,但并不运行它; +* `diff`:检查一个容器内文件系统的修改,包括修改和增加; +* `events`:从服务端获取实时的事件; +* `exec`:在运行的容器内执行命令; +* `export`:导出容器内容为一个 `tar` 包; +* `history`:显示一个镜像的历史信息; +* `images`:列出存在的镜像; +* `import`:导入一个文件(典型为 `tar` 包)路径或目录来创建一个本地镜像; +* `info`:显示一些相关的系统信息; +* `inspect`:显示一个容器的具体配置信息; +* `kill`:关闭一个运行中的容器 (包括进程和所有相关资源); +* `load`:从一个 tar 包中加载一个镜像; +* `login`:注册或登录到一个 Docker 的仓库服务器; +* `logout`:从 Docker 的仓库服务器登出; +* `logs`:获取容器的 log 信息; +* `network`:管理 Docker 的网络,包括查看、创建、删除、挂载、卸载等; +* `node`:管理 swarm 集群中的节点,包括查看、更新、删除、提升/取消管理节点等; +* `pause`:暂停一个容器中的所有进程; +* `port`:查找一个 nat 到一个私有网口的公共口; +* `ps`:列出主机上的容器; +* `pull`:从一个Docker的仓库服务器下拉一个镜像或仓库; +* `push`:将一个镜像或者仓库推送到一个 Docker 的注册服务器; +* `rename`:重命名一个容器; +* `restart`:重启一个运行中的容器; +* `rm`:删除给定的若干个容器; +* `rmi`:删除给定的若干个镜像; +* `run`:创建一个新容器,并在其中运行给定命令; +* `save`:保存一个镜像为 tar 包文件; +* `search`:在 Docker index 中搜索一个镜像; +* `service`:管理 Docker 所启动的应用服务,包括创建、更新、删除等; +* `start`:启动一个容器; +* `stats`:输出(一个或多个)容器的资源使用统计信息; +* `stop`:终止一个运行中的容器; +* `swarm`:管理 Docker swarm 集群,包括创建、加入、退出、更新等; +* `tag`:为一个镜像打标签; +* `top`:查看一个容器中的正在运行的进程信息; +* `unpause`:将一个容器内所有的进程从暂停状态中恢复; +* `update`:更新指定的若干容器的配置信息; +* `version`:输出 Docker 的版本信息; +* `volume`:管理 Docker volume,包括查看、创建、删除等; +* `wait`:阻塞直到一个容器终止,然后输出它的退出符。 + +## 一张图总结 Docker 的命令 +![Docker 命令总结](../_images/cmd_logic.png) + +## 参考 + +* [官方文档](https://docs.docker.com/engine/reference/commandline/cli/) diff --git a/appendix/command/dockerd.md b/appendix/command/dockerd.md new file mode 100644 index 000000000..7b30c7989 --- /dev/null +++ b/appendix/command/dockerd.md @@ -0,0 +1,58 @@ +# 服务端命令(dockerd) + +## dockerd 命令选项 + +* `--api-cors-header=""`:CORS 头部域,默认不允许 CORS,要允许任意的跨域访问,可以指定为 "*"; +* `--authorization-plugin=""`:载入认证的插件; +* `-b=""`:将容器挂载到一个已存在的网桥上。指定为 `none` 时则禁用容器的网络,与 `--bip` 选项互斥; +* `--bip=""`:让动态创建的 `docker0` 网桥采用给定的 CIDR 地址; 与 `-b` 选项互斥; +* `--cgroup-parent=""`:指定 cgroup 的父组,默认 fs cgroup 驱动为 `/docker`,systemd cgroup 驱动为 `system.slice`; +* `--cluster-store=""`:构成集群(如 `Swarm`)时,集群键值数据库服务地址; +* `--cluster-advertise=""`:构成集群时,自身的被访问地址,可以为 `host:port` 或 `interface:port`; +* `--cluster-store-opt=""`:构成集群时,键值数据库的配置选项; +* `--config-file="/etc/docker/daemon.json"`:daemon 配置文件路径; +* `--containerd=""`:containerd 文件的路径; +* `-D, --debug=true|false`:是否使用 Debug 模式。缺省为 false; +* `--default-gateway=""`:容器的 IPv4 网关地址,必须在网桥的子网段内; +* `--default-gateway-v6=""`:容器的 IPv6 网关地址; +* `--default-ulimit=[]`:默认的 ulimit 值; +* `--disable-legacy-registry=true|false`:是否允许访问旧版本的镜像仓库服务器; +* `--dns=""`:指定容器使用的 DNS 服务器地址; +* `--dns-opt=""`:DNS 选项; +* `--dns-search=[]`:DNS 搜索域; +* `--exec-opt=[]`:运行时的执行选项; +* `--exec-root=""`:容器执行状态文件的根路径,默认为 `/var/run/docker`; +* `--fixed-cidr=""`:限定分配 IPv4 地址范围; +* `--fixed-cidr-v6=""`:限定分配 IPv6 地址范围; +* `-G, --group=""`:分配给 unix 套接字的组,默认为 `docker`; +* `-g, --graph=""`:Docker 运行时的根路径,默认为 `/var/lib/docker`; +* `-H, --host=[]`:指定命令对应 Docker daemon 的监听接口,可以为 unix 套接字 `unix:///path/to/socket`,文件句柄 `fd://socketfd` 或 tcp 套接字 `tcp://[host[:port]]`,默认为 `unix:///var/run/docker.sock`; +* `--icc=true|false`:是否启用容器间以及跟 daemon 所在主机的通信。默认为 true。 +* `--insecure-registry=[]`:允许访问给定的非安全仓库服务; +* `--ip=""`:绑定容器端口时候的默认 IP 地址。缺省为 `0.0.0.0`; +* `--ip-forward=true|false`:是否检查启动在 Docker 主机上的启用 IP 转发服务,默认开启。注意关闭该选项将不对系统转发能力进行任何检查修改; +* `--ip-masq=true|false`:是否进行地址伪装,用于容器访问外部网络,默认开启; +* `--iptables=true|false`:是否允许 Docker 添加 iptables 规则。缺省为 true; +* `--ipv6=true|false`:是否启用 IPv6 支持,默认关闭; +* `-l, --log-level="debug|info|warn|error|fatal"`:指定日志输出级别; +* `--label="[]"`:添加指定的键值对标注; +* `--log-driver="json-file|syslog|journald|gelf|fluentd|awslogs|splunk|etwlogs|gcplogs|none"`:指定日志后端驱动,默认为 `json-file`; +* `--log-opt=[]`:日志后端的选项; +* `--mtu=VALUE`:指定容器网络的 `mtu`; +* `-p=""`:指定 daemon 的 PID 文件路径。缺省为 `/var/run/docker.pid`; +* `--raw-logs`:输出原始,未加色彩的日志信息; +* `--registry-mirror=://`:指定 `docker pull` 时使用的注册服务器镜像地址; +* `-s, --storage-driver=""`:指定使用给定的存储后端; +* `--selinux-enabled=true|false`:是否启用 SELinux 支持。缺省值为 false。SELinux 目前尚不支持 overlay 存储驱动; +* `--storage-opt=[]`:驱动后端选项; +* `--tls=true|false`:是否对 Docker daemon 启用 TLS 安全机制,默认为否; +* `--tlscacert=/.docker/ca.pem`:TLS CA 签名的可信证书文件路径; +* `--tlscert=/.docker/cert.pem`:TLS 可信证书文件路径; +* `--tlscert=/.docker/key.pem`:TLS 密钥文件路径; +* `--tlsverify=true|false`:启用 TLS 校验,默认为否; +* `--userland-proxy=true|false`:是否使用用户态代理来实现容器间和出容器的回环通信,默认为 true; +* `--userns-remap=default|uid:gid|user:group|user|uid`:指定容器的用户命名空间,默认是创建新的 UID 和 GID 映射到容器内进程。 + +## 参考 + +* [官方文档](https://docs.docker.com/engine/reference/commandline/dockerd/) From e1961d62eb33f56188300299ebc53f034f97a6d4 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 14 Nov 2019 09:22:06 +0800 Subject: [PATCH 442/611] Fixed 404 link Signed-off-by: Kang HuaiShuai --- underly/container_format.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/underly/container_format.md b/underly/container_format.md index 94944a8fc..983992538 100644 --- a/underly/container_format.md +++ b/underly/container_format.md @@ -1,5 +1,5 @@ # 容器格式 -最初,Docker 采用了 `LXC` 中的容器格式。从 0.7 版本以后开始去除 LXC,转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 1.11 开始,则进一步演进为使用 [runC](https://github.com/opencontainers/runc) 和 [containerd](https://containerd.tools/)。 +最初,Docker 采用了 `LXC` 中的容器格式。从 0.7 版本以后开始去除 LXC,转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 1.11 开始,则进一步演进为使用 [runC](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 对更多容器格式的支持,还在进一步的发展中。 From fde5496bb838823b6a62b3db86101ca02f80b29a Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Fri, 15 Nov 2019 11:01:25 +0800 Subject: [PATCH 443/611] Update kubernetes Signed-off-by: Kang HuaiShuai --- .vuepress/config.js | 17 +++++++++++++++-- SUMMARY.md | 7 ++++--- kubernetes/{kubectl.md => kubectl/README.md} | 1 + kubernetes/setup/README.md | 9 +++++++++ kubernetes/{quickstart.md => setup/docker.md} | 4 ++-- kubernetes/setup/k3s.md | 0 kubernetes/setup/kind.md | 0 underly/ufs.md | 2 +- 8 files changed, 32 insertions(+), 8 deletions(-) rename kubernetes/{kubectl.md => kubectl/README.md} (99%) create mode 100644 kubernetes/setup/README.md rename kubernetes/{quickstart.md => setup/docker.md} (94%) create mode 100644 kubernetes/setup/k3s.md create mode 100644 kubernetes/setup/kind.md diff --git a/.vuepress/config.js b/.vuepress/config.js index b20b65199..287ce3397 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -71,10 +71,23 @@ module.exports = { ], '/kubernetes/': [ 'intro', - 'quickstart', 'concepts', - 'kubectl', 'design', + { + title: "部署 Kubernetes", + collapsable: false, + children: [ + "setup/", + "setup/docker", + ] + }, + { + title: "Kubernetes 命令行 kubectl", + collapsable:false, + children: [ + 'kubectl/' + ] + } ], '/compose/': [ 'introduction', diff --git a/SUMMARY.md b/SUMMARY.md index 0ca744407..5229ed586 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -116,12 +116,13 @@ * [CoreOS 项目](coreos/README.md) * [简介](coreos/intro.md) * [工具](coreos/intro_tools.md) -* [Kubernetes 项目](kubernetes/README.md) +* [Kubernetes - 开源容器编排引擎](kubernetes/README.md) * [简介](kubernetes/intro.md) - * [快速上手](kubernetes/quickstart.md) * [基本概念](kubernetes/concepts.md) - * [kubectl 使用](kubernetes/kubectl.md) * [架构设计](kubernetes/design.md) +* [部署 Kubernetes](kubernetes/setup/README.md) + * [使用 Docker 容器部署](kubernetes/setup/docker.md) +* [Kubernetes 命令行 kubectl](kubernetes/kubectl/README.md) * [容器与云计算](cloud/README.md) * [简介](cloud/intro.md) * [亚马逊云](cloud/aws.md) diff --git a/kubernetes/kubectl.md b/kubernetes/kubectl/README.md similarity index 99% rename from kubernetes/kubectl.md rename to kubernetes/kubectl/README.md index 5fd34079e..19e16a9ff 100644 --- a/kubernetes/kubectl.md +++ b/kubernetes/kubectl/README.md @@ -1,4 +1,5 @@ # kubectl 使用 + [kubectl](https://github.com/kubernetes/kubernetes) 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes。 使用格式有两种: diff --git a/kubernetes/setup/README.md b/kubernetes/setup/README.md new file mode 100644 index 000000000..1cb311e25 --- /dev/null +++ b/kubernetes/setup/README.md @@ -0,0 +1,9 @@ +# 部署 Kubernetes + +目前,Kubernetes 支持在多种环境下使用,包括本地主机(Fedora)、云服务(Google GAE、AWS 等)。 + +你可以使用以下几种方式部署 Kubernetes: + +* Docker 容器 + +接下来的小节会对以上几种方式进行详细介绍。 diff --git a/kubernetes/quickstart.md b/kubernetes/setup/docker.md similarity index 94% rename from kubernetes/quickstart.md rename to kubernetes/setup/docker.md index a68f2fd44..6f27a7570 100644 --- a/kubernetes/quickstart.md +++ b/kubernetes/setup/docker.md @@ -1,6 +1,6 @@ -# 快速上手 +# 使用 Docker 容器部署 Kubernetes -目前,Kubernetes 支持在多种环境下的安装,包括本地主机(Fedora)、云服务(Google GAE、AWS 等)。然而最快速体验 Kubernetes 的方式显然是本地通过 Docker 的方式来启动相关进程。 +最快速体验 Kubernetes 的方式就是在本地通过 Docker 的方式来启动相关进程。 下图展示了在单节点使用 Docker 快速部署一套 Kubernetes 的拓扑。 diff --git a/kubernetes/setup/k3s.md b/kubernetes/setup/k3s.md new file mode 100644 index 000000000..e69de29bb diff --git a/kubernetes/setup/kind.md b/kubernetes/setup/kind.md new file mode 100644 index 000000000..e69de29bb diff --git a/underly/ufs.md b/underly/ufs.md index 78d0bd586..cbc4f87a5 100644 --- a/underly/ufs.md +++ b/underly/ufs.md @@ -19,4 +19,4 @@ Docker 目前支持的联合文件系统包括 `OverlayFS`, `AUFS`, `Btrfs`, `VF |Docker CE on CentOS | `overlay2` | |Docker CE on Fedora | `overlay2` | -在可能的情况下,推荐使用 `overlay2` 存储驱动,`overlay2` 是目前 Docker 默认的存储驱动,以前则是 `aufs`。你可以通过配置来使用以上提到的其他类型的存储驱动。 +在可能的情况下,[推荐](https://docs.docker.com/storage/storagedriver/select-storage-driver/) 使用 `overlay2` 存储驱动,`overlay2` 是目前 Docker 默认的存储驱动,以前则是 `aufs`。你可以通过配置来使用以上提到的其他类型的存储驱动。 From e02f015a23486441ebbe9d7275b1cf80841054b3 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 18 Nov 2019 22:32:44 +0800 Subject: [PATCH 444/611] Fixed #430 --- image/dockerfile/env.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/dockerfile/env.md b/image/dockerfile/env.md index f55d567d8..f3d4430cb 100644 --- a/image/dockerfile/env.md +++ b/image/dockerfile/env.md @@ -30,6 +30,6 @@ RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux- 在这里先定义了环境变量 `NODE_VERSION`,其后的 `RUN` 这层里,多次使用 `$NODE_VERSION` 来进行操作定制。可以看到,将来升级镜像构建版本的时候,只需要更新 `7.2.0` 即可,`Dockerfile` 构建维护变得更轻松了。 -下列指令可以支持环境变量展开: `ADD`、`COPY`、`ENV`、`EXPOSE`、`LABEL`、`USER`、`WORKDIR`、`VOLUME`、`STOPSIGNAL`、`ONBUILD`。 +下列指令可以支持环境变量展开: `ADD`、`COPY`、`ENV`、`EXPOSE`、`FROM`、`LABEL`、`USER`、`WORKDIR`、`VOLUME`、`STOPSIGNAL`、`ONBUILD`、`RUN`。 可以从这个指令列表里感觉到,环境变量可以使用的地方很多,很强大。通过环境变量,我们可以让一份 `Dockerfile` 制作更多的镜像,只需使用不同的环境变量即可。 From c574178a02eccc40919e352a3bcb2e3781defd15 Mon Sep 17 00:00:00 2001 From: loopever Date: Tue, 26 Nov 2019 18:56:12 +0800 Subject: [PATCH 445/611] =?UTF-8?q?Fix=20issue=20#431:=20AUFS=E5=85=A8?= =?UTF-8?q?=E7=A7=B0=E4=BF=AE=E6=94=B9=E4=B8=BAWikipedia=E7=9A=84=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- underly/ufs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/underly/ufs.md b/underly/ufs.md index cbc4f87a5..9b3ed1237 100644 --- a/underly/ufs.md +++ b/underly/ufs.md @@ -6,7 +6,7 @@ 另外,不同 Docker 容器就可以共享一些基础的文件系统层,同时再加上自己独有的改动层,大大提高了存储的效率。 -Docker 中使用的 AUFS(AnotherUnionFS)就是一种联合文件系统。 `AUFS` 支持为每一个成员目录(类似 Git 的分支)设定只读(readonly)、读写(readwrite)和写出(whiteout-able)权限, 同时 `AUFS` 里有一个类似分层的概念, 对只读权限的分支可以逻辑上进行增量地修改(不影响只读部分的)。 +Docker 中使用的 AUFS(Advanced Multi-Layered Unification Filesystem)就是一种联合文件系统。 `AUFS` 支持为每一个成员目录(类似 Git 的分支)设定只读(readonly)、读写(readwrite)和写出(whiteout-able)权限, 同时 `AUFS` 里有一个类似分层的概念, 对只读权限的分支可以逻辑上进行增量地修改(不影响只读部分的)。 Docker 目前支持的联合文件系统包括 `OverlayFS`, `AUFS`, `Btrfs`, `VFS`, `ZFS` 和 `Device Mapper`。 From 83619ad6e307537ef0d9ca3bec2a887ebd35e18e Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Fri, 29 Nov 2019 23:16:18 +0800 Subject: [PATCH 446/611] [Public] coding.net domain is *.mirror.docker-practice.com Signed-off-by: Kang HuaiShuai --- .github/workflows/ci.yaml | 3 +++ .vuepress/config.js | 2 +- SUMMARY.md | 4 ++-- install/experimental.md | 6 +++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4cfaecefe..96f5b8331 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -33,6 +33,9 @@ jobs: PCIT_MESSAGE: Sync from yeasy/docker_practice@${{github.sha}} by PCIT PCIT_TARGET_BRANCH: master PCIT_USERNAME: khs1994 + - name: Set coding.net CNAME + run: | + echo "vuepress.mirror.docker-practice.com" > .vuepress/dist/CNAME - name: Upload Vuepress dist to coding.net uses: docker://pcit/pages if: github.repository == 'docker-practice/docker_practice' diff --git a/.vuepress/config.js b/.vuepress/config.js index 287ce3397..233b875ac 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -3,7 +3,7 @@ module.exports = { base: '/', themeConfig: { docsRepo: 'yeasy/docker_practice', - docsDir: '/vuepress', + docsDir: '/', editLinks: true, nav: [{ text: '安装 Docker', diff --git a/SUMMARY.md b/SUMMARY.md index 5229ed586..b9e83ba4c 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -129,13 +129,13 @@ * [腾讯云](cloud/tencentCloud.md) * [阿里云](cloud/alicloud.md) * [小结](cloud/summary.md) -* [实战案例-操作系统](cases/os/README.md) +* [实战案例 - 操作系统](cases/os/README.md) * [Busybox](cases/os/busybox.md) * [Alpine](cases/os/alpine.md) * [Debian Ubuntu](cases/os/debian.md) * [CentOS Fedora](cases/os/centos.md) * [本章小结](cases/os/summary.md) -* [实战案例-CI/CD](cases/ci/README.md) +* [实战案例 - CI/CD](cases/ci/README.md) * [GitHub Actions](cases/ci/actions/README.md) * [Drone](cases/ci/drone/README.md) * [部署 Drone](cases/ci/drone/install.md) diff --git a/install/experimental.md b/install/experimental.md index f4f6895e2..037ea40d3 100644 --- a/install/experimental.md +++ b/install/experimental.md @@ -23,7 +23,11 @@ $ export DOCKER_CLI_EXPERIMENTAL=enabled **Windows** ```powershell -$ set $env:DOCKER_CLI_EXPERIMENTAL=enabled +# 临时生效 +$ set $env:DOCKER_CLI_EXPERIMENTAL="enabled" + +# 永久生效 +$ [environment]::SetEnvironmentvariable("DOCKER_CLI_EXPERIMENTAL","enabled","User") ``` ## 开启 Dockerd 的实验特性 From a85ae7da1e1cb46b7afaee9001df749538a3a4f8 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Sun, 1 Dec 2019 10:12:14 +0800 Subject: [PATCH 447/611] Fixed buildx --- buildx/multi-arch-images.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/buildx/multi-arch-images.md b/buildx/multi-arch-images.md index d423dfc8b..4a6a2c02e 100644 --- a/buildx/multi-arch-images.md +++ b/buildx/multi-arch-images.md @@ -15,9 +15,7 @@ $ docker run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd44 由于 Docker 默认的 `builder` 实例不支持同时指定多个 `--platform`,我们必须首先创建一个新的 `builder` 实例。 ```bash -# $ docker buildx create --name mybuilder - -$ docker buildx create --name=mybuilder --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master +$ docker buildx create --name mybuilder --driver docker-container $ docker buildx use mybuilder ``` From 0ac24829e1f0673f9202c2fa39ea1481e8ba5b8c Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Mon, 9 Dec 2019 12:21:52 +0800 Subject: [PATCH 448/611] Add enable kubernetes on docker-sektop,close #262 Signed-off-by: Kang HuaiShuai --- .vuepress/config.js | 1 + SUMMARY.md | 1 + kubernetes/setup/docker-desktop.md | 23 +++++++++++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 kubernetes/setup/docker-desktop.md diff --git a/.vuepress/config.js b/.vuepress/config.js index 233b875ac..79320dfce 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -79,6 +79,7 @@ module.exports = { children: [ "setup/", "setup/docker", + "setup/docker-desktop", ] }, { diff --git a/SUMMARY.md b/SUMMARY.md index b9e83ba4c..6aa8439dd 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -122,6 +122,7 @@ * [架构设计](kubernetes/design.md) * [部署 Kubernetes](kubernetes/setup/README.md) * [使用 Docker 容器部署](kubernetes/setup/docker.md) + * [在 Docker Desktop 使用](kubernetes/setup/docker-desktop.md) * [Kubernetes 命令行 kubectl](kubernetes/kubectl/README.md) * [容器与云计算](cloud/README.md) * [简介](cloud/intro.md) diff --git a/kubernetes/setup/docker-desktop.md b/kubernetes/setup/docker-desktop.md new file mode 100644 index 000000000..20040087c --- /dev/null +++ b/kubernetes/setup/docker-desktop.md @@ -0,0 +1,23 @@ +# Docker Desktop 启用 Kubernetes + +使用 Docker Desktop 可以很方便的启用 Kubernetes,由于国内获取不到 `k8s.gcr.io` 镜像,我们必须首先解决这一问题。 + +## 获取 `k8s.gcr.io` 镜像 + +我们可以先从国内镜像 `gcr.azk8s.cn` 拉取镜像,再通过 `$ docker tag` 命令重新将镜像标记为 `k8s.gcr.io` 镜像。 + +开源项目 [AliyunContainerService/k8s-for-docker-desktop](https://github.com/AliyunContainerService/k8s-for-docker-desktop) 使用 `powershell` 或 `shell` 脚本简化了以上步骤,建议读者使用该开源项目获取 `k8s.gcr.io` 镜像。 + +## 启用 Kubernetes + +在 Docker Desktop 设置页面,点击 `Kubernetes`,选择 `Enable Kubernetes`,稍等片刻,看到左下方 `Kubernetes` 变为 `running`,Kubernetes 启动成功。 + +![](https://github.com/AliyunContainerService/k8s-for-docker-desktop/raw/master/images/k8s.png) + +## 测试 + +```bash +$ kubectl version +``` + +如果正常输出信息,则证明 Kubernetes 成功启动。 From a601a83c0e5ed278dd61107d0c62e097ee7aedfb Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Mon, 9 Dec 2019 13:40:10 +0800 Subject: [PATCH 449/611] Update vuepress Signed-off-by: Kang HuaiShuai --- .github/workflows/ci.yaml | 4 +- .gitignore | 3 + .vuepress/config.js | 199 +++++++++++++++++++++---------------- kubernetes/setup/docker.md | 2 +- package.json | 28 ++++++ 5 files changed, 150 insertions(+), 86 deletions(-) create mode 100644 package.json diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 96f5b8331..dab00ad02 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,7 +19,9 @@ jobs: - name: vuepress run: | sudo rm -rf _book - npx vuepress build + npm i vuepress --save-dev + npm i + npm run vuepress:build echo "vuepress.docker-practice.com" > .vuepress/dist/CNAME - name: Upload Vuepress dist uses: docker://pcit/pages diff --git a/.gitignore b/.gitignore index 5bd7cae1d..4d197531a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,8 @@ _book/ *.swp *.edx .DS_Store + node_modules/ +package-lock.json + .vuepress/dist diff --git a/.vuepress/config.js b/.vuepress/config.js index 79320dfce..9edef45f9 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -1,58 +1,89 @@ module.exports = { title: 'Docker 从入门到实践', base: '/', + head: [['script', {}, ` + var _hmt = _hmt || []; + (function() { + var hm = document.createElement("script"); + hm.src = "//hm.baidu.com/hm.js?81a3490c9cd141dbcf6d00bc18b6edae"; + var s = document.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(hm, s); + })(); +`], + [ + 'script', {}, ` + (function(){ + var bp = document.createElement('script'); + var curProtocol = window.location.protocol.split(':')[0]; + if (curProtocol === 'https') { + bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; + } + else { + bp.src = 'http://push.zhanzhang.baidu.com/push.js'; + } + var s = document.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(bp, s); +})(); + ` + ] + ], + plugins: { + sitemap: { + hostname: 'https://vuepress.mirror.docker-practice.com' + }, + }, themeConfig: { docsRepo: 'yeasy/docker_practice', docsDir: '/', editLinks: true, nav: [{ - text: '安装 Docker', - link: '/install/', - }, - { - text: 'Docker 入门', - link: '/' - }, - { - text: 'Docker 实战', - link: '/cases/os/' - }, - { - text: 'CI/CD', - link: '/cases/ci/' - }, - { - text: 'Docker 仓库', - link: '/repository/' - }, - { - text: '底层实现', - link: '/underly/', - }, - { - text: 'Compose', - link: '/compose/', - }, - { - text: 'Kubernetes', - link: '/kubernetes/', - }, - { - text: "云计算", - link: "/cloud/", - }, - { - text: 'GitHub', - link: 'https://github.com/yeasy/docker_practice' - }, - // { - // text: '捐赠', - // link: '' - // }, - { - text: '腾讯云容器服务', - link: 'https://cloud.tencent.com/redirect.php?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61' - }, + text: '安装 Docker', + link: '/install/', + }, + { + text: 'Docker 入门', + link: '/' + }, + { + text: 'Docker 实战', + link: '/cases/os/' + }, + { + text: 'CI/CD', + link: '/cases/ci/' + }, + { + text: 'Docker 仓库', + link: '/repository/' + }, + { + text: '底层实现', + link: '/underly/', + }, + { + text: 'Compose', + link: '/compose/', + }, + { + text: 'Kubernetes', + link: '/kubernetes/', + }, + { + text: "云计算", + link: "/cloud/", + }, + { + text: 'GitHub', + link: 'https://github.com/yeasy/docker_practice' + }, + // { + // text: '捐赠', + // link: '' + // }, + { + text: '腾讯云容器服务', + link: 'https://cloud.tencent.com/redirect.php?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61' + }, // { // text: '语言', // items: [{ @@ -84,7 +115,7 @@ module.exports = { }, { title: "Kubernetes 命令行 kubectl", - collapsable:false, + collapsable: false, children: [ 'kubectl/' ] @@ -101,23 +132,23 @@ module.exports = { 'wordpress', ], '/install/': [ - 'ubuntu', - 'debian', - 'fedora', - 'centos', - 'raspberry-pi', - 'mac', - 'windows', - 'mirror', - 'experimental', + 'ubuntu', + 'debian', + 'fedora', + 'centos', + 'raspberry-pi', + 'mac', + 'windows', + 'mirror', + 'experimental', ], '/underly/': [ - 'arch', - 'namespace', - 'cgroups', - 'ufs', - 'container_format', - 'network', + 'arch', + 'namespace', + 'cgroups', + 'ufs', + 'container_format', + 'network', ], '/repository/': [ 'dockerhub', @@ -128,7 +159,7 @@ module.exports = { '/cases/os/': [ { title: "操作系统", - collapsable:false, + collapsable: false, children: [ 'busybox', 'alpine', @@ -162,7 +193,7 @@ module.exports = { '/', '/CHANGELOG', '/CONTRIBUTING', - { + { title: "Docker 简介", collapsable: false, children: [ @@ -170,7 +201,7 @@ module.exports = { 'introduction/what', 'introduction/why', ] - },{ + }, { title: "基本概念", collapsable: false, children: [ @@ -216,7 +247,7 @@ module.exports = { 'image/multistage-builds/laravel', 'image/manifest', ] - },{ + }, { title: "操作容器", collapsable: false, children: [ @@ -231,25 +262,25 @@ module.exports = { }, { title: "数据管理", - collapsable:false, + collapsable: false, children: [ 'data_management/', 'data_management/volume', 'data_management/bind-mounts', ], - },{ - title: "使用网络", - collapsable:false, - children: [ - 'network/', - 'network/port_mapping', - 'network/linking', - 'network/dns', - ], + }, { + title: "使用网络", + collapsable: false, + children: [ + 'network/', + 'network/port_mapping', + 'network/linking', + 'network/dns', + ], }, { title: "高级网络配置", - collapsable:false, + collapsable: false, children: [ 'advanced_network/', 'advanced_network/quick_guide', @@ -263,7 +294,7 @@ module.exports = { }, { title: "Swarm mode", - collapsable:false, + collapsable: false, children: [ 'swarm_mode/', 'swarm_mode/overview', @@ -300,7 +331,7 @@ module.exports = { }, { title: "Etcd", - collapsable:false, + collapsable: false, children: [ 'etcd/', 'etcd/intro', @@ -320,10 +351,10 @@ module.exports = { }, { title: "Docker 开源项目", - collapsable:false, - children:[ - 'opensource/', - 'opensource/linuxkit', + collapsable: false, + children: [ + 'opensource/', + 'opensource/linuxkit', ], }, 'appendix/faq/', diff --git a/kubernetes/setup/docker.md b/kubernetes/setup/docker.md index 6f27a7570..fede4556e 100644 --- a/kubernetes/setup/docker.md +++ b/kubernetes/setup/docker.md @@ -8,7 +8,7 @@ Kubernetes 依赖 Etcd 服务来维护所有主节点的状态。 -## 启动 Etcd 服务。 +## 启动 Etcd 服务 ```bash docker run --net=host -d gcr.io/google_containers/etcd:2.0.9 /usr/local/bin/etcd --addr=127.0.0.1:4001 --bind-addr=0.0.0.0:4001 --data-dir=/var/etcd/data diff --git a/package.json b/package.json new file mode 100644 index 000000000..66a88fc12 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "docker_practice", + "version": "1.0.0", + "description": "docker_practice", + "main": "index.js", + "dependencies": {}, + "devDependencies": { + "chalk": "^3.0.0", + "commander": "^4.0.1", + "esm": "^3.2.25", + "vuepress-plugin-container": "^2.1.2", + "vuepress-plugin-sitemap": "^2.3.1" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "vuepress:build": "npx vuepress build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/yeasy/docker_practice.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/yeasy/docker_practice/issues" + }, + "homepage": "https://github.com/yeasy/docker_practice#readme" +} From f940d22950dc401378c2d8e3b41d4e0c16db4cac Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Mon, 9 Dec 2019 14:28:18 +0800 Subject: [PATCH 450/611] Add CODEOWNERS * https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners Signed-off-by: Kang HuaiShuai --- .github/CODEOWNERS | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..fb7faa903 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,40 @@ +* @yeasy @khs1994 +/.github/* @khs1994 +/.travis/* @khs1994 +/.vuepress/* @khs1994 +/advanced_network/* @yeasy @khs1994 +/appendix/* @yeasy @khs1994 +/archive/* @khs1994 +/basic_concept/* @yeasy @khs1994 +/buildx/* @khs1994 +/cases/* @yeasy @khs1994 +/cloud/* @khs1994 +/compose/* @yeasy @khs1994 +/container/* @yeasy @khs1994 +/coreos/* @khs1994 +/data_management/* @khs1994 +/etcd/* @khs1994 +/IDE/* @khs1994 +/image/* @yeasy @khs1994 +/install/* @khs1994 +/introduction/* @yeasy @khs1994 +/kubernetes/* @yeasy @khs1994 +/network/* @yeasy @khs1994 +/opensource/* @khs1994 +/repository/* @khs1994 +/security/* @yeasy @khs1994 +/underly/* @yeasy @khs1994 +/.drone.yml @khs1994 +/.editorconfig/ @khs1994 +/.gitattributes @khs1994 +/.gitignore @khs1994 +/.travis.yml @khs1994 +/_config.yml @yeasy @khs1994 +/book.json @yeasy @khs1994 +/CHANGELOG.md @yeasy @khs1994 +/CONTRIBUTING.md @yeasy @khs1994 +/docker-compose.yml @khs1994 +/manifest @khs1994 +/package.json @khs1994 +/README.md @yeasy @khs1994 +/SUMMARY.md @yeasy @khs1994 From fbfab11293fe976cc09257742f5b20c4a7a3cdd8 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Mon, 9 Dec 2019 15:05:06 +0800 Subject: [PATCH 451/611] Update registry mirror Signed-off-by: Kang HuaiShuai --- install/mirror.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install/mirror.md b/install/mirror.md index b999b0505..8cfb8fba2 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -4,9 +4,9 @@ * [Azure 中国镜像 `https://dockerhub.azk8s.cn`](https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md#22-container-registry-proxy) * [阿里云加速器(需登录账号获取)](https://cr.console.aliyun.com/cn-hangzhou/mirrors) -* [七牛云加速器 `https://reg-mirror.qiniu.com`](https://kirk-enterprise.github.io/hub-docs/#/user-guide/mirror) +* [网易云加速器 `https://hub-mirror.c.163.com`](https://www.163yun.com/help/documents/56918246390157312) -> 由于镜像服务可能出现宕机,建议同时配置多个镜像。 +> 由于镜像服务可能出现宕机,建议同时配置多个镜像。各个镜像站测试结果请到 [docker-practice/docker-registry-cn-mirror-test](https://github.com/docker-practice/docker-registry-cn-mirror-test/actions) 查看。 > 国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档。 @@ -20,7 +20,7 @@ { "registry-mirrors": [ "https://dockerhub.azk8s.cn", - "https://reg-mirror.qiniu.com" + "https://hub-mirror.c.163.com" ] } ``` @@ -44,7 +44,7 @@ $ sudo systemctl restart docker { "registry-mirrors": [ "https://dockerhub.azk8s.cn", - "https://reg-mirror.qiniu.com" + "https://hub-mirror.c.163.com" ] } ``` @@ -57,7 +57,7 @@ $ sudo systemctl restart docker { "registry-mirrors": [ "https://dockerhub.azk8s.cn", - "https://reg-mirror.qiniu.com" + "https://hub-mirror.c.163.com" ] } ``` From 3ba77a747084c30e2a113dabb6abd25b30b1bdc5 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Mon, 9 Dec 2019 20:46:21 +0800 Subject: [PATCH 452/611] Drone agent use drone/drone-runner-docker:1 Signed-off-by: Kang HuaiShuai --- README.md | 3 +-- cases/ci/drone/docker-compose.yml | 2 +- cases/ci/drone/install.md | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index afdcbad16..649514f26 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,9 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 -* 在线阅读:[docker-practice.com](https://docker-practice.com/),[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md),[GitBook 国内镜像](https://docker_practice.gitee.io/zh-cn),[GitBook 英文版国内镜像](https://docker_practice.gitee.io/us-en),[国内镜像](https://github.com/yeasy/docker_practice/wiki/%E9%A1%B9%E7%9B%AE%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F), [新版 GitBook](https://gitbook.docker-practice.com/) +* 在线阅读:[docker-practice.com](https://docker-practice.com/),[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD),[epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) * [离线阅读 `$ docker run -it --rm -p 4000:80 dockerpracticesig/docker_practice`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) -* [英文翻译](https://github.com/yeasy/docker_practice/issues/363) Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新稳定版本的 Docker 进行学习实践。欢迎 [参与项目维护](CONTRIBUTING.md)。 diff --git a/cases/ci/drone/docker-compose.yml b/cases/ci/drone/docker-compose.yml index d183b208a..8ef416bad 100644 --- a/cases/ci/drone/docker-compose.yml +++ b/cases/ci/drone/docker-compose.yml @@ -21,7 +21,7 @@ services: - DRONE_GITHUB_CLIENT_SECRET=${DRONE_GITHUB_CLIENT_SECRET} drone-agent: - image: drone/agent:1 + image: drone/drone-runner-docker:1 restart: always depends_on: - drone-server diff --git a/cases/ci/drone/install.md b/cases/ci/drone/install.md index 18d3b7941..3d94ee5c1 100644 --- a/cases/ci/drone/install.md +++ b/cases/ci/drone/install.md @@ -48,7 +48,7 @@ services: - DRONE_GITHUB_CLIENT_SECRET=${DRONE_GITHUB_CLIENT_SECRET} drone-agent: - image: drone/agent:1 + image: drone/drone-runner-docker:1 restart: always depends_on: - drone-server From 2092debcc038eed0edfbb9b4dc3b4b5524ff3851 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Mon, 9 Dec 2019 21:00:18 +0800 Subject: [PATCH 453/611] [Cloud] Remove docker cloud Signed-off-by: Kang HuaiShuai --- .vuepress/config.js | 2 +- SUMMARY.md | 2 +- cloud/README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.vuepress/config.js b/.vuepress/config.js index 9edef45f9..d6c2bd8cf 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -95,9 +95,9 @@ module.exports = { sidebar: { '/cloud/': [ 'intro', - 'aws', 'tencentCloud', 'alicloud', + 'aws', 'summary', ], '/kubernetes/': [ diff --git a/SUMMARY.md b/SUMMARY.md index 6aa8439dd..54fb47232 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -126,9 +126,9 @@ * [Kubernetes 命令行 kubectl](kubernetes/kubectl/README.md) * [容器与云计算](cloud/README.md) * [简介](cloud/intro.md) - * [亚马逊云](cloud/aws.md) * [腾讯云](cloud/tencentCloud.md) * [阿里云](cloud/alicloud.md) + * [亚马逊云](cloud/aws.md) * [小结](cloud/summary.md) * [实战案例 - 操作系统](cases/os/README.md) * [Busybox](cases/os/busybox.md) diff --git a/cloud/README.md b/cloud/README.md index 2fa6e02d1..44e994c22 100644 --- a/cloud/README.md +++ b/cloud/README.md @@ -2,4 +2,4 @@ Docker 目前已经得到了众多公有云平台的支持,并成为除虚拟机之外的核心云业务。 -除了 AWS、Google、Azure、Docker 官方云服务等,国内的各大公有云厂商,基本上都同时支持了虚拟机服务和容器服务,甚至还专门推出了容器云业务。 \ No newline at end of file +除了 AWS、Google、Azure 等,国内的各大公有云厂商,基本上都同时支持了虚拟机服务和基于 Kubernetes 的容器云业务。有的还推出了 [容器实例服务](https://cloud.tencent.com/act/cps/redirect?redirect=10230&cps_key=3a5255852d5db99dcd5da4c72f05df61) 让用户在云上快捷、灵活的部署 Docker 容器。 From 59317624bba0c719d6137a5b530c6dea73643c90 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 22 Dec 2019 10:34:52 +0800 Subject: [PATCH 454/611] Update link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 649514f26..30be2bf8b 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 -* 在线阅读:[docker-practice.com](https://docker-practice.com/),[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) +* 在线阅读:[docker-practice.com](https://vuepress.mirror.docker-practice.com/),[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD),[epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) * [离线阅读 `$ docker run -it --rm -p 4000:80 dockerpracticesig/docker_practice`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) From bbfe14e0afc02bffc210eabc1f263014bc875db7 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 26 Dec 2019 11:54:45 +0800 Subject: [PATCH 455/611] Update docker commit, Fixed #437 --- image/commit.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/commit.md b/image/commit.md index 01ca00256..205da616b 100644 --- a/image/commit.md +++ b/image/commit.md @@ -125,6 +125,6 @@ docker run --name web2 -d -p 81:80 nginx:v2 首先,如果仔细观察之前的 `docker diff webserver` 的结果,你会发现除了真正想要修改的 `/usr/share/nginx/html/index.html` 文件外,由于命令的执行,还有很多文件被改动或添加了。这还仅仅是最简单的操作,如果是安装软件包、编译构建,那会有大量的无关内容被添加进来,如果不小心清理,将会导致镜像极为臃肿。 -此外,使用 `docker commit` 意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为 **黑箱镜像**,换句话说,就是除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根本无从得知。而且,即使是这个制作镜像的人,过一段时间后也无法记清具体在操作的。虽然 `docker diff` 或许可以告诉得到一些线索,但是远远不到可以确保生成一致镜像的地步。这种黑箱镜像的维护工作是非常痛苦的。 +此外,使用 `docker commit` 意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为 **黑箱镜像**,换句话说,就是除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根本无从得知。而且,即使是这个制作镜像的人,过一段时间后也无法记清具体的操作。这种黑箱镜像的维护工作是非常痛苦的。 而且,回顾之前提及的镜像所使用的分层存储的概念,除当前层外,之前的每一层都是不会发生改变的,换句话说,任何修改的结果仅仅是在当前层进行标记、添加、修改,而不会改动上一层。如果使用 `docker commit` 制作镜像,以及后期修改的话,每一次修改都会让镜像更加臃肿一次,所删除的上一层的东西并不会丢失,会一直如影随形的跟着这个镜像,即使根本无法访问到。这会让镜像更加臃肿。 From 0dcc67da1c53aad3b8effacfb4f27d7ddc677196 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 31 Dec 2019 20:26:22 +0800 Subject: [PATCH 456/611] Add kubeadm, close #438 Signed-off-by: Kang HuaiShuai --- .github/workflows/ci.yaml | 4 +- .vuepress/config.js | 3 +- CHANGELOG.md | 2 + SUMMARY.md | 3 +- kubernetes/setup/README.md | 4 +- kubernetes/setup/docker.md | 91 ------------------ kubernetes/setup/kubeadm.md | 183 ++++++++++++++++++++++++++++++++++++ kubernetes/setup/systemd.md | 3 + 8 files changed, 197 insertions(+), 96 deletions(-) delete mode 100644 kubernetes/setup/docker.md create mode 100644 kubernetes/setup/kubeadm.md create mode 100644 kubernetes/setup/systemd.md diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index dab00ad02..9c2d25da2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -30,7 +30,7 @@ jobs: PCIT_EMAIL: khs1994@khs1994.com PCIT_GIT_TOKEN: ${{ secrets.PCIT_GIT_TOKEN }} PCIT_GIT_URL: github.com/docker-practice/vuepress - PCIT_KEEP_HISTORY: "1" + PCIT_KEEP_HISTORY: "true" PCIT_LOCAL_DIR: .vuepress/dist PCIT_MESSAGE: Sync from yeasy/docker_practice@${{github.sha}} by PCIT PCIT_TARGET_BRANCH: master @@ -45,7 +45,7 @@ jobs: PCIT_EMAIL: khs1994@khs1994.com PCIT_GIT_TOKEN: ${{ secrets.CODING_GIT_TOKEN }} PCIT_GIT_URL: git.dev.tencent.com/khs1994/docker_practice - PCIT_KEEP_HISTORY: "1" + PCIT_KEEP_HISTORY: "true" PCIT_LOCAL_DIR: .vuepress/dist PCIT_MESSAGE: Sync from yeasy/docker_practice@${{github.sha}} by PCIT PCIT_TARGET_BRANCH: master diff --git a/.vuepress/config.js b/.vuepress/config.js index d6c2bd8cf..625705b01 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -109,8 +109,9 @@ module.exports = { collapsable: false, children: [ "setup/", - "setup/docker", + "setup/kubeadm", "setup/docker-desktop", + "setup/systemd", ] }, { diff --git a/CHANGELOG.md b/CHANGELOG.md index dd7d2e578..2e04a3d6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # 修订记录 +* 1.2.0 2020-12-31 + * 1.1.0 2019-12-31 * 全面支持 v19.x 新版本 * 增加 `BuildKit` diff --git a/SUMMARY.md b/SUMMARY.md index 54fb47232..07697d109 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -121,8 +121,9 @@ * [基本概念](kubernetes/concepts.md) * [架构设计](kubernetes/design.md) * [部署 Kubernetes](kubernetes/setup/README.md) - * [使用 Docker 容器部署](kubernetes/setup/docker.md) + * [使用 kubeadm 部署 kubernetes](kubernetes/setup/kubeadm.md) * [在 Docker Desktop 使用](kubernetes/setup/docker-desktop.md) + * [一步步部署 kubernetes 集群](kubernetes/setup/systemd.md) * [Kubernetes 命令行 kubectl](kubernetes/kubectl/README.md) * [容器与云计算](cloud/README.md) * [简介](cloud/intro.md) diff --git a/kubernetes/setup/README.md b/kubernetes/setup/README.md index 1cb311e25..f6bc2ff90 100644 --- a/kubernetes/setup/README.md +++ b/kubernetes/setup/README.md @@ -4,6 +4,8 @@ 你可以使用以下几种方式部署 Kubernetes: -* Docker 容器 +* kubeadm +* docker-desktop +* k3s 接下来的小节会对以上几种方式进行详细介绍。 diff --git a/kubernetes/setup/docker.md b/kubernetes/setup/docker.md deleted file mode 100644 index fede4556e..000000000 --- a/kubernetes/setup/docker.md +++ /dev/null @@ -1,91 +0,0 @@ -# 使用 Docker 容器部署 Kubernetes - -最快速体验 Kubernetes 的方式就是在本地通过 Docker 的方式来启动相关进程。 - -下图展示了在单节点使用 Docker 快速部署一套 Kubernetes 的拓扑。 - -![在 Docker 中启动 Kubernetes](_images/k8s-singlenode-docker.png) - -Kubernetes 依赖 Etcd 服务来维护所有主节点的状态。 - -## 启动 Etcd 服务 - -```bash -docker run --net=host -d gcr.io/google_containers/etcd:2.0.9 /usr/local/bin/etcd --addr=127.0.0.1:4001 --bind-addr=0.0.0.0:4001 --data-dir=/var/etcd/data -``` - -## 启动主节点 - -启动 kubelet。 - -```bash -docker run --net=host -d -v /var/run/docker.sock:/var/run/docker.sock gcr.io/google_containers/hyperkube:v0.17.0 /hyperkube kubelet --api_servers=http://localhost:8080 --v=2 --address=0.0.0.0 --enable_server --hostname_override=127.0.0.1 --config=/etc/kubernetes/manifests -``` - -## 启动服务代理 - -```bash -docker run -d --net=host --privileged gcr.io/google_containers/hyperkube:v0.17.0 /hyperkube proxy --master=http://127.0.0.1:8080 --v=2 -``` - -## 测试状态 - -在本地访问 `8080` 端口,可以获取到如下的结果: - -```bash -$ curl 127.0.0.1:8080 -{ - "paths": [ - "/api", - "/api/v1beta1", - "/api/v1beta2", - "/api/v1beta3", - "/healthz", - "/healthz/ping", - "/logs/", - "/metrics", - "/static/", - "/swagger-ui/", - "/swaggerapi/", - "/validate", - "/version" - ] -} -``` - -## 查看服务 - -所有服务启动后,查看本地实际运行的 Docker 容器,有如下几个。 - -```bash -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -ee054db2516c gcr.io/google_containers/hyperkube:v0.17.0 "/hyperkube schedule 2 days ago Up 1 days k8s_scheduler.509f29c9_k8s-master-127.0.0.1_default_9941e5170b4365bd4aa91f122ba0c061_e97037f5 -3b0f28de07a2 gcr.io/google_containers/hyperkube:v0.17.0 "/hyperkube apiserve 2 days ago Up 1 days k8s_apiserver.245e44fa_k8s-master-127.0.0.1_default_9941e5170b4365bd4aa91f122ba0c061_6ab5c23d -2eaa44ecdd8e gcr.io/google_containers/hyperkube:v0.17.0 "/hyperkube controll 2 days ago Up 1 days k8s_controller-manager.33f83d43_k8s-master-127.0.0.1_default_9941e5170b4365bd4aa91f122ba0c061_1a60106f -30aa7163cbef gcr.io/google_containers/hyperkube:v0.17.0 "/hyperkube proxy -- 2 days ago Up 1 days jolly_davinci -a2f282976d91 gcr.io/google_containers/pause:0.8.0 "/pause" 2 days ago Up 2 days k8s_POD.e4cc795_k8s-master-127.0.0.1_default_9941e5170b4365bd4aa91f122ba0c061_e8085b1f -c060c52acc36 gcr.io/google_containers/hyperkube:v0.17.0 "/hyperkube kubelet 2 days ago Up 1 days serene_nobel -cc3cd263c581 gcr.io/google_containers/etcd:2.0.9 "/usr/local/bin/etcd 2 days ago Up 1 days happy_turing -``` - -这些服务大概分为三类:主节点服务、工作节点服务和其它服务。 - -### 主节点服务 - -* `apiserver` 是整个系统的对外接口,提供 RESTful 方式供客户端和其它组件调用; - -* `scheduler` 负责对资源进行调度,分配某个 pod 到某个节点上; - -* `controller-manager` 负责管理控制器,包括 endpoint-controller(刷新服务和 pod 的关联信息)和 replication-controller(维护某个 pod 的复制为配置的数值)。 - -### 工作节点服务 - -* `kubelet` 是工作节点执行操作的 agent,负责具体的容器生命周期管理,根据从数据库中获取的信息来管理容器,并上报 pod 运行状态等; - -* `proxy` 为 pod 上的服务提供访问的代理。 - -### 其它服务 - -* Etcd 是所有状态的存储数据库; - -* `gcr.io/google_containers/pause:0.8.0` 是 Kubernetes 启动后自动 pull 下来的测试镜像。 diff --git a/kubernetes/setup/kubeadm.md b/kubernetes/setup/kubeadm.md new file mode 100644 index 000000000..f999b0daa --- /dev/null +++ b/kubernetes/setup/kubeadm.md @@ -0,0 +1,183 @@ +# 使用 kubeadm 部署 kubernetes + +`kubeadm` 提供了 `kubeadm init` 以及 `kubeadm join` 这两个命令作为快速创建 `kubernetes` 集群的最佳实践。 + +## 安装 Docker + +参考 [安装 Docker](../../install) 一节安装 Docker。 + +## 安装 **kubelet** **kubeadm** **kubectl** + +### Ubuntu/Debian + +```bash +$ apt-get update && apt-get install -y apt-transport-https +$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - + +$ cat < 执行可能出现错误,例如缺少依赖包,根据提示安装即可。 + +执行成功会输出 + +```bash +... +[addons] Applied essential addon: CoreDNS +I1116 12:35:13.270407 86677 request.go:538] Throttling request took 181.409184ms, request: POST:https://192.168.199.100:6443/api/v1/namespaces/kube-system/serviceaccounts +I1116 12:35:13.470292 86677 request.go:538] Throttling request took 186.088112ms, request: POST:https://192.168.199.100:6443/api/v1/namespaces/kube-system/configmaps +[addons] Applied essential addon: kube-proxy + +Your Kubernetes control-plane has initialized successfully! + +To start using your cluster, you need to run the following as a regular user: + + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + +You should now deploy a pod network to the cluster. +Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: + https://kubernetes.io/docs/concepts/cluster-administration/addons/ + +Then you can join any number of worker nodes by running the following on each as root: + +kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \ + --discovery-token-ca-cert-hash sha256:5edb316fd0d8ea2792cba15cdf1c899a366f147aa03cba52d4e5c5884ad836fe +``` + +### node 工作节点 + +在 **另一主机** 重复 **部署** 小节以前的步骤,安装配置好 kubelet。根据提示,加入到集群。 + +```bash +$ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \ + --discovery-token-ca-cert-hash sha256:5edb316fd0d8ea2792cba15cdf1c899a366f147aa03cba52d4e5c5884ad836fe +``` + +## 查看服务 + +所有服务启动后,查看本地实际运行的 Docker 容器。这些服务大概分为三类:主节点服务、工作节点服务和其它服务。 + +### 主节点服务 + +* `apiserver` 是整个系统的对外接口,提供 RESTful 方式供客户端和其它组件调用; + +* `scheduler` 负责对资源进行调度,分配某个 pod 到某个节点上; + +* `controller-manager` 负责管理控制器,包括 endpoint-controller(刷新服务和 pod 的关联信息)和 replication-controller(维护某个 pod 的复制为配置的数值)。 + +### 工作节点服务 + +* `proxy` 为 pod 上的服务提供访问的代理。 + +### 其它服务 + +* Etcd 是所有状态的存储数据库; + +## 使用 + +将 `/etc/kubernetes/admin.conf` 复制到 `~/.kube/config` + +执行 `$ kubectl get all -A` 查看启动的服务。 + +由于未部署 CNI 插件,CoreDNS 未正常启动。如何使用 Kubernetes,请参考后续章节。 + +## 部署 CNI + +这里以 `flannel` 为例进行介绍。 + +### flannel + +检查 podCIDR 设置 + +```bash +$ kubectl get node -o yaml | grep CIDR + +# 输出 + podCIDR: 10.244.0.0/24 + podCIDRs: +``` + +```bash +$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.11.0/Documentation/kube-flannel.yml +``` + +## master 节点默认不能运行 pod + +如果用 `kubeadm` 部署一个单节点集群,默认情况下无法使用,请执行以下命令解除限制 + +```bash +$ kubectl taint nodes --all node-role.kubernetes.io/master- + +# 恢复默认值 +# $ kubectl taint nodes NODE_NAME node-role.kubernetes.io/master=true:NoSchedule +``` diff --git a/kubernetes/setup/systemd.md b/kubernetes/setup/systemd.md new file mode 100644 index 000000000..a3ae99f3b --- /dev/null +++ b/kubernetes/setup/systemd.md @@ -0,0 +1,3 @@ +# 一步步部署 kubernetes 集群 + +可以参考 [opsnull/follow-me-install-kubernetes-cluster](https://github.com/opsnull/follow-me-install-kubernetes-cluster) 项目一步步部署 kubernetes 集群。 From 9f0b2c725f01deee81d44cc1b27816e4d237465e Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 31 Dec 2019 20:48:52 +0800 Subject: [PATCH 457/611] Add podman Signed-off-by: Kang HuaiShuai --- .vuepress/config.js | 1 + SUMMARY.md | 1 + podman/README.md | 23 +++++++++++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 podman/README.md diff --git a/.vuepress/config.js b/.vuepress/config.js index 625705b01..781afbf37 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -358,6 +358,7 @@ module.exports = { 'opensource/linuxkit', ], }, + 'podman/', 'appendix/faq/', { title: "热门镜像介绍", diff --git a/SUMMARY.md b/SUMMARY.md index 07697d109..d3288afb8 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -146,6 +146,7 @@ * [VS Code](IDE/vsCode.md) * [Docker 开源项目](opensource/README.md) * [LinuxKit](opensource/linuxkit.md) +* [podman -- 下一代 Linux 容器工具](podman/README.md) * [附录](appendix/README.md) * [附录一:常见问题总结](appendix/faq/README.md) * [附录二:热门镜像介绍](appendix/repo/README.md) diff --git a/podman/README.md b/podman/README.md new file mode 100644 index 000000000..b24215200 --- /dev/null +++ b/podman/README.md @@ -0,0 +1,23 @@ +# podman + +[`podman`](https://github.com/containers/libpod) 是一个无守护程序与 docker 命令兼容的下一代 Linux 容器工具。 + +## 安装 + +```bash +$ sudo yum -y install podman +``` + +## 使用 + +`podman` 与 docker 命令完全兼容,只需将 `docker` 替换为 `podman` 即可,例如运行一个容器: + +```bash +# $ docker run -d -p 80:80 nginx:alpine + +$ podman run -d -p 80:80 nginx:alpine +``` + +## 参考 + +* https://developers.redhat.com/blog/2019/02/21/podman-and-buildah-for-docker-users/ From 386b1e4cf69352e060fb2522a40111a32e49f3b0 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 31 Dec 2019 21:10:06 +0800 Subject: [PATCH 458/611] Replace dead link Signed-off-by: Kang HuaiShuai --- repository/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/README.md b/repository/README.md index d705fa9bb..52df443a6 100644 --- a/repository/README.md +++ b/repository/README.md @@ -2,6 +2,6 @@ 仓库(`Repository`)是集中存放镜像的地方。 -一个容易混淆的概念是注册服务器(`Registry`)。实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。例如对于仓库地址 `dl.dockerpool.com/ubuntu` 来说,`dl.dockerpool.com` 是注册服务器地址,`ubuntu` 是仓库名。 +一个容易混淆的概念是注册服务器(`Registry`)。实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。例如对于仓库地址 `docker.io/ubuntu` 来说,`docker.io` 是注册服务器地址,`ubuntu` 是仓库名。 大部分时候,并不需要严格区分这两者的概念。 From e77c9ecbab15d5b90483c843f5c5aabeface1047 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 9 Jan 2020 16:57:38 +0800 Subject: [PATCH 459/611] [Kubernetes] Add dashboard Signed-off-by: Kang HuaiShuai --- .vuepress/config.js | 1 + SUMMARY.md | 5 ++-- kubernetes/setup/dashboard.md | 45 +++++++++++++++++++++++++++++++++++ kubernetes/setup/kubeadm.md | 4 ++++ manifest | 1 + 5 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 kubernetes/setup/dashboard.md diff --git a/.vuepress/config.js b/.vuepress/config.js index 781afbf37..c9e50b53a 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -112,6 +112,7 @@ module.exports = { "setup/kubeadm", "setup/docker-desktop", "setup/systemd", + "setup/dashboard", ] }, { diff --git a/SUMMARY.md b/SUMMARY.md index d3288afb8..6f323ebde 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -124,6 +124,7 @@ * [使用 kubeadm 部署 kubernetes](kubernetes/setup/kubeadm.md) * [在 Docker Desktop 使用](kubernetes/setup/docker-desktop.md) * [一步步部署 kubernetes 集群](kubernetes/setup/systemd.md) + * [部署 Dashboard](kubernetes/setup/dashboard.md) * [Kubernetes 命令行 kubectl](kubernetes/kubectl/README.md) * [容器与云计算](cloud/README.md) * [简介](cloud/intro.md) @@ -160,8 +161,8 @@ * [MongoDB](appendix/repo/mongodb.md) * [Redis](appendix/repo/redis.md) * [附录三:Docker 命令查询](appendix/command/README.md) - * [客户端命令 (docker)](appendix/command/docker.md) - * [服务端命令 (dockerd)](appendix/command/dockerd.md) + * [客户端命令 -- docker](appendix/command/docker.md) + * [服务端命令 -- dockerd](appendix/command/dockerd.md) * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) * [附录五:如何调试 Docker](appendix/debug.md) * [附录六:资源链接](appendix/resources.md) diff --git a/kubernetes/setup/dashboard.md b/kubernetes/setup/dashboard.md new file mode 100644 index 000000000..e7275d820 --- /dev/null +++ b/kubernetes/setup/dashboard.md @@ -0,0 +1,45 @@ +# Kubernetes Dashboard + +[Kubernetes Dashboard](https://github.com/kubernetes/dashboard) 是基于网页的 Kubernetes 用户界面。 + +![](https://d33wubrfki0l68.cloudfront.net/349824f68836152722dab89465835e604719caea/6e0b7/images/docs/ui-dashboard.png) + +## 部署 + +执行以下命令即可部署 Dashboard: + +```bash +kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml +``` + +## 访问 + +通过命令行代理访问,执行以下命令: + +```bash +$ kubectl proxy +``` + +到 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 即可访问。 + +## 登录 + +目前,Dashboard 仅支持使用 Bearer 令牌登录。下面教大家如何创建该令牌: + +```bash +$ kubectl create sa dashboard-admin -n kube-system + +$ kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin + +$ ADMIN_SECRET=$(kubectl get secrets -n kube-system | grep dashboard-admin | awk '{print $1}') + +$ DASHBOARD_LOGIN_TOKEN=$(kubectl describe secret -n kube-system ${ADMIN_SECRET} | grep -E '^token' | awk '{print $2}') + +echo ${DASHBOARD_LOGIN_TOKEN} +``` + +将结果粘贴到登录页面,即可登录。 + +## 参考文档 + +* [官方文档](https://kubernetes.io/zh/docs/tasks/access-application-cluster/web-ui-dashboard/) diff --git a/kubernetes/setup/kubeadm.md b/kubernetes/setup/kubeadm.md index f999b0daa..e764c74ae 100644 --- a/kubernetes/setup/kubeadm.md +++ b/kubernetes/setup/kubeadm.md @@ -181,3 +181,7 @@ $ kubectl taint nodes --all node-role.kubernetes.io/master- # 恢复默认值 # $ kubectl taint nodes NODE_NAME node-role.kubernetes.io/master=true:NoSchedule ``` + +## 参考文档 + +* [官方文档](https://kubernetes.io/zh/docs/setup/independent/create-cluster-kubeadm/) diff --git a/manifest b/manifest index f577b1ec6..a30a44a65 100644 --- a/manifest +++ b/manifest @@ -3,5 +3,6 @@ DOCKER_COMPOSE_VERSION=1.24.1 DOCKER_MACHINE_VERSION=0.16.1 ETCD_VERSION=3.4.0 KUBERNETES_VERSION=1.14.3 +KUBERNETES_DASHBOARD=2.0.0-beta8 UBUNTU=18.04 DEBIAN=9 From 9d450ffc262306ce6c435746184d027d5220dd13 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 9 Jan 2020 17:08:35 +0800 Subject: [PATCH 460/611] [Compose] Add lnmp Signed-off-by: Kang HuaiShuai --- .vuepress/config.js | 1 + SUMMARY.md | 1 + compose/lnmp.md | 3 +++ 3 files changed, 5 insertions(+) create mode 100644 compose/lnmp.md diff --git a/.vuepress/config.js b/.vuepress/config.js index c9e50b53a..5be167c28 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -132,6 +132,7 @@ module.exports = { 'django', 'rails', 'wordpress', + 'lnmp', ], '/install/': [ 'ubuntu', diff --git a/SUMMARY.md b/SUMMARY.md index 6f323ebde..04cbd7a01 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -86,6 +86,7 @@ * [实战 Django](compose/django.md) * [实战 Rails](compose/rails.md) * [实战 WordPress](compose/wordpress.md) + * [实战 LNMP](compose/lnmp.md) * [Swarm mode](swarm_mode/README.md) * [基本概念](swarm_mode/overview.md) * [创建 Swarm 集群](swarm_mode/create.md) diff --git a/compose/lnmp.md b/compose/lnmp.md new file mode 100644 index 000000000..6e89ed21f --- /dev/null +++ b/compose/lnmp.md @@ -0,0 +1,3 @@ +# 使用 compose 搭建 LNMP 环境 + +本项目的维护者 [khs1994](https://github.com/khs1994) 的开源项目 [khs1994-docker/lnmp](https://github.com/khs1994-docker/lnmp) 使用 Docker Compose 搭建了一套 LNMP 环境,各位开发者可以参考该项目在 Docker 或 Kubernetes 中运行 LNMP。 From 9a0a76a5bb40f6da0a171a7744b4d1681e3cb2a9 Mon Sep 17 00:00:00 2001 From: FirejqWei <895521320@qq.com> Date: Tue, 11 Feb 2020 02:03:57 +0800 Subject: [PATCH 461/611] Fix a markdown grammatical error --- image/commit.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/image/commit.md b/image/commit.md index 205da616b..1ae37b250 100644 --- a/image/commit.md +++ b/image/commit.md @@ -91,7 +91,8 @@ $ docker image ls nginx REPOSITORY TAG IMAGE ID CREATED SIZE nginx v2 07e334659748 9 seconds ago 181.5 MB nginx 1.11 05a60462f8ba 12 days ago 181.5 MB -nginx latest e43d811ce2f4 4 weeks ago 181.5 MB``` +nginx latest e43d811ce2f4 4 weeks ago 181.5 MB +``` 我们还可以用 `docker history` 具体查看镜像内的历史记录,如果比较 `nginx:latest` 的历史记录,我们会发现新增了我们刚刚提交的这一层。 From 5577c9caa65a698bc51b82f6bee22dd1e8b434fb Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Sat, 1 Feb 2020 10:24:29 +0800 Subject: [PATCH 462/611] Change CoreOS to Fedora CoreOS(FCOS) Signed-off-by: Kang HuaiShuai --- .vuepress/config.js | 2 +- README.md | 2 +- SUMMARY.md | 10 +++++----- cloud/README.md | 2 +- coreos/README.md | 4 ++-- coreos/install.md | 46 +++++++++++++++++++++++++++++++++++++++++++ coreos/intro.md | 33 ++++++++++++++----------------- coreos/intro_tools.md | 13 ------------ 8 files changed, 71 insertions(+), 41 deletions(-) create mode 100644 coreos/install.md delete mode 100644 coreos/intro_tools.md diff --git a/.vuepress/config.js b/.vuepress/config.js index 5be167c28..a4cf45c22 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -349,7 +349,7 @@ module.exports = { children: [ 'coreos/', 'coreos/intro', - 'coreos/intro_tools', + 'coreos/install', ], }, { diff --git a/README.md b/README.md index 30be2bf8b..24b6baa30 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v19.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS) -**v1.1.0** +**v1.2.0** | 语言 | 构建状态 | - | | :------------- | :------------- | :--- | diff --git a/SUMMARY.md b/SUMMARY.md index 04cbd7a01..2f63f24d0 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -114,9 +114,9 @@ * [安装](etcd/install.md) * [集群](etcd/cluster.md) * [使用 etcdctl](etcd/etcdctl.md) -* [CoreOS 项目](coreos/README.md) +* [Fedora CoreOS](coreos/README.md) * [简介](coreos/intro.md) - * [工具](coreos/intro_tools.md) + * [安装](coreos/install.md) * [Kubernetes - 开源容器编排引擎](kubernetes/README.md) * [简介](kubernetes/intro.md) * [基本概念](kubernetes/concepts.md) @@ -148,7 +148,7 @@ * [VS Code](IDE/vsCode.md) * [Docker 开源项目](opensource/README.md) * [LinuxKit](opensource/linuxkit.md) -* [podman -- 下一代 Linux 容器工具](podman/README.md) +* [podman - 下一代 Linux 容器工具](podman/README.md) * [附录](appendix/README.md) * [附录一:常见问题总结](appendix/faq/README.md) * [附录二:热门镜像介绍](appendix/repo/README.md) @@ -162,8 +162,8 @@ * [MongoDB](appendix/repo/mongodb.md) * [Redis](appendix/repo/redis.md) * [附录三:Docker 命令查询](appendix/command/README.md) - * [客户端命令 -- docker](appendix/command/docker.md) - * [服务端命令 -- dockerd](appendix/command/dockerd.md) + * [客户端命令 - docker](appendix/command/docker.md) + * [服务端命令 - dockerd](appendix/command/dockerd.md) * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) * [附录五:如何调试 Docker](appendix/debug.md) * [附录六:资源链接](appendix/resources.md) diff --git a/cloud/README.md b/cloud/README.md index 44e994c22..471656ef9 100644 --- a/cloud/README.md +++ b/cloud/README.md @@ -2,4 +2,4 @@ Docker 目前已经得到了众多公有云平台的支持,并成为除虚拟机之外的核心云业务。 -除了 AWS、Google、Azure 等,国内的各大公有云厂商,基本上都同时支持了虚拟机服务和基于 Kubernetes 的容器云业务。有的还推出了 [容器实例服务](https://cloud.tencent.com/act/cps/redirect?redirect=10230&cps_key=3a5255852d5db99dcd5da4c72f05df61) 让用户在云上快捷、灵活的部署 Docker 容器。 +除了 AWS、Google、Azure 等,国内的各大公有云厂商,基本上都同时支持了虚拟机服务和基于 Kubernetes 的容器云业务。有的还推出了其他服务,例如 [容器实例服务](https://cloud.tencent.com/act/cps/redirect?redirect=10230&cps_key=3a5255852d5db99dcd5da4c72f05df61) 让用户在云上快捷、灵活的部署 Docker 容器。[容器镜像服务](https://cloud.tencent.com/act/cps/redirect?redirect=11588&cps_key=3a5255852d5db99dcd5da4c72f05df61) 让用户在云上享有安全高效的镜像托管、分发等服务。 diff --git a/coreos/README.md b/coreos/README.md index dbde5c5ba..9fbf86091 100644 --- a/coreos/README.md +++ b/coreos/README.md @@ -1,6 +1,6 @@ -# CoreOS +# Fedora CoreOS -`CoreOS` 的设计是为你提供能够像谷歌一样的大型互联网公司一样的基础设施管理能力来动态扩展和管理的计算能力。 +`CoreOS` 是一个专门为安全和大规模运行容器化工作负载而构建的新 Fedora 版本,它是 Fedora Atomic Host 和 CoreOS Container Linux 的后续项目。 `CoreOS` 的安装文件和运行依赖非常小,它提供了精简的 Linux 系统。它使用 Linux 容器在更高的抽象层来管理你的服务,而不是通过常规的包管理工具 `yum` 或 `apt` 来安装包。 diff --git a/coreos/install.md b/coreos/install.md new file mode 100644 index 000000000..2e2b693a8 --- /dev/null +++ b/coreos/install.md @@ -0,0 +1,46 @@ +# 安装 Fedora CoreOS + +## 下载 ISO + +在 [下载页面](https://getfedora.org/coreos/download/) `Bare Metal & Virtualized` 标签页下载 ISO。 + +## 编写 FCC + +FCC 是 Fedora CoreOS Configuration (Fedora CoreOS 配置)的简称。 + +```yaml +# example.fcc +variant: fcos +version: 1.0.0 +passwd: + users: + - name: core + ssh_authorized_keys: + - ssh-rsa AAAA... +``` + +将 `ssh-rsa AAAA...` 替换为自己的 SSH 公钥(位于 `~/.ssh/id_rsa.pub`)。 + +## 转换 FCC 为 Ignition + +```bash +$ docker run -i --rm quay.io/coreos/fcct:v0.2.0 -pretty -strict < example.fcc > example.ign +``` + +## 启动虚拟机并安装 + +在虚拟机终端执行以下命令安装: + +```bash +$ sudo coreos-installer install /dev/sda --ignition example.ign +``` + +安装之后重新启动即可使用。 + +## 使用 + +```bash +$ ssh core@虚拟机IP + +$ docker --version +``` diff --git a/coreos/intro.md b/coreos/intro.md index 9b1a64da8..bef861bff 100644 --- a/coreos/intro.md +++ b/coreos/intro.md @@ -1,31 +1,28 @@ -# CoreOS 介绍 +# Fedora CoreOS 介绍 -[CoreOS](https://coreos.com/) 对 Docker 甚至容器技术的发展都带来了巨大的推动作用。其提供了运行现代基础设施的特性,支持大规模服务部署,使得在基于最小化的现代操作系统上构建规模化的计算仓库成为了可能。 +[Fedora CoreOS](https://getfedora.org/coreos/) 是一个自动更新的,最小的,整体的,以容器为中心的操作系统,不仅适用于集群,而且可独立运行,并针对运行 Kubernetes 进行了优化。它旨在结合 CoreOS Container Linux 和 Fedora Atomic Host 的优点,将 Container Linux 中的 [Ignition](https://github.com/coreos/ignition) 与 [rpm-ostree](https://github.com/coreos/rpm-ostree) 和 Project Atomic 中的 SELinux 强化等技术相集成。其目标是提供最佳的容器主机,以安全,大规模地运行容器化的工作负载。 -# CoreOS 特性 +## FCOS 特性 -## 一个最小化操作系统 +### 一个最小化操作系统 -CoreOS 被设计成一个基于容器的最小化的现代操作系统。它比现有的 Linux 安装平均节省 40% 的 RAM(大约 114M )并允许从 PXE 或 iPXE 非常快速的启动。 +FCOS 被设计成一个基于容器的最小化的现代操作系统。它比现有的 Linux 安装平均节省 40% 的 RAM(大约 114M )并允许从 PXE 或 iPXE 非常快速的启动。 -## 无痛更新 +### 系统初始化 -利用主动和被动双分区方案来更新 OS,使用分区作为一个单元而不是一个包一个包的更新。这使得每次更新变得快速,可靠,而且很容易回滚。 +Ignition 是一种配置实用程序,可读取配置文件(JSON 格式)并根据该配置配置 FCOS 系统。可配置的组件包括存储,文件系统,systemd 和用户。 -## Docker 容器 +Ignition 在系统首次启动期间(在 initramfs 中)仅运行一次。由于 Ignition 在启动过程中的早期运行,因此它可以在用户空间开始启动之前重新对磁盘分区,格式化文件系统,创建用户并写入文件。当 systemd 启动时,systemd 服务已被写入磁盘,从而加快了启动时间。 -应用作为 Docker 容器运行在 CoreOS 上。容器以包的形式提供最大得灵活性并且可以在几毫秒启动。 +### 自动更新 -## 支持集群 +FCOS 使用 rpm-ostree 系统进行事务性升级。无需像 yum 升级那样升级单个软件包,而是 rpm-ostree 将 OS 升级作为一个原子单元进行。新的 OS 部署在升级期间进行,并在下次重新引导时生效。如果升级出现问题,则一次回滚和重新启动会使系统返回到先前的状态。确保了系统升级对群集容量的影响降到最小。 -CoreOS 可以在一个机器上很好地运行,但是它被设计用来搭建集群。 +### 容器工具 -可以通过 k8s 很容易得使应用容器部署在多台机器上并且通过服务发现把他们连接在一起。 +对于诸如构建,复制和其他管理容器的任务,FCOS 用一组兼容的容器工具代替了 **Docker CLI** 工具。**podman CLI** 工具支持许多容器运行时功能,例如运行,启动,停止,列出和删除容器和镜像。**skopeo CLI** 工具可以复制,认证和签名镜像。您可以使用 **crictl CLI** 工具来处理 CRI-O 容器引擎中的容器和镜像。 -## 分布式系统工具 +## 参考文档 -内置诸如分布式锁和主选举等原生工具用来构建大规模分布式系统得构建模块。 - -## 服务发现 - -很容易定位服务在集群的那里运行并当发生变化时进行通知。它是复杂高动态集群必不可少的。 +* [官方文档](https://docs.fedoraproject.org/en-US/fedora-coreos/) +* [openshift 官方文档](https://docs.openshift.com/container-platform/4.3/architecture/architecture-rhcos.html) diff --git a/coreos/intro_tools.md b/coreos/intro_tools.md deleted file mode 100644 index 9144d4826..000000000 --- a/coreos/intro_tools.md +++ /dev/null @@ -1,13 +0,0 @@ -# CoreOS 工具介绍 - -`CoreOS` 内置了 `服务发现`,`容器管理` 工具。 - -## 服务发现 - -`CoreOS` 的第一个重要组件就是使用 `etcd` 来实现的服务发现。在 `CoreOS` 中 `etcd` 默认以 `rkt` 容器方式运行。 - -`etcd` 使用方法请查看 [etcd 章节](../etcd/)。 - -## 容器管理 - -第二个组件就是 `Docker`,它用来运行你的代码和应用。`CoreOS` 内置 `Docker`,具体使用请参考本书其他章节。 From a2e8595c4217de38d17f35b639c6dda8947c6eda Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Sat, 22 Feb 2020 14:30:11 +0800 Subject: [PATCH 463/611] vuepress remove archived content Signed-off-by: Kang HuaiShuai --- .github/workflows/ci.yaml | 4 ++-- .vuepress/config.js | 31 ------------------------------- README.md | 2 +- 3 files changed, 3 insertions(+), 34 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9c2d25da2..a02732029 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -44,9 +44,9 @@ jobs: env: PCIT_EMAIL: khs1994@khs1994.com PCIT_GIT_TOKEN: ${{ secrets.CODING_GIT_TOKEN }} - PCIT_GIT_URL: git.dev.tencent.com/khs1994/docker_practice + PCIT_GIT_URL: e.coding.net/dpsigs/docker_practice PCIT_KEEP_HISTORY: "true" PCIT_LOCAL_DIR: .vuepress/dist PCIT_MESSAGE: Sync from yeasy/docker_practice@${{github.sha}} by PCIT PCIT_TARGET_BRANCH: master - PCIT_USERNAME: khs1994 + PCIT_USERNAME: ptt0xjqzbke3 diff --git a/.vuepress/config.js b/.vuepress/config.js index a4cf45c22..b3c3bdf38 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -390,37 +390,6 @@ module.exports = { 'appendix/best_practices', 'appendix/debug', 'appendix/resources', - 'archive/', - { - title: "Docker Machine", - collapsable: false, - children: [ - 'machine/', - 'machine/install', - 'machine/usage', - ], - }, - { - title: 'Mesos', - collapsable: false, - children: [ - 'mesos/', - 'mesos/intro', - 'mesos/installation', - 'mesos/architecture', - 'mesos/configuration', - 'mesos/monitor', - 'mesos/framework', - 'mesos/summary', - ] - }, - { - title: 'Docker Swarm', - collapsable: false, - children: [ - "swarm/" - ] - } ], }, } diff --git a/README.md b/README.md index 24b6baa30..5f4f89a3d 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ | 语言 | 构建状态 | - | | :------------- | :------------- | :--- | -| [zh-hans](https://github.com/yeasy/docker_practice) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/zh-cn) | +| [zh-hans](https://github.com/yeasy/docker_practice) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://vuepress.mirror.docker-practice.com/) | | [us-en](https://github.com/yeasy/docker_practice/tree/english) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=english)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/us-en) | | [zh-hant](https://github.com/yeasy/docker_practice/tree/zh-Hant) | [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=zh-hant)](https://travis-ci.org/yeasy/docker_practice)| [阅读](https://docker_practice.gitee.io/zh-hant) | From 6c0fc9e4168af22cee67a6ea0954f5e27042ac88 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Sun, 23 Feb 2020 10:14:40 +0800 Subject: [PATCH 464/611] cp _images to vuepress dist Signed-off-by: Kang HuaiShuai --- .github/workflows/ci.yaml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a02732029..dc69604c5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -23,6 +23,23 @@ jobs: npm i npm run vuepress:build echo "vuepress.docker-practice.com" > .vuepress/dist/CNAME + + cp -r _images .vuepress/dist + cp -r advanced_network/_images .vuepress/dist/advanced_network + cp -r appendix/_images .vuepress/dist/appendix + cp -r cases/ci/drone/_images .vuepress/dist/cases/ci/drone + cp -r cases/os/_images .vuepress/dist/cases/os + cp -r cloud/_images .vuepress/dist/cloud + cp -r data_management/_images .vuepress/dist/data_management + cp -r etcd/_images .vuepress/dist/etcd + cp -r image/_images .vuepress/dist/image + cp -r install/_images .vuepress/dist/install + cp -r introduction/_images .vuepress/dist/introduction + cp -r kubernetes/_images .vuepress/dist/kubernetes + cp -r mesos/_images .vuepress/dist/mesos + cp -r underly/_images .vuepress/dist/underly + + echo "include: [_images]" > .vuepress/dist/_config - name: Upload Vuepress dist uses: docker://pcit/pages if: github.repository == 'docker-practice/docker_practice' From 33c2b2216df92fc0f2cf02be89201fe40297c070 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Sun, 23 Feb 2020 11:13:23 +0800 Subject: [PATCH 465/611] [actions] check md files link Signed-off-by: Kang HuaiShuai --- .github/workflows/check-link.yml | 24 ++++++++++++++++++++++++ .github/workflows/ci.yaml | 2 -- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/check-link.yml diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml new file mode 100644 index 000000000..355b6a759 --- /dev/null +++ b/.github/workflows/check-link.yml @@ -0,0 +1,24 @@ +name: check-link + +on: + push: + pull_request: + +jobs: + check-link: + name: check-link + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + with: + fetch-depth: 1 + - run: | + docker run -i --rm \ + -v $PWD:/mnt:ro \ + dkhamsing/awesome_bot \ + --white-list "localhost" \ + --allow-dupe \ + --allow-redirect \ + --skip-save-results \ + `find . -name "*.md"` + name: check-link diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index dc69604c5..5d806ab1b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -38,8 +38,6 @@ jobs: cp -r kubernetes/_images .vuepress/dist/kubernetes cp -r mesos/_images .vuepress/dist/mesos cp -r underly/_images .vuepress/dist/underly - - echo "include: [_images]" > .vuepress/dist/_config - name: Upload Vuepress dist uses: docker://pcit/pages if: github.repository == 'docker-practice/docker_practice' From 1e026fb3a1f6df16bf9251b88aa8aa1e6d9ab02b Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Sun, 23 Feb 2020 11:36:56 +0800 Subject: [PATCH 466/611] Remove 404 link Signed-off-by: Kang HuaiShuai --- .github/workflows/check-link.yml | 4 ++-- basic_concept/repository.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 355b6a759..a03abd8aa 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -16,9 +16,9 @@ jobs: docker run -i --rm \ -v $PWD:/mnt:ro \ dkhamsing/awesome_bot \ - --white-list "localhost" \ + --white-list "localhost","0.0.0.0","172.16.238.100","server","example.com",\ + "docker.domain.com","YourIP","registry" \ --allow-dupe \ - --allow-redirect \ --skip-save-results \ `find . -name "*.md"` name: check-link diff --git a/basic_concept/repository.md b/basic_concept/repository.md index f7255873d..d44f9dfe7 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -18,7 +18,7 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像 由于某些原因,在国内访问这些服务可能会比较慢。国内的一些云服务商提供了针对 Docker Hub 的镜像服务(`Registry Mirror`),这些镜像服务被称为**加速器**。常见的有 [阿里云加速器](https://cr.console.aliyun.com/#/accelerator)、[DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc) 等。使用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub 下载速度会提高很多。在 [安装 Docker](../install/mirror.md) 一节中有详细的配置方法。 -国内也有一些云服务商提供类似于 Docker Hub 的公开服务。比如 [时速云镜像仓库](https://hub.tenxcloud.com/)、[网易云镜像服务](https://c.163.com/hub#/m/library/)、[DaoCloud 镜像市场](https://hub.daocloud.io/)、[阿里云镜像库](https://cr.console.aliyun.com) 等。 +国内也有一些云服务商提供类似于 Docker Hub 的公开服务。比如 [网易云镜像服务](https://c.163.com/hub#/m/library/)、[DaoCloud 镜像市场](https://hub.daocloud.io/)、[阿里云镜像库](https://cr.console.aliyun.com) 等。 ## 私有 Docker Registry From d887c8bda6ab8592313aaca5c04b08856f690db8 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Sun, 23 Feb 2020 12:18:53 +0800 Subject: [PATCH 467/611] Update link Signed-off-by: Kang HuaiShuai --- .github/workflows/check-link.yml | 46 +++++++++++++++++++-- appendix/repo/php.md | 2 +- appendix/resources.md | 2 +- cases/ci/actions/README.md | 2 +- cases/os/debian.md | 71 +++++++++++++++++++------------- image/list.md | 4 +- image/manifest.md | 2 +- image/other.md | 2 +- image/pull.md | 2 +- install/fedora.md | 2 +- install/mac.md | 2 +- install/raspberry-pi.md | 2 +- install/ubuntu.md | 2 +- introduction/what.md | 2 +- kubernetes/design.md | 2 +- opensource/linuxkit.md | 2 +- repository/nexus3_registry.md | 2 +- 17 files changed, 102 insertions(+), 47 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index a03abd8aa..027d7b9f2 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -16,9 +16,49 @@ jobs: docker run -i --rm \ -v $PWD:/mnt:ro \ dkhamsing/awesome_bot \ - --white-list "localhost","0.0.0.0","172.16.238.100","server","example.com",\ - "docker.domain.com","YourIP","registry" \ + --white-list "localhost","0.0.0.0",\ + "server","example.com","docker",\ + "docker.domain.com","YourIP","register",\ + "172.16.238.100","172.16.238.101","172.16.238.102",\ + "192.168.199.100",\ + "github.com/settings",\ + "github.com/docker/compose/releases/download",\ + "github.com/docker/machine/releases/download",\ + "github.com/etcd-io/etcd/releases/download",\ + "github.com/tianon/gosu/releases/download",\ + "github.com/yeasy/docker_practice",\ + "github.com/twang2218/gitlab-ce-zh.git",\ + "github.com/AliyunContainerService/k8s-for-docker-desktop/raw",\ + "dl-4.alpinelinux.org/alpine/edge/testing",\ + "www.w3.org/1999/xhtml",\ + "cr.console.aliyun.com",\ + "cloud.tencent.com",\ + "nodejs.org/dist/",\ + "c.163.com/hub",\ + "drone.yeasy.com",\ + "mirrors.ustc.edu.cn",\ + "docs.docker.com",\ + "dockerhub.azk8s.cn",\ + "vuepress.mirror.docker-practice.com",\ + "mc.qcloudimg.com/static/img",\ + "www.daocloud.io/mirror",\ + "download.docker.com",\ + "www.ubuntu.com",\ + "archive.ubuntu.com",\ + "security.ubuntu.com/ubuntu",\ + "nginx.com",\ + "img.shields.io/github/release/yeasy/docker_practice",\ + "travis-ci.org/yeasy/docker_practice.svg",\ + "launchpad.net",\ + "www.w3.org/1999",\ + "chat.freenode.net",\ + "en.wikipedia.org/wiki/UnionFS",\ + "product.china-pub.com",\ + "union-click.jd.com",\ + "www.aliyun.com" \ --allow-dupe \ --skip-save-results \ - `find . -name "*.md"` + -t 5 \ + `find . \( -path "./mesos" -o -path "./machine" -o -path "./swarm_mode" \) -prune -o -name "*.md" -exec ls {} \;` name: check-link + timeout-minutes: 25 diff --git a/appendix/repo/php.md b/appendix/repo/php.md index 7edbb85be..0d54c90a9 100644 --- a/appendix/repo/php.md +++ b/appendix/repo/php.md @@ -2,7 +2,7 @@ ## 基本信息 -[PHP](https://en.wikipedia.org/wiki/php)(Hypertext Preprocessor 超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。 +[PHP](https://en.wikipedia.org/wiki/Php)(Hypertext Preprocessor 超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。 该仓库位于 `https://hub.docker.com/_/php/` ,提供了 PHP 5.x ~ 7.x 各个版本的镜像。 diff --git a/appendix/resources.md b/appendix/resources.md index 155038c3a..199d26865 100644 --- a/appendix/resources.md +++ b/appendix/resources.md @@ -3,7 +3,7 @@ ## 官方网站 * Docker 官方主页:https://www.docker.com -* Docker 官方博客:https://blog.docker.com/ +* Docker 官方博客:https://www.docker.com/blog/ * Docker 官方文档:https://docs.docker.com/ * Docker Hub:https://hub.docker.com * Docker 的源代码仓库:https://github.com/moby/moby diff --git a/cases/ci/actions/README.md b/cases/ci/actions/README.md index ce36b1d72..bd34f075b 100644 --- a/cases/ci/actions/README.md +++ b/cases/ci/actions/README.md @@ -25,4 +25,4 @@ jobs: ## 参考资料 -* [Actions Docs](https://help.github.com/en/categories/automating-your-workflow-with-github-actions) +* [Actions Docs](https://help.github.com/en/actions) diff --git a/cases/os/debian.md b/cases/os/debian.md index 6e8724197..b19c6d6e7 100644 --- a/cases/os/debian.md +++ b/cases/os/debian.md @@ -49,16 +49,22 @@ Debian GNU/Linux 8 ```bash $ docker search --filter=stars=10 ubuntu -NAME DESCRIPTION STARS OFFICIAL AUTOMATED -ubuntu Official Ubuntu base image 840 [OK] -dockerfile/ubuntu Trusted automated Ubuntu (http://www.ubunt... 30 [OK] -crashsystems/gitlab-docker A trusted, regularly updated build of GitL... 20 [OK] -sylvainlasnier/memcached This is a Memcached 1.4.14 docker images b... 16 [OK] -ubuntu-upstart Upstart is an event-based replacement for ... 16 [OK] -mbentley/ubuntu-django-uwsgi-nginx 16 [OK] -clue/ttrss The Tiny Tiny RSS feed reader allows you t... 14 [OK] -dockerfile/ubuntu-desktop Trusted automated Ubuntu Desktop (LXDE) (h... 14 [OK] -tutum/ubuntu Ubuntu image with SSH access. For the root... 12 [OK] +NAME DESCRIPTION STARS OFFICIAL AUTOMATED +ubuntu Ubuntu is a Debian-based Linux operating sys… 10539 [OK] +dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interface … 395 [OK] +rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 243 [OK] +consol/ubuntu-xfce-vnc Ubuntu container with "headless" VNC session… 210 [OK] +ubuntu-upstart Upstart is an event-based replacement for th… 105 [OK] +ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 98 [OK] +neurodebian NeuroDebian provides neuroscience research s… 64 [OK] +1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 50 [OK] +ubuntu-debootstrap debootstrap --variant=minbase --components=m… 42 [OK] +nuagebec/ubuntu Simple always updated Ubuntu docker images w… 24 [OK] +i386/ubuntu Ubuntu is a Debian-based Linux operating sys… 19 +1and1internet/ubuntu-16-apache-php-5.6 ubuntu-16-apache-php-5.6 14 [OK] +1and1internet/ubuntu-16-apache-php-7.0 ubuntu-16-apache-php-7.0 13 [OK] +eclipse/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 12 [OK] +1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10 ubuntu-16-nginx-php-phpmyadmin-mariadb-10 11 [OK] ``` 根据搜索出来的结果,读者可以自行选择下载镜像并使用。 @@ -98,12 +104,26 @@ E: Unable to locate package curl ```bash root@7d93de07bf76:/# apt-get update -Ign http://archive.ubuntu.com trusty InRelease -Ign http://archive.ubuntu.com trusty-updates InRelease -Ign http://archive.ubuntu.com trusty-security InRelease -Ign http://archive.ubuntu.com trusty-proposed InRelease -Get:1 http://archive.ubuntu.com trusty Release.gpg [933 B] -... +Get:1 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB] +Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] +Get:3 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [7348 B] +Get:4 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [823 kB] +Get:5 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] +Get:6 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] +Get:7 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [11.3 MB] +Get:8 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [31.0 kB] +Get:9 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [835 kB] +Get:10 http://archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages [13.5 kB] +Get:11 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages [1344 kB] +Get:12 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [186 kB] +Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [1127 kB] +Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1350 kB] +Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [11.4 kB] +Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [44.7 kB] +Get:17 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [2496 B] +Get:18 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [4252 B] +Fetched 17.6 MB in 1min 25s (207 kB/s) +Reading package lists... Done ``` 首先,安装 `curl` 工具。 @@ -113,13 +133,9 @@ root@7d93de07bf76:/# apt-get install curl Reading package lists... Done Building dependency tree Reading state information... Done -The following extra packages will be installed: - ca-certificates krb5-locales libasn1-8-heimdal libcurl3 libgssapi-krb5-2 - libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal - libheimntlm0-heimdal libhx509-5-heimdal libidn11 libk5crypto3 libkeyutils1 - libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2 - libroken18-heimdal librtmp0 libsasl2-2 libsasl2-modules libsasl2-modules-db - libwind0-heimdal openssl +The following additional packages will be installed: + ca-certificates krb5-locales libasn1-8-heimdal libcurl4 libgssapi-krb5-2 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal + libk5crypto3 libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2 libldap-common libnghttp2-14 libpsl5 libroken18-heimdal librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db libsqlite3-0 libssl1.1 libwind0-heimdal openssl publicsuffix ... root@7d93de07bf76:/# curl curl: try 'curl --help' or 'curl --manual' for more information @@ -132,9 +148,8 @@ root@7d93de07bf76:/# apt-get install -y apache2 Reading package lists... Done Building dependency tree Reading state information... Done -The following extra packages will be installed: - apache2-bin apache2-data libapr1 libaprutil1 libaprutil1-dbd-sqlite3 - libaprutil1-ldap libxml2 sgml-base ssl-cert xml-core +The following additional packages will be installed: + apache2-bin apache2-data apache2-utils file libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libexpat1 libgdbm-compat4 libgdbm5 libicu60 liblua5.2-0 libmagic-mgc libmagic1 libperl5.26 libxml2 mime-support netbase perl perl-modules-5.26 ssl-cert xz-utils ... ``` @@ -150,7 +165,7 @@ root@7d93de07bf76:/# curl 127.0.0.1 @@ -169,7 +184,7 @@ root@7d93de07bf76:/# curl 127.0.0.1 * `Debian` 官方仓库:https://github.com/Debian * `Debian` 官方镜像:https://hub.docker.com/_/debian/ * `Debian` 官方镜像仓库:https://github.com/tianon/docker-brew-debian/ -* `Ubuntu` 官网:http://www.ubuntu.org.cn/global +* `Ubuntu` 官网:https://ubuntu.com * `Ubuntu` 官方仓库:https://github.com/ubuntu * `Ubuntu` 官方镜像:https://hub.docker.com/_/ubuntu/ * `Ubuntu` 官方镜像仓库:https://github.com/tianon/docker-brew-ubuntu-core diff --git a/image/list.md b/image/list.md index 107c36d1b..84efdf09d 100644 --- a/image/list.md +++ b/image/list.md @@ -19,7 +19,7 @@ ubuntu latest f753707788c5 4 weeks ago ## 镜像体积 -如果仔细观察,会注意到,这里标识的所占用空间和在 Docker Hub 上看到的镜像大小不同。比如,`ubuntu:18.04` 镜像大小,在这里是 `127 MB`,但是在 [Docker Hub](https://hub.docker.com/r/library/ubuntu/tags/) 显示的却是 `50 MB`。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的大小是网络传输中更关心的流量大小。而 `docker image ls` 显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。 +如果仔细观察,会注意到,这里标识的所占用空间和在 Docker Hub 上看到的镜像大小不同。比如,`ubuntu:18.04` 镜像大小,在这里是 `127 MB`,但是在 [Docker Hub](https://hub.docker.com/_/ubuntu?tab=tags) 显示的却是 `50 MB`。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的大小是网络传输中更关心的流量大小。而 `docker image ls` 显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。 另外一个需要注意的问题是,`docker image ls` 列表中的镜像体积总和并非是所有镜像实际硬盘消耗。由于 Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于 Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多。 @@ -123,7 +123,7 @@ f753707788c5 `--filter` 配合 `-q` 产生出指定范围的 ID 列表,然后送给另一个 `docker` 命令作为参数,从而针对这组实体成批的进行某种操作的做法在 Docker 命令行使用过程中非常常见,不仅仅是镜像,将来我们会在各个命令中看到这类搭配以完成很强大的功能。因此每次在文档看到过滤器后,可以多注意一下它们的用法。 -另外一些时候,我们可能只是对表格的结构不满意,希望自己组织列;或者不希望有标题,这样方便其它程序解析结果等,这就用到了 [Go 的模板语法](https://gohugo.io/templates/go-templates/)。 +另外一些时候,我们可能只是对表格的结构不满意,希望自己组织列;或者不希望有标题,这样方便其它程序解析结果等,这就用到了 [Go 的模板语法](https://gohugo.io/templates/introduction/)。 比如,下面的命令会直接列出镜像结果,并且只包含镜像ID和仓库名: diff --git a/image/manifest.md b/image/manifest.md index 78dd12851..382e6c338 100644 --- a/image/manifest.md +++ b/image/manifest.md @@ -161,4 +161,4 @@ $ docker manifest push username/test 详细了解 `manifest` 可以阅读官方博客。 -* https://blog.docker.com/2017/11/multi-arch-all-the-things/ +* https://www.docker.com/blog/multi-arch-all-the-things/ diff --git a/image/other.md b/image/other.md index 4d4dd1383..6029143b2 100644 --- a/image/other.md +++ b/image/other.md @@ -8,7 +8,7 @@ 压缩包可以是本地文件、远程 Web 文件,甚至是从标准输入中得到。压缩包将会在镜像 `/` 目录展开,并直接作为镜像第一层提交。 -比如我们想要创建一个 [OpenVZ](https://openvz.org) 的 Ubuntu 16.04 [模板](https://openvz.org/Download/template/precreated)的镜像: +比如我们想要创建一个 [OpenVZ](https://openvz.org) 的 Ubuntu 16.04 [模板](https://wiki.openvz.org/Download/template/precreated)的镜像: ```bash $ docker import \ diff --git a/image/pull.md b/image/pull.md index 51c47c90e..d2ed771b3 100644 --- a/image/pull.md +++ b/image/pull.md @@ -1,6 +1,6 @@ # 获取镜像 -之前提到过,[Docker Hub](https://hub.docker.com/explore/) 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。 +之前提到过,[Docker Hub](https://hub.docker.com/search?q=&type=image) 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。 从 Docker 镜像仓库获取镜像的命令是 `docker pull`。其命令格式为: diff --git a/install/fedora.md b/install/fedora.md index 05d0081fa..f415b234e 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -6,7 +6,7 @@ ### 系统要求 -Docker CE 支持以下版本的 [Fedora](https://fedoraproject.org/) 操作系统: +Docker CE 支持以下版本的 [Fedora](https://getfedora.org/) 操作系统: * 28 * 29 diff --git a/install/mac.md b/install/mac.md index 80a385dfe..a4c18cb4c 100644 --- a/install/mac.md +++ b/install/mac.md @@ -18,7 +18,7 @@ $ brew cask install docker 如果需要手动下载,请点击以下链接下载 [Stable](https://download.docker.com/mac/stable/Docker.dmg) 或 [Edge](https://download.docker.com/mac/edge/Docker.dmg) 版本的 Docker Desktop for Mac。 -如同 macOS 其它软件一样,安装也非常简单,双击下载的 `.dmg` 文件,然后将那只叫 [Moby](https://blog.docker.com/2013/10/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可(其间需要输入用户密码)。 +如同 macOS 其它软件一样,安装也非常简单,双击下载的 `.dmg` 文件,然后将那只叫 [Moby](https://www.docker.com/blog/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可(其间需要输入用户密码)。 ![](_images/install-mac-dmg.png) diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 36d48c895..d59ee127b 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -10,7 +10,7 @@ Docker CE 支持以下版本的 [Raspbian](https://www.raspberrypi.org/downloads * Raspbian Stretch -*注:* `Raspbian` 是树莓派的开发与维护机构 [树莓派基金会](http://www.raspberrypi.org/) 推荐用于树莓派的首选系统,其基于 `Debian`。 +*注:* `Raspbian` 是树莓派的开发与维护机构 [树莓派基金会](https://www.raspberrypi.org/) 推荐用于树莓派的首选系统,其基于 `Debian`。 ## 使用 APT 安装 diff --git a/install/ubuntu.md b/install/ubuntu.md index 2c5516500..ec9469dd7 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -6,7 +6,7 @@ ### 系统要求 -Docker CE 支持以下版本的 [Ubuntu](https://www.ubuntu.com/server) 操作系统: +Docker CE 支持以下版本的 [Ubuntu](https://ubuntu.com/server) 操作系统: * Disco 19.04 * Cosmic 18.10 diff --git a/introduction/what.md b/introduction/what.md index 1351afeaf..5ecf57381 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -2,7 +2,7 @@ **Docker** 最初是 `dotCloud` 公司创始人 [Solomon Hykes](https://github.com/shykes) 在法国期间发起的一个公司内部项目,它是基于 `dotCloud` 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源][docker-soft],主要项目代码在 [GitHub](https://github.com/moby/moby) 上进行维护。`Docker` 项目后来还加入了 Linux 基金会,并成立推动 [开放容器联盟(OCI)](https://www.opencontainers.org/)。 -**Docker** 自开源后受到广泛的关注和讨论,至今其 [GitHub 项目](https://github.com/moby/moby) 已经超过 5 万 4 千个星标和一万多个 `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 项目](https://github.com/moby/moby) 已经超过 5 万 4 千个星标和一万多个 `fork`。甚至由于 `Docker` 项目的火爆,在 `2013` 年底,[dotCloud 公司决定改名为 Docker](https://www.docker.com/blog/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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 diff --git a/kubernetes/design.md b/kubernetes/design.md index 804402ab3..9eeb6d03c 100644 --- a/kubernetes/design.md +++ b/kubernetes/design.md @@ -26,7 +26,7 @@ 主节点上需要提供如下的管理服务: -* `apiserver` 是整个系统的对外接口,提供一套 RESTful 的 [Kubernetes API](https://github.com/kubernetes/kubernetes/tree/master/docs/api-reference),供客户端和其它组件调用; +* `apiserver` 是整个系统的对外接口,提供一套 RESTful 的 [Kubernetes API](https://kubernetes.io/zh/docs/concepts/overview/kubernetes-api/),供客户端和其它组件调用; * `scheduler` 负责对资源进行调度,分配某个 pod 到某个节点上。是 pluggable 的,意味着很容易选择其它实现方式; * `controller-manager` 负责管理控制器,包括 endpoint-controller(刷新服务和 pod 的关联信息)和 replication-controller(维护某个 pod 的复制为配置的数值)。 diff --git a/opensource/linuxkit.md b/opensource/linuxkit.md index ee491ebd7..087e9de00 100644 --- a/opensource/linuxkit.md +++ b/opensource/linuxkit.md @@ -15,7 +15,7 @@ $ brew install --HEAD linuxkit ## 克隆源代码 ```bash -$ git clone -b master --depth=1 https://github.com/linuxkit/linuxkit.git +$ git clone -b master --depth=1 https://github.com/linuxkit/linuxkit $ cd linuxkit ``` diff --git a/repository/nexus3_registry.md b/repository/nexus3_registry.md index 479e64478..5f35eddd5 100644 --- a/repository/nexus3_registry.md +++ b/repository/nexus3_registry.md @@ -1,6 +1,6 @@ # Nexus3.x 的私有仓库 -使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry 程序。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/download-oss-sonatype/) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 +使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry 程序。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/download-oss-sonatype) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 ## 启动 Nexus 容器 From d2f5e120ae241d82e612cf0e94ec296db81d7361 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Sun, 23 Feb 2020 21:57:26 +0800 Subject: [PATCH 468/611] Fixed github pages Signed-off-by: Kang HuaiShuai --- .github/workflows/ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5d806ab1b..dc69604c5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -38,6 +38,8 @@ jobs: cp -r kubernetes/_images .vuepress/dist/kubernetes cp -r mesos/_images .vuepress/dist/mesos cp -r underly/_images .vuepress/dist/underly + + echo "include: [_images]" > .vuepress/dist/_config - name: Upload Vuepress dist uses: docker://pcit/pages if: github.repository == 'docker-practice/docker_practice' From ca5502e2088edba81835bea45fcaa6f8052c5b18 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 27 Feb 2020 23:31:01 +0800 Subject: [PATCH 469/611] Update alpine content: replace default repo Signed-off-by: Kang HuaiShuai --- .github/workflows/check-link.yml | 4 ++-- cases/os/alpine.md | 9 ++++++++- install/README.md | 2 +- install/mac.md | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 027d7b9f2..b1aa12e39 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -29,7 +29,7 @@ jobs: "github.com/yeasy/docker_practice",\ "github.com/twang2218/gitlab-ce-zh.git",\ "github.com/AliyunContainerService/k8s-for-docker-desktop/raw",\ - "dl-4.alpinelinux.org/alpine/edge/testing",\ + "dl-cdn.alpinelinux.org/alpine/edge/testing",\ "www.w3.org/1999/xhtml",\ "cr.console.aliyun.com",\ "cloud.tencent.com",\ @@ -58,7 +58,7 @@ jobs: "www.aliyun.com" \ --allow-dupe \ --skip-save-results \ - -t 5 \ + -t 10 \ `find . \( -path "./mesos" -o -path "./machine" -o -path "./swarm_mode" \) -prune -o -name "*.md" -exec ls {} \;` name: check-link timeout-minutes: 25 diff --git a/cases/os/alpine.md b/cases/os/alpine.md index 7c10df046..6a1de447e 100644 --- a/cases/os/alpine.md +++ b/cases/os/alpine.md @@ -50,10 +50,17 @@ $ apk add --no-cache `Alpine` 中软件安装包的名字可能会与其他发行版有所不同,可以在 `https://pkgs.alpinelinux.org/packages` 网站搜索并确定安装包名称。如果需要的安装包不在主索引内,但是在测试或社区索引中。那么可以按照以下方法使用这些安装包。 ```bash -$ echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories +$ echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories $ apk --update add --no-cache ``` +由于在国内访问 `apk` 仓库较缓慢,建议在使用 `apk` 之前先替换仓库地址为国内镜像。 + +```docker +RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories \ + && apk add --no-cache +``` + ## 相关资源 * `Alpine` 官网:https://www.alpinelinux.org/ diff --git a/install/README.md b/install/README.md index eb6180d80..a9db78b88 100644 --- a/install/README.md +++ b/install/README.md @@ -2,6 +2,6 @@ Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 -Docker CE 分为 `stable` `test` 和 `nightly` 三个更新频道。每六个月发布一个 `stable` 版本 (`18.09`, `19.03`, `19.09`...)。 +Docker CE 分为 `stable` `test` 和 `nightly` 三个更新频道。 官方网站上有各种环境下的 [安装指南](https://docs.docker.com/install/),这里主要介绍 Docker CE 在 `Linux` 、`Windows 10` 和 `macOS` 上的安装。 diff --git a/install/mac.md b/install/mac.md index a4c18cb4c..31eb13d1e 100644 --- a/install/mac.md +++ b/install/mac.md @@ -2,13 +2,13 @@ ## 系统要求 -[Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS Sierra 10.12。 +[Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS Catalina 10.13。 ## 安装 ### 使用 Homebrew 安装 -[Homebrew](https://brew.sh/) 的 [Cask](https://caskroom.github.io/) 已经支持 Docker Desktop for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: +[Homebrew](https://brew.sh/) 的 [Cask](https://github.com/Homebrew/homebrew-cask) 已经支持 Docker Desktop for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: ```bash $ brew cask install docker From 3a249016648618bae0950323c9dbf9bd8c12bf8f Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Wed, 4 Mar 2020 11:50:59 +0800 Subject: [PATCH 470/611] Change AUFS to OverlayFS Signed-off-by: Kang HuaiShuai --- appendix/faq/README.md | 4 ++-- cases/os/busybox.md | 43 +++++++++++++++++++++++++++++------------- image/internal.md | 2 +- introduction/what.md | 2 +- 4 files changed, 34 insertions(+), 17 deletions(-) diff --git a/appendix/faq/README.md b/appendix/faq/README.md index 5870c85bd..d21fce91e 100644 --- a/appendix/faq/README.md +++ b/appendix/faq/README.md @@ -12,7 +12,7 @@ ### 本地的镜像文件都存放在哪里? -答:与 Docker 相关的本地资源默认存放在 `/var/lib/docker/` 目录下,以 `aufs` 文件系统为例,其中 `container` 目录存放容器信息,`graph` 目录存放镜像信息,`aufs` 目录下存放具体的镜像层文件。 +答:与 Docker 相关的本地资源默认存放在 `/var/lib/docker/` 目录下,以 `overlay2` 文件系统为例,其中 `containers` 目录存放容器信息,`image` 目录存放镜像信息,`overlay2` 目录下存放具体的镜像层文件。 ### 构建 Docker 镜像应该遵循哪些原则? @@ -149,7 +149,7 @@ lrwxrwxrwx. 1 root root 15 11月 17 13:43 docker -> /storage/docker 答:LXC 利用 Linux 上相关技术实现了容器。Docker 则在如下的几个方面进行了改进: * 移植性:通过抽象容器配置,容器可以实现从一个平台移植到另一个平台; -* 镜像系统:基于 AUFS 的镜像系统为容器的分发带来了很多的便利,同时共同的镜像层只需要存储一份,实现高效率的存储; +* 镜像系统:基于 OverlayFS 的镜像系统为容器的分发带来了很多的便利,同时共同的镜像层只需要存储一份,实现高效率的存储; * 版本管理:类似于Git的版本管理理念,用户可以更方便的创建、管理镜像文件; * 仓库系统:仓库系统大大降低了镜像的分发和管理的成本; * 周边工具:各种现有工具(配置管理、云平台)对 Docker 的支持,以及基于 Docker的 PaaS、CI 等系统,让 Docker 的应用更加方便和多样化。 diff --git a/cases/os/busybox.md b/cases/os/busybox.md index 1eb471a97..b3527728f 100644 --- a/cases/os/busybox.md +++ b/cases/os/busybox.md @@ -85,22 +85,39 @@ Search for PATTERN in FILEs (or stdin) ```bash / # mount -rootfs on / type rootfs (rw) -none on / type aufs (rw,relatime,si=b455817946f8505c) +overlay on / type overlay (rw,relatime,lowerdir=/var/lib/docker/overlay2/l/BOTCI5RF24AMC4A2UWF4N6ZWFP:/var/lib/docker/overlay2/l/TWVP5T5DMKJGXZOROR7CAPWGFP,upperdir=/var/lib/docker/overlay2/801ef0bf6cce35288dbb8fe00a4f9cc47760444693bfdf339ed0bdcf926e12a3/diff,workdir=/var/lib/docker/overlay2/801ef0bf6cce35288dbb8fe00a4f9cc47760444693bfdf339ed0bdcf926e12a3/work) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) -tmpfs on /dev type tmpfs (rw,nosuid,mode=755) -shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k) +tmpfs on /dev type tmpfs (rw,nosuid,size=65536k,mode=755) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666) sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime) -/dev/disk/by-uuid/b1f2dba7-d91b-4165-a377-bf1a8bed3f61 on /etc/resolv.conf type ext4 (rw,relatime,errors=remount-ro,data=ordered) -/dev/disk/by-uuid/b1f2dba7-d91b-4165-a377-bf1a8bed3f61 on /etc/hostname type ext4 (rw,relatime,errors=remount-ro,data=ordered) -/dev/disk/by-uuid/b1f2dba7-d91b-4165-a377-bf1a8bed3f61 on /etc/hosts type ext4 (rw,relatime,errors=remount-ro,data=ordered) -devpts on /dev/console type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) -proc on /proc/sys type proc (ro,nosuid,nodev,noexec,relatime) -proc on /proc/sysrq-trigger type proc (ro,nosuid,nodev,noexec,relatime) -proc on /proc/irq type proc (ro,nosuid,nodev,noexec,relatime) -proc on /proc/bus type proc (ro,nosuid,nodev,noexec,relatime) -tmpfs on /proc/kcore type tmpfs (rw,nosuid,mode=755) +tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,relatime,mode=755) +cgroup on /sys/fs/cgroup/systemd type cgroup (ro,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd) +cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (ro,nosuid,nodev,noexec,relatime,net_cls,net_prio) +cgroup on /sys/fs/cgroup/freezer type cgroup (ro,nosuid,nodev,noexec,relatime,freezer) +cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (ro,nosuid,nodev,noexec,relatime,cpu,cpuacct) +cgroup on /sys/fs/cgroup/cpuset type cgroup (ro,nosuid,nodev,noexec,relatime,cpuset) +cgroup on /sys/fs/cgroup/blkio type cgroup (ro,nosuid,nodev,noexec,relatime,blkio) +cgroup on /sys/fs/cgroup/perf_event type cgroup (ro,nosuid,nodev,noexec,relatime,perf_event) +cgroup on /sys/fs/cgroup/memory type cgroup (ro,nosuid,nodev,noexec,relatime,memory) +cgroup on /sys/fs/cgroup/devices type cgroup (ro,nosuid,nodev,noexec,relatime,devices) +cgroup on /sys/fs/cgroup/pids type cgroup (ro,nosuid,nodev,noexec,relatime,pids) +mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime) +shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k) +/dev/vda1 on /etc/resolv.conf type ext3 (rw,noatime,data=ordered) +/dev/vda1 on /etc/hostname type ext3 (rw,noatime,data=ordered) +/dev/vda1 on /etc/hosts type ext3 (rw,noatime,data=ordered) +devpts on /dev/console type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666) +proc on /proc/bus type proc (ro,relatime) +proc on /proc/fs type proc (ro,relatime) +proc on /proc/irq type proc (ro,relatime) +proc on /proc/sys type proc (ro,relatime) +proc on /proc/sysrq-trigger type proc (ro,relatime) +tmpfs on /proc/acpi type tmpfs (ro,relatime) +tmpfs on /proc/kcore type tmpfs (rw,nosuid,size=65536k,mode=755) +tmpfs on /proc/keys type tmpfs (rw,nosuid,size=65536k,mode=755) +tmpfs on /proc/timer_list type tmpfs (rw,nosuid,size=65536k,mode=755) +tmpfs on /proc/sched_debug type tmpfs (rw,nosuid,size=65536k,mode=755) +tmpfs on /sys/firmware type tmpfs (ro,relatime) ``` `busybox` 镜像虽然小巧,但包括了大量常见的 `Linux` 命令,读者可以用它快速熟悉 `Linux` 命令。 diff --git a/image/internal.md b/image/internal.md index f22123b66..d36b209d6 100644 --- a/image/internal.md +++ b/image/internal.md @@ -6,4 +6,4 @@ Docker 镜像是怎么实现增量的修改和维护的? 通常 Union FS 有两个用途, 一方面可以实现不借助 LVM、RAID 将多个 disk 挂到同一个目录下,另一个更常用的就是将一个只读的分支和一个可写的分支联合在一起,Live CD 正是基于此方法可以允许在镜像不变的基础上允许用户在其上进行一些写操作。 -Docker 在 AUFS 上构建的容器也是利用了类似的原理。 +Docker 在 OverlayFS 上构建的容器也是利用了类似的原理。 diff --git a/introduction/what.md b/introduction/what.md index 5ecf57381..fe5ebd861 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -4,7 +4,7 @@ **Docker** 自开源后受到广泛的关注和讨论,至今其 [GitHub 项目](https://github.com/moby/moby) 已经超过 5 万 4 千个星标和一万多个 `fork`。甚至由于 `Docker` 项目的火爆,在 `2013` 年底,[dotCloud 公司决定改名为 Docker](https://www.docker.com/blog/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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 +**Docker** 使用 `Google` 公司推出的 [Go 语言](https://golang.org/) 进行开发实现,基于 `Linux` 内核的 [cgroup](https://zh.wikipedia.org/wiki/Cgroups),[namespace](https://en.wikipedia.org/wiki/Linux_namespaces),以及 [OverlayFS](https://docs.docker.com/storage/storagedriver/overlayfs-driver/) 类的 [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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 ![Docker 架构](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/media/docker-on-linux.png) From c720d6959ea40c74e2e157b11c181fa9c4261d6f Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 10 Mar 2020 13:39:27 +0800 Subject: [PATCH 471/611] Docker Desktop Support Windows Home Signed-off-by: Kang HuaiShuai --- appendix/faq/README.md | 2 +- cloud/alicloud.md | 2 +- install/windows.md | 3 ++- kubernetes/{qdvanced.md => advanced.md} | 0 kubernetes/concepts.md | 4 ++-- 5 files changed, 6 insertions(+), 5 deletions(-) rename kubernetes/{qdvanced.md => advanced.md} (100%) diff --git a/appendix/faq/README.md b/appendix/faq/README.md index d21fce91e..8b4a24814 100644 --- a/appendix/faq/README.md +++ b/appendix/faq/README.md @@ -18,7 +18,7 @@ 答:整体原则上,尽量保持镜像功能的明确和内容的精简,要点包括 -* 尽量选取满足需求但较小的基础系统镜像,例如大部分时候可以选择 debian:wheezy 或 debian:stretch 镜像,仅有不足百兆大小; +* 尽量选取满足需求但较小的基础系统镜像,例如大部分时候可以选择 `alpine` 镜像,仅有不足六兆大小; * 清理编译生成文件、安装包的缓存等临时文件; diff --git a/cloud/alicloud.md b/cloud/alicloud.md index b8e59572b..97fbf28c4 100644 --- a/cloud/alicloud.md +++ b/cloud/alicloud.md @@ -4,7 +4,7 @@ [阿里云](https://www.aliyun.com?source=5176.11533457&userCode=8lx5zmtu&type=copy) 创立于 2009 年,是中国较早的云计算平台。阿里云致力于提供安全、可靠的计算和数据处理能力。 -[阿里云](https://www.aliyun.com?source=5176.11533457&userCode=8lx5zmtu&type=copy) 的客户群体中,活跃着微博、知乎、魅族、锤子科技、小咖秀等一大批明星互联网公司。在天猫双 11 全球狂欢节等极富挑战的应用场景中,阿里云保持着良好的运行纪录。 +[阿里云](https://www.aliyun.com?source=5176.11533457&userCode=8lx5zmtu&type=copy) 的客户群体中,活跃着微博、知乎、魅族、小咖秀等一大批明星互联网公司。在天猫双 11 全球狂欢节等极富挑战的应用场景中,阿里云保持着良好的运行纪录。 [阿里云容器服务 Kubernetes 版 ACK](https://www.aliyun.com/product/kubernetes?source=5176.11533457&userCode=8lx5zmtu&type=copy) 提供了高性能、可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。 diff --git a/install/windows.md b/install/windows.md index 0286c28df..e0d4ed8dd 100644 --- a/install/windows.md +++ b/install/windows.md @@ -2,7 +2,7 @@ ## 系统要求 -[Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/install/) 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V。 +[Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/install/) 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V,或者 64 位版本的 Windows 10 Home Insider Preview build 19018+。 ## 安装 @@ -31,3 +31,4 @@ Docker CE 启动之后会在 Windows 任务栏出现鲸鱼图标。 ## 参考链接 * [官方文档](https://docs.docker.com/docker-for-windows/install/) +* [Docker Desktop WSL 2 backend](https://docs.docker.com/docker-for-windows/wsl-tech-preview/) diff --git a/kubernetes/qdvanced.md b/kubernetes/advanced.md similarity index 100% rename from kubernetes/qdvanced.md rename to kubernetes/advanced.md diff --git a/kubernetes/concepts.md b/kubernetes/concepts.md index ab3185b3b..b79bb37f3 100644 --- a/kubernetes/concepts.md +++ b/kubernetes/concepts.md @@ -11,10 +11,10 @@ * 标签(`labels`):标签是用来连接一组对象的,比如容器组。标签可以被用来组织和选择子对象。 * 接口权限(`accessing_the_api`):端口,IP 地址和代理的防火墙规则。 * web 界面(`ux`):用户可以通过 web 界面操作 Kubernetes。 -* 命令行操作(`cli`):`kubecfg`命令。 - +* 命令行操作(`cli`):`kubectl`命令。 ## 节点 + 在 `Kubernetes` 中,节点是实际工作的点,节点可以是虚拟机或者物理机器,依赖于一个集群环境。每个节点都有一些必要的服务以运行容器组,并且它们都可以通过主节点来管理。必要服务包括 Docker,kubelet 和代理服务。 ### 容器状态 From 5634eb2fdace402ad4e559528fff963845d267fd Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 10 Mar 2020 14:08:20 +0800 Subject: [PATCH 472/611] Update aliyun customer case Signed-off-by: Kang HuaiShuai --- cloud/alicloud.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloud/alicloud.md b/cloud/alicloud.md index 97fbf28c4..4abbf6c10 100644 --- a/cloud/alicloud.md +++ b/cloud/alicloud.md @@ -4,7 +4,7 @@ [阿里云](https://www.aliyun.com?source=5176.11533457&userCode=8lx5zmtu&type=copy) 创立于 2009 年,是中国较早的云计算平台。阿里云致力于提供安全、可靠的计算和数据处理能力。 -[阿里云](https://www.aliyun.com?source=5176.11533457&userCode=8lx5zmtu&type=copy) 的客户群体中,活跃着微博、知乎、魅族、小咖秀等一大批明星互联网公司。在天猫双 11 全球狂欢节等极富挑战的应用场景中,阿里云保持着良好的运行纪录。 +[阿里云](https://www.aliyun.com?source=5176.11533457&userCode=8lx5zmtu&type=copy) 的客户群体中,活跃着微博、虎牙、魅族、优酷等一大批明星互联网公司。在天猫双 11 全球狂欢节等极富挑战的应用场景中,阿里云保持着良好的运行纪录。 [阿里云容器服务 Kubernetes 版 ACK](https://www.aliyun.com/product/kubernetes?source=5176.11533457&userCode=8lx5zmtu&type=copy) 提供了高性能、可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。 From d8e5cfe097bea252c69cefebfe44e50c4b46401a Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 10 Mar 2020 14:24:46 +0800 Subject: [PATCH 473/611] Update install Signed-off-by: Kang HuaiShuai --- install/fedora.md | 9 +++++++-- install/raspberry-pi.md | 1 + install/ubuntu.md | 3 +-- install/windows.md | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/install/fedora.md b/install/fedora.md index f415b234e..fbc4d0442 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -8,9 +8,8 @@ Docker CE 支持以下版本的 [Fedora](https://getfedora.org/) 操作系统: -* 28 -* 29 * 30 +* 31 ### 卸载旧版本 @@ -90,6 +89,12 @@ docker-ce.x86_64 18.06.1.ce-3.fc28 docker-ce-stable $ sudo dnf -y install docker-ce-18.06.1.ce ``` +由于 Fedora 31 默认启用了 **Cgroupv2**,暂时 Docker 与 Cgroupv2 不兼容,请执行以下命令切换到 **Cgroupv1** 并重启计算机: + +```bash +$ sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0" +``` + ## 使用脚本自动安装 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index d59ee127b..c3a29be11 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -8,6 +8,7 @@ Docker CE 不仅支持 `x86_64` 架构的计算机,同时也支持 `ARM` 架 Docker CE 支持以下版本的 [Raspbian](https://www.raspberrypi.org/downloads/raspbian/) 操作系统: +* Raspbian Buster * Raspbian Stretch *注:* `Raspbian` 是树莓派的开发与维护机构 [树莓派基金会](https://www.raspberrypi.org/) 推荐用于树莓派的首选系统,其基于 `Debian`。 diff --git a/install/ubuntu.md b/install/ubuntu.md index ec9469dd7..804048f6d 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -8,8 +8,7 @@ Docker CE 支持以下版本的 [Ubuntu](https://ubuntu.com/server) 操作系统: -* Disco 19.04 -* Cosmic 18.10 +* Eoan 19.10 * Bionic 18.04 (LTS) * Xenial 16.04 (LTS) diff --git a/install/windows.md b/install/windows.md index e0d4ed8dd..841fe4a56 100644 --- a/install/windows.md +++ b/install/windows.md @@ -12,7 +12,7 @@ ## 运行 -在 Windows 搜索栏输入 Docker 点击 Docker for Windows 开始运行。 +在 Windows 搜索栏输入 **Docker** 点击 **Docker Desktop** 开始运行。 ![](_images/install-win-docker-app-search.png) From e4a68ea7e43ad52e18f5c86e7c2d667a75d251aa Mon Sep 17 00:00:00 2001 From: Touko Date: Thu, 12 Mar 2020 14:23:20 +0800 Subject: [PATCH 474/611] Fix issue #440 http://mirrors.ustc.edu.cn/help/docker-ce.html#id7 --- install/centos.md | 1 + 1 file changed, 1 insertion(+) diff --git a/install/centos.md b/install/centos.md index c368cae3c..65a2bf06c 100644 --- a/install/centos.md +++ b/install/centos.md @@ -43,6 +43,7 @@ $ sudo yum install -y yum-utils \ $ sudo yum-config-manager \ --add-repo \ https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo +$ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo # 官方源 From fced7854ee014f0772cfd456e42ddf101e676133 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 12 Mar 2020 14:47:09 +0800 Subject: [PATCH 475/611] Fixed #440 on fedora Signed-off-by: Kang HuaiShuai --- install/centos.md | 2 +- install/fedora.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/install/centos.md b/install/centos.md index 65a2bf06c..cdf8831b2 100644 --- a/install/centos.md +++ b/install/centos.md @@ -43,8 +43,8 @@ $ sudo yum install -y yum-utils \ $ sudo yum-config-manager \ --add-repo \ https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo -$ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo +$ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo # 官方源 # $ sudo yum-config-manager \ diff --git a/install/fedora.md b/install/fedora.md index fbc4d0442..384dfd696 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -45,6 +45,7 @@ $ sudo dnf config-manager \ --add-repo \ https://mirrors.ustc.edu.cn/docker-ce/linux/fedora/docker-ce.repo +$ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo # 官方源 # $ sudo dnf config-manager \ From c887661c0889364445373cca1a024593b33c6d03 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 12 Mar 2020 14:50:34 +0800 Subject: [PATCH 476/611] Add docker roadmap Signed-off-by: Kang HuaiShuai --- appendix/resources.md | 1 + 1 file changed, 1 insertion(+) diff --git a/appendix/resources.md b/appendix/resources.md index 199d26865..9694d0495 100644 --- a/appendix/resources.md +++ b/appendix/resources.md @@ -7,6 +7,7 @@ * Docker 官方文档:https://docs.docker.com/ * Docker Hub:https://hub.docker.com * Docker 的源代码仓库:https://github.com/moby/moby +* Docker 路线图 https://github.com/docker/roadmap/projects * Docker 发布版本历史:https://docs.docker.com/release-notes/ * Docker 常见问题:https://docs.docker.com/engine/faq/ * Docker 远端应用 API:https://docs.docker.com/develop/sdk/ From e38ea82f379fd653554328e602400b1592f35e98 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 12 Mar 2020 15:04:21 +0800 Subject: [PATCH 477/611] remove github actions files on gitbook dist Signed-off-by: Kang HuaiShuai --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index e98d6bbb9..923e08ba9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,6 +32,7 @@ after_success: - docker push dockerpracticesig/docker_practice - cd _book +- rm -rf .github/workflows - git init - git remote add origin "$DEPLOY_REPO" - git add . From bd74c85bb792db81fd1dd6c25ec191e2b4e031e6 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Thu, 12 Mar 2020 15:07:44 +0800 Subject: [PATCH 478/611] gitbook dist commit message include main repo sha Signed-off-by: Kang HuaiShuai --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 923e08ba9..fb2dc2e5a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,7 @@ after_success: - git remote add origin "$DEPLOY_REPO" - git add . - COMMIT=`date "+%F %T"` -- git commit -m "Travis CI Site updated $COMMIT" +- git commit -m "Travis CI Site updated $COMMIT yeasy/docker_practice@${TRAVIS_COMMIT}" - git push -f origin master:"$DEPLOY_BRANCH" env: From 44fdf58ba58b2c44cd2772a00df023841111cbac Mon Sep 17 00:00:00 2001 From: "bob.liu" Date: Tue, 31 Mar 2020 18:23:17 +0800 Subject: [PATCH 479/611] Correct the wrong word --- cases/os/alpine.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/os/alpine.md b/cases/os/alpine.md index 6a1de447e..0a36fc12e 100644 --- a/cases/os/alpine.md +++ b/cases/os/alpine.md @@ -2,7 +2,7 @@ ## 简介 -![Apline Linux 操作系统](_images/alpinelinux-logo.png) +![Alpine Linux 操作系统](_images/alpinelinux-logo.png) `Alpine` 操作系统是一个面向安全的轻型 `Linux` 发行版。它不同于通常 `Linux` 发行版,`Alpine` 采用了 `musl libc` 和 `busybox` 以减小系统的体积和运行时资源消耗,但功能上比 `busybox` 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,`Alpine` 还提供了自己的包管理工具 `apk`,可以通过 `https://pkgs.alpinelinux.org/packages` 网站上查询包信息,也可以直接通过 `apk` 命令直接查询和安装各种软件。 From a691aa607aaa6b870f25cb6336c1721f193c7b3c Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Sat, 4 Apr 2020 22:54:32 +0800 Subject: [PATCH 480/611] remove azk8s.cn mirror Signed-off-by: Kang HuaiShuai --- .github/workflows/check-link.yml | 1 + cloud/README.md | 2 +- install/mirror.md | 22 ++++++++-------------- kubernetes/setup/docker-desktop.md | 4 +--- kubernetes/setup/kubeadm.md | 2 +- machine/usage.md | 4 ++-- repository/registry.md | 2 +- 7 files changed, 15 insertions(+), 22 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index b1aa12e39..42fb287ff 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -39,6 +39,7 @@ jobs: "mirrors.ustc.edu.cn",\ "docs.docker.com",\ "dockerhub.azk8s.cn",\ + "mirror.ccs.tencentyun.com",\ "vuepress.mirror.docker-practice.com",\ "mc.qcloudimg.com/static/img",\ "www.daocloud.io/mirror",\ diff --git a/cloud/README.md b/cloud/README.md index 471656ef9..6cc5824e3 100644 --- a/cloud/README.md +++ b/cloud/README.md @@ -2,4 +2,4 @@ Docker 目前已经得到了众多公有云平台的支持,并成为除虚拟机之外的核心云业务。 -除了 AWS、Google、Azure 等,国内的各大公有云厂商,基本上都同时支持了虚拟机服务和基于 Kubernetes 的容器云业务。有的还推出了其他服务,例如 [容器实例服务](https://cloud.tencent.com/act/cps/redirect?redirect=10230&cps_key=3a5255852d5db99dcd5da4c72f05df61) 让用户在云上快捷、灵活的部署 Docker 容器。[容器镜像服务](https://cloud.tencent.com/act/cps/redirect?redirect=11588&cps_key=3a5255852d5db99dcd5da4c72f05df61) 让用户在云上享有安全高效的镜像托管、分发等服务。 +除了 AWS、Google、Azure 等,国内的各大公有云厂商,基本上都同时支持了虚拟机服务和基于 Kubernetes 的容器云业务。有的还推出了其他服务,例如 [容器镜像服务](https://cloud.tencent.com/act/cps/redirect?redirect=11588&cps_key=3a5255852d5db99dcd5da4c72f05df61) 让用户在云上享有安全高效的镜像托管、分发等服务。 diff --git a/install/mirror.md b/install/mirror.md index 8cfb8fba2..f2937d7c6 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -2,15 +2,14 @@ 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如: -* [Azure 中国镜像 `https://dockerhub.azk8s.cn`](https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md#22-container-registry-proxy) -* [阿里云加速器(需登录账号获取)](https://cr.console.aliyun.com/cn-hangzhou/mirrors) * [网易云加速器 `https://hub-mirror.c.163.com`](https://www.163yun.com/help/documents/56918246390157312) +* [阿里云加速器(需登录账号获取)](https://cr.console.aliyun.com/cn-hangzhou/mirrors) > 由于镜像服务可能出现宕机,建议同时配置多个镜像。各个镜像站测试结果请到 [docker-practice/docker-registry-cn-mirror-test](https://github.com/docker-practice/docker-registry-cn-mirror-test/actions) 查看。 > 国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档。 -本节我们以 Azure 中国镜像 `https://dockerhub.azk8s.cn` 为例进行介绍。 +本节我们以 [网易云](https://www.163yun.com/) 镜像服务 `https://hub-mirror.c.163.com` 为例进行介绍。 ## Ubuntu 16.04+、Debian 8+、CentOS 7 @@ -19,7 +18,6 @@ ```json { "registry-mirrors": [ - "https://dockerhub.azk8s.cn", "https://hub-mirror.c.163.com" ] } @@ -34,7 +32,7 @@ $ sudo systemctl daemon-reload $ sudo systemctl restart docker ``` ->注意:如果您之前查看旧教程,修改了 `docker.service` 文件内容,请去掉您添加的内容(`--registry-mirror=https://dockerhub.azk8s.cn`)。 +>注意:如果您之前查看旧教程,修改了 `docker.service` 文件内容,请去掉您添加的内容(`--registry-mirror=https://hub-mirror.c.163.com`)。 ## Windows 10 @@ -43,7 +41,6 @@ $ sudo systemctl restart docker ```json { "registry-mirrors": [ - "https://dockerhub.azk8s.cn", "https://hub-mirror.c.163.com" ] } @@ -56,7 +53,6 @@ $ sudo systemctl restart docker ```json { "registry-mirrors": [ - "https://dockerhub.azk8s.cn", "https://hub-mirror.c.163.com" ] } @@ -68,15 +64,13 @@ $ sudo systemctl restart docker ```bash Registry Mirrors: - https://dockerhub.azk8s.cn/ + https://hub-mirror.c.163.com/ ``` -## gcr.io 镜像 +## 云服务商 -国内无法直接获取 `gcr.io/*` 镜像,我们可以将 `gcr.io//:` 替换为 `gcr.azk8s.cn//:` ,例如 +某些云服务商提供了仅供内部访问的镜像服务,当您的 Docker 运行在云平台时可以选择它们。 -```bash -# $ docker pull gcr.io/google_containers/hyperkube-amd64:v1.9.2 +* [Azure 中国镜像 `https://dockerhub.azk8s.cn`](https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md#22-container-registry-proxy) -$ docker pull gcr.azk8s.cn/google_containers/hyperkube-amd64:v1.9.2 -``` +* [腾讯云 `https://mirror.ccs.tencentyun.com`](https://cloud.tencent.com/redirect.php?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61) diff --git a/kubernetes/setup/docker-desktop.md b/kubernetes/setup/docker-desktop.md index 20040087c..a26c50ae8 100644 --- a/kubernetes/setup/docker-desktop.md +++ b/kubernetes/setup/docker-desktop.md @@ -4,9 +4,7 @@ ## 获取 `k8s.gcr.io` 镜像 -我们可以先从国内镜像 `gcr.azk8s.cn` 拉取镜像,再通过 `$ docker tag` 命令重新将镜像标记为 `k8s.gcr.io` 镜像。 - -开源项目 [AliyunContainerService/k8s-for-docker-desktop](https://github.com/AliyunContainerService/k8s-for-docker-desktop) 使用 `powershell` 或 `shell` 脚本简化了以上步骤,建议读者使用该开源项目获取 `k8s.gcr.io` 镜像。 +由于国内拉取不到 `k8s.gcr.io` 镜像,我们可以使用开源项目 [AliyunContainerService/k8s-for-docker-desktop](https://github.com/AliyunContainerService/k8s-for-docker-desktop) 来获取所需的镜像。 ## 启用 Kubernetes diff --git a/kubernetes/setup/kubeadm.md b/kubernetes/setup/kubeadm.md index e764c74ae..828d566d1 100644 --- a/kubernetes/setup/kubeadm.md +++ b/kubernetes/setup/kubeadm.md @@ -77,7 +77,7 @@ $ sudo systemctl daemon-reload ### master ```bash -$ sudo kubeadm init --image-repository gcr.azk8s.cn/google-containers \ +$ sudo kubeadm init --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \ --pod-network-cidr 10.244.0.0/16 \ --v 5 \ --ignore-preflight-errors=all diff --git a/machine/usage.md b/machine/usage.md index f9b90d416..a790f8ce4 100644 --- a/machine/usage.md +++ b/machine/usage.md @@ -16,7 +16,7 @@ $ docker-machine create -d virtualbox test `--engine-opt dns=114.114.114.114` 配置 Docker 的默认 DNS -`--engine-registry-mirror https://dockerhub.azk8s.cn` 配置 Docker 的仓库镜像 +`--engine-registry-mirror https://hub-mirror.c.163.com` 配置 Docker 的仓库镜像 `--virtualbox-memory 2048` 配置主机内存 @@ -37,7 +37,7 @@ $ docker-machine create \ -d xhyve \ # --xhyve-boot2docker-url ~/.docker/machine/cache/boot2docker.iso \ --engine-opt dns=114.114.114.114 \ - --engine-registry-mirror https://dockerhub.azk8s.cn \ + --engine-registry-mirror https://hub-mirror.c.163.com \ --xhyve-memory-size 2048 \ --xhyve-rawdisk \ --xhyve-cpu-count 2 \ diff --git a/repository/registry.md b/repository/registry.md index 433262ab0..82bf695f6 100644 --- a/repository/registry.md +++ b/repository/registry.md @@ -104,7 +104,7 @@ REPOSITORY TAG IMAGE ID CREAT ```json { "registry-mirror": [ - "https://dockerhub.azk8s.cn" + "https://hub-mirror.c.163.com" ], "insecure-registries": [ "192.168.199.100:5000" From e0797515d3d9bab51020a8e432e8f86a3919b388 Mon Sep 17 00:00:00 2001 From: Kang HuaiShuai Date: Tue, 7 Apr 2020 09:18:40 +0800 Subject: [PATCH 481/611] Update buildx image Signed-off-by: Kang HuaiShuai --- buildx/multi-arch-images.md | 7 +++++-- compose/compose_file.md | 1 + install/mirror.md | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/buildx/multi-arch-images.md b/buildx/multi-arch-images.md index 4a6a2c02e..1bc8b96e4 100644 --- a/buildx/multi-arch-images.md +++ b/buildx/multi-arch-images.md @@ -12,10 +12,13 @@ Docker for Linux 不支持构建 `arm` 架构镜像,我们可以运行一个 $ docker run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd4447ad3 ``` -由于 Docker 默认的 `builder` 实例不支持同时指定多个 `--platform`,我们必须首先创建一个新的 `builder` 实例。 +由于 Docker 默认的 `builder` 实例不支持同时指定多个 `--platform`,我们必须首先创建一个新的 `builder` 实例。同时由于国内拉取镜像较缓慢,我们可以使用配置了 [镜像加速地址](https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md) 的 [`dockerpracticesig/buildkit:master`](https://github.com/docker-practice/buildx) 镜像替换官方镜像。 ```bash -$ docker buildx create --name mybuilder --driver docker-container +# 适用于国内环境 +$ docker buildx create --use --name=mybuilder-cn --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master + +# $ docker buildx create --name mybuilder --driver docker-container $ docker buildx use mybuilder ``` diff --git a/compose/compose_file.md b/compose/compose_file.md index f99fb16b3..1b866c0cf 100644 --- a/compose/compose_file.md +++ b/compose/compose_file.md @@ -576,3 +576,4 @@ MONGO_VERSION=3.6 ## 参考资料 * [官方文档](https://docs.docker.com/compose/compose-file/) +* [awesome-compose](https://github.com/docker/awesome-compose) diff --git a/install/mirror.md b/install/mirror.md index f2937d7c6..6058b0c67 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -67,6 +67,20 @@ Registry Mirrors: https://hub-mirror.c.163.com/ ``` +## `k8s.gcr.io` 镜像 + +可以登录 [阿里云 容器镜像服务](https://www.aliyun.com/product/acr?source=5176.11533457&userCode=8lx5zmtu&type=copy) **镜像中心** -> **镜像搜索** 查找。 + +例如 `k8s.gcr.io/coredns:1.6.7` 镜像可以用 `registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7` 代替。 + +一般情况下有如下对应关系: + +```bash +# $ docker pull k8s.gcr.io/xxx + +$ docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/xxx +``` + ## 云服务商 某些云服务商提供了仅供内部访问的镜像服务,当您的 Docker 运行在云平台时可以选择它们。 From 34b6b617b9792b3553c8c72d694f9f1ad9fd0211 Mon Sep 17 00:00:00 2001 From: Daiwj Date: Sun, 12 Apr 2020 19:13:38 +0800 Subject: [PATCH 482/611] =?UTF-8?q?docker=E9=95=9C=E5=83=8F=E7=9A=84?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=92=8C=E5=AF=BC=E5=87=BA=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BA=86=E7=AB=A0=E8=8A=82=E5=90=8D=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image/other.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/other.md b/image/other.md index 6029143b2..f139f5d20 100644 --- a/image/other.md +++ b/image/other.md @@ -37,7 +37,7 @@ IMAGE CREATED CREATED BY SIZE f477a6e18e98 About a minute ago 214.9 MB Imported from http://download.openvz.org/template/precreated/ubuntu-16.04-x86_64.tar.gz ``` -## `docker save` 和 `docker load` +## Docker 镜像的导入和导出 `docker save` 和 `docker load` Docker 还提供了 `docker save` 和 `docker load` 命令,用以将镜像保存为一个文件,然后传输到另一个位置上,再加载进来。这是在没有 Docker Registry 时的做法,现在已经不推荐,镜像迁移应该直接使用 Docker Registry,无论是直接使用 Docker Hub 还是使用内网私有 Registry 都可以。 From ff28d7219d45c34fda390b7429336faccddadcf2 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 26 Apr 2020 09:42:59 +0800 Subject: [PATCH 483/611] Recommit (#446) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 添加离线部署docker和离线部署minio实践 Signed-off-by: Kang Huaishuai Co-authored-by: Daiwj --- .vuepress/config.js | 2 + SUMMARY.md | 2 + appendix/repo/minio.md | 62 +++++ install/_images/image-20200412202617411.png | Bin 0 -> 120599 bytes install/offline.md | 249 ++++++++++++++++++++ 5 files changed, 315 insertions(+) create mode 100644 appendix/repo/minio.md create mode 100644 install/_images/image-20200412202617411.png create mode 100644 install/offline.md diff --git a/.vuepress/config.js b/.vuepress/config.js index b3c3bdf38..ac3b2bed0 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -140,6 +140,7 @@ module.exports = { 'fedora', 'centos', 'raspberry-pi', + 'offline', 'mac', 'windows', 'mirror', @@ -376,6 +377,7 @@ module.exports = { 'appendix/repo/wordpress', 'appendix/repo/mongodb', 'appendix/repo/redis', + 'appendix/repo/minio', ], }, { diff --git a/SUMMARY.md b/SUMMARY.md index 2f63f24d0..c655207f4 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -16,6 +16,7 @@ * [Fedora](install/fedora.md) * [CentOS](install/centos.md) * [Raspberry Pi](install/raspberry-pi.md) + * [Linux 离线安装](install/offline.md) * [macOS](install/mac.md) * [Windows 10](install/windows.md) * [镜像加速器](install/mirror.md) @@ -161,6 +162,7 @@ * [WordPress](appendix/repo/wordpress.md) * [MongoDB](appendix/repo/mongodb.md) * [Redis](appendix/repo/redis.md) + * [Minio](appendix/repo/minio.md) * [附录三:Docker 命令查询](appendix/command/README.md) * [客户端命令 - docker](appendix/command/docker.md) * [服务端命令 - dockerd](appendix/command/dockerd.md) diff --git a/appendix/repo/minio.md b/appendix/repo/minio.md new file mode 100644 index 000000000..c36d02d5d --- /dev/null +++ b/appendix/repo/minio.md @@ -0,0 +1,62 @@ +# minio +[TOC] +MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 + +MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。 + +[官方文档](https://docs.min.io/) + +## 简单使用 + +测试、开发环境下不考虑数据存储的情况下可以使用下面的命令快速开启服务。 + +```bash +docker pull minio/minio +docker run -p 9000:9000 minio/minio server /data +``` + + + +## 离线部署 + +许多生产环境是一般是没有公网资源的,这就需要从有公网资源的服务器上把镜像导出,然后导入到需要运行镜像的内网服务器。 + +### 导出镜像 + +在有公网资源的服务器上下载好`minio/minio`镜像 + +```bash +docker save -o minio.tar minio/minio:latest +``` + + + +### 导入镜像 + +把压缩文件复制到内网服务器上,使用下面的命令导入镜像 + +```bash +docker load minio.tar +``` + +### 运行 minio + +- 把/mnt/data 改成要替换的数据目录 +- 替换 MINIO_ACCESS_KEY +- 替换 MINIO_SECRET_KEY +- 替换 name,minio1(可选) +- 如果9000端口冲突,替换端口前面的如:9009:9000 + +```bash +sudo docker run -d -p 9000:9000 --name minio1 \ + -e "MINIO_ACCESS_KEY=改成自己需要的" \ + -e "MINIO_SECRET_KEY=改成自己需要的" \ + -v /mnt/data:/data \ + --restart=always \ + minio/minio server /data +``` + +### 访问 web 管理页面 + +http://x.x.x.x:9000/minio/ + diff --git a/install/_images/image-20200412202617411.png b/install/_images/image-20200412202617411.png new file mode 100644 index 0000000000000000000000000000000000000000..fb5caf25253f5fcf9dfa0dfc08dc290fa187196b GIT binary patch literal 120599 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ó|GQOc>9zFi<<(#wA^`I{jb-=G(1)XaJWY7A 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
    b34EhV0ai|0=hR# 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ϥ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 Rj5jj?fv2mV%Q~loCIF<^!My+g literal 0 HcmV?d00001 diff --git a/install/offline.md b/install/offline.md new file mode 100644 index 000000000..d01e47629 --- /dev/null +++ b/install/offline.md @@ -0,0 +1,249 @@ +# 离线部署Docker + +[TOC] + +生产环境中一般都是没有公网资源的,本文介绍如何在生产服务器上离线部署`Docker` + + + +括号内的字母表示该操作需要在哪些服务器上执行 + +Docker-offile-install-top + +## Centos7 离线安装Docker + +### YUM本地文件安装(推荐) + +推荐这种方式,是因为在生产环境种一般会选定某个指定的文档软件版本使用。 + +#### 查询可用的软件版本(A) + +```bash +#下载清华的镜像源文件 +wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo + +sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo + +yum update +``` + +```bash +sudo yum list docker-ce --showduplicates|sort -r + +Loading mirror speeds from cached hostfile +Loaded plugins: fastestmirror +docker-ce.x86_64 3:19.03.8-3.el7 docker-ce-stable +docker-ce.x86_64 3:19.03.7-3.el7 docker-ce-stable +docker-ce.x86_64 3:19.03.6-3.el7 docker-ce-stable +docker-ce.x86_64 3:19.03.5-3.el7 docker-ce-stable +docker-ce.x86_64 3:19.03.4-3.el7 docker-ce-stable +docker-ce.x86_64 3:19.03.3-3.el7 docker-ce-stable +docker-ce.x86_64 3:19.03.2-3.el7 docker-ce-stable +docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable +.... +``` + +#### 下载到指定文件夹(A) + +```bash +sudo yum install --downloadonly --downloaddir=/tmp/docker-19.03 docker-ce-19.03.8-3.el7 docker-ce-cli-19.03.8-3.el7 +``` + +```bash +Dependencies Resolved + +==================================================================================================================================================================================== + Package Arch Version Repository Size +==================================================================================================================================================================================== +Installing: + docker-ce x86_64 3:19.03.8-3.el7 docker 25 M +Installing for dependencies: + container-selinux noarch 2:2.107-3.el7 extras 39 k + containerd.io x86_64 1.2.13-3.1.el7 docker 23 M + docker-ce-cli x86_64 1:19.03.8-3.el7 docker 40 M + +Transaction Summary +==================================================================================================================================================================================== +Install 1 Package (+3 Dependent packages) + +Total download size: 87 M +Installed size: 363 M +Background downloading packages, then exiting: +(1/4): container-selinux-2.107-3.el7.noarch.rpm | 39 kB 00:00:00 +(2/4): containerd.io-1.2.13-3.1.el7.x86_64.rpm | 23 MB 00:00:00 +(3/4): docker-ce-19.03.8-3.el7.x86_64.rpm | 25 MB 00:00:00 +(4/4): docker-ce-cli-19.03.8-3.el7.x86_64.rpm | 40 MB 00:00:00 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +Total 118 MB/s | 87 MB 00:00:00 +exiting because "Download Only" specified +``` +#### 复制到目标服务器之后进入文件夹安装(C-N) + +```bash +yum install *.rpm +``` + +#### 锁定软件版本(C-N) + +##### 下载锁定版本软件 +可参考下文的网络源搭建 +```bash +sudo yum install yum-plugin-versionlock +``` + +##### 锁定软件版本 + +```bash +sudo yum versionlock add docker +``` + +##### 查看锁定列表 + +```bash +sudo yum versionlock list +``` + +```bash +Loaded plugins: fastestmirror, versionlock +3:docker-ce-18.09.9-3.el7.* +versionlock list done +``` + +##### 锁定后无法再更新 + +```bash +sudo yum install docker-ce +Loaded plugins: fastestmirror, versionlock +Loading mirror speeds from cached hostfile +Excluding 1 update due to versionlock (use "yum versionlock status" to show it) +Package 3:docker-ce-18.09.9-3.el7.x86_64 already installed and latest version +Nothing to do +``` + +##### 解锁指定软件 + +```bash +sudo yum versionlock delete docker-ce +``` + +```bash +Loaded plugins: fastestmirror, versionlock +Deleting versionlock for: 3:docker-ce-18.09.9-3.el7.* +versionlock deleted: 1 +``` + +##### 解锁所有软件 + +```bash +sudo yum versionlock delete all +``` + + + +### YUM 本地源服务器搭建安装Docker + +#### 挂载 ISO 镜像搭建本地 File 源(AB) + +```bash +# 删除其他网络源 +rm -f /etc/yum.repo.d/* +# 挂载光盘或者iso镜像 +mount /dev/cdrom /mnt +``` + +```bash +# 添加本地源 +cat >/etc/yum.repos.d/local_files.repo<< EOF +[Local_Files] +name=Local_Files +baseurl=file:///mnt +enable=1 +gpgcheck=0 +gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7 +EOF +``` + +```bash +# 测试刚才的本地源,安装createrepo软件 +yum clean all +yum install createrepo -y +``` + + + +#### 根据本地文件搭建BASE网络源(B) + +```bash +# 安装apache 服务器 +yum install httpd -y +# 挂载光盘 +mount /dev/cdrom /mnt +# 新建centos目录 +mkdir /var/www/html/base +# 复制光盘内的文件到刚才新建的目录 +cp -R /mnt/Packages/* /var/www/html/base/ +createrepo /var/www/html/centos/ +systemctl enable httpd +systemctl start httpd +``` + +#### 下载Docker-CE 镜像仓库(A) + +在有网络的服务器上下载Docker-ce镜像 + +```bash +# 下载清华的镜像源文件 +wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo +sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo +``` + +```bash +# 新建 docker-ce目录 +mkdir /tmp/docker-ce/ +# 把镜像源同步到镜像文件中 +reposync -r docker-ce-stable -p /tmp/docker-ce/ +``` + +#### 创建仓库索引(B) + +把下载的 docker-ce 文件夹复制到离线的服务器 + +```bash +# 把docker-ce 文件夹复制到/var/www/html/docker-ce +# 重建索引 +createrepo /var/www/html/docker-ce/ +``` + +#### YUM 客户端设置(C...N) + +```bash +rm -f /etc/yum.repo.d/* +cat >/etc/yum.repos.d/local_files.repo<< EOF +[local_base] +name=local_base +# 改成B服务器地址 +baseurl=http://x.x.x.x/base +enable=1 +gpgcheck=0 +proxy=_none_ +[docker_ce] +name=docker_ce +# 改成B服务器地址 +baseurl=http://x.x.x.x/base +enable=1 +gpgcheck=0 +proxy=_none_ +EOF + +``` + +#### Docker 安装(C...N) + +```bash +sudo yum makecache fast +sudo yum install docker-ce docker-ce-cli containerd.io +sudo systemctl enable docker +``` + + + From 4561243c237052fb4554aa0b531669418dbef0a7 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 26 Apr 2020 09:57:39 +0800 Subject: [PATCH 484/611] FCOS live iso require 3GB RAM Signed-off-by: Kang Huaishuai --- coreos/demo/example.fcc | 7 +++++++ coreos/install.md | 12 +++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 coreos/demo/example.fcc diff --git a/coreos/demo/example.fcc b/coreos/demo/example.fcc new file mode 100644 index 000000000..59c557680 --- /dev/null +++ b/coreos/demo/example.fcc @@ -0,0 +1,7 @@ +variant: fcos +version: 1.0.0 +passwd: + users: + - name: core + ssh_authorized_keys: + - ssh-rsa AAAA... diff --git a/coreos/install.md b/coreos/install.md index 2e2b693a8..8e3b7a746 100644 --- a/coreos/install.md +++ b/coreos/install.md @@ -24,15 +24,17 @@ passwd: ## 转换 FCC 为 Ignition ```bash -$ docker run -i --rm quay.io/coreos/fcct:v0.2.0 -pretty -strict < example.fcc > example.ign +$ docker run -i --rm quay.io/coreos/fcct:v0.5.0 --pretty --strict < example.fcc > example.ign ``` -## 启动虚拟机并安装 +## 挂载 ISO 启动虚拟机并安装 + +> 虚拟机需要分配 3GB 以上内存,否则会无法启动。 在虚拟机终端执行以下命令安装: ```bash -$ sudo coreos-installer install /dev/sda --ignition example.ign +$ sudo coreos-installer install /dev/sda --ignition-file example.ign ``` 安装之后重新启动即可使用。 @@ -44,3 +46,7 @@ $ ssh core@虚拟机IP $ docker --version ``` + +## 参考链接 + +* [官方文档](https://docs.fedoraproject.org/en-US/fedora-coreos/bare-metal/) From 0fd981acc28c41957480017778eedb6cdd20b487 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 26 Apr 2020 10:17:19 +0800 Subject: [PATCH 485/611] [buildx] buildkit image support tencent cloud env Signed-off-by: Kang Huaishuai --- buildx/multi-arch-images.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/buildx/multi-arch-images.md b/buildx/multi-arch-images.md index 1bc8b96e4..79b66aef2 100644 --- a/buildx/multi-arch-images.md +++ b/buildx/multi-arch-images.md @@ -14,10 +14,15 @@ $ docker run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd44 由于 Docker 默认的 `builder` 实例不支持同时指定多个 `--platform`,我们必须首先创建一个新的 `builder` 实例。同时由于国内拉取镜像较缓慢,我们可以使用配置了 [镜像加速地址](https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md) 的 [`dockerpracticesig/buildkit:master`](https://github.com/docker-practice/buildx) 镜像替换官方镜像。 +> 如果你有私有的镜像加速器,可以基于 https://github.com/docker-practice/buildx 构建自己的 buildkit 镜像并使用它。 + ```bash # 适用于国内环境 $ docker buildx create --use --name=mybuilder-cn --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master +# 适用于腾讯云环境(腾讯云主机、coding.net 持续集成) +$ docker buildx create --use --name=mybuilder-cn --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master-tencent + # $ docker buildx create --name mybuilder --driver docker-container $ docker buildx use mybuilder From 18ab3069a318680153a786f497395664f61e7473 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 26 Apr 2020 10:34:02 +0800 Subject: [PATCH 486/611] Update soft to latest version Signed-off-by: Kang Huaishuai --- appendix/repo/nginx.md | 2 +- appendix/repo/nodejs.md | 2 +- appendix/repo/redis.md | 2 +- appendix/repo/ubuntu.md | 4 ++-- compose/install.md | 8 ++++---- install/mac.md | 4 ++-- kubernetes/setup/dashboard.md | 2 +- manifest | 10 +++++++--- 8 files changed, 19 insertions(+), 15 deletions(-) diff --git a/appendix/repo/nginx.md b/appendix/repo/nginx.md index 36b11c0e5..eb4eb662f 100644 --- a/appendix/repo/nginx.md +++ b/appendix/repo/nginx.md @@ -4,7 +4,7 @@ [Nginx](https://en.wikipedia.org/wiki/Nginx) 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。 -该仓库位于 `https://hub.docker.com/_/nginx/` ,提供了 Nginx 1.0 ~ 1.17.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/nginx/` ,提供了 Nginx 1.0 ~ 1.18.x 各个版本的镜像。 ## 使用方法 diff --git a/appendix/repo/nodejs.md b/appendix/repo/nodejs.md index ffe426743..d44563aa6 100644 --- a/appendix/repo/nodejs.md +++ b/appendix/repo/nodejs.md @@ -4,7 +4,7 @@ [Node.js](https://en.wikipedia.org/wiki/Node.js) 是基于 JavaScript 的可扩展服务端和网络软件开发平台。 -该仓库位于 `https://hub.docker.com/_/node/` ,提供了 Node.js 0.10 ~ 12.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/node/` ,提供了 Node.js 0.10 ~ 14.x 各个版本的镜像。 ## 使用方法 diff --git a/appendix/repo/redis.md b/appendix/repo/redis.md index 9f06dedea..d14a73634 100644 --- a/appendix/repo/redis.md +++ b/appendix/repo/redis.md @@ -4,7 +4,7 @@ [Redis](https://en.wikipedia.org/wiki/Redis) 是开源的内存 Key-Value 数据库实现。 -该仓库位于 `https://hub.docker.com/_/redis/` ,提供了 Redis 3.x ~ 5.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/redis/` ,提供了 Redis 3.x ~ 6.x 各个版本的镜像。 ## 使用方法 diff --git a/appendix/repo/ubuntu.md b/appendix/repo/ubuntu.md index c904d991c..c2f534eef 100644 --- a/appendix/repo/ubuntu.md +++ b/appendix/repo/ubuntu.md @@ -4,14 +4,14 @@ [Ubuntu](https://en.wikipedia.org/wiki/Ubuntu) 是流行的 Linux 发行版,其自带软件版本往往较新一些。 -该仓库位于 `https://hub.docker.com/_/ubuntu/` ,提供了 Ubuntu 从 12.04 ~ 19.04 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/ubuntu/` ,提供了 Ubuntu 从 12.04 ~ 20.04 各个版本的镜像。 ## 使用方法 默认会启动一个最小化的 Ubuntu 环境。 ```bash -$ docker run --name some-ubuntu -it ubuntu:18.04 +$ docker run --name some-ubuntu -it ubuntu:20.04 root@523c70904d54:/# ``` diff --git a/compose/install.md b/compose/install.md index b9625e93d..92ae6fc3d 100644 --- a/compose/install.md +++ b/compose/install.md @@ -9,7 +9,7 @@ ```bash $ docker-compose --version -docker-compose version 1.24.1, build 4667896b +docker-compose version 1.25.5, build 4667896b ``` Linux 系统请使用以下介绍的方法安装。 @@ -21,7 +21,7 @@ Linux 系统请使用以下介绍的方法安装。 例如,在 Linux 64 位系统上直接下载对应的二进制包。 ```bash -$ sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose +$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose ``` @@ -42,7 +42,7 @@ $ sudo pip install -U docker-compose ```bash Collecting docker-compose - Downloading docker-compose-1.24.1.tar.gz (149kB): 149kB downloaded + Downloading docker-compose-1.25.5.tar.gz (149kB): 149kB downloaded ... Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress ``` @@ -50,7 +50,7 @@ Successfully installed docker-compose cached-property requests texttable websock ## bash 补全命令 ```bash -$ curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose +$ curl -L https://raw.githubusercontent.com/docker/compose/1.25.5/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose ``` ## 卸载 diff --git a/install/mac.md b/install/mac.md index 31eb13d1e..e84ac09a6 100644 --- a/install/mac.md +++ b/install/mac.md @@ -44,9 +44,9 @@ $ brew cask install docker ```bash $ docker --version -Docker version 19.03.1, build 74b1e89 +Docker version 19.03.8, build afacb8b $ docker-compose --version -docker-compose version 1.24.1, build 4667896b +docker-compose version 1.25.5, build 8a1c60f6 $ docker-machine --version docker-machine version 0.16.1, build cce350d7 ``` diff --git a/kubernetes/setup/dashboard.md b/kubernetes/setup/dashboard.md index e7275d820..0c51b1cc7 100644 --- a/kubernetes/setup/dashboard.md +++ b/kubernetes/setup/dashboard.md @@ -9,7 +9,7 @@ 执行以下命令即可部署 Dashboard: ```bash -kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml ``` ## 访问 diff --git a/manifest b/manifest index a30a44a65..dafda1705 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,12 @@ -DOCKER_VERSION=19.03.1 -DOCKER_COMPOSE_VERSION=1.24.1 +DOCKER_VERSION=19.03.8 +DOCKER_COMPOSE_VERSION=1.25.5 DOCKER_MACHINE_VERSION=0.16.1 ETCD_VERSION=3.4.0 KUBERNETES_VERSION=1.14.3 -KUBERNETES_DASHBOARD=2.0.0-beta8 +KUBERNETES_DASHBOARD=2.0.0 UBUNTU=18.04 DEBIAN=9 +NGINX_VERSION=1.18.x +NODE_VERSION=14.x +PHP_VERSION=7.x +REDIS_VERSION=6.x From 41da49b1278ca3f0e7f5173f12d64a8ec07bcb38 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 29 Apr 2020 11:36:50 -0700 Subject: [PATCH 487/611] Migrating to new gitbook link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f4f89a3d..536347248 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 -* 在线阅读:[docker-practice.com](https://vuepress.mirror.docker-practice.com/),[GitBook](https://yeasy.gitbooks.io/docker_practice/content/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) +* 在线阅读:[docker-practice.com](https://vuepress.mirror.docker-practice.com/),[GitBook](https://yeasy.gitbook.io/docker_practice/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD),[epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) * [离线阅读 `$ docker run -it --rm -p 4000:80 dockerpracticesig/docker_practice`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) From bdc8bd618cd9a38c5799bbbffc82f856fb6258dc Mon Sep 17 00:00:00 2001 From: Nie Shicong Date: Fri, 8 May 2020 19:20:23 +0800 Subject: [PATCH 488/611] =?UTF-8?q?Fix=20issue=20#447:=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E4=BA=86=E4=B8=80=E4=B8=AA=E5=A4=9A=E4=BD=99=E7=9A=84?= =?UTF-8?q?"=E5=AF=B9"=20(line=2097)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Nie Shicong --- image/build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/build.md b/image/build.md index 6fde477d6..1e34a7e0d 100644 --- a/image/build.md +++ b/image/build.md @@ -94,7 +94,7 @@ RUN buildDeps='gcc libc6-dev make wget' \ && apt-get purge -y --auto-remove $buildDeps ``` -首先,之前所有的命令只有一个目的,就是编译、安装 redis 可执行文件。因此没有必要建立很多层,这只是一层的事情。因此,这里没有使用很多个 `RUN` 对一一对应不同的命令,而是仅仅使用一个 `RUN` 指令,并使用 `&&` 将各个所需命令串联起来。将之前的 7 层,简化为了 1 层。在撰写 Dockerfile 的时候,要经常提醒自己,这并不是在写 Shell 脚本,而是在定义每一层该如何构建。 +首先,之前所有的命令只有一个目的,就是编译、安装 redis 可执行文件。因此没有必要建立很多层,这只是一层的事情。因此,这里没有使用很多个 `RUN` 一一对应不同的命令,而是仅仅使用一个 `RUN` 指令,并使用 `&&` 将各个所需命令串联起来。将之前的 7 层,简化为了 1 层。在撰写 Dockerfile 的时候,要经常提醒自己,这并不是在写 Shell 脚本,而是在定义每一层该如何构建。 并且,这里为了格式化还进行了换行。Dockerfile 支持 Shell 类的行尾添加 `\` 的命令换行方式,以及行首 `#` 进行注释的格式。良好的格式,比如换行、缩进、注释等,会让维护、排障更为容易,这是一个比较好的习惯。 From 683cf95ca7c85c541d6259336b9521a69920170a Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 28 Apr 2020 22:39:47 +0800 Subject: [PATCH 489/611] build vuepress docker image Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 3 +++ .github/workflows/ci.yaml | 21 +++++++++++++++++++++ .travis.yml | 10 +++++++++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 42fb287ff..2d75c1d9a 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -12,6 +12,7 @@ jobs: - uses: actions/checkout@master with: fetch-depth: 1 + # search Issues :-( - run: | docker run -i --rm \ -v $PWD:/mnt:ro \ @@ -56,6 +57,8 @@ jobs: "en.wikipedia.org/wiki/UnionFS",\ "product.china-pub.com",\ "union-click.jd.com",\ + "x.x.x.x/base",\ + "x.x.x.x:9000/minio/",\ "www.aliyun.com" \ --allow-dupe \ --skip-save-results \ diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index dc69604c5..8b4db364a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -67,3 +67,24 @@ jobs: PCIT_MESSAGE: Sync from yeasy/docker_practice@${{github.sha}} by PCIT PCIT_TARGET_BRANCH: master PCIT_USERNAME: ptt0xjqzbke3 + - name: Build vuepress docker image + if: github.repository == 'docker-practice/docker_practice' + run: | + sudo rm -rf .vuepress/dist/.git + + echo "FROM nginx:alpine" >> Dockerfile + echo "COPY .vuepress/dist /usr/share/nginx/html" >> Dockerfile + + echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin + + VCS_REF=`git rev-parse --short HEAD` + + docker build -t dockerpracticesig/docker_practice:vuepress \ + --label org.opencontainers.image.revision=$VCS_REF \ + --label org.opencontainers.image.source="https://github.com/yeasy/docker_practice" \ + . + + docker push dockerpracticesig/docker_practice:vuepress + env: + DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} + DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} diff --git a/.travis.yml b/.travis.yml index fb2dc2e5a..a43b38b8d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,14 +22,22 @@ after_success: - echo "COPY _book /usr/share/nginx/html" >> Dockerfile - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin +- export VCS_REF=`git rev-parse --short HEAD` +- | + docker build \ + -t dockerpracticesig/docker_practice \ + -t dockerpracticesig/docker_practice:gitbook \ + --label org.opencontainers.image.revision=$VCS_REF \ + --label org.opencontainers.image.source="https://github.com/yeasy/docker_practice" \ + . -- docker build -t dockerpracticesig/docker_practice . - docker run -dit --rm -p 4000:80 dockerpracticesig/docker_practice - sleep 5 - curl 127.0.0.1:4000 - docker push dockerpracticesig/docker_practice +- docker push dockerpracticesig/docker_practice:gitbook - cd _book - rm -rf .github/workflows From 9cfd1fda2b6dfb3a75639120616225f7bdb0bb0c Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 28 Apr 2020 23:26:55 +0800 Subject: [PATCH 490/611] offline read docker image add tips Signed-off-by: Kang Huaishuai --- .docker/docker-entrypoint.sh | 9 +++++++++ .github/workflows/ci.yaml | 3 +++ .travis.yml | 3 +++ 3 files changed, 15 insertions(+) create mode 100644 .docker/docker-entrypoint.sh diff --git a/.docker/docker-entrypoint.sh b/.docker/docker-entrypoint.sh new file mode 100644 index 000000000..5451d8ee7 --- /dev/null +++ b/.docker/docker-entrypoint.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env sh + +echo +echo +echo "Please open your browser: 127.0.0.1:4000" +echo +echo + +exec nginx -g "daemon off;" diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8b4db364a..1f86ec31e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -74,6 +74,8 @@ jobs: echo "FROM nginx:alpine" >> Dockerfile echo "COPY .vuepress/dist /usr/share/nginx/html" >> Dockerfile + echo "COPY .docker/docker-entrypoint.sh /" >> Dockerfile + echo "CMD [\"sh\", \"/docker-entrypoint.sh\"]" >> Dockerfile echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin @@ -82,6 +84,7 @@ jobs: docker build -t dockerpracticesig/docker_practice:vuepress \ --label org.opencontainers.image.revision=$VCS_REF \ --label org.opencontainers.image.source="https://github.com/yeasy/docker_practice" \ + --label maintainer="https://github.com/docker-practice" \ . docker push dockerpracticesig/docker_practice:vuepress diff --git a/.travis.yml b/.travis.yml index a43b38b8d..419c1a522 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,8 @@ after_success: - echo "FROM nginx:alpine" >> Dockerfile - echo "COPY _book /usr/share/nginx/html" >> Dockerfile +- echo "COPY .docker/docker-entrypoint.sh /" >> Dockerfile +- echo "CMD [\"sh\", \"/docker-entrypoint.sh\"]" >> Dockerfile - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - export VCS_REF=`git rev-parse --short HEAD` @@ -29,6 +31,7 @@ after_success: -t dockerpracticesig/docker_practice:gitbook \ --label org.opencontainers.image.revision=$VCS_REF \ --label org.opencontainers.image.source="https://github.com/yeasy/docker_practice" \ + --label maintainer="https://github.com/docker-practice" \ . - docker run -dit --rm -p 4000:80 dockerpracticesig/docker_practice From 1316e412221a1f2e35793ec11b9458f92a1f4e37 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 29 Apr 2020 00:00:30 +0800 Subject: [PATCH 491/611] offline read image use cn mirror image Signed-off-by: Kang Huaishuai --- .docker/docker-entrypoint.sh | 2 ++ README.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.docker/docker-entrypoint.sh b/.docker/docker-entrypoint.sh index 5451d8ee7..18b1687f4 100644 --- a/.docker/docker-entrypoint.sh +++ b/.docker/docker-entrypoint.sh @@ -4,6 +4,8 @@ echo echo echo "Please open your browser: 127.0.0.1:4000" echo +echo "欢迎加入 QQ 群:【 145983035 】 分享 Docker 资源,交流 Docker 技术" +echo echo exec nginx -g "daemon off;" diff --git a/README.md b/README.md index 536347248..eaf509c0d 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ * 在线阅读:[docker-practice.com](https://vuepress.mirror.docker-practice.com/),[GitBook](https://yeasy.gitbook.io/docker_practice/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD),[epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) -* [离线阅读 `$ docker run -it --rm -p 4000:80 dockerpracticesig/docker_practice`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) +* [离线阅读 `$ docker run -it --rm -p 4000:80 ccr.ccs.tencentyun.com/dockerpracticesig/docker_practice:vuepress`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新稳定版本的 Docker 进行学习实践。欢迎 [参与项目维护](CONTRIBUTING.md)。 From acc5c6e723220929dacf0b67761de15648899e87 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 10 May 2020 10:43:51 +0800 Subject: [PATCH 492/611] Add link Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 1 + basic_concept/repository.md | 4 ++-- coreos/intro.md | 2 +- security/daemon_sec.md | 2 +- security/other_feature.md | 2 +- security/summary.md | 2 +- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 2d75c1d9a..7ebcd1843 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -59,6 +59,7 @@ jobs: "union-click.jd.com",\ "x.x.x.x/base",\ "x.x.x.x:9000/minio/",\ + "https://www.freedesktop.org/wiki/Software/systemd/",\ "www.aliyun.com" \ --allow-dupe \ --skip-save-results \ diff --git a/basic_concept/repository.md b/basic_concept/repository.md index d44f9dfe7..c7c8d03c8 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -14,9 +14,9 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像的 Registry 服务。一般这类公开服务允许用户免费上传、下载公开的镜像,并可能提供收费服务供用户管理私有镜像。 -最常使用的 Registry 公开服务是官方的 [Docker Hub](https://hub.docker.com/),这也是默认的 Registry,并拥有大量的高质量的官方镜像。除此以外,还有 [CoreOS](https://coreos.com/) 的 [Quay.io](https://quay.io/repository/),CoreOS 相关的镜像存储在这里;Google 的 [Google Container Registry](https://cloud.google.com/container-registry/),[Kubernetes](https://kubernetes.io/) 的镜像使用的就是这个服务。 +最常使用的 Registry 公开服务是官方的 [Docker Hub](https://hub.docker.com/),这也是默认的 Registry,并拥有大量的高质量的官方镜像。除此以外,还有 Red Hat 的 [Quay.io](https://quay.io/repository/);Google 的 [Google Container Registry](https://cloud.google.com/container-registry/),[Kubernetes](https://kubernetes.io/) 的镜像使用的就是这个服务。 -由于某些原因,在国内访问这些服务可能会比较慢。国内的一些云服务商提供了针对 Docker Hub 的镜像服务(`Registry Mirror`),这些镜像服务被称为**加速器**。常见的有 [阿里云加速器](https://cr.console.aliyun.com/#/accelerator)、[DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc) 等。使用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub 下载速度会提高很多。在 [安装 Docker](../install/mirror.md) 一节中有详细的配置方法。 +由于某些原因,在国内访问这些服务可能会比较慢。国内的一些云服务商提供了针对 Docker Hub 的镜像服务(`Registry Mirror`),这些镜像服务被称为 **加速器**。常见的有 [阿里云加速器](https://cr.console.aliyun.com/#/accelerator)、[DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc) 等。使用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub 下载速度会提高很多。在 [安装 Docker](../install/mirror.md) 一节中有详细的配置方法。 国内也有一些云服务商提供类似于 Docker Hub 的公开服务。比如 [网易云镜像服务](https://c.163.com/hub#/m/library/)、[DaoCloud 镜像市场](https://hub.daocloud.io/)、[阿里云镜像库](https://cr.console.aliyun.com) 等。 diff --git a/coreos/intro.md b/coreos/intro.md index bef861bff..d73998fd4 100644 --- a/coreos/intro.md +++ b/coreos/intro.md @@ -20,7 +20,7 @@ FCOS 使用 rpm-ostree 系统进行事务性升级。无需像 yum 升级那样 ### 容器工具 -对于诸如构建,复制和其他管理容器的任务,FCOS 用一组兼容的容器工具代替了 **Docker CLI** 工具。**podman CLI** 工具支持许多容器运行时功能,例如运行,启动,停止,列出和删除容器和镜像。**skopeo CLI** 工具可以复制,认证和签名镜像。您可以使用 **crictl CLI** 工具来处理 CRI-O 容器引擎中的容器和镜像。 +对于诸如构建,复制和其他管理容器的任务,FCOS 用一组兼容的容器工具代替了 **Docker CLI** 工具。**podman CLI** 工具支持许多容器运行时功能,例如运行,启动,停止,列出和删除容器和镜像。**skopeo CLI** 工具可以复制,认证和签名镜像。您还可以使用 **crictl CLI** 工具来处理 CRI-O 容器引擎中的容器和镜像。 ## 参考文档 diff --git a/security/daemon_sec.md b/security/daemon_sec.md index 7389ffba8..014ba12ae 100644 --- a/security/daemon_sec.md +++ b/security/daemon_sec.md @@ -13,6 +13,6 @@ 终极目标是改进 2 个重要的安全特性: * 将容器的 root 用户映射到本地主机上的非 root 用户,减轻容器和主机之间因权限提升而引起的安全问题; -* 允许 Docker 服务端在非 root 权限下运行,利用安全可靠的子进程来代理执行需要特权权限的操作。这些子进程将只允许在限定范围内进行操作,例如仅仅负责虚拟网络设定或文件系统管理、配置操作等。 +* 允许 Docker 服务端在 [非 root 权限](https://docs.docker.com/engine/security/rootless/) 下运行,利用安全可靠的子进程来代理执行需要特权权限的操作。这些子进程将只允许在限定范围内进行操作,例如仅仅负责虚拟网络设定或文件系统管理、配置操作等。 最后,建议采用专用的服务器来运行 Docker 和相关的管理服务(例如管理服务比如 ssh 监控和进程监控、管理工具 nrpe、collectd 等)。其它的业务服务都放到容器中去运行。 diff --git a/security/other_feature.md b/security/other_feature.md index 3a288c9f2..95cd6a71d 100644 --- a/security/other_feature.md +++ b/security/other_feature.md @@ -1,5 +1,5 @@ # 其它安全特性 -除了能力机制之外,还可以利用一些现有的安全机制来增强使用 Docker 的安全性,例如 TOMOYO, AppArmor, SELinux, GRSEC 等。 +除了能力机制之外,还可以利用一些现有的安全机制来增强使用 Docker 的安全性,例如 TOMOYO, AppArmor, Seccomp, SELinux, GRSEC 等。 Docker 当前默认只启用了能力机制。用户可以采用多种方案来加强 Docker 主机的安全,例如: * 在内核中启用 GRSEC 和 PAX,这将增加很多编译和运行时的安全检查;通过地址随机化避免恶意探测等。并且,启用该特性不需要 Docker 进行任何配置。 diff --git a/security/summary.md b/security/summary.md index 90d144b8f..3ec846730 100644 --- a/security/summary.md +++ b/security/summary.md @@ -1,4 +1,4 @@ # 总结 总体来看,Docker 容器还是十分安全的,特别是在容器内不使用 root 权限来运行进程的话。 -另外,用户可以使用现有工具,比如 Apparmor, SELinux, GRSEC 来增强安全性;甚至自己在内核中实现更复杂的安全机制。 +另外,用户可以使用现有工具,比如 [Apparmor](https://docs.docker.com/engine/security/apparmor/), [Seccomp](https://docs.docker.com/engine/security/seccomp/), SELinux, GRSEC 来增强安全性;甚至自己在内核中实现更复杂的安全机制。 From f580130be0851d4b6da4653b2eab165cf76f915a Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 11 May 2020 19:01:06 +0800 Subject: [PATCH 493/611] Add baidu registry mirror Signed-off-by: Kang Huaishuai --- install/mirror.md | 12 ++++++++---- repository/registry.md | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/install/mirror.md b/install/mirror.md index 6058b0c67..fefc5cc74 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -3,9 +3,10 @@ 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如: * [网易云加速器 `https://hub-mirror.c.163.com`](https://www.163yun.com/help/documents/56918246390157312) +* [百度云加速器 `https://mirror.baidubce.com`](https://cloud.baidu.com/doc/CCE/s/Yjxppt74z#%E4%BD%BF%E7%94%A8dockerhub%E5%8A%A0%E9%80%9F%E5%99%A8) * [阿里云加速器(需登录账号获取)](https://cr.console.aliyun.com/cn-hangzhou/mirrors) -> 由于镜像服务可能出现宕机,建议同时配置多个镜像。各个镜像站测试结果请到 [docker-practice/docker-registry-cn-mirror-test](https://github.com/docker-practice/docker-registry-cn-mirror-test/actions) 查看。 +**由于镜像服务可能出现宕机,建议同时配置多个镜像。各个镜像站测试结果请到 [docker-practice/docker-registry-cn-mirror-test](https://github.com/docker-practice/docker-registry-cn-mirror-test/actions) 查看。** > 国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档。 @@ -18,7 +19,8 @@ ```json { "registry-mirrors": [ - "https://hub-mirror.c.163.com" + "https://hub-mirror.c.163.com", + "https://mirror.baidubce.com" ] } ``` @@ -41,7 +43,8 @@ $ sudo systemctl restart docker ```json { "registry-mirrors": [ - "https://hub-mirror.c.163.com" + "https://hub-mirror.c.163.com", + "https://mirror.baidubce.com" ] } ``` @@ -53,7 +56,8 @@ $ sudo systemctl restart docker ```json { "registry-mirrors": [ - "https://hub-mirror.c.163.com" + "https://hub-mirror.c.163.com", + "https://mirror.baidubce.com" ] } ``` diff --git a/repository/registry.md b/repository/registry.md index 82bf695f6..cb0179a2a 100644 --- a/repository/registry.md +++ b/repository/registry.md @@ -104,7 +104,8 @@ REPOSITORY TAG IMAGE ID CREAT ```json { "registry-mirror": [ - "https://hub-mirror.c.163.com" + "https://hub-mirror.c.163.com", + "https://mirror.baidubce.com" ], "insecure-registries": [ "192.168.199.100:5000" From 4d3d2d21fe4432a0e4db755944f6ada0f038872d Mon Sep 17 00:00:00 2001 From: staticdax Date: Wed, 20 May 2020 01:33:03 +0800 Subject: [PATCH 494/611] =?UTF-8?q?fix=20typo:=20"=E8=BF=90=E7=94=A8"?= =?UTF-8?q?=E7=96=91=E4=BC=BC=E7=AC=94=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kubernetes/concepts.md | 6 +++--- kubernetes/intro.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kubernetes/concepts.md b/kubernetes/concepts.md index b79bb37f3..948bbcf66 100644 --- a/kubernetes/concepts.md +++ b/kubernetes/concepts.md @@ -83,11 +83,11 @@ Kubernetes 校验节点可用依赖于 ID。在当前的版本中,有两个接 ### 容器组管理 -容器组是一个运用管理和部署的高层次抽象,同时也是一组容器的接口。容器组是部署、水平放缩的最小单位。 +容器组是一个应用管理和部署的高层次抽象,同时也是一组容器的接口。容器组是部署、水平放缩的最小单位。 ### 容器组的使用 -容器组可以通过组合来构建复杂的运用,其本来的意义包含: +容器组可以通过组合来构建复杂的应用,其本来的意义包含: * 内容管理,文件和数据加载以及本地缓存管理等。 * 日志和检查点备份,压缩,快照等。 @@ -101,7 +101,7 @@ Kubernetes 校验节点可用依赖于 ID。在当前的版本中,有两个接 * 1.透明化。为了使容器组中的容器保持一致的基础设施和服务,比如进程管理和资源监控。这样设计是为了用户的便利性。 * 2.解偶软件之间的依赖。每个容器都可能重新构建和发布,Kubernetes 必须支持热发布和热更新(将来)。 -* 3.方便使用。用户不必运行独立的程序管理,也不用担心每个运用程序的退出状态。 +* 3.方便使用。用户不必运行独立的程序管理,也不用担心每个应用程序的退出状态。 * 4.高效。考虑到基础设施有更多的职责,容器必须要轻量化。 ### 容器组的生命状态 diff --git a/kubernetes/intro.md b/kubernetes/intro.md index 5666fc997..6ecce9453 100644 --- a/kubernetes/intro.md +++ b/kubernetes/intro.md @@ -2,7 +2,7 @@ ![](_images/kubernetes_logo.png) -Kubernetes 是 Google 团队发起的开源项目,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩,主要实现语言为 Go 语言。Kubernetes 是: +Kubernetes 是 Google 团队发起的开源项目,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及应用伸缩,主要实现语言为 Go 语言。Kubernetes 是: * 易学:轻量级,简单,容易理解 * 便携:支持公有云,私有云,混合云,以及多种云平台 From f0568ebffd7befb26e3c70fcb80e80c881244f6f Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 17 Jun 2020 00:10:09 +0800 Subject: [PATCH 495/611] Update install content Signed-off-by: Kang Huaishuai --- install/ubuntu.md | 1 + install/windows.md | 4 ++-- underly/container_format.md | 2 -- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/install/ubuntu.md b/install/ubuntu.md index 804048f6d..bee34bbf1 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -8,6 +8,7 @@ Docker CE 支持以下版本的 [Ubuntu](https://ubuntu.com/server) 操作系统: +* Ubuntu Focal 20.04 (LTS) * Eoan 19.10 * Bionic 18.04 (LTS) * Xenial 16.04 (LTS) diff --git a/install/windows.md b/install/windows.md index 841fe4a56..1df1335d4 100644 --- a/install/windows.md +++ b/install/windows.md @@ -2,7 +2,7 @@ ## 系统要求 -[Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/install/) 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V,或者 64 位版本的 Windows 10 Home Insider Preview build 19018+。 +[Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/install/) 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V(若版本为 v2004 及以上则无需开启 Hyper-V),或者 64 位版本的 Windows 10 Home v2004 及以上版本。 ## 安装 @@ -31,4 +31,4 @@ Docker CE 启动之后会在 Windows 任务栏出现鲸鱼图标。 ## 参考链接 * [官方文档](https://docs.docker.com/docker-for-windows/install/) -* [Docker Desktop WSL 2 backend](https://docs.docker.com/docker-for-windows/wsl-tech-preview/) +* [Docker Desktop WSL 2 backend](https://docs.docker.com/docker-for-windows/wsl/) diff --git a/underly/container_format.md b/underly/container_format.md index 983992538..1f943aad1 100644 --- a/underly/container_format.md +++ b/underly/container_format.md @@ -1,5 +1,3 @@ # 容器格式 最初,Docker 采用了 `LXC` 中的容器格式。从 0.7 版本以后开始去除 LXC,转而使用自行开发的 [libcontainer](https://github.com/docker/libcontainer),从 1.11 开始,则进一步演进为使用 [runC](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 - -对更多容器格式的支持,还在进一步的发展中。 From d4d09f5154e8cd5293a960c82d928dc197632d2c Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 17 Jun 2020 00:42:01 +0800 Subject: [PATCH 496/611] docker hub support buildx Signed-off-by: Kang Huaishuai --- appendix/repo/nginx.md | 2 +- buildx/buildkit.md | 4 +++- buildx/buildx.md | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/appendix/repo/nginx.md b/appendix/repo/nginx.md index eb4eb662f..8abac44e7 100644 --- a/appendix/repo/nginx.md +++ b/appendix/repo/nginx.md @@ -4,7 +4,7 @@ [Nginx](https://en.wikipedia.org/wiki/Nginx) 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。 -该仓库位于 `https://hub.docker.com/_/nginx/` ,提供了 Nginx 1.0 ~ 1.18.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/nginx/` ,提供了 Nginx 1.0 ~ 1.19.x 各个版本的镜像。 ## 使用方法 diff --git a/buildx/buildkit.md b/buildx/buildkit.md index f1b7e9f1d..235e1e60c 100644 --- a/buildx/buildkit.md +++ b/buildx/buildkit.md @@ -2,10 +2,12 @@ **BuildKit** 是下一代的镜像构建组件,在 https://github.com/moby/buildkit 开源。 -**注意:如果您的镜像构建使用的是云服务商提供的镜像构建服务(Docker Hub 自动构建、腾讯云容器服务、阿里云容器服务等),由于上述服务提供商的 Docker 版本低于 18.09,BuildKit 无法使用,将造成镜像构建失败。建议使用 BuildKit 构建镜像时使用一个新的 Dockerfile 文件(例如 Dockerfile.buildkit)** +**注意:如果您的镜像构建使用的是云服务商提供的镜像构建服务(腾讯云容器服务、阿里云容器服务等),由于上述服务提供商的 Docker 版本低于 18.09,BuildKit 无法使用,将造成镜像构建失败。建议使用 BuildKit 构建镜像时使用一个新的 Dockerfile 文件(例如 Dockerfile.buildkit)** **注意:docker-compose build 命令暂时不支持 BuildKit** +目前,Docker Hub 自动构建已经支持 buildkit,具体请参考 https://github.com/docker-practice/docker-hub-buildx + ## `Dockerfile` 新增指令详解 启用 `BuildKit` 之后,我们可以使用下面几个新的 `Dockerfile` 指令来加快镜像构建。 diff --git a/buildx/buildx.md b/buildx/buildx.md index 02c7ca5fc..cec0a543e 100644 --- a/buildx/buildx.md +++ b/buildx/buildx.md @@ -2,7 +2,7 @@ ## 启用 Buildx -`buildx` 命令属于实验特性,参考 [开启实验特性](../install/experimental.md) 一节。 +`buildx` 命令属于实验特性,参考 [开启实验特性](../install/experimental.md) 一节开启 Docker CLI 实验特性。 ## 使用 From 67213bc2f55f7c0e2b6535b7b765e6d9efd012d3 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 17 Jun 2020 00:49:13 +0800 Subject: [PATCH 497/611] Update ide content Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 4 ++-- SUMMARY.md | 4 ++-- buildx/buildx.md | 2 +- {IDE => ide}/README.md | 0 {IDE => ide}/vsCode.md | 0 5 files changed, 5 insertions(+), 5 deletions(-) rename {IDE => ide}/README.md (100%) rename {IDE => ide}/vsCode.md (100%) diff --git a/.vuepress/config.js b/.vuepress/config.js index ac3b2bed0..ce8fed5ed 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -176,8 +176,8 @@ module.exports = { title: "在 IDE 中使用 Docker", collapsable: false, children: [ - '/IDE/', - '/IDE/vsCode', + '/ide/', + '/ide/vsCode', ], }, ], diff --git a/SUMMARY.md b/SUMMARY.md index c655207f4..3fba08427 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -145,8 +145,8 @@ * [Drone](cases/ci/drone/README.md) * [部署 Drone](cases/ci/drone/install.md) * [Travis CI](cases/ci/travis/README.md) -* [在 IDE 中使用 Docker](IDE/README.md) - * [VS Code](IDE/vsCode.md) +* [在 IDE 中使用 Docker](ide/README.md) + * [VS Code](ide/vsCode.md) * [Docker 开源项目](opensource/README.md) * [LinuxKit](opensource/linuxkit.md) * [podman - 下一代 Linux 容器工具](podman/README.md) diff --git a/buildx/buildx.md b/buildx/buildx.md index cec0a543e..ee7ec45c8 100644 --- a/buildx/buildx.md +++ b/buildx/buildx.md @@ -2,7 +2,7 @@ ## 启用 Buildx -`buildx` 命令属于实验特性,参考 [开启实验特性](../install/experimental.md) 一节开启 Docker CLI 实验特性。 +`buildx` 命令属于实验特性,请参考 [开启实验特性](../install/experimental.md) 一节开启 Docker CLI 实验特性。 ## 使用 diff --git a/IDE/README.md b/ide/README.md similarity index 100% rename from IDE/README.md rename to ide/README.md diff --git a/IDE/vsCode.md b/ide/vsCode.md similarity index 100% rename from IDE/vsCode.md rename to ide/vsCode.md From 139b0ca65c279eb7b7c9395e67b34bd5767b485a Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 17 Jun 2020 18:28:29 +0800 Subject: [PATCH 498/611] Update raspberry os name Signed-off-by: Kang Huaishuai --- install/raspberry-pi.md | 11 +++++------ introduction/what.md | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index c3a29be11..66ee99be3 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -6,12 +6,11 @@ Docker CE 不仅支持 `x86_64` 架构的计算机,同时也支持 `ARM` 架构的计算机,本小节内容以树莓派单片电脑为例讲解 `ARM` 架构安装 Docker CE。 -Docker CE 支持以下版本的 [Raspbian](https://www.raspberrypi.org/downloads/raspbian/) 操作系统: +Docker CE 支持以下版本的 [Raspberry Pi OS](https://www.raspberrypi.org/downloads/raspberry-pi-os/) 操作系统: -* Raspbian Buster -* Raspbian Stretch +* Raspberry Pi OS Buster -*注:* `Raspbian` 是树莓派的开发与维护机构 [树莓派基金会](https://www.raspberrypi.org/) 推荐用于树莓派的首选系统,其基于 `Debian`。 +*注:* `Raspberry Pi OS` 由树莓派的开发与维护机构 [树莓派基金会](https://www.raspberrypi.org/) 官方支持,并推荐用作树莓派的首选系统,其基于 `Debian`。 ## 使用 APT 安装 @@ -71,7 +70,7 @@ $ sudo apt-get install docker-ce ## 使用脚本自动安装 -在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Raspbian 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: +在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Raspberry Pi OS 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: ```bash $ curl -fsSL get.docker.com -o get-docker.sh @@ -141,7 +140,7 @@ For more examples and ideas, visit: 若能正常输出以上信息,则说明安装成功。 -*注意:* ARM 平台不能使用 `x86` 镜像,查看 Raspbian 可使用镜像请访问 [arm32v7](https://hub.docker.com/u/arm32v7/)。 +*注意:* ARM 平台不能使用 `x86` 镜像,查看 Raspberry Pi OS 可使用镜像请访问 [arm32v7](https://hub.docker.com/u/arm32v7/) 或者 [arm64v8](https://hub.docker.com/u/arm64v8/)。 ## 镜像加速 diff --git a/introduction/what.md b/introduction/what.md index fe5ebd861..0787de110 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -1,6 +1,6 @@ # 什么是 Docker -**Docker** 最初是 `dotCloud` 公司创始人 [Solomon Hykes](https://github.com/shykes) 在法国期间发起的一个公司内部项目,它是基于 `dotCloud` 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源][docker-soft],主要项目代码在 [GitHub](https://github.com/moby/moby) 上进行维护。`Docker` 项目后来还加入了 Linux 基金会,并成立推动 [开放容器联盟(OCI)](https://www.opencontainers.org/)。 +**Docker** 最初是 `dotCloud` 公司创始人 [Solomon Hykes](https://github.com/shykes) 在法国期间发起的一个公司内部项目,它是基于 `dotCloud` 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源][docker-soft],主要项目代码在 [GitHub](https://github.com/moby/moby) 上进行维护。`Docker` 项目后来还加入了 Linux 基金会,并成立推动 [开放容器联盟(OCI)](https://opencontainers.org/)。 **Docker** 自开源后受到广泛的关注和讨论,至今其 [GitHub 项目](https://github.com/moby/moby) 已经超过 5 万 4 千个星标和一万多个 `fork`。甚至由于 `Docker` 项目的火爆,在 `2013` 年底,[dotCloud 公司决定改名为 Docker](https://www.docker.com/blog/dotcloud-is-becoming-docker-inc/)。`Docker` 最初是在 `Ubuntu 12.04` 上开发实现的;`Red Hat` 则从 `RHEL 6.5` 开始对 `Docker` 进行支持;`Google` 也在其 `PaaS` 产品中广泛应用 `Docker`。 From 8b186fb7e709832bbe423df68b52866870d5fd55 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 22 Jun 2020 09:22:53 +0800 Subject: [PATCH 499/611] [windows] install by winget Signed-off-by: Kang Huaishuai --- install/windows.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/install/windows.md b/install/windows.md index 1df1335d4..a683d9ec1 100644 --- a/install/windows.md +++ b/install/windows.md @@ -6,10 +6,22 @@ ## 安装 +**手动下载安装** + 点击以下链接下载 [Stable](https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe) 或 [Edge](https://download.docker.com/win/edge/Docker%20Desktop%20Installer.exe) 版本的 Docker Desktop for Windows。 下载好之后双击 `Docker Desktop Installer.exe` 开始安装。 +**使用 [winget](https://docs.microsoft.com/zh-cn/windows/package-manager/) 安装** + +```powershell +# stable +$ winget install Docker.DockerDesktop + +# edge +$ winget install Docker.DockerDesktopEdge +``` + ## 运行 在 Windows 搜索栏输入 **Docker** 点击 **Docker Desktop** 开始运行。 From 911ce1a2e4e345b95962e16571ffafb114b111a3 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Fri, 3 Jul 2020 12:10:24 +0800 Subject: [PATCH 500/611] Fixed #454 Signed-off-by: Kang Huaishuai --- .docker/docker-entrypoint.sh | 0 .github/workflows/ci.yaml | 6 +++++- .travis.yml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) mode change 100644 => 100755 .docker/docker-entrypoint.sh diff --git a/.docker/docker-entrypoint.sh b/.docker/docker-entrypoint.sh old mode 100644 new mode 100755 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1f86ec31e..cb310cb57 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -75,7 +75,7 @@ jobs: echo "FROM nginx:alpine" >> Dockerfile echo "COPY .vuepress/dist /usr/share/nginx/html" >> Dockerfile echo "COPY .docker/docker-entrypoint.sh /" >> Dockerfile - echo "CMD [\"sh\", \"/docker-entrypoint.sh\"]" >> Dockerfile + echo "ENTRYPOINT [\"/docker-entrypoint.sh\"]" >> Dockerfile echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin @@ -88,6 +88,10 @@ jobs: . docker push dockerpracticesig/docker_practice:vuepress + + docker run -it --rm -d -p 4000:80 dockerpracticesig/docker_practice:vuepress + + curl 127.0.0.1:4000 env: DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} diff --git a/.travis.yml b/.travis.yml index 419c1a522..3f12f43f0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ after_success: - echo "FROM nginx:alpine" >> Dockerfile - echo "COPY _book /usr/share/nginx/html" >> Dockerfile - echo "COPY .docker/docker-entrypoint.sh /" >> Dockerfile -- echo "CMD [\"sh\", \"/docker-entrypoint.sh\"]" >> Dockerfile +- echo "ENTRYPOINT [\"/docker-entrypoint.sh\"]" >> Dockerfile - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - export VCS_REF=`git rev-parse --short HEAD` From 6c668a94dfca99182faca16134f430265024347d Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sat, 4 Jul 2020 13:01:22 +0800 Subject: [PATCH 501/611] Update README MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整章节顺序 Signed-off-by: Kang Huaishuai --- README.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index eaf509c0d..c86613629 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Docker — 从入门到实践 -[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v19.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS) +[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v19.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)][1] **v1.2.0** @@ -14,7 +14,7 @@ 无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker,节约有限的生命。 -本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 +本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 12 章介绍了容器生态中的几个核心项目;13、14 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、Fedora CoreOS、Kubernetes、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 * 在线阅读:[docker-practice.com](https://vuepress.mirror.docker-practice.com/),[GitBook](https://yeasy.gitbook.io/docker_practice/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) * 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD),[epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) @@ -58,17 +58,11 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 ## 进阶学习 -[![](https://github.com/yeasy/docker_practice/raw/master/_images/docker_primer3.png)](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS) +[![](https://github.com/yeasy/docker_practice/raw/master/_images/docker_primer3.png)][1] -《[Docker 技术入门与实战](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS)》第三版已经面世,介绍最新的容器技术栈,欢迎大家阅读使用并反馈建议。 +《[Docker 技术入门与实战][1]》第三版已经面世,介绍最新的容器技术栈,欢迎大家阅读使用并反馈建议。 -

    - -

    - -

    微信扫码购买~

    - -* [京东图书](https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS) +* [京东图书][1] * [China-Pub](http://product.china-pub.com/8052127) ## 鼓励项目 @@ -78,3 +72,5 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初

    欢迎鼓励项目一杯 coffee~

    + +[1]: https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS From 6efe0297fe3616273ad0ba9a9cb9b84c0445daf7 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 14 Jul 2020 00:08:15 +0800 Subject: [PATCH 502/611] Remove download link #455 Signed-off-by: Kang Huaishuai --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index c86613629..b094072ee 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,6 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 12 章介绍了容器生态中的几个核心项目;13、14 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、Fedora CoreOS、Kubernetes、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 * 在线阅读:[docker-practice.com](https://vuepress.mirror.docker-practice.com/),[GitBook](https://yeasy.gitbook.io/docker_practice/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) -* 下载:[pdf](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD),[epub](https://github.com/yeasy/docker_practice/wiki/%E4%B8%8B%E8%BD%BD) * [离线阅读 `$ docker run -it --rm -p 4000:80 ccr.ccs.tencentyun.com/dockerpracticesig/docker_practice:vuepress`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新稳定版本的 Docker 进行学习实践。欢迎 [参与项目维护](CONTRIBUTING.md)。 From 4aa20ecce35b4fdb9c10dadfdf278d80dc03b03a Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 14 Jul 2020 00:09:11 +0800 Subject: [PATCH 503/611] Update actions 301 link Signed-off-by: Kang Huaishuai --- cases/ci/actions/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cases/ci/actions/README.md b/cases/ci/actions/README.md index bd34f075b..204865208 100644 --- a/cases/ci/actions/README.md +++ b/cases/ci/actions/README.md @@ -25,4 +25,4 @@ jobs: ## 参考资料 -* [Actions Docs](https://help.github.com/en/actions) +* [Actions Docs](https://docs.github.com/en/actions) From c815720349a905a712a001f097f8dd8d83c24fa4 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 14 Jul 2020 16:20:36 +0800 Subject: [PATCH 504/611] Update image link Signed-off-by: Kang Huaishuai --- README.md | 6 +++--- appendix/repo/php.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b094072ee..a2bda5734 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 ## 微信小程序

    - +

    微信扫码 随时随地阅读~

    @@ -50,10 +50,10 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 >如果有容器相关的疑问,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new/choose) 来提出。

    - +

    -

    微信扫码 加入群聊~

    +

    微信扫码 加入群聊~ 或者微信添加 dpsigs 邀请入群

    ## 进阶学习 diff --git a/appendix/repo/php.md b/appendix/repo/php.md index 0d54c90a9..5ef53b845 100644 --- a/appendix/repo/php.md +++ b/appendix/repo/php.md @@ -4,7 +4,7 @@ [PHP](https://en.wikipedia.org/wiki/Php)(Hypertext Preprocessor 超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。 -该仓库位于 `https://hub.docker.com/_/php/` ,提供了 PHP 5.x ~ 7.x 各个版本的镜像。 +该仓库位于 `https://hub.docker.com/_/php/` ,提供了 PHP 5.x ~ 8.x 各个版本的镜像。 ## 使用方法 From 61bda4b259e98bb9bc79e0934905484f5c71f6c8 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 14 Jul 2020 16:58:22 +0800 Subject: [PATCH 505/611] Fixed docker image Signed-off-by: Kang Huaishuai --- .travis/Dockerfile | 4 ++-- podman/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis/Dockerfile b/.travis/Dockerfile index cee1e5e2b..cb4c7f36d 100644 --- a/.travis/Dockerfile +++ b/.travis/Dockerfile @@ -1,4 +1,4 @@ -FROM node:alpine +FROM node:14.4.0-alpine ENV TZ=Asia/Shanghai @@ -8,7 +8,7 @@ COPY book.json book.json COPY docker-entrypoint.sh /usr/local/bin/ -RUN apk add --no-cache \ +RUN set -x && apk add --no-cache \ tzdata \ && npm install -g gitbook-cli \ && gitbook install \ diff --git a/podman/README.md b/podman/README.md index b24215200..1930d0454 100644 --- a/podman/README.md +++ b/podman/README.md @@ -1,6 +1,6 @@ # podman -[`podman`](https://github.com/containers/libpod) 是一个无守护程序与 docker 命令兼容的下一代 Linux 容器工具。 +[`podman`](https://github.com/containers/podman) 是一个无守护程序与 docker 命令兼容的下一代 Linux 容器工具。 ## 安装 From 83fbb87fd1559480c627c243a85f6c6e6fea2ba6 Mon Sep 17 00:00:00 2001 From: huiyifyj Date: Thu, 30 Jul 2020 09:26:49 +0800 Subject: [PATCH 506/611] Add the word to read more fluently --- data_management/volume.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_management/volume.md b/data_management/volume.md index 5fc3193cf..6949adde5 100644 --- a/data_management/volume.md +++ b/data_management/volume.md @@ -10,7 +10,7 @@ * `数据卷` 默认会一直存在,即使容器被删除 ->注意:`数据卷` 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的 `数据卷`。 +>注意:`数据卷` 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看到的是挂载的 `数据卷`。 ## 创建一个数据卷 From 85b2325513002fe10717114ef7e885e3112f68ca Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Thu, 23 Jul 2020 22:09:38 +0800 Subject: [PATCH 507/611] Update link Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 2 +- cloud/tencentCloud.md | 6 +++--- install/mirror.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.vuepress/config.js b/.vuepress/config.js index ce8fed5ed..688907437 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -82,7 +82,7 @@ module.exports = { // }, { text: '腾讯云容器服务', - link: 'https://cloud.tencent.com/redirect.php?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61' + link: 'https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61' }, // { // text: '语言', diff --git a/cloud/tencentCloud.md b/cloud/tencentCloud.md index 4af43eea4..383aa9391 100644 --- a/cloud/tencentCloud.md +++ b/cloud/tencentCloud.md @@ -2,10 +2,10 @@ ![腾讯云](_images/qcloud-logo.jpg) -[腾讯云](https://cloud.tencent.com/redirect.php?redirect=1040&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console) 在架构方面经过多年积累,并且有着多年对海量互联网服务的经验。不管是社交、游戏还是其他领域,都有多年的成熟产品来提供产品服务。腾讯在云端完成重要部署,为开发者及企业提供云服务、云数据、云运营等整体一站式服务方案。 +[腾讯云](https://cloud.tencent.com/act/cps/redirect?redirect=1040&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console) 在架构方面经过多年积累,并且有着多年对海量互联网服务的经验。不管是社交、游戏还是其他领域,都有多年的成熟产品来提供产品服务。腾讯在云端完成重要部署,为开发者及企业提供云服务、云数据、云运营等整体一站式服务方案。 -具体包括 [云服务器](https://cloud.tencent.com/redirect.php?redirect=1001&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[云存储](https://cloud.tencent.com/redirect.php?redirect=1020&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[云数据库](https://cloud.tencent.com/redirect.php?redirect=1003&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[视频与CDN](https://cloud.tencent.com/redirect.php?redirect=1019&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console) 和 [域名注册](https://dnspod.cloud.tencent.com) 等基础云服务;腾讯云分析(MTA)、腾讯云推送(信鸽)等腾讯整体大数据能力;以及 QQ互联、QQ 空间、微云、微社区等云端链接社交体系。这些正是腾讯云可以提供给这个行业的差异化优势,造就了可支持各种互联网使用场景的高品质的腾讯云技术平台。 +具体包括 [云服务器](https://cloud.tencent.com/act/cps/redirect?redirect=1001&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[云存储](https://cloud.tencent.com/act/cps/redirect?redirect=1020&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[云数据库](https://cloud.tencent.com/act/cps/redirect?redirect=1003&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console)、[视频与CDN](https://cloud.tencent.com/act/cps/redirect?redirect=1019&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console) 和 [域名注册](https://dnspod.cloud.tencent.com) 等基础云服务;腾讯云分析(MTA)、腾讯云推送(信鸽)等腾讯整体大数据能力;以及 QQ互联、QQ 空间、微云、微社区等云端链接社交体系。这些正是腾讯云可以提供给这个行业的差异化优势,造就了可支持各种互联网使用场景的高品质的腾讯云技术平台。 -[腾讯云容器服务 TKE](https://cloud.tencent.com/redirect.php?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61) 是高度可扩展的高性能容器管理服务,用户可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,将无需安装、运维、扩展用户的集群管理基础设施,只需进行简单的 API 调用,便可启动和停止 Docker 应用程序,查询集群的完整状态,以及使用各种云服务。用户可以根据用户的资源需求和可用性要求在用户的集群中安排容器的置放,满足业务或应用程序的特定要求。 +[腾讯云容器服务 TKE](https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61) 是高度可扩展的高性能容器管理服务,用户可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,将无需安装、运维、扩展用户的集群管理基础设施,只需进行简单的 API 调用,便可启动和停止 Docker 应用程序,查询集群的完整状态,以及使用各种云服务。用户可以根据用户的资源需求和可用性要求在用户的集群中安排容器的置放,满足业务或应用程序的特定要求。 ![](https://mc.qcloudimg.com/static/img/0581dbeb97c869bbe6e62025dbc592d7/image.png) diff --git a/install/mirror.md b/install/mirror.md index fefc5cc74..19184a333 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -91,4 +91,4 @@ $ docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/xxx * [Azure 中国镜像 `https://dockerhub.azk8s.cn`](https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md#22-container-registry-proxy) -* [腾讯云 `https://mirror.ccs.tencentyun.com`](https://cloud.tencent.com/redirect.php?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61) +* [腾讯云 `https://mirror.ccs.tencentyun.com`](https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61) From acb8662c43ab97a925b0698c5e9fcf64fa343a67 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 10 Aug 2020 13:40:04 +0800 Subject: [PATCH 508/611] wechat is first Signed-off-by: Kang Huaishuai --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index a2bda5734..4daed698c 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,12 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 ## 技术交流 +

    + +

    + +

    微信扫码 加入群聊~ 或者微信添加 dpsigs 邀请入群

    + 欢迎加入 Docker 技术交流 QQ 群,分享 Docker 资源,交流 Docker 技术。 * QQ 群 I (已满):341410255 @@ -49,12 +55,6 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 >如果有容器相关的疑问,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new/choose) 来提出。 -

    - -

    - -

    微信扫码 加入群聊~ 或者微信添加 dpsigs 邀请入群

    - ## 进阶学习 [![](https://github.com/yeasy/docker_practice/raw/master/_images/docker_primer3.png)][1] From edf1a3a07b1a9e9c9d5226429163fdea9e779581 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 10 Aug 2020 13:41:36 +0800 Subject: [PATCH 509/611] remove outdated content #458 Signed-off-by: Kang Huaishuai --- image/rm.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/image/rm.md b/image/rm.md index 07b0f19e4..026a51ce7 100644 --- a/image/rm.md +++ b/image/rm.md @@ -85,15 +85,3 @@ $ docker image rm $(docker image ls -q -f before=mongo:3.2) ``` 充分利用你的想象力和 Linux 命令行的强大,你可以完成很多非常赞的功能。 - -## CentOS/RHEL 的用户需要注意的事项 - -> 以下内容仅适用于 Docker CE 18.09 以下版本,在 Docker CE 18.09 版本中默认使用的是 `overlay2` 驱动。 - -~~在 Ubuntu/Debian 上有 `UnionFS` 可以使用,如 `aufs` 或者 `overlay2`,而 CentOS 和 RHEL 的内核中没有相关驱动。因此对于这类系统,一般使用 `devicemapper` 驱动利用 LVM 的一些机制来模拟分层存储。这样的做法除了性能比较差外,稳定性一般也不好,而且配置相对复杂。Docker 安装在 CentOS/RHEL 上后,会默认选择 `devicemapper`,但是为了简化配置,其 `devicemapper` 是跑在一个稀疏文件模拟的块设备上,也被称为 `loop-lvm`。这样的选择是因为不需要额外配置就可以运行 Docker,这是自动配置唯一能做到的事情。但是 `loop-lvm` 的做法非常不好,其稳定性、性能更差,无论是日志还是 `docker info` 中都会看到警告信息。官方文档有明确的文章讲解了如何配置块设备给 `devicemapper` 驱动做存储层的做法,这类做法也被称为配置 `direct-lvm`。~~ - -~~除了前面说到的问题外,`devicemapper` + `loop-lvm` 还有一个缺陷,因为它是稀疏文件,所以它会不断增长。用户在使用过程中会注意到 `/var/lib/docker/devicemapper/devicemapper/data` 不断增长,而且无法控制。很多人会希望删除镜像或者可以解决这个问题,结果发现效果并不明显。原因就是这个稀疏文件的空间释放后基本不进行垃圾回收的问题。因此往往会出现即使删除了文件内容,空间却无法回收,随着使用这个稀疏文件一直在不断增长。~~ - -~~所以对于 CentOS/RHEL 的用户来说,在没有办法使用 `UnionFS` 的情况下,一定要配置 `direct-lvm` 给 `devicemapper`,无论是为了性能、稳定性还是空间利用率。~~ - -~~*或许有人注意到了 CentOS 7 中存在被 backports 回来的 `overlay` 驱动,不过 CentOS 里的这个驱动达不到生产环境使用的稳定程度,所以不推荐使用。*~~ From 9a4660492ca79413a4c319cc0d42cedaa9df804a Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 10 Aug 2020 13:43:33 +0800 Subject: [PATCH 510/611] ip.cn not support https Signed-off-by: Kang Huaishuai --- image/dockerfile/entrypoint.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/image/dockerfile/entrypoint.md b/image/dockerfile/entrypoint.md index 25090dd46..3f7ebfa29 100644 --- a/image/dockerfile/entrypoint.md +++ b/image/dockerfile/entrypoint.md @@ -21,7 +21,7 @@ FROM ubuntu:18.04 RUN apt-get update \ && apt-get install -y curl \ && rm -rf /var/lib/apt/lists/* -CMD [ "curl", "-s", "https://ip.cn" ] +CMD [ "curl", "-s", "http://ip.cn" ] ``` 假如我们使用 `docker build -t myip .` 来构建镜像的话,如果我们需要查询当前公网 IP,只需要执行: @@ -38,12 +38,12 @@ $ docker run myip -i docker: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"-i\\\": executable file not found in $PATH\"\n". ``` -我们可以看到可执行文件找不到的报错,`executable file not found`。之前我们说过,跟在镜像名后面的是 `command`,运行时会替换 `CMD` 的默认值。因此这里的 `-i` 替换了原来的 `CMD`,而不是添加在原来的 `curl -s https://ip.cn` 后面。而 `-i` 根本不是命令,所以自然找不到。 +我们可以看到可执行文件找不到的报错,`executable file not found`。之前我们说过,跟在镜像名后面的是 `command`,运行时会替换 `CMD` 的默认值。因此这里的 `-i` 替换了原来的 `CMD`,而不是添加在原来的 `curl -s http://ip.cn` 后面。而 `-i` 根本不是命令,所以自然找不到。 那么如果我们希望加入 `-i` 这参数,我们就必须重新完整的输入这个命令: ```bash -$ docker run myip curl -s https://ip.cn -i +$ docker run myip curl -s http://ip.cn -i ``` 这显然不是很好的解决方案,而使用 `ENTRYPOINT` 就可以解决这个问题。现在我们重新用 `ENTRYPOINT` 来实现这个镜像: @@ -53,7 +53,7 @@ FROM ubuntu:18.04 RUN apt-get update \ && apt-get install -y curl \ && rm -rf /var/lib/apt/lists/* -ENTRYPOINT [ "curl", "-s", "https://ip.cn" ] +ENTRYPOINT [ "curl", "-s", "http://ip.cn" ] ``` 这次我们再来尝试直接使用 `docker run myip -i`: From 9bc245dfdc557bcfeb9f93d29c4980bf2527481c Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sat, 22 Aug 2020 09:38:34 +0800 Subject: [PATCH 511/611] [Windows] v1903+ support WSL2 Signed-off-by: Kang Huaishuai --- install/windows.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install/windows.md b/install/windows.md index a683d9ec1..d62c0cc94 100644 --- a/install/windows.md +++ b/install/windows.md @@ -2,7 +2,7 @@ ## 系统要求 -[Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/install/) 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V(若版本为 v2004 及以上则无需开启 Hyper-V),或者 64 位版本的 Windows 10 Home v2004 及以上版本。 +[Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/install/) 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V(若版本为 v1903 及以上则无需开启 Hyper-V),或者 64 位版本的 Windows 10 Home v1903 及以上版本。 ## 安装 @@ -44,3 +44,4 @@ Docker CE 启动之后会在 Windows 任务栏出现鲸鱼图标。 * [官方文档](https://docs.docker.com/docker-for-windows/install/) * [Docker Desktop WSL 2 backend](https://docs.docker.com/docker-for-windows/wsl/) +* [WSL 2 Support is coming to Windows 10 Versions 1903 and 1909](https://devblogs.microsoft.com/commandline/wsl-2-support-is-coming-to-windows-10-versions-1903-and-1909/) From 6eb603a33b4db2dd95305d5a5a8d4442f76fabc8 Mon Sep 17 00:00:00 2001 From: mayingchun Date: Tue, 25 Aug 2020 14:19:23 +0800 Subject: [PATCH 512/611] Fix issue #459 --- data_management/volume.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_management/volume.md b/data_management/volume.md index 6949adde5..89d6d731b 100644 --- a/data_management/volume.md +++ b/data_management/volume.md @@ -73,7 +73,7 @@ $ docker inspect web "Type": "volume", "Name": "my-vol", "Source": "/var/lib/docker/volumes/my-vol/_data", - "Destination": "/app", + "Destination": "/webapp", "Driver": "local", "Mode": "", "RW": true, From ee26243625558e74ff6939f09f9a617a993d2ab7 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 25 Aug 2020 16:54:59 +0800 Subject: [PATCH 513/611] use nginx:alpine as demo Signed-off-by: Kang Huaishuai --- container/stop.md | 1 - data_management/bind-mounts.md | 22 ++++++++--------- data_management/volume.md | 14 +++++------ network/port_mapping.md | 43 ++++++++++++++++------------------ 4 files changed, 37 insertions(+), 43 deletions(-) diff --git a/container/stop.md b/container/stop.md index 77dd73269..1c00fe4d8 100644 --- a/container/stop.md +++ b/container/stop.md @@ -12,7 +12,6 @@ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ba267838cc1b ubuntu:18.04 "/bin/bash" 30 minutes ago Exited (0) About a minute ago trusting_newton -98e5efa7d997 training/webapp:latest "python app.py" About an hour ago Exited (0) 34 minutes ago backstabbing_pike ``` 处于终止状态的容器,可以通过 `docker container start` 命令来重新启动。 diff --git a/data_management/bind-mounts.md b/data_management/bind-mounts.md index 8c9ac30c6..278d12ff2 100644 --- a/data_management/bind-mounts.md +++ b/data_management/bind-mounts.md @@ -7,29 +7,27 @@ ```bash $ docker run -d -P \ --name web \ - # -v /src/webapp:/opt/webapp \ - --mount type=bind,source=/src/webapp,target=/opt/webapp \ - training/webapp \ - python app.py + # -v /src/webapp:/usr/share/nginx/html \ + --mount type=bind,source=/src/webapp,target=/usr/share/nginx/html \ + nginx:alpine ``` -上面的命令加载主机的 `/src/webapp` 目录到容器的 `/opt/webapp`目录。这个功能在进行测试的时候十分方便,比如用户可以放置一些程序到本地目录中,来查看容器是否正常工作。本地目录的路径必须是绝对路径,以前使用 `-v` 参数时如果本地目录不存在 Docker 会自动为你创建一个文件夹,现在使用 `--mount` 参数时如果本地目录不存在,Docker 会报错。 +上面的命令加载主机的 `/src/webapp` 目录到容器的 `/usr/share/nginx/html`目录。这个功能在进行测试的时候十分方便,比如用户可以放置一些程序到本地目录中,来查看容器是否正常工作。本地目录的路径必须是绝对路径,以前使用 `-v` 参数时如果本地目录不存在 Docker 会自动为你创建一个文件夹,现在使用 `--mount` 参数时如果本地目录不存在,Docker 会报错。 Docker 挂载主机目录的默认权限是 `读写`,用户也可以通过增加 `readonly` 指定为 `只读`。 ```bash $ docker run -d -P \ --name web \ - # -v /src/webapp:/opt/webapp:ro \ - --mount type=bind,source=/src/webapp,target=/opt/webapp,readonly \ - training/webapp \ - python app.py + # -v /src/webapp:/usr/share/nginx/html:ro \ + --mount type=bind,source=/src/webapp,target=/usr/share/nginx/html,readonly \ + nginx:alpine ``` -加了 `readonly` 之后,就挂载为 `只读` 了。如果你在容器内 `/opt/webapp` 目录新建文件,会显示如下错误 +加了 `readonly` 之后,就挂载为 `只读` 了。如果你在容器内 `/usr/share/nginx/html` 目录新建文件,会显示如下错误 ```bash -/opt/webapp # touch new.txt +/usr/share/nginx/html # touch new.txt touch: new.txt: Read-only file system ``` @@ -48,7 +46,7 @@ $ docker inspect web { "Type": "bind", "Source": "/src/webapp", - "Destination": "/opt/webapp", + "Destination": "/usr/share/nginx/html", "Mode": "", "RW": true, "Propagation": "rprivate" diff --git a/data_management/volume.md b/data_management/volume.md index 89d6d731b..27f388aec 100644 --- a/data_management/volume.md +++ b/data_management/volume.md @@ -10,7 +10,7 @@ * `数据卷` 默认会一直存在,即使容器被删除 ->注意:`数据卷` 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看到的是挂载的 `数据卷`。 +>注意:`数据卷` 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会复制到数据卷中(仅数据卷为空时会复制)。 ## 创建一个数据卷 @@ -23,6 +23,7 @@ $ docker volume create my-vol ```bash $ docker volume ls +DRIVER VOLUME NAME local my-vol ``` @@ -46,15 +47,14 @@ $ docker volume inspect my-vol 在用 `docker run` 命令的时候,使用 `--mount` 标记来将 `数据卷` 挂载到容器里。在一次 `docker run` 中可以挂载多个 `数据卷`。 -下面创建一个名为 `web` 的容器,并加载一个 `数据卷` 到容器的 `/webapp` 目录。 +下面创建一个名为 `web` 的容器,并加载一个 `数据卷` 到容器的 `/usr/share/nginx/html` 目录。 ```bash $ docker run -d -P \ --name web \ - # -v my-vol:/wepapp \ - --mount source=my-vol,target=/webapp \ - training/webapp \ - python app.py + # -v my-vol:/usr/share/nginx/html \ + --mount source=my-vol,target=/usr/share/nginx/html \ + nginx:alpine ``` ## 查看数据卷的具体信息 @@ -73,7 +73,7 @@ $ docker inspect web "Type": "volume", "Name": "my-vol", "Source": "/var/lib/docker/volumes/my-vol/_data", - "Destination": "/webapp", + "Destination": "/usr/share/nginx/html", "Driver": "local", "Mode": "", "RW": true, diff --git a/network/port_mapping.md b/network/port_mapping.md index ef42475a3..022287aef 100644 --- a/network/port_mapping.md +++ b/network/port_mapping.md @@ -2,35 +2,33 @@ 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 `-P` 或 `-p` 参数来指定端口映射。 -当使用 `-P` 标记时,Docker 会随机映射一个 `49000~49900` 的端口到内部容器开放的网络端口。 +当使用 `-P` 标记时,Docker 会随机映射一个端口到内部容器开放的网络端口。 -使用 `docker container ls` 可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。 +使用 `docker container ls` 可以看到,本地主机的 32768 被映射到了容器的 80 端口。此时访问本机的 32768 端口即可访问容器内 NGINX 默认页面。 ```bash -$ docker run -d -P training/webapp python app.py +$ docker run -d -P nginx:alpine $ docker container ls -l -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +fae320d08268 nginx:alpine "/docker-entrypoint.…" 24 seconds ago Up 20 seconds 0.0.0.0:32768->80/tcp bold_mcnulty ``` -同样的,可以通过 `docker logs` 命令来查看应用的信息。 +同样的,可以通过 `docker logs` 命令来查看访问记录。 ```bash -$ docker logs -f nostalgic_morse -* Running on http://0.0.0.0:5000/ -10.0.2.2 - - [23/May/2014 20:16:31] "GET / HTTP/1.1" 200 - -10.0.2.2 - - [23/May/2014 20:16:31] "GET /favicon.ico HTTP/1.1" 404 - +$ docker logs fa +172.17.0.1 - - [25/Aug/2020:08:34:04 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0" "-" ``` `-p` 则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器。支持的格式有 `ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort`。 ## 映射所有接口地址 -使用 `hostPort:containerPort` 格式本地的 5000 端口映射到容器的 5000 端口,可以执行 +使用 `hostPort:containerPort` 格式本地的 80 端口映射到容器的 80 端口,可以执行 ```bash -$ docker run -d -p 5000:5000 training/webapp python app.py +$ docker run -d -p 80:80 nginx:alpine ``` 此时默认会绑定本地所有接口上的所有地址。 @@ -40,21 +38,21 @@ $ docker run -d -p 5000:5000 training/webapp python app.py 可以使用 `ip:hostPort:containerPort` 格式指定映射使用一个特定地址,比如 localhost 地址 127.0.0.1 ```bash -$ docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py +$ docker run -d -p 127.0.0.1:80:80 nginx:alpine ``` ## 映射到指定地址的任意端口 -使用 `ip::containerPort` 绑定 localhost 的任意端口到容器的 5000 端口,本地主机会自动分配一个端口。 +使用 `ip::containerPort` 绑定 localhost 的任意端口到容器的 80 端口,本地主机会自动分配一个端口。 ```bash -$ docker run -d -p 127.0.0.1::5000 training/webapp python app.py +$ docker run -d -p 127.0.0.1::80 nginx:alpine ``` 还可以使用 `udp` 标记来指定 `udp` 端口 ```bash -$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py +$ docker run -d -p 127.0.0.1:80:80/udp nginx:alpine ``` ## 查看映射端口配置 @@ -62,12 +60,12 @@ $ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py 使用 `docker port` 来查看当前映射的端口配置,也可以查看到绑定的地址 ```bash -$ docker port nostalgic_morse 5000 -127.0.0.1:49155. +$ docker port fa 80 +0.0.0.0:32768 ``` 注意: -* 容器有自己的内部网络和 ip 地址(使用 `docker inspect` 可以获取所有的变量,Docker 还可以有一个可变的网络配置。) +* 容器有自己的内部网络和 ip 地址(使用 `docker inspect` 查看,Docker 还可以有一个可变的网络配置。) * `-p` 标记可以多次使用来绑定多个端口 @@ -75,8 +73,7 @@ $ docker port nostalgic_morse 5000 ```bash $ docker run -d \ - -p 5000:5000 \ - -p 3000:80 \ - training/webapp \ - python app.py + -p 80:80 \ + -p 443:443 \ + nginx:alpine ``` From 4682ba336ff0cddc2b98f184b827082b1572d0aa Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 25 Aug 2020 18:01:53 +0800 Subject: [PATCH 514/611] improve content Signed-off-by: Kang Huaishuai --- .github/PULL_REQUEST_TEMPLATE.md | 4 ++-- .github/workflows/check-link.yml | 1 - basic_concept/container.md | 2 +- image/build.md | 26 ++++++++++++++++---------- image/commit.md | 6 +++--- image/pull.md | 6 ++---- introduction/what.md | 2 +- 7 files changed, 25 insertions(+), 22 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 39d35fdc7..c33735a4e 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,7 +3,7 @@ See [CONTRIBUTING](CONTRIBUTING.md) for contribution guidelines. --> -### Proposed changes (Mandatory) +**Proposed changes (Mandatory)** -### Fix issues (Optional) +**Fix issues (Optional)** +Step 2/3 : COPY hello / + ---> ac779757d46e +Step 3/3 : CMD ["/hello"] + ---> Running in d2a513a760ed +Removing intermediate container d2a513a760ed + ---> 038ad4142d2b +Successfully built 038ad4142d2b ``` -这行命令指定了构建所需的 Git repo,并且指定默认的 `master` 分支,构建目录为 `/11.1/`,然后 Docker 就会自己去 `git clone` 这个项目、切换到指定分支、并进入到指定目录后开始构建。 +这行命令指定了构建所需的 Git repo,并且指定分支为 `master`,构建目录为 `/amd64/hello-world/`,然后 Docker 就会自己去 `git clone` 这个项目、切换到指定分支、并进入到指定目录后开始构建。 ### 用给定的 tar 压缩包构建 diff --git a/image/commit.md b/image/commit.md index 1ae37b250..6dcc23103 100644 --- a/image/commit.md +++ b/image/commit.md @@ -16,7 +16,7 @@ $ docker run --name webserver -d -p 80:80 nginx 这条命令会用 `nginx` 镜像启动一个容器,命名为 `webserver`,并且映射了 80 端口,这样我们可以用浏览器去访问这个 `nginx` 服务器。 - 如果是在 Linux 本机运行的 Docker,或者如果使用的是 Docker Desktop for Mac/Windows,那么可以直接访问:;如果使用的是 Docker Toolbox,或者是在虚拟机、云服务器上安装的 Docker,则需要将 `localhost` 换为虚拟机地址或者实际云服务器地址。 + 如果是在本机运行的 Docker,那么可以直接访问:`http://localhost` ,如果是在虚拟机、云服务器上安装的 Docker,则需要将 `localhost` 换为虚拟机地址或者实际云服务器地址。 直接用浏览器访问的话,我们会看到默认的 Nginx 欢迎页面。 @@ -116,7 +116,7 @@ e43d811ce2f4 4 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "da docker run --name web2 -d -p 81:80 nginx:v2 ``` -这里我们命名为新的服务为 `web2`,并且映射到 `81` 端口。如果是 Docker Desktop for Mac/Windows 或 Linux 桌面的话,我们就可以直接访问 看到结果,其内容应该和之前修改后的 `webserver` 一样。 +这里我们命名为新的服务为 `web2`,并且映射到 `81` 端口。访问 `http://localhost:81` 看到结果,其内容应该和之前修改后的 `webserver` 一样。 至此,我们第一次完成了定制镜像,使用的是 `docker commit` 命令,手动操作给旧的镜像添加了新的一层,形成新的镜像,对镜像多层存储应该有了更直观的感觉。 @@ -124,7 +124,7 @@ docker run --name web2 -d -p 81:80 nginx:v2 使用 `docker commit` 命令虽然可以比较直观的帮助理解镜像分层存储的概念,但是实际环境中并不会这样使用。 -首先,如果仔细观察之前的 `docker diff webserver` 的结果,你会发现除了真正想要修改的 `/usr/share/nginx/html/index.html` 文件外,由于命令的执行,还有很多文件被改动或添加了。这还仅仅是最简单的操作,如果是安装软件包、编译构建,那会有大量的无关内容被添加进来,如果不小心清理,将会导致镜像极为臃肿。 +首先,如果仔细观察之前的 `docker diff webserver` 的结果,你会发现除了真正想要修改的 `/usr/share/nginx/html/index.html` 文件外,由于命令的执行,还有很多文件被改动或添加了。这还仅仅是最简单的操作,如果是安装软件包、编译构建,那会有大量的无关内容被添加进来,将会导致镜像极为臃肿。 此外,使用 `docker commit` 意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为 **黑箱镜像**,换句话说,就是除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根本无从得知。而且,即使是这个制作镜像的人,过一段时间后也无法记清具体的操作。这种黑箱镜像的维护工作是非常痛苦的。 diff --git a/image/pull.md b/image/pull.md index d2ed771b3..63520a712 100644 --- a/image/pull.md +++ b/image/pull.md @@ -10,7 +10,7 @@ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 具体的选项可以通过 `docker pull --help` 命令看到,这里我们说一下镜像名称的格式。 -* Docker 镜像仓库地址:地址的格式一般是 `<域名/IP>[:端口号]`。默认地址是 Docker Hub。 +* Docker 镜像仓库地址:地址的格式一般是 `<域名/IP>[:端口号]`。默认地址是 Docker Hub(docker.io)。 * 仓库名:如之前所说,这里的仓库名是两段式名称,即 `<用户名>/<软件名>`。对于 Docker Hub,如果不给出用户名,则默认为 `library`,也就是官方镜像。 比如: @@ -40,9 +40,7 @@ Status: Downloaded newer image for ubuntu:18.04 有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。以上面的 `ubuntu:18.04` 为例,如果我们打算启动里面的 `bash` 并且进行交互式操作的话,可以执行下面的命令。 ```bash -$ docker run -it --rm \ - ubuntu:18.04 \ - bash +$ docker run -it --rm ubuntu:18.04 bash root@e7009c6ce357:/# cat /etc/os-release NAME="Ubuntu" diff --git a/introduction/what.md b/introduction/what.md index 0787de110..55cdffb68 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -2,7 +2,7 @@ **Docker** 最初是 `dotCloud` 公司创始人 [Solomon Hykes](https://github.com/shykes) 在法国期间发起的一个公司内部项目,它是基于 `dotCloud` 公司多年云服务技术的一次革新,并于 [2013 年 3 月以 Apache 2.0 授权协议开源][docker-soft],主要项目代码在 [GitHub](https://github.com/moby/moby) 上进行维护。`Docker` 项目后来还加入了 Linux 基金会,并成立推动 [开放容器联盟(OCI)](https://opencontainers.org/)。 -**Docker** 自开源后受到广泛的关注和讨论,至今其 [GitHub 项目](https://github.com/moby/moby) 已经超过 5 万 4 千个星标和一万多个 `fork`。甚至由于 `Docker` 项目的火爆,在 `2013` 年底,[dotCloud 公司决定改名为 Docker](https://www.docker.com/blog/dotcloud-is-becoming-docker-inc/)。`Docker` 最初是在 `Ubuntu 12.04` 上开发实现的;`Red Hat` 则从 `RHEL 6.5` 开始对 `Docker` 进行支持;`Google` 也在其 `PaaS` 产品中广泛应用 `Docker`。 +**Docker** 自开源后受到广泛的关注和讨论,至今其 [GitHub 项目](https://github.com/moby/moby) 已经超过 5 万 7 千个星标和一万多个 `fork`。甚至由于 `Docker` 项目的火爆,在 `2013` 年底,[dotCloud 公司决定改名为 Docker](https://www.docker.com/blog/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),以及 [OverlayFS](https://docs.docker.com/storage/storagedriver/overlayfs-driver/) 类的 [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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 From c25c7283cf8915f26a6796b7b958839257f3d0d5 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 25 Aug 2020 19:42:35 +0800 Subject: [PATCH 515/611] remove opensource Signed-off-by: Kang Huaishuai --- opensource/README.md | 3 --- opensource/linuxkit.md | 51 ------------------------------------------ 2 files changed, 54 deletions(-) delete mode 100644 opensource/README.md delete mode 100644 opensource/linuxkit.md diff --git a/opensource/README.md b/opensource/README.md deleted file mode 100644 index d9f54502a..000000000 --- a/opensource/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Docker 开源项目 - -本章介绍 Docker 开源的项目。随着 Docker 功能的越来越多,Docker 也加快了开源的步伐,Docker 未来会将引擎拆分为更多开放组件,对用于组装 Docker 产品的各种新型工具与组件进行开源并供技术社区使用。 diff --git a/opensource/linuxkit.md b/opensource/linuxkit.md deleted file mode 100644 index 087e9de00..000000000 --- a/opensource/linuxkit.md +++ /dev/null @@ -1,51 +0,0 @@ -# LinuxKit - -`LinuxKit` 这个工具可以将多个 Docker 镜像组成一个最小化、可自由定制的 Linux 系统,最后的生成的系统只有几十 M 大小,可以很方便的在云端进行部署。 - -下面我们在 macOS 上通过实例,来编译并运行一个全部由 Docker 镜像组成的包含 nginx 服务的 Linux 系统。 - -## 安装 Linuxkit - -```bash -$ brew tap linuxkit/linuxkit - -$ brew install --HEAD linuxkit -``` - -## 克隆源代码 - -```bash -$ git clone -b master --depth=1 https://github.com/linuxkit/linuxkit - -$ cd linuxkit -``` - -## 编译 Linux 系统 - -LinuxKit 通过 `yaml` 文件配置。 - -我们来查看 `linuxkit.yml` 文件,了解各个字段的作用。 - -`kernel` 字段定义了内核版本。 - -`init` 字段中配置系统启动时的初始化顺序。 - -`onboot` 字段配置系统级的服务。 - -`services` 字段配置镜像启动后运行的服务。 - -`files` 字段配置制作镜像时打包入镜像中的文件。 - -```bash -$ linuxkit build linuxkit.yml -``` - -## 启动 Linux 系统 - -编译成功后,接下来启动这个 Linux 系统。 - -```bash -$ linuxkit run -publish 8080:80/tcp linuxkit -``` - -接下来在浏览器中打开 `127.0.0.1:8080` 即可看到 nginx 默认页面。 From eac2a57633befe99b9ac958516113d45ff513aa1 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Thu, 27 Aug 2020 23:09:11 +0800 Subject: [PATCH 516/611] Update vuepress nav Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 143 ++++++++++++++++++++------------------- SUMMARY.md | 2 - coreos/README.md | 2 +- image/dockerfile/copy.md | 2 + image/dockerfile/user.md | 2 +- 5 files changed, 77 insertions(+), 74 deletions(-) diff --git a/.vuepress/config.js b/.vuepress/config.js index 688907437..cd2a62e38 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -36,54 +36,55 @@ module.exports = { docsRepo: 'yeasy/docker_practice', docsDir: '/', editLinks: true, - nav: [{ - text: '安装 Docker', - link: '/install/', - }, - { - text: 'Docker 入门', - link: '/' - }, - { - text: 'Docker 实战', - link: '/cases/os/' - }, - { - text: 'CI/CD', - link: '/cases/ci/' - }, - { - text: 'Docker 仓库', - link: '/repository/' - }, - { - text: '底层实现', - link: '/underly/', - }, - { - text: 'Compose', - link: '/compose/', - }, - { - text: 'Kubernetes', - link: '/kubernetes/', - }, - { - text: "云计算", - link: "/cloud/", - }, - { - text: 'GitHub', - link: 'https://github.com/yeasy/docker_practice' - }, - // { - // text: '捐赠', - // link: '' - // }, - { - text: '腾讯云容器服务', - link: 'https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61' - }, + nav: [ + { + text: '微信交流群', + link: 'https://yewm28.coding-pages.com/wechat.jpg', + }, + { + text: '小程序', + link: 'https://yewm28.coding-pages.com/49682252-3ac4c500-faec-11e8-86ab-eafe0139be6b.jpg', + }, + { + text: '安装 Docker', + link: '/install/', + }, + { + text: 'Docker 入门', + link: '/' + }, + { + text: 'Docker 实战', + link: '/cases/os/' + }, + { + text: 'CI/CD', + link: '/cases/ci/' + }, + { + text: 'Compose', + link: '/compose/', + }, + { + text: 'Kubernetes', + link: '/kubernetes/', + }, + { + text: "云计算", + link: "/cloud/", + }, + { + text: 'GitHub', + link: 'https://github.com/yeasy/docker_practice' + }, + // { + // text: '捐赠', + // link: '' + // }, + { + text: '腾讯云容器服务', + link: 'https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61' + }, // { // text: '语言', // items: [{ @@ -146,20 +147,6 @@ module.exports = { 'mirror', 'experimental', ], - '/underly/': [ - 'arch', - 'namespace', - 'cgroups', - 'ufs', - 'container_format', - 'network', - ], - '/repository/': [ - 'dockerhub', - 'registry', - 'registry_auth', - 'nexus3_registry', - ], '/cases/os/': [ { title: "操作系统", @@ -264,6 +251,17 @@ module.exports = { 'container/rm', ], }, + { + title: "Docker 仓库", + collapsable: false, + children: [ + 'repository/', + 'repository/dockerhub', + 'repository/registry', + 'repository/registry_auth', + 'repository/nexus3_registry', + ], + }, { title: "数据管理", collapsable: false, @@ -323,6 +321,19 @@ module.exports = { 'security/summary', ], }, + { + title: "底层实现", + collapsable: false, + children: [ + 'underly/', + 'underly/arch', + 'underly/namespace', + 'underly/cgroups', + 'underly/ufs', + 'underly/container_format', + 'underly/network', + ], + }, { title: "Docker Buildx", collapsable: false, @@ -353,14 +364,6 @@ module.exports = { 'coreos/install', ], }, - { - title: "Docker 开源项目", - collapsable: false, - children: [ - 'opensource/', - 'opensource/linuxkit', - ], - }, 'podman/', 'appendix/faq/', { diff --git a/SUMMARY.md b/SUMMARY.md index 3fba08427..3392212d6 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -147,8 +147,6 @@ * [Travis CI](cases/ci/travis/README.md) * [在 IDE 中使用 Docker](ide/README.md) * [VS Code](ide/vsCode.md) -* [Docker 开源项目](opensource/README.md) - * [LinuxKit](opensource/linuxkit.md) * [podman - 下一代 Linux 容器工具](podman/README.md) * [附录](appendix/README.md) * [附录一:常见问题总结](appendix/faq/README.md) diff --git a/coreos/README.md b/coreos/README.md index 9fbf86091..ca63655c8 100644 --- a/coreos/README.md +++ b/coreos/README.md @@ -1,6 +1,6 @@ # Fedora CoreOS -`CoreOS` 是一个专门为安全和大规模运行容器化工作负载而构建的新 Fedora 版本,它是 Fedora Atomic Host 和 CoreOS Container Linux 的后续项目。 +`CoreOS` 是一个专门为安全和大规模运行容器化工作负载而构建的新 Fedora 版本,它是 Fedora Atomic Host 和 CoreOS Container Linux 的后继项目。 `CoreOS` 的安装文件和运行依赖非常小,它提供了精简的 Linux 系统。它使用 Linux 容器在更高的抽象层来管理你的服务,而不是通过常规的包管理工具 `yum` 或 `apt` 来安装包。 diff --git a/image/dockerfile/copy.md b/image/dockerfile/copy.md index d12b446c8..0d482335f 100644 --- a/image/dockerfile/copy.md +++ b/image/dockerfile/copy.md @@ -32,3 +32,5 @@ COPY --chown=bin files* /mydir/ COPY --chown=1 files* /mydir/ COPY --chown=10:11 files* /mydir/ ``` + +如果源路径为文件夹,复制的时候不是直接复制该文件夹,而是将文件夹中的内容复制到目标路径。 diff --git a/image/dockerfile/user.md b/image/dockerfile/user.md index 260b439b1..0fb7dabc7 100644 --- a/image/dockerfile/user.md +++ b/image/dockerfile/user.md @@ -18,7 +18,7 @@ RUN [ "redis-server" ] # 建立 redis 用户,并使用 gosu 换另一个用户执行命令 RUN groupadd -r redis && useradd -r -g redis redis # 下载 gosu -RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.7/gosu-amd64" \ +RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.12/gosu-amd64" \ && chmod +x /usr/local/bin/gosu \ && gosu nobody true # 设置 CMD,并以另外的用户执行 From e021b27323e34de342a3014daf2cd366308212ad Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sat, 29 Aug 2020 15:30:32 +0800 Subject: [PATCH 517/611] registry image not include htpasswd Signed-off-by: Kang Huaishuai --- repository/registry_auth.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/registry_auth.md b/repository/registry_auth.md index 68fda836a..2776bfea6 100644 --- a/repository/registry_auth.md +++ b/repository/registry_auth.md @@ -131,7 +131,7 @@ $ mkdir auth $ docker run --rm \ --entrypoint htpasswd \ - registry \ + httpd:alpine \ -Bbn username password > auth/nginx.htpasswd ``` From 4b70a27151f2eb5bc4faeee25f2fd1abf1e9c173 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sat, 29 Aug 2020 15:46:24 +0800 Subject: [PATCH 518/611] link-check exclude ip.cn Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index d595c3eac..335c28044 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -59,6 +59,7 @@ jobs: "x.x.x.x/base",\ "x.x.x.x:9000/minio/",\ "https://www.freedesktop.org/wiki/Software/systemd/",\ + "ip.cn",\ "www.aliyun.com" \ --allow-dupe \ --skip-save-results \ From d1e303d139ec5449c6c6ee7c1af25ffee1b1ddc1 Mon Sep 17 00:00:00 2001 From: jackeylv Date: Fri, 4 Sep 2020 14:19:05 +0800 Subject: [PATCH 519/611] fix #461 https://github.com/yeasy/docker_practice/issues/461#issue-692771052 Signed-off-by: jackeylv --- install/debian.md | 2 +- install/raspberry-pi.md | 2 +- install/ubuntu.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/install/debian.md b/install/debian.md index 28c88a8a6..d47c991fc 100644 --- a/install/debian.md +++ b/install/debian.md @@ -49,7 +49,7 @@ $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-k # $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - ``` -然后,我们需要向 `source.list` 中添加 Docker CE 软件源: +然后,我们需要向 `sources.list` 中添加 Docker CE 软件源: ```bash $ sudo add-apt-repository \ diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 66ee99be3..5d0eb8531 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -40,7 +40,7 @@ $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian/gpg | sudo apt # $ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add - ``` -然后,我们需要向 `source.list` 中添加 Docker CE 软件源: +然后,我们需要向 `sources.list` 中添加 Docker CE 软件源: ```bash $ sudo add-apt-repository \ diff --git a/install/ubuntu.md b/install/ubuntu.md index bee34bbf1..0435b086c 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -51,7 +51,7 @@ $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-k # $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ``` -然后,我们需要向 `source.list` 中添加 Docker 软件源 +然后,我们需要向 `sources.list` 中添加 Docker 软件源 ```bash $ sudo add-apt-repository \ From 90a73163222cc3c0447704a7c24bd3ffdfab2fb1 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Sep 2020 08:52:31 +0800 Subject: [PATCH 520/611] buildkit more arg --- buildx/buildkit.md | 6 ++-- buildx/multi-arch-images.md | 60 ++++++++++++++++++++++++++++++++++++- kubernetes/setup/kubeadm.md | 8 ++--- 3 files changed, 67 insertions(+), 7 deletions(-) diff --git a/buildx/buildkit.md b/buildx/buildkit.md index 235e1e60c..e8300a053 100644 --- a/buildx/buildkit.md +++ b/buildx/buildkit.md @@ -4,8 +4,6 @@ **注意:如果您的镜像构建使用的是云服务商提供的镜像构建服务(腾讯云容器服务、阿里云容器服务等),由于上述服务提供商的 Docker 版本低于 18.09,BuildKit 无法使用,将造成镜像构建失败。建议使用 BuildKit 构建镜像时使用一个新的 Dockerfile 文件(例如 Dockerfile.buildkit)** -**注意:docker-compose build 命令暂时不支持 BuildKit** - 目前,Docker Hub 自动构建已经支持 buildkit,具体请参考 https://github.com/docker-practice/docker-hub-buildx ## `Dockerfile` 新增指令详解 @@ -147,6 +145,10 @@ $ ssh-add ~/.ssh/id_rsa $ docker build -t test --ssh default=$SSH_AUTH_SOCK . ``` +## docker-compose build 使用 Buildkit + +设置 `COMPOSE_DOCKER_CLI_BUILD=1` 环境变量即可使用。 + ## 官方文档 * https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md diff --git a/buildx/multi-arch-images.md b/buildx/multi-arch-images.md index 79b66aef2..4cc94839c 100644 --- a/buildx/multi-arch-images.md +++ b/buildx/multi-arch-images.md @@ -9,7 +9,7 @@ Docker for Linux 不支持构建 `arm` 架构镜像,我们可以运行一个新的容器让其支持该特性,Docker 桌面版无需进行此项设置。 ```bash -$ docker run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd4447ad3 +$ docker run --rm --privileged tonistiigi/binfmt:latest --install all ``` 由于 Docker 默认的 `builder` 实例不支持同时指定多个 `--platform`,我们必须首先创建一个新的 `builder` 实例。同时由于国内拉取镜像较缓慢,我们可以使用配置了 [镜像加速地址](https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md) 的 [`dockerpracticesig/buildkit:master`](https://github.com/docker-practice/buildx) 镜像替换官方镜像。 @@ -66,3 +66,61 @@ Linux buildkitsandbox 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 aarch6 $ docker run -it --rm myusername/hello Linux buildkitsandbox 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 Linux ``` + +## 架构相关变量 + +`Dockerfile` 支持如下架构相关的变量 + +**TARGETPLATFORM** + +构建镜像的目标平台,例如 `linux/amd64`, `linux/arm/v7`, `windows/amd64`。 + +**TARGETOS** + +`TARGETPLATFORM` 的 OS 类型,例如 `linux`, `windows` + +**TARGETARCH** + +`TARGETPLATFORM` 的架构类型,例如 `amd64`, `arm` + +**TARGETVARIANT** + +`TARGETPLATFORM` 的变种,该变量可能为空,例如 `v7` + +**BUILDPLATFORM** + +构建镜像主机平台,例如 `linux/amd64` + +**BUILDOS** + +`BUILDPLATFORM` 的 OS 类型,例如 `linux` + +**BUILDARCH** + +`BUILDPLATFORM` 的架构类型,例如 `amd64` + +**BUILDVARIANT** + +`BUILDPLATFORM` 的变种,该变量可能为空,例如 `v7` + +### 使用举例 + +例如我们要构建支持 `linux/arm/v7` 和 `linux/amd64` 两种架构的镜像。假设已经生成了两个平台对应的二进制文件: + +* bin/dist-linux-arm +* bin/dist-linux-amd64 + +那么 `Dockerfile` 可以这样书写: + +```bash +FROM scratch + +# 使用变量必须申明 +ARG TARGETOS + +ARG TARGETARCH + +COPY bin/dist-${TARGETOS}-${TARGETARCH} /dist + +ENTRYPOINT ["dist"] +``` diff --git a/kubernetes/setup/kubeadm.md b/kubernetes/setup/kubeadm.md index 828d566d1..3ee8400fb 100644 --- a/kubernetes/setup/kubeadm.md +++ b/kubernetes/setup/kubeadm.md @@ -60,10 +60,10 @@ $ sysctl --system ```bash # 启用 ipvs 相关内核模块 [Service] -ExecStartPre=-modprobe ip_vs -ExecStartPre=-modprobe ip_vs_rr -ExecStartPre=-modprobe ip_vs_wrr -ExecStartPre=-modprobe ip_vs_sh +ExecStartPre=-/sbin/modprobe ip_vs +ExecStartPre=-/sbin/modprobe ip_vs_rr +ExecStartPre=-/sbin/modprobe ip_vs_wrr +ExecStartPre=-/sbin/modprobe ip_vs_sh ``` 执行以下命令应用配置。 From b0ccb74dbd27864befdc00eadae9946671555be8 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Sep 2020 09:15:03 +0800 Subject: [PATCH 521/611] [install] Add CentOS 8 Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 1 + SUMMARY.md | 1 + install/centos8.md | 5 +++++ 3 files changed, 7 insertions(+) create mode 100644 install/centos8.md diff --git a/.vuepress/config.js b/.vuepress/config.js index cd2a62e38..cc2ef1dc7 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -140,6 +140,7 @@ module.exports = { 'debian', 'fedora', 'centos', + 'centos8', 'raspberry-pi', 'offline', 'mac', diff --git a/SUMMARY.md b/SUMMARY.md index 3392212d6..db95cf3d6 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -15,6 +15,7 @@ * [Debian](install/debian.md) * [Fedora](install/fedora.md) * [CentOS](install/centos.md) + * [CentOS8](install/centos8.md) * [Raspberry Pi](install/raspberry-pi.md) * [Linux 离线安装](install/offline.md) * [macOS](install/mac.md) diff --git a/install/centos8.md b/install/centos8.md new file mode 100644 index 000000000..3b110d238 --- /dev/null +++ b/install/centos8.md @@ -0,0 +1,5 @@ +# CentOS8 安装 Docker CE + +当前官方版本的 Docker CE [尚未支持][docker-docker] CentOS8,我们可以使用 Moby 项目维护者 AkihiroSuda 所构建的包,具体请参考 https://github.com/AkihiroSuda/moby-snapshot。 + +[docker-docker]:https://download.docker.com/linux/centos/ From cc210f75a73369457854c27993fc92ab6a1cbf1b Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Sep 2020 09:30:17 +0800 Subject: [PATCH 522/611] [install] Update CentOS8 Signed-off-by: Kang Huaishuai --- install/centos8.md | 24 ++++++++++++++++++++++++ install/ubuntu.md | 1 - 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/install/centos8.md b/install/centos8.md index 3b110d238..02778ffaa 100644 --- a/install/centos8.md +++ b/install/centos8.md @@ -3,3 +3,27 @@ 当前官方版本的 Docker CE [尚未支持][docker-docker] CentOS8,我们可以使用 Moby 项目维护者 AkihiroSuda 所构建的包,具体请参考 https://github.com/AkihiroSuda/moby-snapshot。 [docker-docker]:https://download.docker.com/linux/centos/ + +## 设置 + +由于 CentOS8 防火墙使用了 `nftables`,我们可以使用如下设置使用 `iptables` + +更改 `/etc/firewalld/firewalld.conf` + +```bash +# FirewallBackend=nftables +FirewallBackend=iptables +``` + +或者执行如下命令: + +```bash +$ firewall-cmd --permanent --zone=trusted --add-interface=docker0 + +$ firewall-cmd --reload +``` + +## 参考链接 + +* https://firewalld.org/2018/07/nftables-backend +* https://github.com/moby/libnetwork/issues/2496 diff --git a/install/ubuntu.md b/install/ubuntu.md index 0435b086c..a13629b3f 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -9,7 +9,6 @@ Docker CE 支持以下版本的 [Ubuntu](https://ubuntu.com/server) 操作系统: * Ubuntu Focal 20.04 (LTS) -* Eoan 19.10 * Bionic 18.04 (LTS) * Xenial 16.04 (LTS) From c1c7a7981d827baf143708c090d8616bfcdaa917 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Sep 2020 09:40:55 +0800 Subject: [PATCH 523/611] Fixed 301 link Signed-off-by: Kang Huaishuai --- repository/nexus3_registry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/nexus3_registry.md b/repository/nexus3_registry.md index 5f35eddd5..44126130d 100644 --- a/repository/nexus3_registry.md +++ b/repository/nexus3_registry.md @@ -1,6 +1,6 @@ # Nexus3.x 的私有仓库 -使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry 程序。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/download-oss-sonatype) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 +使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry 程序。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/nexus/repository-oss/download) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 ## 启动 Nexus 容器 From 4f7b448f0ca5808bf86dd7e6f8e4f10f5dbd643d Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Sep 2020 09:51:53 +0800 Subject: [PATCH 524/611] [install] remove nightly version Signed-off-by: Kang Huaishuai --- install/centos.md | 6 ------ install/debian.md | 2 +- install/fedora.md | 6 ------ install/raspberry-pi.md | 2 +- install/ubuntu.md | 2 +- 5 files changed, 3 insertions(+), 15 deletions(-) diff --git a/install/centos.md b/install/centos.md index cdf8831b2..929f8e552 100644 --- a/install/centos.md +++ b/install/centos.md @@ -58,12 +58,6 @@ $ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum. $ sudo yum-config-manager --enable docker-ce-test ``` -如果需要每日构建版本的 Docker CE 请使用以下命令: - -```bash -$ sudo yum-config-manager --enable docker-ce-nightly -``` - ### 安装 Docker CE 更新 `yum` 软件源缓存,并安装 `docker-ce`。 diff --git a/install/debian.md b/install/debian.md index d47c991fc..b66e0c259 100644 --- a/install/debian.md +++ b/install/debian.md @@ -64,7 +64,7 @@ $ sudo add-apt-repository \ # stable" ``` ->以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。 +>以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试版本的 Docker CE 请将 stable 改为 test。 ### 安装 Docker CE diff --git a/install/fedora.md b/install/fedora.md index 384dfd696..1fd500291 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -59,12 +59,6 @@ $ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum. $ sudo dnf config-manager --set-enabled docker-ce-test ``` -如果需要每日构建版本的 Docker CE 请使用以下命令: - -```bash -$ sudo dnf config-manager --set-enabled docker-ce-nightly -``` - 你也可以禁用测试版本的 Docker CE ```bash diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 5d0eb8531..c297c1254 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -56,7 +56,7 @@ $ sudo add-apt-repository \ # stable" ``` ->以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。 +>以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试版本的 Docker CE 请将 stable 改为 test。 ### 安装 Docker CE diff --git a/install/ubuntu.md b/install/ubuntu.md index a13629b3f..9e0ff1544 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -66,7 +66,7 @@ $ sudo add-apt-repository \ # stable" ``` ->以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。 +>以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要测试版本的 Docker CE 请将 stable 改为 test。 ### 安装 Docker CE From 4f08e73bfe19380ea37c0c24115e5aec11ceb93a Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Sep 2020 10:06:15 +0800 Subject: [PATCH 525/611] [install] Update CentOS8 Signed-off-by: Kang Huaishuai --- install/centos8.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/centos8.md b/install/centos8.md index 02778ffaa..5110c052a 100644 --- a/install/centos8.md +++ b/install/centos8.md @@ -1,12 +1,12 @@ # CentOS8 安装 Docker CE -当前官方版本的 Docker CE [尚未支持][docker-docker] CentOS8,我们可以使用 Moby 项目维护者 AkihiroSuda 所构建的包,具体请参考 https://github.com/AkihiroSuda/moby-snapshot。 +当前官方版本的 Docker CE [尚未支持][docker-docker] CentOS8,我们可以使用 Moby 项目维护者 AkihiroSuda 所构建的包,具体请参考 https://github.com/AkihiroSuda/moby-snapshot [docker-docker]:https://download.docker.com/linux/centos/ ## 设置 -由于 CentOS8 防火墙使用了 `nftables`,我们可以使用如下设置使用 `iptables` +由于 CentOS8 防火墙使用了 `nftables`,但 Docker CE 尚未支持 `nftables`, 我们可以使用如下设置使用 `iptables`: 更改 `/etc/firewalld/firewalld.conf` From 6fcf3028092cf936f04fc3f4eeb8e81d0cb48845 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Sep 2020 10:14:38 +0800 Subject: [PATCH 526/611] Update format Signed-off-by: Kang Huaishuai --- buildx/multi-arch-images.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buildx/multi-arch-images.md b/buildx/multi-arch-images.md index 4cc94839c..8b190fbf0 100644 --- a/buildx/multi-arch-images.md +++ b/buildx/multi-arch-images.md @@ -107,12 +107,12 @@ Linux buildkitsandbox 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 例如我们要构建支持 `linux/arm/v7` 和 `linux/amd64` 两种架构的镜像。假设已经生成了两个平台对应的二进制文件: -* bin/dist-linux-arm -* bin/dist-linux-amd64 +* `bin/dist-linux-arm` +* `bin/dist-linux-amd64` 那么 `Dockerfile` 可以这样书写: -```bash +```docker FROM scratch # 使用变量必须申明 From 48785525e066b923b92ec67228170d098975bdc6 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Sep 2020 14:18:12 +0800 Subject: [PATCH 527/611] Fixed kubeadm error Signed-off-by: Kang Huaishuai --- kubernetes/setup/kubeadm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubernetes/setup/kubeadm.md b/kubernetes/setup/kubeadm.md index 3ee8400fb..64d314421 100644 --- a/kubernetes/setup/kubeadm.md +++ b/kubernetes/setup/kubeadm.md @@ -163,7 +163,7 @@ $ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \ $ kubectl get node -o yaml | grep CIDR # 输出 - podCIDR: 10.244.0.0/24 + podCIDR: 10.244.0.0/16 podCIDRs: ``` From 5d91c5a39fc38f3be135461ec563210f45462063 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Sep 2020 17:43:21 +0800 Subject: [PATCH 528/611] replace ip.cn Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 1 - image/dockerfile/entrypoint.md | 12 ++++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 335c28044..d595c3eac 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -59,7 +59,6 @@ jobs: "x.x.x.x/base",\ "x.x.x.x:9000/minio/",\ "https://www.freedesktop.org/wiki/Software/systemd/",\ - "ip.cn",\ "www.aliyun.com" \ --allow-dupe \ --skip-save-results \ diff --git a/image/dockerfile/entrypoint.md b/image/dockerfile/entrypoint.md index 3f7ebfa29..bd13ed8da 100644 --- a/image/dockerfile/entrypoint.md +++ b/image/dockerfile/entrypoint.md @@ -21,7 +21,7 @@ FROM ubuntu:18.04 RUN apt-get update \ && apt-get install -y curl \ && rm -rf /var/lib/apt/lists/* -CMD [ "curl", "-s", "http://ip.cn" ] +CMD [ "curl", "-s", "http://myip.ipip.net" ] ``` 假如我们使用 `docker build -t myip .` 来构建镜像的话,如果我们需要查询当前公网 IP,只需要执行: @@ -38,12 +38,12 @@ $ docker run myip -i docker: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"-i\\\": executable file not found in $PATH\"\n". ``` -我们可以看到可执行文件找不到的报错,`executable file not found`。之前我们说过,跟在镜像名后面的是 `command`,运行时会替换 `CMD` 的默认值。因此这里的 `-i` 替换了原来的 `CMD`,而不是添加在原来的 `curl -s http://ip.cn` 后面。而 `-i` 根本不是命令,所以自然找不到。 +我们可以看到可执行文件找不到的报错,`executable file not found`。之前我们说过,跟在镜像名后面的是 `command`,运行时会替换 `CMD` 的默认值。因此这里的 `-i` 替换了原来的 `CMD`,而不是添加在原来的 `curl -s http://myip.ipip.net` 后面。而 `-i` 根本不是命令,所以自然找不到。 那么如果我们希望加入 `-i` 这参数,我们就必须重新完整的输入这个命令: ```bash -$ docker run myip curl -s http://ip.cn -i +$ docker run myip curl -s http://myip.ipip.net -i ``` 这显然不是很好的解决方案,而使用 `ENTRYPOINT` 就可以解决这个问题。现在我们重新用 `ENTRYPOINT` 来实现这个镜像: @@ -53,7 +53,7 @@ FROM ubuntu:18.04 RUN apt-get update \ && apt-get install -y curl \ && rm -rf /var/lib/apt/lists/* -ENTRYPOINT [ "curl", "-s", "http://ip.cn" ] +ENTRYPOINT [ "curl", "-s", "http://myip.ipip.net" ] ``` 这次我们再来尝试直接使用 `docker run myip -i`: @@ -109,8 +109,8 @@ CMD [ "redis-server" ] ... # allow the container to be started with `--user` if [ "$1" = 'redis-server' -a "$(id -u)" = '0' ]; then - chown -R redis . - exec su-exec redis "$0" "$@" + find . \! -user redis -exec chown redis '{}' + + exec gosu redis "$0" "$@" fi exec "$@" From cbaa24c48f0a41e4adaec7c128ccde6d1ba99cc4 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Sep 2020 20:16:04 +0800 Subject: [PATCH 529/611] Dockerfile add shell label Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 2 ++ SUMMARY.md | 2 ++ image/dockerfile/arg.md | 59 +++++++++++++++++++++++++++++++++++++ image/dockerfile/label.md | 17 +++++++++++ image/dockerfile/shell.md | 33 +++++++++++++++++++++ image/dockerfile/workdir.md | 18 +++++++++++ 6 files changed, 131 insertions(+) create mode 100644 image/dockerfile/label.md create mode 100644 image/dockerfile/shell.md diff --git a/.vuepress/config.js b/.vuepress/config.js index cc2ef1dc7..876a2442b 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -233,6 +233,8 @@ module.exports = { 'image/dockerfile/workdir', 'image/dockerfile/user', 'image/dockerfile/healthcheck', + 'image/dockerfile/label', + 'image/dockerfile/shell', 'image/dockerfile/onbuild', 'image/dockerfile/references', 'image/multistage-builds/', diff --git a/SUMMARY.md b/SUMMARY.md index db95cf3d6..2ba58f02a 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -41,6 +41,8 @@ * [USER 指定当前用户](image/dockerfile/user.md) * [HEALTHCHECK 健康检查](image/dockerfile/healthcheck.md) * [ONBUILD 为他人作嫁衣裳](image/dockerfile/onbuild.md) + * [LABEL 为镜像添加元数据](image/dockerfile/label.md) + * [SHELL 指令](image/dockerfile/shell.md) * [参考文档](image/dockerfile/references.md) * [Dockerfile 多阶段构建](image/multistage-builds/README.md) * [实战多阶段构建 Laravel 镜像](image/multistage-builds/laravel.md) diff --git a/image/dockerfile/arg.md b/image/dockerfile/arg.md index fb7be3d80..d4b270813 100644 --- a/image/dockerfile/arg.md +++ b/image/dockerfile/arg.md @@ -7,3 +7,62 @@ `Dockerfile` 中的 `ARG` 指令是定义参数名称,以及定义其默认值。该默认值可以在构建命令 `docker build` 中用 `--build-arg <参数名>=<值>` 来覆盖。 在 1.13 之前的版本,要求 `--build-arg` 中的参数名,必须在 `Dockerfile` 中用 `ARG` 定义过了,换句话说,就是 `--build-arg` 指定的参数,必须在 `Dockerfile` 中使用了。如果对应参数没有被使用,则会报错退出构建。从 1.13 开始,这种严格的限制被放开,不再报错退出,而是显示警告信息,并继续构建。这对于使用 CI 系统,用同样的构建流程构建不同的 `Dockerfile` 的时候比较有帮助,避免构建命令必须根据每个 Dockerfile 的内容修改。 + +ARG 指令有生效范围,如果在 `FROM` 指令之前指定,那么只能用于 `FROM` 指令中。 + +```docker +ARG DOCKER_USERNAME=library + +FROM ${DOCKER_USERNAME}/alpine + +RUN set -x ; echo ${DOCKER_USERNAME} +``` + +使用上述 Dockerfile 会发现无法输出 `${DOCKER_USERNAME}` 变量的值,要想正常输出,你必须在 `FROM` 之后再次指定 `ARG` + +```docker +# 只在 FROM 中生效 +ARG DOCKER_USERNAME=library + +FROM ${DOCKER_USERNAME}/alpine + +# 要想在 FROM 之后使用,必须再次指定 +ARG DOCKER_USERNAME=library + +RUN set -x ; echo ${DOCKER_USERNAME} +``` + +对于多阶段构建,尤其要注意这个问题 + +```docker +# 这个变量在每个 FROM 中都生效 +ARG DOCKER_USERNAME=library + +FROM ${DOCKER_USERNAME}/alpine + +RUN set -x ; echo 1 + +FROM ${DOCKER_USERNAME}/alpine + +RUN set -x ; echo 2 +``` + +对于上述 Dockerfile 两个 `FROM` 指令都可以使用 `${DOCKER_USERNAME}`,对于在各个阶段中使用的变量都必须在每个阶段分别指定: + +```docker +ARG DOCKER_USERNAME=library + +FROM ${DOCKER_USERNAME}/alpine + +# 在FROM 之后使用变量,必须在每个阶段分别指定 +ARG DOCKER_USERNAME=library + +RUN set -x ; echo ${DOCKER_USERNAME} + +FROM ${DOCKER_USERNAME}/alpine + +# 在FROM 之后使用变量,必须在每个阶段分别指定 +ARG DOCKER_USERNAME=library + +RUN set -x ; echo ${DOCKER_USERNAME} +``` diff --git a/image/dockerfile/label.md b/image/dockerfile/label.md new file mode 100644 index 000000000..1f816de64 --- /dev/null +++ b/image/dockerfile/label.md @@ -0,0 +1,17 @@ +# LABEL 指令 + +`LABEL` 指令用来给镜像以键值对的形式添加一些元数据(metadata)。 + +```docker +LABEL = = = ... +``` + +我们还可以用一些标签来申明镜像的作者、文档地址等: + +```docker +LABEL org.opencontainers.image.authors="yeasy" + +LABEL org.opencontainers.image.documentation="https://yeasy.gitbooks.io" +``` + +具体可以参考 https://github.com/opencontainers/image-spec/blob/master/annotations.md diff --git a/image/dockerfile/shell.md b/image/dockerfile/shell.md new file mode 100644 index 000000000..c207c39dc --- /dev/null +++ b/image/dockerfile/shell.md @@ -0,0 +1,33 @@ +# SHELL 指令 + +格式:`SHELL ["executable", "parameters"]` + +`SHELL` 指令可以指定 `RUN` `ENTRYPOINT` `CMD` 指令的 shell,Linux 中默认为 `["/bin/sh", "-c"]` + +```docker +SHELL ["/bin/sh", "-c"] + +RUN lll ; ls + +SHELL ["/bin/sh", "-cex"] + +RUN lll ; ls +``` + +两个 `RUN` 运行同一命令,第二个 `RUN` 运行的命令会打印出每条命令并当遇到错误时退出。 + +当 `ENTRYPOINT` `CMD` 以 shell 格式指定时,`SHELL` 指令所指定的 shell 也会成为这两个指令的 shell + +```docker +SHELL ["/bin/sh", "-cex"] + +# /bin/sh -cex "nginx" +ENTRYPOINT nginx +``` + +```docker +SHELL ["/bin/sh", "-cex"] + +# /bin/sh -cex "nginx" +CMD nginx +``` diff --git a/image/dockerfile/workdir.md b/image/dockerfile/workdir.md index 642281215..79ad39587 100644 --- a/image/dockerfile/workdir.md +++ b/image/dockerfile/workdir.md @@ -16,3 +16,21 @@ RUN echo "hello" > world.txt 之前说过每一个 `RUN` 都是启动一个容器、执行命令、然后提交存储层文件变更。第一层 `RUN cd /app` 的执行仅仅是当前进程的工作目录变更,一个内存上的变化而已,其结果不会造成任何文件变更。而到第二层的时候,启动的是一个全新的容器,跟第一层的容器更完全没关系,自然不可能继承前一层构建过程中的内存变化。 因此如果需要改变以后各层的工作目录的位置,那么应该使用 `WORKDIR` 指令。 + +```docker +WORKDIR /app + +RUN echo "hello" > world.txt +``` + +如果你的 `WORKDIR` 指令使用的相对路径,那么所切换的路径与之前的 `WORKDIR` 有关: + +```docker +WORKDIR /a +WORKDIR b +WORKDIR c + +RUN pwd +``` + +`pwd` 输出的结果为 `/a/b/c`。 From 58c09788f61fb55d4c3f6ef00a467c4889c0c5d2 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Sep 2020 21:04:01 +0800 Subject: [PATCH 530/611] Add link Signed-off-by: Kang Huaishuai --- security/daemon_sec.md | 6 +++--- security/kernel_capability.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/security/daemon_sec.md b/security/daemon_sec.md index 014ba12ae..e43359ce4 100644 --- a/security/daemon_sec.md +++ b/security/daemon_sec.md @@ -7,12 +7,12 @@ 为了加强对服务端的保护,Docker 的 REST API(客户端用来跟服务端通信)在 0.5.2 之后使用本地的 Unix 套接字机制替代了原先绑定在 127.0.0.1 上的 TCP 套接字,因为后者容易遭受跨站脚本攻击。现在用户使用 Unix 权限检查来加强套接字的访问安全。 -用户仍可以利用 HTTP 提供 REST API 访问。建议使用安全机制,确保只有可信的网络或 VPN,或证书保护机制(例如受保护的 stunnel 和 ssl 认证)下的访问可以进行。此外,还可以使用 HTTPS 和证书来加强保护。 +用户仍可以利用 HTTP 提供 REST API 访问。建议使用安全机制,确保只有可信的网络或 VPN,或证书保护机制(例如受保护的 stunnel 和 ssl 认证)下的访问可以进行。此外,还可以使用 [ HTTPS 和证书](https://docs.docker.com/engine/security/https/) 来加强保护。 最近改进的 Linux 命名空间机制将可以实现使用非 root 用户来运行全功能的容器。这将从根本上解决了容器和主机之间共享文件系统而引起的安全问题。 终极目标是改进 2 个重要的安全特性: -* 将容器的 root 用户映射到本地主机上的非 root 用户,减轻容器和主机之间因权限提升而引起的安全问题; -* 允许 Docker 服务端在 [非 root 权限](https://docs.docker.com/engine/security/rootless/) 下运行,利用安全可靠的子进程来代理执行需要特权权限的操作。这些子进程将只允许在限定范围内进行操作,例如仅仅负责虚拟网络设定或文件系统管理、配置操作等。 +* 将容器的 root 用户 [映射到本地主机上的非 root 用户](https://docs.docker.com/engine/security/userns-remap/),减轻容器和主机之间因权限提升而引起的安全问题; +* 允许 Docker 服务端在 [非 root 权限(rootless 模式)](https://docs.docker.com/engine/security/rootless/) 下运行,利用安全可靠的子进程来代理执行需要特权权限的操作。这些子进程将只允许在限定范围内进行操作,例如仅仅负责虚拟网络设定或文件系统管理、配置操作等。 最后,建议采用专用的服务器来运行 Docker 和相关的管理服务(例如管理服务比如 ssh 监控和进程监控、管理工具 nrpe、collectd 等)。其它的业务服务都放到容器中去运行。 diff --git a/security/kernel_capability.md b/security/kernel_capability.md index 4ebc9eabf..8d48b277c 100644 --- a/security/kernel_capability.md +++ b/security/kernel_capability.md @@ -1,6 +1,6 @@ # 内核能力机制 -能力机制(Capability)是 Linux 内核一个强大的特性,可以提供细粒度的权限访问控制。 +[能力机制(Capability)](https://man7.org/linux/man-pages/man7/capabilities.7.html) 是 Linux 内核一个强大的特性,可以提供细粒度的权限访问控制。 Linux 内核自 2.2 版本起就支持能力机制,它将权限划分为更加细粒度的操作能力,既可以作用在进程上,也可以作用在文件上。 例如,一个 Web 服务进程只需要绑定一个低于 1024 的端口的权限,并不需要 root 权限。那么它只需要被授权 `net_bind_service` 能力即可。此外,还有很多其他的类似能力来避免进程获取 root 权限。 @@ -22,5 +22,5 @@ Linux 内核自 2.2 版本起就支持能力机制,它将权限划分为更加 这样,就算攻击者在容器中取得了 root 权限,也不能获得本地主机的较高权限,能进行的破坏也有限。 -默认情况下,Docker采用白名单机制,禁用必需功能之外的其它权限。 +默认情况下,Docker采用 [白名单](https://github.com/moby/moby/blob/master/oci/caps/defaults.go) 机制,禁用必需功能之外的其它权限。 当然,用户也可以根据自身需求来为 Docker 容器启用额外的权限。 From d071ed7b997a709dd42d30a32beb03a5acdb2eb5 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 16 Sep 2020 17:40:22 +0800 Subject: [PATCH 531/611] Fixed 404 link --- kubernetes/setup/kubeadm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubernetes/setup/kubeadm.md b/kubernetes/setup/kubeadm.md index 64d314421..6d2afb87a 100644 --- a/kubernetes/setup/kubeadm.md +++ b/kubernetes/setup/kubeadm.md @@ -184,4 +184,4 @@ $ kubectl taint nodes --all node-role.kubernetes.io/master- ## 参考文档 -* [官方文档](https://kubernetes.io/zh/docs/setup/independent/create-cluster-kubeadm/) +* [官方文档](https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/) From 83929dd0963824dea8f57db9dfbdcde35db186db Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 16 Sep 2020 18:05:52 +0800 Subject: [PATCH 532/611] [vuepress] support dark mode, close #463 Signed-off-by: Kang Huaishuai --- .github/workflows/ci.yaml | 2 +- .vuepress/config.js | 15 +++++++++++++-- image/dockerfile/env.md | 2 +- package.json | 3 ++- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cb310cb57..f841d7433 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -21,7 +21,7 @@ jobs: sudo rm -rf _book npm i vuepress --save-dev npm i - npm run vuepress:build + npm run vuepress:build || true echo "vuepress.docker-practice.com" > .vuepress/dist/CNAME cp -r _images .vuepress/dist diff --git a/.vuepress/config.js b/.vuepress/config.js index 876a2442b..75ec2c5f8 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -1,4 +1,15 @@ -module.exports = { +const resolve = require("vuepress-theme-hope/resolve"); + +module.exports = resolve({ + themeConfig: { + blog: false, + comment: { + type: "disable", // 使用 Valine + appId: "...", // your appId + appKey: "...", // your appKey + }, + pageInfo: false + }, title: 'Docker 从入门到实践', base: '/', head: [['script', {}, ` @@ -401,4 +412,4 @@ module.exports = { ], }, } -} +}); diff --git a/image/dockerfile/env.md b/image/dockerfile/env.md index f3d4430cb..eba9eaed7 100644 --- a/image/dockerfile/env.md +++ b/image/dockerfile/env.md @@ -7,7 +7,7 @@ 这个指令很简单,就是设置环境变量而已,无论是后面的其它指令,如 `RUN`,还是运行时的应用,都可以直接使用这里定义的环境变量。 -```Dockerfie +```docker ENV VERSION=1.0 DEBUG=on \ NAME="Happy Feet" ``` diff --git a/package.json b/package.json index 66a88fc12..5e9a38177 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "commander": "^4.0.1", "esm": "^3.2.25", "vuepress-plugin-container": "^2.1.2", - "vuepress-plugin-sitemap": "^2.3.1" + "vuepress-plugin-sitemap": "^2.3.1", + "vuepress-theme-hope": "^0.7.3" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", From 68d85ac31ee147b121e34db35a702e4e4bd9029a Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 7 Oct 2020 13:31:45 +0800 Subject: [PATCH 533/611] Update laravel, close #465 --- .../example/laravel/.dockerignore | 5 ++ .../example/laravel/Dockerfile | 20 +++---- image/multistage-builds/laravel.md | 53 +++++++++++-------- 3 files changed, 48 insertions(+), 30 deletions(-) diff --git a/image/multistage-builds/example/laravel/.dockerignore b/image/multistage-builds/example/laravel/.dockerignore index fed61e775..8516a3a06 100644 --- a/image/multistage-builds/example/laravel/.dockerignore +++ b/image/multistage-builds/example/laravel/.dockerignore @@ -1,9 +1,14 @@ .idea/ .git/ + vendor/ + node_modules/ + public/js/ public/css/ +public/mix-manifest.json + yarn-error.log bootstrap/cache/* diff --git a/image/multistage-builds/example/laravel/Dockerfile b/image/multistage-builds/example/laravel/Dockerfile index 2f6913411..3f247becf 100644 --- a/image/multistage-builds/example/laravel/Dockerfile +++ b/image/multistage-builds/example/laravel/Dockerfile @@ -2,13 +2,15 @@ FROM node:alpine as frontend COPY package.json /app/ -RUN cd /app \ +RUN set -x ; cd /app \ && npm install --registry=https://registry.npm.taobao.org COPY webpack.mix.js /app/ -COPY resources/assets/ /app/resources/assets/ +COPY resources/ /app/resources/ -RUN cd /app \ +RUN set -x ; cd /app \ + && touch artisan \ + && mkdir -p public \ && npm run production FROM composer as composer @@ -16,7 +18,7 @@ FROM composer as composer COPY database/ /app/database/ COPY composer.json /app/ -RUN cd /app \ +RUN set -x ; cd /app \ && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \ && composer install \ --ignore-platform-reqs \ @@ -25,7 +27,7 @@ RUN cd /app \ --no-scripts \ --prefer-dist -FROM php:7.2-fpm-alpine as laravel +FROM php:7.4-fpm-alpine as laravel ARG LARAVEL_PATH=/app/laravel @@ -33,17 +35,17 @@ COPY --from=composer /app/vendor/ ${LARAVEL_PATH}/vendor/ COPY . ${LARAVEL_PATH} COPY --from=frontend /app/public/js/ ${LARAVEL_PATH}/public/js/ COPY --from=frontend /app/public/css/ ${LARAVEL_PATH}/public/css/ -COPY --from=frontend /app/mix-manifest.json ${LARAVEL_PATH}/mix-manifest.json +COPY --from=frontend /app/public/mix-manifest.json ${LARAVEL_PATH}/public/mix-manifest.json -RUN cd ${LARAVEL_PATH} \ - && php artisan package:discover \ +RUN set -x ; cd ${LARAVEL_PATH} \ && mkdir -p storage \ && mkdir -p storage/framework/cache \ && mkdir -p storage/framework/sessions \ && mkdir -p storage/framework/testing \ && mkdir -p storage/framework/views \ && mkdir -p storage/logs \ - && chmod -R 777 storage + && chmod -R 777 storage \ + && php artisan package:discover FROM nginx:alpine as nginx diff --git a/image/multistage-builds/laravel.md b/image/multistage-builds/laravel.md index da14fdb01..07df96cf4 100644 --- a/image/multistage-builds/laravel.md +++ b/image/multistage-builds/laravel.md @@ -1,6 +1,6 @@ # 实战多阶段构建 Laravel 镜像 -> 本节适用于 PHP 开发者阅读。 +> 本节适用于 PHP 开发者阅读。`Laravel` 基于 8.x 版本,各个版本的文件结构可能会有差异,请根据实际自行修改。 ## 准备 @@ -11,10 +11,15 @@ ```bash .idea/ .git/ + vendor/ + node_modules/ + public/js/ public/css/ +public/mix-manifest.json + yarn-error.log bootstrap/cache/* @@ -55,13 +60,15 @@ FROM node:alpine as frontend COPY package.json /app/ -RUN cd /app \ +RUN set -x ; cd /app \ && npm install --registry=https://registry.npm.taobao.org COPY webpack.mix.js /app/ -COPY resources/assets/ /app/resources/assets/ +COPY resources/ /app/resources/ -RUN cd /app \ +RUN set -x ; cd /app \ + && touch artisan \ + && mkdir -p public \ && npm run production ``` @@ -75,7 +82,7 @@ FROM composer as composer COPY database/ /app/database/ COPY composer.json composer.lock /app/ -RUN cd /app \ +RUN set -x ; cd /app \ && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \ && composer install \ --ignore-platform-reqs \ @@ -90,7 +97,7 @@ RUN cd /app \ 第三阶段对以上阶段生成的文件进行整合。 ```docker -FROM php:7.2-fpm-alpine as laravel +FROM php:7.4-fpm-alpine as laravel ARG LARAVEL_PATH=/app/laravel @@ -98,17 +105,17 @@ COPY --from=composer /app/vendor/ ${LARAVEL_PATH}/vendor/ COPY . ${LARAVEL_PATH} COPY --from=frontend /app/public/js/ ${LARAVEL_PATH}/public/js/ COPY --from=frontend /app/public/css/ ${LARAVEL_PATH}/public/css/ -COPY --from=frontend /app/mix-manifest.json ${LARAVEL_PATH}/mix-manifest.json +COPY --from=frontend /app/public/mix-manifest.json ${LARAVEL_PATH}/public/mix-manifest.json -RUN cd ${LARAVEL_PATH} \ - && php artisan package:discover \ +RUN set -x ; cd ${LARAVEL_PATH} \ && mkdir -p storage \ && mkdir -p storage/framework/cache \ && mkdir -p storage/framework/sessions \ && mkdir -p storage/framework/testing \ && mkdir -p storage/framework/views \ && mkdir -p storage/logs \ - && chmod -R 777 storage + && chmod -R 777 storage \ + && php artisan package:discover ``` ## 最后一个阶段构建 NGINX 镜像 @@ -143,13 +150,13 @@ $ docker network create laravel 启动 laravel 容器, `--name=laravel` 参数设定的名字必须与 `nginx` 配置文件中的 `fastcgi_pass laravel:9000;` 一致 ```bash -$ docker run -it --rm --name=laravel --network=laravel my/laravel +$ docker run -dit --rm --name=laravel --network=laravel my/laravel ``` 启动 nginx 容器 ```bash -$ docker run -it --rm --network=laravel -p 8080:80 my/nginx +$ docker run -dit --rm --network=laravel -p 8080:80 my/nginx ``` 浏览器访问 `127.0.0.1:8080` 可以看到 Laravel 项目首页。 @@ -160,6 +167,8 @@ $ docker run -it --rm --network=laravel -p 8080:80 my/nginx 本小节内容为了方便测试,将配置文件直接放到了镜像中,实际在使用时 **建议** 将配置文件作为 `config` 或 `secret` 挂载到容器中,请读者自行学习 `Swarm mode` 或 `Kubernetes` 的相关内容。 +由于篇幅所限本小节只是简单列出,更多内容可以参考 https://github.com/khs1994-docker/laravel-demo 项目。 + ## 附录 完整的 `Dockerfile` 文件如下。 @@ -169,13 +178,15 @@ FROM node:alpine as frontend COPY package.json /app/ -RUN cd /app \ +RUN set -x ; cd /app \ && npm install --registry=https://registry.npm.taobao.org COPY webpack.mix.js /app/ -COPY resources/assets/ /app/resources/assets/ +COPY resources/ /app/resources/ -RUN cd /app \ +RUN set -x ; cd /app \ + && touch artisan \ + && mkdir -p public \ && npm run production FROM composer as composer @@ -183,7 +194,7 @@ FROM composer as composer COPY database/ /app/database/ COPY composer.json /app/ -RUN cd /app \ +RUN set -x ; cd /app \ && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \ && composer install \ --ignore-platform-reqs \ @@ -192,7 +203,7 @@ RUN cd /app \ --no-scripts \ --prefer-dist -FROM php:7.2-fpm-alpine as laravel +FROM php:7.4-fpm-alpine as laravel ARG LARAVEL_PATH=/app/laravel @@ -200,17 +211,17 @@ COPY --from=composer /app/vendor/ ${LARAVEL_PATH}/vendor/ COPY . ${LARAVEL_PATH} COPY --from=frontend /app/public/js/ ${LARAVEL_PATH}/public/js/ COPY --from=frontend /app/public/css/ ${LARAVEL_PATH}/public/css/ -COPY --from=frontend /app/mix-manifest.json ${LARAVEL_PATH}/mix-manifest.json +COPY --from=frontend /app/public/mix-manifest.json ${LARAVEL_PATH}/public/mix-manifest.json -RUN cd ${LARAVEL_PATH} \ - && php artisan package:discover \ +RUN set -x ; cd ${LARAVEL_PATH} \ && mkdir -p storage \ && mkdir -p storage/framework/cache \ && mkdir -p storage/framework/sessions \ && mkdir -p storage/framework/testing \ && mkdir -p storage/framework/views \ && mkdir -p storage/logs \ - && chmod -R 777 storage + && chmod -R 777 storage \ + && php artisan package:discover FROM nginx:alpine as nginx From 1c932ef5678180d7d883476dd0e649b5368ada46 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 7 Oct 2020 13:44:57 +0800 Subject: [PATCH 534/611] Fixed link Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 2 ++ CHANGELOG.md | 2 +- README.md | 2 +- cases/ci/actions/README.md | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index d595c3eac..ecf487c3b 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -3,6 +3,7 @@ name: check-link on: push: pull_request: + workflow_dispatch: jobs: check-link: @@ -58,6 +59,7 @@ jobs: "union-click.jd.com",\ "x.x.x.x/base",\ "x.x.x.x:9000/minio/",\ + "yeasy.gitbooks.io",\ "https://www.freedesktop.org/wiki/Software/systemd/",\ "www.aliyun.com" \ --allow-dupe \ diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e04a3d6b..9a4840444 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ * 1.2.0 2020-12-31 * 1.1.0 2019-12-31 - * 全面支持 v19.x 新版本 + * 全面支持 v19.03 新版本 * 增加 `BuildKit` * 增加 `docker buildx` 命令使用说明 * 增加 `docker manifest` 命令使用说明 diff --git a/README.md b/README.md index 4daed698c..9272bb7ae 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Docker — 从入门到实践 -[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v19.x-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)][1] +[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v19.03-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)][1] **v1.2.0** diff --git a/cases/ci/actions/README.md b/cases/ci/actions/README.md index 204865208..8b5364fbf 100644 --- a/cases/ci/actions/README.md +++ b/cases/ci/actions/README.md @@ -25,4 +25,4 @@ jobs: ## 参考资料 -* [Actions Docs](https://docs.github.com/en/actions) +* [Actions Docs](https://docs.github.com/en/free-pro-team@latest/actions) From f6ec3b23d259cb4f93b7976270e44315ade09cc8 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sat, 10 Oct 2020 09:18:58 +0800 Subject: [PATCH 535/611] Update mirror Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 2 ++ install/mirror.md | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index ecf487c3b..8ebd2f5a0 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -40,6 +40,8 @@ jobs: "mirrors.ustc.edu.cn",\ "docs.docker.com",\ "dockerhub.azk8s.cn",\ + "reg-mirror.qiniu.com",\ + "registry.docker-cn.com",\ "mirror.ccs.tencentyun.com",\ "vuepress.mirror.docker-practice.com",\ "mc.qcloudimg.com/static/img",\ diff --git a/install/mirror.md b/install/mirror.md index 19184a333..1b592b5e4 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -2,13 +2,13 @@ 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如: +* [阿里云加速器(点击管理控制台 -> 登录账号(淘宝账号) -> 右侧镜像中心 -> 镜像加速器 -> 复制地址)](https://www.aliyun.com/product/acr?source=5176.11533457&userCode=8lx5zmtu) * [网易云加速器 `https://hub-mirror.c.163.com`](https://www.163yun.com/help/documents/56918246390157312) * [百度云加速器 `https://mirror.baidubce.com`](https://cloud.baidu.com/doc/CCE/s/Yjxppt74z#%E4%BD%BF%E7%94%A8dockerhub%E5%8A%A0%E9%80%9F%E5%99%A8) -* [阿里云加速器(需登录账号获取)](https://cr.console.aliyun.com/cn-hangzhou/mirrors) **由于镜像服务可能出现宕机,建议同时配置多个镜像。各个镜像站测试结果请到 [docker-practice/docker-registry-cn-mirror-test](https://github.com/docker-practice/docker-registry-cn-mirror-test/actions) 查看。** -> 国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档。 +> 国内各大云服务商(腾讯云、阿里云、百度云)均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考本页最后一小节。 本节我们以 [网易云](https://www.163yun.com/) 镜像服务 `https://hub-mirror.c.163.com` 为例进行介绍。 @@ -85,9 +85,19 @@ Registry Mirrors: $ docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/xxx ``` +## 不再提供服务的镜像 + +某些镜像不再提供服务,添加无用的镜像加速器,会拖慢镜像拉取速度,你可以从镜像配置列表中删除它们。 + +* https://dockerhub.azk8s.cn **已转为私有** +* https://reg-mirror.qiniu.com +* https://registry.docker-cn.com + +建议 **watch(页面右上角)** [镜像测试](https://github.com/docker-practice/docker-registry-cn-mirror-test) 这个 GitHub 仓库,我们会在此更新各个镜像地址的状态。 + ## 云服务商 -某些云服务商提供了仅供内部访问的镜像服务,当您的 Docker 运行在云平台时可以选择它们。 +某些云服务商提供了 **仅供内部** 访问的镜像服务,当您的 Docker 运行在云平台时可以选择它们。 * [Azure 中国镜像 `https://dockerhub.azk8s.cn`](https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md#22-container-registry-proxy) From 4751e59a6ff580a4099e90414cc45c913e45e6b3 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 12 Oct 2020 18:54:47 +0800 Subject: [PATCH 536/611] rename docker ce to docker Signed-off-by: Kang Huaishuai --- CHANGELOG.md | 4 ++-- install/README.md | 6 ++---- install/centos.md | 21 +++++++++------------ install/centos8.md | 6 +++--- install/debian.md | 18 +++++++++--------- install/fedora.md | 16 ++++++++-------- install/mac.md | 2 +- install/raspberry-pi.md | 16 ++++++++-------- install/ubuntu.md | 17 +++++++++-------- install/windows.md | 6 +++--- underly/ufs.md | 8 ++++---- 11 files changed, 58 insertions(+), 62 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a4840444..2b7783c63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,14 +3,14 @@ * 1.2.0 2020-12-31 * 1.1.0 2019-12-31 - * 全面支持 v19.03 新版本 + * 全面支持 Docker v19.03 新版本 * 增加 `BuildKit` * 增加 `docker buildx` 命令使用说明 * 增加 `docker manifest` 命令使用说明 * 移除 `Ubuntu 14.04` `Debian 8` `Debian 7` * 1.0.0: 2018-12-31 - * 全面支持 v18.x 新版本 + * 全面支持 Docker v18.x 新版本 * 添加如何调试 Docker * 错误修正 diff --git a/install/README.md b/install/README.md index a9db78b88..cfa04d0c1 100644 --- a/install/README.md +++ b/install/README.md @@ -1,7 +1,5 @@ # 安装 Docker -Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 +Docker 分为 `stable` `test` 和 `nightly` 三个更新频道。 -Docker CE 分为 `stable` `test` 和 `nightly` 三个更新频道。 - -官方网站上有各种环境下的 [安装指南](https://docs.docker.com/install/),这里主要介绍 Docker CE 在 `Linux` 、`Windows 10` 和 `macOS` 上的安装。 +官方网站上有各种环境下的 [安装指南](https://docs.docker.com/get-docker/),这里主要介绍 Docker 在 `Linux` 、`Windows 10` 和 `macOS` 上的安装。 diff --git a/install/centos.md b/install/centos.md index 929f8e552..c5178ace7 100644 --- a/install/centos.md +++ b/install/centos.md @@ -1,4 +1,4 @@ -# CentOS 安装 Docker CE +# CentOS 安装 Docker >警告:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker. @@ -6,7 +6,7 @@ ### 系统要求 -Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 `overlay2` 存储层驱动)无法使用,并且部分功能可能不太稳定。 +Docker 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 `overlay2` 存储层驱动)无法使用,并且部分功能可能不太稳定。 ### 卸载旧版本 @@ -30,9 +30,7 @@ $ sudo yum remove docker \ 执行以下命令安装依赖包: ```bash -$ sudo yum install -y yum-utils \ - device-mapper-persistent-data \ - lvm2 +$ sudo yum install -y yum-utils ``` 鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 @@ -52,19 +50,18 @@ $ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum. # https://download.docker.com/linux/centos/docker-ce.repo ``` -如果需要测试版本的 Docker CE 请使用以下命令: +如果需要测试版本的 Docker 请使用以下命令: ```bash $ sudo yum-config-manager --enable docker-ce-test ``` -### 安装 Docker CE +### 安装 Docker 更新 `yum` 软件源缓存,并安装 `docker-ce`。 ```bash -$ sudo yum makecache fast -$ sudo yum install docker-ce +$ sudo yum install docker-ce docker-ce-cli containerd.io ``` ## 使用脚本自动安装 @@ -77,9 +74,9 @@ $ sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud ``` -执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 +执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。 -## 启动 Docker CE +## 启动 Docker ```bash $ sudo systemctl enable docker @@ -145,7 +142,7 @@ For more examples and ideas, visit: ## 添加内核参数 -如果在 CentOS 使用 Docker CE 看到下面的这些警告信息: +如果在 CentOS 使用 Docker 看到下面的这些警告信息: ```bash WARNING: bridge-nf-call-iptables is disabled diff --git a/install/centos8.md b/install/centos8.md index 5110c052a..c69d97a16 100644 --- a/install/centos8.md +++ b/install/centos8.md @@ -1,12 +1,12 @@ -# CentOS8 安装 Docker CE +# CentOS8 安装 Docker -当前官方版本的 Docker CE [尚未支持][docker-docker] CentOS8,我们可以使用 Moby 项目维护者 AkihiroSuda 所构建的包,具体请参考 https://github.com/AkihiroSuda/moby-snapshot +当前官方版本的 Docker [尚未支持][docker-docker] CentOS8,我们可以使用 Moby 项目维护者 AkihiroSuda 所构建的包,具体请参考 https://github.com/AkihiroSuda/moby-snapshot [docker-docker]:https://download.docker.com/linux/centos/ ## 设置 -由于 CentOS8 防火墙使用了 `nftables`,但 Docker CE 尚未支持 `nftables`, 我们可以使用如下设置使用 `iptables`: +由于 CentOS8 防火墙使用了 `nftables`,但 Docker 尚未支持 `nftables`, 我们可以使用如下设置使用 `iptables`: 更改 `/etc/firewalld/firewalld.conf` diff --git a/install/debian.md b/install/debian.md index b66e0c259..f5ea07541 100644 --- a/install/debian.md +++ b/install/debian.md @@ -1,4 +1,4 @@ -# Debian 安装 Docker CE +# Debian 安装 Docker >警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. @@ -6,7 +6,7 @@ ### 系统要求 -Docker CE 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统: +Docker 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统: * Buster 10 * Stretch 9 @@ -32,7 +32,7 @@ $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ - gnupg2 \ + gnupg-agent \ lsb-release \ software-properties-common ``` @@ -49,7 +49,7 @@ $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-k # $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - ``` -然后,我们需要向 `sources.list` 中添加 Docker CE 软件源: +然后,我们需要向 `sources.list` 中添加 Docker 软件源: ```bash $ sudo add-apt-repository \ @@ -64,16 +64,16 @@ $ sudo add-apt-repository \ # stable" ``` ->以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试版本的 Docker CE 请将 stable 改为 test。 +>以上命令会添加稳定版本的 Docker APT 源,如果需要测试版本的 Docker 请将 stable 改为 test。 -### 安装 Docker CE +### 安装 Docker 更新 apt 软件包缓存,并安装 `docker-ce`。 ```bash $ sudo apt-get update -$ sudo apt-get install docker-ce +$ sudo apt-get install docker-ce docker-ce-cli containerd.io ``` ## 使用脚本自动安装 @@ -86,9 +86,9 @@ $ sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud ``` -执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 +执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。 -## 启动 Docker CE +## 启动 Docker ```bash $ sudo systemctl enable docker diff --git a/install/fedora.md b/install/fedora.md index 1fd500291..caa3fffc7 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -1,4 +1,4 @@ -# Fedora 安装 Docker CE +# Fedora 安装 Docker >警告:切勿在没有配置 Docker dnf 源的情况下直接使用 dnf 命令安装 Docker. @@ -6,7 +6,7 @@ ### 系统要求 -Docker CE 支持以下版本的 [Fedora](https://getfedora.org/) 操作系统: +Docker 支持以下版本的 [Fedora](https://getfedora.org/) 操作系统: * 30 * 31 @@ -53,25 +53,25 @@ $ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum. # https://download.docker.com/linux/fedora/docker-ce.repo ``` -如果需要测试版本的 Docker CE 请使用以下命令: +如果需要测试版本的 Docker 请使用以下命令: ```bash $ sudo dnf config-manager --set-enabled docker-ce-test ``` -你也可以禁用测试版本的 Docker CE +你也可以禁用测试版本的 Docker ```bash $ sudo dnf config-manager --set-disabled docker-ce-test ``` -### 安装 Docker CE +### 安装 Docker 更新 `dnf` 软件源缓存,并安装 `docker-ce`。 ```bash $ sudo dnf update -$ sudo dnf install docker-ce +$ sudo dnf install docker-ce docker-ce-cli containerd.io ``` 你也可以使用以下命令安装指定版本的 Docker @@ -100,9 +100,9 @@ $ sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud ``` -执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 最新稳定(stable)版本安装在系统中。 +执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 最新稳定(stable)版本安装在系统中。 -## 启动 Docker CE +## 启动 Docker ```bash $ sudo systemctl enable docker diff --git a/install/mac.md b/install/mac.md index e84ac09a6..176bab90e 100644 --- a/install/mac.md +++ b/install/mac.md @@ -1,4 +1,4 @@ -# macOS 安装 Docker Desktop CE +# macOS 安装 Docker ## 系统要求 diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index c297c1254..55b9c93d6 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -1,12 +1,12 @@ -# 树莓派卡片电脑安装 Docker CE +# 树莓派卡片电脑安装 Docker >警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. ## 系统要求 -Docker CE 不仅支持 `x86_64` 架构的计算机,同时也支持 `ARM` 架构的计算机,本小节内容以树莓派单片电脑为例讲解 `ARM` 架构安装 Docker CE。 +Docker 不仅支持 `x86_64` 架构的计算机,同时也支持 `ARM` 架构的计算机,本小节内容以树莓派单片电脑为例讲解 `ARM` 架构安装 Docker。 -Docker CE 支持以下版本的 [Raspberry Pi OS](https://www.raspberrypi.org/downloads/raspberry-pi-os/) 操作系统: +Docker 支持以下版本的 [Raspberry Pi OS](https://www.raspberrypi.org/downloads/raspberry-pi-os/) 操作系统: * Raspberry Pi OS Buster @@ -40,7 +40,7 @@ $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian/gpg | sudo apt # $ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add - ``` -然后,我们需要向 `sources.list` 中添加 Docker CE 软件源: +然后,我们需要向 `sources.list` 中添加 Docker 软件源: ```bash $ sudo add-apt-repository \ @@ -56,9 +56,9 @@ $ sudo add-apt-repository \ # stable" ``` ->以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试版本的 Docker CE 请将 stable 改为 test。 +>以上命令会添加稳定版本的 Docker APT 源,如果需要测试版本的 Docker 请将 stable 改为 test。 -### 安装 Docker CE +### 安装 Docker 更新 apt 软件包缓存,并安装 `docker-ce`。 @@ -78,9 +78,9 @@ $ sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud ``` -执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 +执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。 -## 启动 Docker CE +## 启动 Docker ```bash $ sudo systemctl enable docker diff --git a/install/ubuntu.md b/install/ubuntu.md index 9e0ff1544..1323335a0 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -1,4 +1,4 @@ -# Ubuntu 安装 Docker CE +# Ubuntu 安装 Docker >警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. @@ -6,13 +6,13 @@ ### 系统要求 -Docker CE 支持以下版本的 [Ubuntu](https://ubuntu.com/server) 操作系统: +Docker 支持以下版本的 [Ubuntu](https://ubuntu.com/server) 操作系统: * Ubuntu Focal 20.04 (LTS) * Bionic 18.04 (LTS) * Xenial 16.04 (LTS) -Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。 +Docker 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。 ### 卸载旧版本 @@ -35,6 +35,7 @@ $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ + gnupg-agent \ software-properties-common ``` @@ -66,16 +67,16 @@ $ sudo add-apt-repository \ # stable" ``` ->以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要测试版本的 Docker CE 请将 stable 改为 test。 +>以上命令会添加稳定版本的 Docker APT 镜像源,如果需要测试版本的 Docker 请将 stable 改为 test。 -### 安装 Docker CE +### 安装 Docker 更新 apt 软件包缓存,并安装 `docker-ce`: ```bash $ sudo apt-get update -$ sudo apt-get install docker-ce +$ sudo apt-get install docker-ce docker-ce-cli containerd.io ``` ## 使用脚本自动安装 @@ -88,9 +89,9 @@ $ sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud ``` -执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 +执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。 -## 启动 Docker CE +## 启动 Docker ```bash $ sudo systemctl enable docker diff --git a/install/windows.md b/install/windows.md index d62c0cc94..36cbfdd3f 100644 --- a/install/windows.md +++ b/install/windows.md @@ -1,4 +1,4 @@ -# Windows 10 安装 Docker Desktop CE +# Windows 10 安装 Docker ## 系统要求 @@ -28,11 +28,11 @@ $ winget install Docker.DockerDesktopEdge ![](_images/install-win-docker-app-search.png) -Docker CE 启动之后会在 Windows 任务栏出现鲸鱼图标。 +Docker 启动之后会在 Windows 任务栏出现鲸鱼图标。 ![](_images/install-win-taskbar-circle.png) -等待片刻,点击 Got it 开始使用 Docker CE。 +等待片刻,点击 Got it 开始使用 Docker。 ![](_images/install-win-success-popup-cloud.png) diff --git a/underly/ufs.md b/underly/ufs.md index 9b3ed1237..fb01da17d 100644 --- a/underly/ufs.md +++ b/underly/ufs.md @@ -14,9 +14,9 @@ Docker 目前支持的联合文件系统包括 `OverlayFS`, `AUFS`, `Btrfs`, `VF |Linux 发行版 | Docker 推荐使用的存储驱动 | | :-- | :-- | -|Docker CE on Ubuntu | `overlay2` (16.04 +) | -|Docker CE on Debian | `overlay2` (Debian Stretch), `aufs`, `devicemapper` | -|Docker CE on CentOS | `overlay2` | -|Docker CE on Fedora | `overlay2` | +|Docker on Ubuntu | `overlay2` (16.04 +) | +|Docker on Debian | `overlay2` (Debian Stretch), `aufs`, `devicemapper` | +|Docker on CentOS | `overlay2` | +|Docker on Fedora | `overlay2` | 在可能的情况下,[推荐](https://docs.docker.com/storage/storagedriver/select-storage-driver/) 使用 `overlay2` 存储驱动,`overlay2` 是目前 Docker 默认的存储驱动,以前则是 `aufs`。你可以通过配置来使用以上提到的其他类型的存储驱动。 From ff1f48a7931ce9489f01a7867fb2977153d9ddc1 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 13 Oct 2020 09:35:40 +0800 Subject: [PATCH 537/611] Update mirror: check docker.service first Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 1 - install/mirror.md | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 8ebd2f5a0..c74c0540c 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -62,7 +62,6 @@ jobs: "x.x.x.x/base",\ "x.x.x.x:9000/minio/",\ "yeasy.gitbooks.io",\ - "https://www.freedesktop.org/wiki/Software/systemd/",\ "www.aliyun.com" \ --allow-dupe \ --skip-save-results \ diff --git a/install/mirror.md b/install/mirror.md index 1b592b5e4..1f2a999d6 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -12,9 +12,19 @@ 本节我们以 [网易云](https://www.163yun.com/) 镜像服务 `https://hub-mirror.c.163.com` 为例进行介绍。 -## Ubuntu 16.04+、Debian 8+、CentOS 7 +## Ubuntu 16.04+、Debian 8+、CentOS 7+ -对于使用 [systemd](https://www.freedesktop.org/wiki/Software/systemd/) 的系统,请在 `/etc/docker/daemon.json` 中写入如下内容(如果文件不存在请新建该文件) +目前主流 Linux 发行版均已使用 [systemd](https://systemd.io/) 进行服务管理,这里介绍如何在使用 systemd 的 Linux 发行版中配置镜像加速器。 + +请首先执行以下命令,查看是否在 `docker.service` 文件中配置过镜像地址。 + +```bash +$ systemctl cat docker | grep '\-\-registry\-mirror' +``` + +如果该命令有输出,那么请执行 `$ systemctl cat docker` 查看 `ExecStart=` 出现的位置,修改对应的文件内容去掉 `--registry-mirror` 参数及其值,并按接下来的步骤进行配置。 + +如果以上命令没有任何输出,那么就可以在 `/etc/docker/daemon.json` 中写入如下内容(如果文件不存在请新建该文件): ```json { @@ -34,8 +44,6 @@ $ sudo systemctl daemon-reload $ sudo systemctl restart docker ``` ->注意:如果您之前查看旧教程,修改了 `docker.service` 文件内容,请去掉您添加的内容(`--registry-mirror=https://hub-mirror.c.163.com`)。 - ## Windows 10 对于使用 `Windows 10` 的用户,在任务栏托盘 Docker 图标内右键菜单选择 `Settings`,打开配置窗口后在左侧导航菜单选择 `Docker Engine`,在右侧像下边一样编辑 json 文件,之后点击 `Apply & Restart` 保存后 Docker 就会重启并应用配置的镜像地址了。 From fc8b8867af17ef2b4f7884853b073c69884d0eb1 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 13 Oct 2020 22:24:30 +0800 Subject: [PATCH 538/611] [vuepress] Update config Signed-off-by: Kang Huaishuai --- .github/workflows/ci.yaml | 10 +++++-- .gitignore | 2 -- .vuepress/.gitignore | 3 ++ .vuepress/config.js | 59 +++++++++++++++++++++++++++++++-------- package.json | 11 ++++---- 5 files changed, 63 insertions(+), 22 deletions(-) create mode 100644 .vuepress/.gitignore diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f841d7433..10afc2b61 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -21,7 +21,13 @@ jobs: sudo rm -rf _book npm i vuepress --save-dev npm i - npm run vuepress:build || true + + git clone https://github.com/docker-practice/.vuepress .vuepress2 + cp -r .vuepress2/. .vuepress/ + rm -rf .vuepress2 + find . \( -path "./mesos" -o -path "./machine" -o -path "./swarm_mode" -o -path "./node_modules" -o -path "./.vuepress" -o -path "./_book" -o -path "./CHANGELOG.md" -o -path "./CONTRIBUTING.md" \) -prune -o -name "*.md" -exec sed -i 'N;2a\\n' {} \; + + npm run vuepress:build echo "vuepress.docker-practice.com" > .vuepress/dist/CNAME cp -r _images .vuepress/dist @@ -39,7 +45,7 @@ jobs: cp -r mesos/_images .vuepress/dist/mesos cp -r underly/_images .vuepress/dist/underly - echo "include: [_images]" > .vuepress/dist/_config + echo "include: [_images]" > .vuepress/dist/_config.yml - name: Upload Vuepress dist uses: docker://pcit/pages if: github.repository == 'docker-practice/docker_practice' diff --git a/.gitignore b/.gitignore index 4d197531a..cd6ce1c4d 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,3 @@ _book/ node_modules/ package-lock.json - -.vuepress/dist diff --git a/.vuepress/.gitignore b/.vuepress/.gitignore new file mode 100644 index 000000000..c01fe453d --- /dev/null +++ b/.vuepress/.gitignore @@ -0,0 +1,3 @@ +/* +!.gitignore +!config.js diff --git a/.vuepress/config.js b/.vuepress/config.js index 75ec2c5f8..6c5dacd1f 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -1,15 +1,6 @@ const resolve = require("vuepress-theme-hope/resolve"); module.exports = resolve({ - themeConfig: { - blog: false, - comment: { - type: "disable", // 使用 Valine - appId: "...", // your appId - appKey: "...", // your appKey - }, - pageInfo: false - }, title: 'Docker 从入门到实践', base: '/', head: [['script', {}, ` @@ -39,13 +30,57 @@ module.exports = resolve({ ] ], plugins: { - sitemap: { - hostname: 'https://vuepress.mirror.docker-practice.com' - }, + // sitemap: { + // hostname: 'https://vuepress.mirror.docker-practice.com' + // }, + // 'git-log': { + // additionalArgs: '--no-merge', + // onlyFirstAndLastCommit: true, + // }, }, themeConfig: { + blog: false, + // comment: false, + comment: { + type: "disable", // 使用 Valine + appId: "...", // your appId + appKey: "...", // your appKey + }, + pageInfo: [ + // 'Author', + 'ReadTime', + 'Word', + ], + footer: { + content: "", + display: true, + copyright: false, + }, + searchPlaceholder: 'Search', + repo: 'yeasy/docker_practice', + repoLabel: 'GitHub', + hostname: 'https://vuepress.mirror.docker-practice.com', + // author: 'yeasy', + markdown: { + // lineNumbers: true, + // sub: true, + // footnote: true + enableAll: true + }, + themeColor: { + blue: '#2196f3', + red: '#f26d6d', + green: '#3eaf7c', + orange: '#fb9b5f' + }, + + // + + showAds: true, + docsRepo: 'yeasy/docker_practice', docsDir: '/', + docsBranch: 'master', editLinks: true, nav: [ { diff --git a/package.json b/package.json index 5e9a38177..9dbf99cc1 100644 --- a/package.json +++ b/package.json @@ -5,12 +5,11 @@ "main": "index.js", "dependencies": {}, "devDependencies": { - "chalk": "^3.0.0", - "commander": "^4.0.1", - "esm": "^3.2.25", - "vuepress-plugin-container": "^2.1.2", - "vuepress-plugin-sitemap": "^2.3.1", - "vuepress-theme-hope": "^0.7.3" + "chalk": "^2.4.2", + "commander": "^2.0.0", + "esm": "^3.0.0", + "vuepress-plugin-container": "^2.1.5", + "vuepress-theme-hope": "^0.8.0" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", From 1b2c480a55692b6f39d947f229f6dce4c2f3ce65 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 14 Oct 2020 00:28:50 +0800 Subject: [PATCH 539/611] Add vscode devcontainer Signed-off-by: Kang Huaishuai --- .devcontainer/devcontainer.json | 20 ++++++++++++++++++++ .github/workflows/check-link.yml | 4 ++-- package.json | 3 +++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..2ca1d999d --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,20 @@ +{ + "image": "yeasy/docker_practice:latest", + "mounts": [ + "source=dp-code-remote-cache,target=/root/.vscode-server,type=volume" + ], + "settings": { + "terminal.integrated.shell.linux": "/bin/sh" + }, + "forwardPorts": [ + 4000 + ], + "runArgs": [ + "--cap-add=SYS_ADMIN" + ], + "postStartCommand": [ + "sh", + "-cx", + "pwd ; mkdir -p /workspaces/docker_practice/node_modules; mkdir -p /workspaces/docker_practice/_book; mount --bind /srv/gitbook/node_modules /workspaces/docker_practice/node_modules ; mount --bind /mnt /workspaces/docker_practice/_book" + ] +} diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index c74c0540c..684f35778 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -1,8 +1,8 @@ name: check-link on: - push: - pull_request: + # push: + # pull_request: workflow_dispatch: jobs: diff --git a/package.json b/package.json index 9dbf99cc1..3ff639dbe 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,9 @@ }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", + "gitbook:help": "gitbook help", + "gitbook:build": "gitbook build", + "gitbook:serve": "gitbook serve", "vuepress:build": "npx vuepress build" }, "repository": { From fd85d5a0e5030cb22fc83be74dd587c630927894 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 14 Oct 2020 00:40:07 +0800 Subject: [PATCH 540/611] project docker image add bash Signed-off-by: Kang Huaishuai --- .travis/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis/Dockerfile b/.travis/Dockerfile index cb4c7f36d..f0fd97dd6 100644 --- a/.travis/Dockerfile +++ b/.travis/Dockerfile @@ -9,7 +9,7 @@ COPY book.json book.json COPY docker-entrypoint.sh /usr/local/bin/ RUN set -x && apk add --no-cache \ - tzdata \ + tzdata bash \ && npm install -g gitbook-cli \ && gitbook install \ && ln -s /usr/local/bin/docker-entrypoint.sh / \ From c572a399f32832e7919d9d2c92a7909e84dbe54b Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 14 Oct 2020 11:52:48 +0800 Subject: [PATCH 541/611] [vuepress] Update config Signed-off-by: Kang Huaishuai --- .devcontainer/devcontainer.json | 2 +- .github/workflows/ci.yaml | 1 + .vuepress/config.js | 15 +++++++-------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 2ca1d999d..c97bc620a 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -15,6 +15,6 @@ "postStartCommand": [ "sh", "-cx", - "pwd ; mkdir -p /workspaces/docker_practice/node_modules; mkdir -p /workspaces/docker_practice/_book; mount --bind /srv/gitbook/node_modules /workspaces/docker_practice/node_modules ; mount --bind /mnt /workspaces/docker_practice/_book" + "pwd ; cd /workspaces/docker_practice ; mkdir -p ${PWD}/node_modules; mkdir -p ${PWD}/_book; mount --bind /srv/gitbook/node_modules ${PWD}/node_modules ; mount --bind /mnt ${PWD}/_book" ] } diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 10afc2b61..3892ff44d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,6 +1,7 @@ on: push: pull_request: + workflow_dispatch: name: CI diff --git a/.vuepress/config.js b/.vuepress/config.js index 6c5dacd1f..309d176b6 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -1,5 +1,7 @@ const resolve = require("vuepress-theme-hope/resolve"); +// const { config } = require('vuepress-theme-hope') +// module.exports =config({ module.exports = resolve({ title: 'Docker 从入门到实践', base: '/', @@ -52,7 +54,7 @@ module.exports = resolve({ 'Word', ], footer: { - content: "", + content: "Powerd by Vuepress, Made with
    vuepress-theme-hope", display: true, copyright: false, }, @@ -62,16 +64,13 @@ module.exports = resolve({ hostname: 'https://vuepress.mirror.docker-practice.com', // author: 'yeasy', markdown: { - // lineNumbers: true, - // sub: true, - // footnote: true - enableAll: true + lineNumbers: true, }, themeColor: { blue: '#2196f3', - red: '#f26d6d', - green: '#3eaf7c', - orange: '#fb9b5f' + // red: '#f26d6d', + // green: '#3eaf7c', + // orange: '#fb9b5f' }, // From 47ec0e2ab8c19491e2e7e99e71681a7005296534 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 14 Oct 2020 13:40:46 +0800 Subject: [PATCH 542/611] [vuepress] bump 1.6.0 Signed-off-by: Kang Huaishuai --- .github/workflows/ci.yaml | 4 +++- .vuepress/config.js | 2 +- package.json | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3892ff44d..5ba4edc3f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,7 +20,7 @@ jobs: - name: vuepress run: | sudo rm -rf _book - npm i vuepress --save-dev + # npm i vuepress --save-dev npm i git clone https://github.com/docker-practice/.vuepress .vuepress2 @@ -28,6 +28,8 @@ jobs: rm -rf .vuepress2 find . \( -path "./mesos" -o -path "./machine" -o -path "./swarm_mode" -o -path "./node_modules" -o -path "./.vuepress" -o -path "./_book" -o -path "./CHANGELOG.md" -o -path "./CONTRIBUTING.md" \) -prune -o -name "*.md" -exec sed -i 'N;2a\\n' {} \; + npx vuepress --version + npm run vuepress:build echo "vuepress.docker-practice.com" > .vuepress/dist/CNAME diff --git a/.vuepress/config.js b/.vuepress/config.js index 309d176b6..0cbb74ae9 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -54,7 +54,7 @@ module.exports = resolve({ 'Word', ], footer: { - content: "Powerd by Vuepress, Made with vuepress-theme-hope", + content: "Made with vuepress-theme-hope", display: true, copyright: false, }, diff --git a/package.json b/package.json index 3ff639dbe..643586228 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "chalk": "^2.4.2", "commander": "^2.0.0", "esm": "^3.0.0", + "vuepress": "1.6.0", "vuepress-plugin-container": "^2.1.5", "vuepress-theme-hope": "^0.8.0" }, From bcc901ac9fb4e68c08f2cba19afa4c9848d91a28 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 14 Oct 2020 23:30:27 +0800 Subject: [PATCH 543/611] [install] Docker 20.10 beta support CentOS 8 Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 1 - CHANGELOG.md | 1 + SUMMARY.md | 1 - install/centos.md | 28 ++++++++++++++++++++++++++-- install/centos8.md | 29 ----------------------------- install/debian.md | 3 +++ install/fedora.md | 6 +++++- install/raspberry-pi.md | 3 +++ install/ubuntu.md | 3 +++ 9 files changed, 41 insertions(+), 34 deletions(-) delete mode 100644 install/centos8.md diff --git a/.vuepress/config.js b/.vuepress/config.js index 0cbb74ae9..23f64f788 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -185,7 +185,6 @@ module.exports = resolve({ 'debian', 'fedora', 'centos', - 'centos8', 'raspberry-pi', 'offline', 'mac', diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b7783c63..7f5260754 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # 修订记录 * 1.2.0 2020-12-31 + * 全面支持 Docker v20.10 新版本 * 1.1.0 2019-12-31 * 全面支持 Docker v19.03 新版本 diff --git a/SUMMARY.md b/SUMMARY.md index 2ba58f02a..414e65c00 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -15,7 +15,6 @@ * [Debian](install/debian.md) * [Fedora](install/fedora.md) * [CentOS](install/centos.md) - * [CentOS8](install/centos8.md) * [Raspberry Pi](install/raspberry-pi.md) * [Linux 离线安装](install/offline.md) * [macOS](install/mac.md) diff --git a/install/centos.md b/install/centos.md index c5178ace7..a9b24ba36 100644 --- a/install/centos.md +++ b/install/centos.md @@ -6,7 +6,7 @@ ### 系统要求 -Docker 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 `overlay2` 存储层驱动)无法使用,并且部分功能可能不太稳定。 +Docker 支持 64 位版本 CentOS 7/8,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 `overlay2` 存储层驱动)无法使用,并且部分功能可能不太稳定。 ### 卸载旧版本 @@ -50,7 +50,7 @@ $ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum. # https://download.docker.com/linux/centos/docker-ce.repo ``` -如果需要测试版本的 Docker 请使用以下命令: +如果需要测试版本的 Docker (**或你的系统是 CentOS 8**)请执行以下命令: ```bash $ sudo yum-config-manager --enable docker-ce-test @@ -64,11 +64,33 @@ $ sudo yum-config-manager --enable docker-ce-test $ sudo yum install docker-ce docker-ce-cli containerd.io ``` +## CentOS8 额外设置 + +由于 CentOS8 防火墙使用了 `nftables`,但 Docker 尚未支持 `nftables`, 我们可以使用如下设置使用 `iptables`: + +更改 `/etc/firewalld/firewalld.conf` + +```bash +# FirewallBackend=nftables +FirewallBackend=iptables +``` + +或者执行如下命令: + +```bash +$ firewall-cmd --permanent --zone=trusted --add-interface=docker0 + +$ firewall-cmd --reload +``` + ## 使用脚本自动安装 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: +> 若你想安装测试版的 Docker(**或你的系统是 CentOS 8**), 请从 test.docker.com 获取脚本 + ```bash +# $ curl -fsSL test.docker.com -o get-docker.sh $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud @@ -167,3 +189,5 @@ $ sudo sysctl -p ## 参考文档 * [Docker 官方 CentOS 安装文档](https://docs.docker.com/install/linux/docker-ce/centos/)。 +* https://firewalld.org/2018/07/nftables-backend +* https://github.com/moby/libnetwork/issues/2496 diff --git a/install/centos8.md b/install/centos8.md deleted file mode 100644 index c69d97a16..000000000 --- a/install/centos8.md +++ /dev/null @@ -1,29 +0,0 @@ -# CentOS8 安装 Docker - -当前官方版本的 Docker [尚未支持][docker-docker] CentOS8,我们可以使用 Moby 项目维护者 AkihiroSuda 所构建的包,具体请参考 https://github.com/AkihiroSuda/moby-snapshot - -[docker-docker]:https://download.docker.com/linux/centos/ - -## 设置 - -由于 CentOS8 防火墙使用了 `nftables`,但 Docker 尚未支持 `nftables`, 我们可以使用如下设置使用 `iptables`: - -更改 `/etc/firewalld/firewalld.conf` - -```bash -# FirewallBackend=nftables -FirewallBackend=iptables -``` - -或者执行如下命令: - -```bash -$ firewall-cmd --permanent --zone=trusted --add-interface=docker0 - -$ firewall-cmd --reload -``` - -## 参考链接 - -* https://firewalld.org/2018/07/nftables-backend -* https://github.com/moby/libnetwork/issues/2496 diff --git a/install/debian.md b/install/debian.md index f5ea07541..b0e226c0e 100644 --- a/install/debian.md +++ b/install/debian.md @@ -80,7 +80,10 @@ $ sudo apt-get install docker-ce docker-ce-cli containerd.io 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: +> 若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本 + ```bash +# $ curl -fsSL test.docker.com -o get-docker.sh $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud diff --git a/install/fedora.md b/install/fedora.md index caa3fffc7..be91d2007 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -10,6 +10,7 @@ Docker 支持以下版本的 [Fedora](https://getfedora.org/) 操作系统: * 30 * 31 +* 32 ### 卸载旧版本 @@ -84,7 +85,7 @@ docker-ce.x86_64 18.06.1.ce-3.fc28 docker-ce-stable $ sudo dnf -y install docker-ce-18.06.1.ce ``` -由于 Fedora 31 默认启用了 **Cgroupv2**,暂时 Docker 与 Cgroupv2 不兼容,请执行以下命令切换到 **Cgroupv1** 并重启计算机: +由于 Fedora 31 默认启用了 **Cgroupv2**,稳定版本的 Docker 与 Cgroupv2 不兼容,你可以安装测试版 Docker,或者执行以下命令切换到 **Cgroupv1** 并重启计算机: ```bash $ sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0" @@ -94,7 +95,10 @@ $ sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0" 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: +> 若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本 + ```bash +# $ curl -fsSL test.docker.com -o get-docker.sh $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 55b9c93d6..d278cef51 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -72,7 +72,10 @@ $ sudo apt-get install docker-ce 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Raspberry Pi OS 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: +> 若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本 + ```bash +# $ curl -fsSL test.docker.com -o get-docker.sh $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud diff --git a/install/ubuntu.md b/install/ubuntu.md index 1323335a0..4b14c09d2 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -83,7 +83,10 @@ $ sudo apt-get install docker-ce docker-ce-cli containerd.io 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: +> 若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本 + ```bash +# $ curl -fsSL test.docker.com -o get-docker.sh $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud From 0fdc2d64a9ae54d5e023901b969bac87d4aa08af Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 14 Oct 2020 23:33:32 +0800 Subject: [PATCH 544/611] based Docker v20.10 Signed-off-by: Kang Huaishuai --- .github/ISSUE_TEMPLATE/Bug_report.md | 2 +- .github/ISSUE_TEMPLATE/Custom.md | 2 +- README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md index 8528cd1f5..d0ac6ea99 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -24,7 +24,7 @@ about: Create a report to help us improve -* [x] Edge (v19.03) +* [x] Test (v20.10) * [x] Stable (v19.03) * [x] 1.13.0 or Before diff --git a/.github/ISSUE_TEMPLATE/Custom.md b/.github/ISSUE_TEMPLATE/Custom.md index 650a860b6..fa5bf1311 100644 --- a/.github/ISSUE_TEMPLATE/Custom.md +++ b/.github/ISSUE_TEMPLATE/Custom.md @@ -24,7 +24,7 @@ about: Create a issue about Docker -* [x] Edge (v19.03) +* [x] Test (v20.10) * [x] Stable (v19.03) * [x] 1.13.0 or Before diff --git a/README.md b/README.md index 9272bb7ae..4fa8d0026 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Docker — 从入门到实践 -[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v19.03-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)][1] +[![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v20.10-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)][1] **v1.2.0** From f9182e5d191f06b7c4142b6d6a95d387055408af Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Thu, 15 Oct 2020 18:30:34 +0800 Subject: [PATCH 545/611] [vuepress] bump 1.7.0 Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 7 +++---- package.json | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.vuepress/config.js b/.vuepress/config.js index 23f64f788..5cb6c3d85 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -1,8 +1,6 @@ -const resolve = require("vuepress-theme-hope/resolve"); -// const { config } = require('vuepress-theme-hope') +const { config } = require('vuepress-theme-hope') -// module.exports =config({ -module.exports = resolve({ +module.exports = config({ title: 'Docker 从入门到实践', base: '/', head: [['script', {}, ` @@ -41,6 +39,7 @@ module.exports = resolve({ // }, }, themeConfig: { + baseLang: 'zh-CN', blog: false, // comment: false, comment: { diff --git a/package.json b/package.json index 643586228..50938ea68 100644 --- a/package.json +++ b/package.json @@ -8,9 +8,9 @@ "chalk": "^2.4.2", "commander": "^2.0.0", "esm": "^3.0.0", - "vuepress": "1.6.0", + "vuepress": "1.7.0", "vuepress-plugin-container": "^2.1.5", - "vuepress-theme-hope": "^0.8.0" + "vuepress-theme-hope": "^1.0.0" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", From 8e8126756a9cfab2134b79c5050f292ada059823 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Fri, 16 Oct 2020 12:13:14 +0800 Subject: [PATCH 546/611] [vuepress] Fixed https://github.com/Mister-Hope/vuepress-theme-hope/issues/406 --- advanced_network/README.md | 2 +- cases/ci/drone/README.md | 2 +- cases/os/alpine.md | 2 +- cases/os/busybox.md | 2 +- cases/os/centos.md | 4 ++-- cases/os/debian.md | 4 ++-- cloud/alicloud.md | 2 +- cloud/aws.md | 4 ++-- cloud/tencentCloud.md | 2 +- data_management/README.md | 2 +- etcd/intro.md | 2 +- image/commit.md | 4 ++-- install/mac.md | 12 ++++++------ install/windows.md | 6 +++--- introduction/what.md | 4 ++-- kubernetes/concepts.md | 2 +- kubernetes/design.md | 4 ++-- kubernetes/intro.md | 2 +- underly/arch.md | 2 +- 19 files changed, 32 insertions(+), 32 deletions(-) diff --git a/advanced_network/README.md b/advanced_network/README.md index e21d4b3cf..52ea99073 100644 --- a/advanced_network/README.md +++ b/advanced_network/README.md @@ -10,6 +10,6 @@ 当创建一个 Docker 容器的时候,同时会创建了一对 `veth pair` 接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 `eth0`;另一端在本地并被挂载到 `docker0` 网桥,名称以 `veth` 开头(例如 `vethAQI2QT`)。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间一个虚拟共享网络。 -![Docker 网络](_images/network.png) +![Docker 网络](./_images/network.png) 接下来的部分将介绍在一些场景中,Docker 所有的网络定制配置。以及通过 Linux 命令来调整、补充、甚至替换 Docker 默认的网络配置。 diff --git a/cases/ci/drone/README.md b/cases/ci/drone/README.md index 69271c39a..5055e4e6d 100644 --- a/cases/ci/drone/README.md +++ b/cases/ci/drone/README.md @@ -86,7 +86,7 @@ $ git push origin master 打开我们部署好的 `Drone` 网站或者 Drone Cloud,即可看到构建结果。 -![](_images/drone-build.png) +![](./_images/drone-build.png) 当然我们也可以把构建结果上传到 GitHub,Docker Registry,云服务商提供的对象存储,或者生产环境中。 diff --git a/cases/os/alpine.md b/cases/os/alpine.md index 0a36fc12e..28f7a2773 100644 --- a/cases/os/alpine.md +++ b/cases/os/alpine.md @@ -2,7 +2,7 @@ ## 简介 -![Alpine Linux 操作系统](_images/alpinelinux-logo.png) +![Alpine Linux 操作系统](./_images/alpinelinux-logo.png) `Alpine` 操作系统是一个面向安全的轻型 `Linux` 发行版。它不同于通常 `Linux` 发行版,`Alpine` 采用了 `musl libc` 和 `busybox` 以减小系统的体积和运行时资源消耗,但功能上比 `busybox` 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,`Alpine` 还提供了自己的包管理工具 `apk`,可以通过 `https://pkgs.alpinelinux.org/packages` 网站上查询包信息,也可以直接通过 `apk` 命令直接查询和安装各种软件。 diff --git a/cases/os/busybox.md b/cases/os/busybox.md index b3527728f..25eaa8fc1 100644 --- a/cases/os/busybox.md +++ b/cases/os/busybox.md @@ -2,7 +2,7 @@ ## 简介 -![Busybox - Linux 瑞士军刀](_images/busybox-logo.png) +![Busybox - Linux 瑞士军刀](./_images/busybox-logo.png) `BusyBox` 是一个集成了一百多个最常用 Linux 命令和工具(如 `cat`、`echo`、`grep`、`mount`、`telnet` 等)的精简工具箱,它只需要几 MB 的大小,很方便进行各种快速验证,被誉为“Linux 系统的瑞士军刀”。 diff --git a/cases/os/centos.md b/cases/os/centos.md index b331e0486..bc32c99f8 100644 --- a/cases/os/centos.md +++ b/cases/os/centos.md @@ -4,7 +4,7 @@ `CentOS` 和 `Fedora` 都是基于 `Redhat` 的常见 Linux 分支。`CentOS` 是目前企业级服务器的常用操作系统;`Fedora` 则主要面向个人桌面用户。 -![CentOS 操作系统](_images/centos-logo.png) +![CentOS 操作系统](./_images/centos-logo.png) CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统),它是基于 `Red Hat Enterprise Linux` 源代码编译而成。由于 `CentOS` 与 `Redhat Linux` 源于相同的代码基础,所以很多成本敏感且需要高稳定性的公司就使用 `CentOS` 来替代商业版 `Red Hat Enterprise Linux`。`CentOS` 自身不包含闭源软件。 @@ -34,7 +34,7 @@ CentOS Linux release 7.2.1511 (Core) ## Fedora 系统简介 -![Fedora 操作系统](_images/fedora-logo.png) +![Fedora 操作系统](./_images/fedora-logo.png) `Fedora` 由 `Fedora Project` 社区开发,红帽公司赞助的 `Linux` 发行版。它的目标是创建一套新颖、多功能并且自由和开源的操作系统。`Fedora` 的功能对于用户而言,它是一套功能完备的,可以更新的免费操作系统,而对赞助商 `Red Hat` 而言,它是许多新技术的测试平台。被认为可用的技术最终会加入到 `Red Hat Enterprise Linux` 中。 diff --git a/cases/os/debian.md b/cases/os/debian.md index b19c6d6e7..46b8e95f9 100644 --- a/cases/os/debian.md +++ b/cases/os/debian.md @@ -3,7 +3,7 @@ ## Debian 系统简介 -![Debian 操作系统](_images/debian-logo.png) +![Debian 操作系统](./_images/debian-logo.png) `Debian` 是由 `GPL` 和其他自由软件许可协议授权的自由软件组成的操作系统,由 **Debian 计划(Debian Project)** 组织维护。**Debian 计划** 是一个独立的、分散的组织,由 `3000` 人志愿者组成,接受世界多个非盈利组织的资金支持,`Software in the Public Interest` 提供支持并持有商标作为保护机构。`Debian` 以其坚守 `Unix` 和自由软件的精神,以及其给予用户的众多选择而闻名。现时 `Debian` 包括了超过 `25,000` 个软件包并支持 `12` 个计算机系统结构。 @@ -38,7 +38,7 @@ Debian GNU/Linux 8 ## Ubuntu 系统简介 -![Ubuntu 操作系统](_images/ubuntu-logo.jpg) +![Ubuntu 操作系统](./_images/ubuntu-logo.jpg) `Ubuntu` 是一个以桌面应用为主的 `GNU/Linux` 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(官方译名“友帮拓”,另有“吾帮托”、“乌班图”、“有奔头”或“乌斑兔”等译名)。`Ubuntu` 意思是“人性”以及“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。 `Ubuntu` 基于 `Debian` 发行版和 `GNOME/Unity` 桌面环境,与 `Debian` 的不同在于它每 6 个月会发布一个新版本,每 2 年推出一个长期支持 **(Long Term Support,LTS)** 版本,一般支持 3 年时间。 diff --git a/cloud/alicloud.md b/cloud/alicloud.md index 4abbf6c10..6d8783f4e 100644 --- a/cloud/alicloud.md +++ b/cloud/alicloud.md @@ -1,6 +1,6 @@ # 阿里云 -![阿里云](_images/aliyun-logo.png) +![阿里云](./_images/aliyun-logo.png) [阿里云](https://www.aliyun.com?source=5176.11533457&userCode=8lx5zmtu&type=copy) 创立于 2009 年,是中国较早的云计算平台。阿里云致力于提供安全、可靠的计算和数据处理能力。 diff --git a/cloud/aws.md b/cloud/aws.md index aea35a170..81c03033b 100644 --- a/cloud/aws.md +++ b/cloud/aws.md @@ -1,6 +1,6 @@ # 亚马逊云 -![AWS](_images/aws-logo.jpg) +![AWS](./_images/aws-logo.jpg) [AWS](https://www.amazonaws.cn),即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT 投入成本和维护成本。 @@ -8,4 +8,4 @@ 2015 年 AWS 正式发布了 EC2 容器服务(ECS)。ECS 的目的是让 Docker 容器变的更加简单,它提供了一个集群和编排的层,用来控制主机上的容器部署,以及部署之后的集群内的容器的生命周期管理。ECS 是诸如 Docker Swarm、Kubernetes、Mesos 等工具的替代,它们工作在同一个层,除了作为一个服务来提供。这些工具和 ECS 不同的地方在于,前者需要用户自己来部署和管理,而 ECS 是“作为服务”来提供的。 -![AWS 容器服务](_images/ECS.jpg) +![AWS 容器服务](./_images/ECS.jpg) diff --git a/cloud/tencentCloud.md b/cloud/tencentCloud.md index 383aa9391..4c2f8d43a 100644 --- a/cloud/tencentCloud.md +++ b/cloud/tencentCloud.md @@ -1,6 +1,6 @@ # 腾讯云 -![腾讯云](_images/qcloud-logo.jpg) +![腾讯云](./_images/qcloud-logo.jpg) [腾讯云](https://cloud.tencent.com/act/cps/redirect?redirect=1040&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console) 在架构方面经过多年积累,并且有着多年对海量互联网服务的经验。不管是社交、游戏还是其他领域,都有多年的成熟产品来提供产品服务。腾讯在云端完成重要部署,为开发者及企业提供云服务、云数据、云运营等整体一站式服务方案。 diff --git a/data_management/README.md b/data_management/README.md index a45cd21db..532f4374e 100644 --- a/data_management/README.md +++ b/data_management/README.md @@ -1,6 +1,6 @@ # Docker 数据管理 -![](_images/types-of-mounts.png) +![](./_images/types-of-mounts.png) 这一章介绍如何在 Docker 内部以及容器之间管理数据,在容器中管理数据主要有两种方式: diff --git a/etcd/intro.md b/etcd/intro.md index 19f98b17c..23e1caa4f 100644 --- a/etcd/intro.md +++ b/etcd/intro.md @@ -1,6 +1,6 @@ # 什么是 etcd -![](_images/etcd_logo.png) +![](./_images/etcd_logo.png) `etcd` 是 `CoreOS` 团队于 2013 年 6 月发起的开源项目,它的目标是构建一个高可用的分布式键值(`key-value`)数据库,基于 `Go` 语言实现。我们知道,在分布式系统中,各种服务的配置信息的管理分享,服务的发现是一个很基本同时也是很重要的问题。`CoreOS` 项目就希望基于 `etcd` 来解决这一问题。 diff --git a/image/commit.md b/image/commit.md index 6dcc23103..19f4fdc3c 100644 --- a/image/commit.md +++ b/image/commit.md @@ -20,7 +20,7 @@ $ docker run --name webserver -d -p 80:80 nginx 直接用浏览器访问的话,我们会看到默认的 Nginx 欢迎页面。 -![](_images/images-mac-example-nginx.png) +![](./_images/images-mac-example-nginx.png) 现在,假设我们非常不喜欢这个欢迎页面,我们希望改成欢迎 Docker 的文字,我们可以使用 `docker exec` 命令进入容器,修改其内容。 @@ -37,7 +37,7 @@ exit 现在我们再刷新浏览器的话,会发现内容被改变了。 -![](_images/images-create-nginx-docker.png) +![](./_images/images-create-nginx-docker.png) 我们修改了容器的文件,也就是改动了容器的存储层。我们可以通过 `docker diff` 命令看到具体的改动。 diff --git a/install/mac.md b/install/mac.md index 176bab90e..c6049d432 100644 --- a/install/mac.md +++ b/install/mac.md @@ -20,25 +20,25 @@ $ brew cask install docker 如同 macOS 其它软件一样,安装也非常简单,双击下载的 `.dmg` 文件,然后将那只叫 [Moby](https://www.docker.com/blog/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可(其间需要输入用户密码)。 -![](_images/install-mac-dmg.png) +![](./_images/install-mac-dmg.png) ## 运行 从应用中找到 Docker 图标并点击运行。 -![](_images/install-mac-apps.png) +![](./_images/install-mac-apps.png) 运行之后,会在右上角菜单栏看到多了一个鲸鱼图标,这个图标表明了 Docker 的运行状态。 -![](_images/install-mac-menubar.png) +![](./_images/install-mac-menubar.png) 第一次点击图标,可能会看到这个安装成功的界面,点击 "Got it!" 可以关闭这个窗口。 -![](_images/install-mac-success.png) +![](./_images/install-mac-success.png) 以后每次点击鲸鱼图标会弹出操作菜单。 -![](_images/install-mac-menu.png) +![](./_images/install-mac-menu.png) 启动终端后,通过命令可以检查安装后的 Docker 版本。 @@ -59,7 +59,7 @@ $ docker run -d -p 80:80 --name webserver nginx 服务运行后,可以访问 ,如果看到了 "Welcome to nginx!",就说明 Docker Desktop for Mac 安装成功了。 -![](_images/install-mac-example-nginx.png) +![](./_images/install-mac-example-nginx.png) 要停止 Nginx 服务器并删除执行下面的命令: diff --git a/install/windows.md b/install/windows.md index 36cbfdd3f..98eae7cef 100644 --- a/install/windows.md +++ b/install/windows.md @@ -26,15 +26,15 @@ $ winget install Docker.DockerDesktopEdge 在 Windows 搜索栏输入 **Docker** 点击 **Docker Desktop** 开始运行。 -![](_images/install-win-docker-app-search.png) +![](./_images/install-win-docker-app-search.png) Docker 启动之后会在 Windows 任务栏出现鲸鱼图标。 -![](_images/install-win-taskbar-circle.png) +![](./_images/install-win-taskbar-circle.png) 等待片刻,点击 Got it 开始使用 Docker。 -![](_images/install-win-success-popup-cloud.png) +![](./_images/install-win-success-popup-cloud.png) ## 镜像加速 diff --git a/introduction/what.md b/introduction/what.md index 55cdffb68..2c4cd7da4 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -16,8 +16,8 @@ 下面的图片比较了 **Docker** 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。 -![传统虚拟化](_images/virtualization.png) +![传统虚拟化](./_images/virtualization.png) -![Docker](_images/docker.png) +![Docker](./_images/docker.png) [docker-soft]:https://en.wikipedia.org/wiki/Docker_(software) diff --git a/kubernetes/concepts.md b/kubernetes/concepts.md index 948bbcf66..99391f726 100644 --- a/kubernetes/concepts.md +++ b/kubernetes/concepts.md @@ -1,6 +1,6 @@ # 基本概念 -![](_images/kubernetes_design.jpg) +![](./_images/kubernetes_design.jpg) * 节点(`Node`):一个节点是一个运行 Kubernetes 中的主机。 * 容器组(`Pod`):一个 Pod 对应于由若干容器组成的一个容器组,同个组内的容器共享一个存储卷(volume)。 diff --git a/kubernetes/design.md b/kubernetes/design.md index 9eeb6d03c..70bec9c3c 100644 --- a/kubernetes/design.md +++ b/kubernetes/design.md @@ -13,7 +13,7 @@ 下面这张图完整展示了 Kubernetes 的运行原理。 -![Kubernetes 架构](_images/k8s_architecture.png) +![Kubernetes 架构](./_images/k8s_architecture.png) 可见,Kubernetes 首先是一套分布式系统,由多个节点组成,节点分为两类:一类是属于管理平面的主节点/控制节点(Master Node);一类是属于运行平面的工作节点(Worker Node)。 @@ -41,4 +41,4 @@ * kubelet 是工作节点执行操作的 agent,负责具体的容器生命周期管理,根据从数据库中获取的信息来管理容器,并上报 pod 运行状态等; * kube-proxy 是一个简单的网络访问代理,同时也是一个 Load Balancer。它负责将访问到某个服务的请求具体分配给工作节点上的 Pod(同一类标签)。 -![Proxy 代理对服务的请求](_images/kube-proxy.png) +![Proxy 代理对服务的请求](./_images/kube-proxy.png) diff --git a/kubernetes/intro.md b/kubernetes/intro.md index 6ecce9453..b80bd6b40 100644 --- a/kubernetes/intro.md +++ b/kubernetes/intro.md @@ -1,6 +1,6 @@ # 项目简介 -![](_images/kubernetes_logo.png) +![](./_images/kubernetes_logo.png) Kubernetes 是 Google 团队发起的开源项目,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及应用伸缩,主要实现语言为 Go 语言。Kubernetes 是: diff --git a/underly/arch.md b/underly/arch.md index b4366dfc9..64318e499 100644 --- a/underly/arch.md +++ b/underly/arch.md @@ -4,7 +4,7 @@ Docker 采用了 `C/S` 架构,包括客户端和服务端。Docker 守护进 客户端和服务端既可以运行在一个机器上,也可通过 `socket` 或者 `RESTful API` 来进行通信。 -![Docker 基本架构](_images/docker_arch.png) +![Docker 基本架构](./_images/docker_arch.png) Docker 守护进程一般在宿主主机后台运行,等待接收来自客户端的消息。 From 17ad4945372b03e469d98a96eaed39c96ab2e97d Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Thu, 22 Oct 2020 08:46:09 +0800 Subject: [PATCH 547/611] remove outdated content Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 2 +- .vuepress/config.js | 2 +- install/mac.md | 2 -- package.json | 5 +++-- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 684f35778..911d2628f 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -1,4 +1,4 @@ -name: check-link +name: Check link on: # push: diff --git a/.vuepress/config.js b/.vuepress/config.js index 5cb6c3d85..0130ab02e 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -62,7 +62,7 @@ module.exports = config({ repoLabel: 'GitHub', hostname: 'https://vuepress.mirror.docker-practice.com', // author: 'yeasy', - markdown: { + mdEnhance: { lineNumbers: true, }, themeColor: { diff --git a/install/mac.md b/install/mac.md index c6049d432..f697c628c 100644 --- a/install/mac.md +++ b/install/mac.md @@ -47,8 +47,6 @@ $ docker --version Docker version 19.03.8, build afacb8b $ docker-compose --version docker-compose version 1.25.5, build 8a1c60f6 -$ docker-machine --version -docker-machine version 0.16.1, build cce350d7 ``` 如果 `docker version`、`docker info` 都正常的话,可以尝试运行一个 [Nginx 服务器](https://hub.docker.com/_/nginx/): diff --git a/package.json b/package.json index 50938ea68..3ce29fe81 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "chalk": "^2.4.2", "commander": "^2.0.0", "esm": "^3.0.0", - "vuepress": "1.7.0", + "vuepress": "1.7.1", "vuepress-plugin-container": "^2.1.5", "vuepress-theme-hope": "^1.0.0" }, @@ -17,7 +17,8 @@ "gitbook:help": "gitbook help", "gitbook:build": "gitbook build", "gitbook:serve": "gitbook serve", - "vuepress:build": "npx vuepress build" + "vuepress:build": "npx vuepress build", + "vuepress": "npx vuepress" }, "repository": { "type": "git", From 0b1812aac80333f546abc0511625cbd7988272cf Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 2 Nov 2020 10:33:27 +0800 Subject: [PATCH 548/611] Update fcos Signed-off-by: Kang Huaishuai --- .devcontainer/devcontainer.json | 2 ++ coreos/README.md | 2 +- coreos/intro.md | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index c97bc620a..eb977b416 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,3 +1,5 @@ +// https://code.visualstudio.com/docs/remote/devcontainerjson-reference + { "image": "yeasy/docker_practice:latest", "mounts": [ diff --git a/coreos/README.md b/coreos/README.md index ca63655c8..36512e4fe 100644 --- a/coreos/README.md +++ b/coreos/README.md @@ -1,6 +1,6 @@ # Fedora CoreOS -`CoreOS` 是一个专门为安全和大规模运行容器化工作负载而构建的新 Fedora 版本,它是 Fedora Atomic Host 和 CoreOS Container Linux 的后继项目。 +`CoreOS` 是一个专门为安全和大规模运行容器化工作负载而构建的新 Fedora 版本,它继承了 Fedora Atomic Host 和 CoreOS Container Linux 的优势。 `CoreOS` 的安装文件和运行依赖非常小,它提供了精简的 Linux 系统。它使用 Linux 容器在更高的抽象层来管理你的服务,而不是通过常规的包管理工具 `yum` 或 `apt` 来安装包。 diff --git a/coreos/intro.md b/coreos/intro.md index d73998fd4..5540d942a 100644 --- a/coreos/intro.md +++ b/coreos/intro.md @@ -20,7 +20,7 @@ FCOS 使用 rpm-ostree 系统进行事务性升级。无需像 yum 升级那样 ### 容器工具 -对于诸如构建,复制和其他管理容器的任务,FCOS 用一组兼容的容器工具代替了 **Docker CLI** 工具。**podman CLI** 工具支持许多容器运行时功能,例如运行,启动,停止,列出和删除容器和镜像。**skopeo CLI** 工具可以复制,认证和签名镜像。您还可以使用 **crictl CLI** 工具来处理 CRI-O 容器引擎中的容器和镜像。 +对于诸如构建,复制和其他管理容器的任务,FCOS 用一组容器工具代替了 **Docker CLI**。**podman CLI** 工具支持许多容器运行时功能,例如运行,启动,停止,列出和删除容器和镜像。**skopeo CLI** 工具可以复制,认证和签名镜像。您还可以使用 **crictl CLI** 工具来处理 CRI-O 容器引擎中的容器和镜像。 ## 参考文档 From 00274b06152a1287c543d15e18fb8229d9306b9a Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 2 Nov 2020 17:46:43 +0800 Subject: [PATCH 549/611] Update Dockerfile USER,close #473 Signed-off-by: Kang Huaishuai --- image/dockerfile/user.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/dockerfile/user.md b/image/dockerfile/user.md index 0fb7dabc7..5c60d243d 100644 --- a/image/dockerfile/user.md +++ b/image/dockerfile/user.md @@ -4,7 +4,7 @@ `USER` 指令和 `WORKDIR` 相似,都是改变环境状态并影响以后的层。`WORKDIR` 是改变工作目录,`USER` 则是改变之后层的执行 `RUN`, `CMD` 以及 `ENTRYPOINT` 这类命令的身份。 -当然,和 `WORKDIR` 一样,`USER` 只是帮助你切换到指定用户而已,这个用户必须是事先建立好的,否则无法切换。 +注意,`USER` 只是帮助你切换到指定用户而已,这个用户必须是事先建立好的,否则无法切换。 ```docker RUN groupadd -r redis && useradd -r -g redis redis From 7d51bacb1231d28185560703093f801995aa7b3a Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 2 Nov 2020 18:57:51 +0800 Subject: [PATCH 550/611] [compose] Remove outdated content Signed-off-by: Kang Huaishuai --- compose/commands.md | 4 ---- compose/demo/django/docker-compose.yml | 2 -- compose/django.md | 2 -- compose/rails.md | 2 -- 4 files changed, 10 deletions(-) diff --git a/compose/commands.md b/compose/commands.md index dda0b834f..e18e7a779 100644 --- a/compose/commands.md +++ b/compose/commands.md @@ -18,10 +18,6 @@ docker-compose [-f=...] [options] [COMMAND] [ARGS...] * `-p, --project-name NAME` 指定项目名称,默认将使用所在目录名称作为项目名。 -* `--x-networking` 使用 Docker 的可拔插网络后端特性 - -* `--x-network-driver DRIVER` 指定网络后端的驱动,默认为 `bridge` - * `--verbose` 输出更多调试信息。 * `-v, --version` 打印版本并退出。 diff --git a/compose/demo/django/docker-compose.yml b/compose/demo/django/docker-compose.yml index d3a50353b..18643f29a 100644 --- a/compose/demo/django/docker-compose.yml +++ b/compose/demo/django/docker-compose.yml @@ -11,5 +11,3 @@ services: - .:/code ports: - "8000:8000" - links: - - db diff --git a/compose/django.md b/compose/django.md index 2b5219769..b5ff327a0 100644 --- a/compose/django.md +++ b/compose/django.md @@ -43,8 +43,6 @@ services: - .:/code ports: - "8000:8000" - links: - - db ``` 查看 [`docker-compose.yml` 章节](compose_file.md) 了解更多详细的工作机制。 diff --git a/compose/rails.md b/compose/rails.md index 5222848f1..af8517b68 100644 --- a/compose/rails.md +++ b/compose/rails.md @@ -45,8 +45,6 @@ services: - .:/myapp ports: - "3000:3000" - links: - - db ``` 所有文件就绪后,我们就可以通过使用 `docker-compose run` 命令生成应用的骨架了。 From e8d45d3be972b6662549c7791ed60e5371ef0861 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 3 Nov 2020 13:04:28 +0800 Subject: [PATCH 551/611] [install] Update outdated content Signed-off-by: Kang Huaishuai --- install/_images/install-mac-success.png | Bin 60613 -> 0 bytes .../install-win-success-popup-cloud.png | Bin 170590 -> 0 bytes install/mac.md | 10 +++------- install/ubuntu.md | 2 +- install/windows.md | 4 ++-- 5 files changed, 6 insertions(+), 10 deletions(-) delete mode 100644 install/_images/install-mac-success.png delete mode 100644 install/_images/install-win-success-popup-cloud.png diff --git a/install/_images/install-mac-success.png b/install/_images/install-mac-success.png deleted file mode 100644 index 62e8b9aad181cdbda231a18cadb9437535532c48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60613 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%0A32C4_KR8 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 diff --git a/install/mac.md b/install/mac.md index f697c628c..f09fdca1c 100644 --- a/install/mac.md +++ b/install/mac.md @@ -2,7 +2,7 @@ ## 系统要求 -[Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS Catalina 10.13。 +[Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS Mojave 10.14。 ## 安装 @@ -32,15 +32,11 @@ $ brew cask install docker ![](./_images/install-mac-menubar.png) -第一次点击图标,可能会看到这个安装成功的界面,点击 "Got it!" 可以关闭这个窗口。 - -![](./_images/install-mac-success.png) - -以后每次点击鲸鱼图标会弹出操作菜单。 +每次点击鲸鱼图标会弹出操作菜单。 ![](./_images/install-mac-menu.png) -启动终端后,通过命令可以检查安装后的 Docker 版本。 +之后,你可以在终端通过命令检查安装后的 Docker 版本。 ```bash $ docker --version diff --git a/install/ubuntu.md b/install/ubuntu.md index 4b14c09d2..3242d15c2 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -8,7 +8,7 @@ Docker 支持以下版本的 [Ubuntu](https://ubuntu.com/server) 操作系统: -* Ubuntu Focal 20.04 (LTS) +* Focal 20.04 (LTS) * Bionic 18.04 (LTS) * Xenial 16.04 (LTS) diff --git a/install/windows.md b/install/windows.md index 98eae7cef..4ed0dfc20 100644 --- a/install/windows.md +++ b/install/windows.md @@ -32,9 +32,9 @@ Docker 启动之后会在 Windows 任务栏出现鲸鱼图标。 ![](./_images/install-win-taskbar-circle.png) -等待片刻,点击 Got it 开始使用 Docker。 +等待片刻,当鲸鱼图标静止时,说明 Docker 启动成功,之后你可以打开 PowerShell 使用 Docker。 -![](./_images/install-win-success-popup-cloud.png) +> 推荐使用 [Windows Terminal](https://docs.microsoft.com/zh-cn/windows/terminal/get-started) 在终端使用 Docker。 ## 镜像加速 From 7b5a21bf6dfd676a4acb7a69e471b8990a6e5cb3 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 3 Nov 2020 15:36:14 +0800 Subject: [PATCH 552/611] [install] Update debian Signed-off-by: Kang Huaishuai --- install/debian.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/debian.md b/install/debian.md index b0e226c0e..ac9f574fc 100644 --- a/install/debian.md +++ b/install/debian.md @@ -51,6 +51,8 @@ $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-k 然后,我们需要向 `sources.list` 中添加 Docker 软件源: +> 在一些基于 Debian 的 Linux 发行版中 `$(lsb_release -cs)` 可能不会返回 Debian 的版本代号,例如 [Kail Linux](https://www.kali.org/docs/policy/kali-linux-relationship-with-debian/)、 [BunsenLabs Linux](https://www.bunsenlabs.org/)。在这些发行版中我们需要将下面命令中的 `$(lsb_release -cs)` 替换为 https://mirrors.ustc.edu.cn/docker-ce/linux/debian/dists/ 中支持的 Debian 版本代号,例如 `buster`。 + ```bash $ sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \ From 2b7f954c6574ed70a91b8f663fc2ec40fccf13e3 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 9 Nov 2020 12:41:02 +0800 Subject: [PATCH 553/611] [install] use aliyun mirror Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 1 - install/centos.md | 4 ++-- install/debian.md | 6 +++--- install/fedora.md | 4 ++-- install/raspberry-pi.md | 4 ++-- install/ubuntu.md | 4 ++-- kubernetes/setup/README.md | 2 +- 7 files changed, 12 insertions(+), 13 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 911d2628f..6866bf657 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -37,7 +37,6 @@ jobs: "nodejs.org/dist/",\ "c.163.com/hub",\ "drone.yeasy.com",\ - "mirrors.ustc.edu.cn",\ "docs.docker.com",\ "dockerhub.azk8s.cn",\ "reg-mirror.qiniu.com",\ diff --git a/install/centos.md b/install/centos.md index a9b24ba36..683ca0919 100644 --- a/install/centos.md +++ b/install/centos.md @@ -40,9 +40,9 @@ $ sudo yum install -y yum-utils ```bash $ sudo yum-config-manager \ --add-repo \ - https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo + https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -$ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo +$ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo # 官方源 # $ sudo yum-config-manager \ diff --git a/install/debian.md b/install/debian.md index ac9f574fc..d6fbc604e 100644 --- a/install/debian.md +++ b/install/debian.md @@ -42,7 +42,7 @@ $ sudo apt-get install \ 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。 ```bash -$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add - +$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add - # 官方源 @@ -51,11 +51,11 @@ $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-k 然后,我们需要向 `sources.list` 中添加 Docker 软件源: -> 在一些基于 Debian 的 Linux 发行版中 `$(lsb_release -cs)` 可能不会返回 Debian 的版本代号,例如 [Kail Linux](https://www.kali.org/docs/policy/kali-linux-relationship-with-debian/)、 [BunsenLabs Linux](https://www.bunsenlabs.org/)。在这些发行版中我们需要将下面命令中的 `$(lsb_release -cs)` 替换为 https://mirrors.ustc.edu.cn/docker-ce/linux/debian/dists/ 中支持的 Debian 版本代号,例如 `buster`。 +> 在一些基于 Debian 的 Linux 发行版中 `$(lsb_release -cs)` 可能不会返回 Debian 的版本代号,例如 [Kail Linux](https://www.kali.org/docs/policy/kali-linux-relationship-with-debian/)、 [BunsenLabs Linux](https://www.bunsenlabs.org/)。在这些发行版中我们需要将下面命令中的 `$(lsb_release -cs)` 替换为 https://mirrors.aliyun.com/docker-ce/linux/debian/dists/ 中支持的 Debian 版本代号,例如 `buster`。 ```bash $ sudo add-apt-repository \ - "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \ + "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian \ $(lsb_release -cs) \ stable" diff --git a/install/fedora.md b/install/fedora.md index be91d2007..c1fba7c38 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -44,9 +44,9 @@ $ sudo dnf -y install dnf-plugins-core ```bash $ sudo dnf config-manager \ --add-repo \ - https://mirrors.ustc.edu.cn/docker-ce/linux/fedora/docker-ce.repo + https://mirrors.aliyun.com/docker-ce/linux/fedora/docker-ce.repo -$ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo +$ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo # 官方源 # $ sudo dnf config-manager \ diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index d278cef51..be1a73d8a 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -33,7 +33,7 @@ $ sudo apt-get install \ 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。 ```bash -$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian/gpg | sudo apt-key add - +$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/raspbian/gpg | sudo apt-key add - # 官方源 @@ -44,7 +44,7 @@ $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian/gpg | sudo apt ```bash $ sudo add-apt-repository \ - "deb [arch=armhf] https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian \ + "deb [arch=armhf] https://mirrors.aliyun.com/docker-ce/linux/raspbian \ $(lsb_release -cs) \ stable" diff --git a/install/ubuntu.md b/install/ubuntu.md index 3242d15c2..8ad928cf3 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -44,7 +44,7 @@ $ sudo apt-get install \ 为了确认所下载软件包的合法性,需要添加软件源的 `GPG` 密钥。 ```bash -$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - +$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # 官方源 @@ -55,7 +55,7 @@ $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-k ```bash $ sudo add-apt-repository \ - "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ + "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable" diff --git a/kubernetes/setup/README.md b/kubernetes/setup/README.md index f6bc2ff90..c5d661f3a 100644 --- a/kubernetes/setup/README.md +++ b/kubernetes/setup/README.md @@ -1,6 +1,6 @@ # 部署 Kubernetes -目前,Kubernetes 支持在多种环境下使用,包括本地主机(Fedora)、云服务(Google GAE、AWS 等)。 +目前,Kubernetes 支持在多种环境下使用,包括本地主机(Ubuntu、Debian、Fedora 等)、云服务([腾讯云](https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61)、[阿里云](https://www.aliyun.com/product/kubernetes?source=5176.11533457&userCode=8lx5zmtu&type=copy)、[百度云](https://cloud.baidu.com/product/cce.html) 等)。 你可以使用以下几种方式部署 Kubernetes: From da09321b0eb1fefa19e9f4636ced90126eac3460 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sat, 21 Nov 2020 20:43:00 +0800 Subject: [PATCH 554/611] close #478 Signed-off-by: Kang Huaishuai --- install/windows.md | 5 ++++- kubernetes/setup/README.md | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/install/windows.md b/install/windows.md index 4ed0dfc20..9ad6a3263 100644 --- a/install/windows.md +++ b/install/windows.md @@ -22,6 +22,10 @@ $ winget install Docker.DockerDesktop $ winget install Docker.DockerDesktopEdge ``` +## 在 WSL2 运行 Docker + +若你的 Windows 版本为 Windows 10 专业版或家庭版 v1903 及以上版本可以使用 WSL2 运行 Docker,具体请查看 [Docker Desktop WSL 2 backend](https://docs.docker.com/docker-for-windows/wsl/)。 + ## 运行 在 Windows 搜索栏输入 **Docker** 点击 **Docker Desktop** 开始运行。 @@ -43,5 +47,4 @@ Docker 启动之后会在 Windows 任务栏出现鲸鱼图标。 ## 参考链接 * [官方文档](https://docs.docker.com/docker-for-windows/install/) -* [Docker Desktop WSL 2 backend](https://docs.docker.com/docker-for-windows/wsl/) * [WSL 2 Support is coming to Windows 10 Versions 1903 and 1909](https://devblogs.microsoft.com/commandline/wsl-2-support-is-coming-to-windows-10-versions-1903-and-1909/) diff --git a/kubernetes/setup/README.md b/kubernetes/setup/README.md index c5d661f3a..4275d0da1 100644 --- a/kubernetes/setup/README.md +++ b/kubernetes/setup/README.md @@ -1,6 +1,6 @@ # 部署 Kubernetes -目前,Kubernetes 支持在多种环境下使用,包括本地主机(Ubuntu、Debian、Fedora 等)、云服务([腾讯云](https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61)、[阿里云](https://www.aliyun.com/product/kubernetes?source=5176.11533457&userCode=8lx5zmtu&type=copy)、[百度云](https://cloud.baidu.com/product/cce.html) 等)。 +目前,Kubernetes 支持在多种环境下使用,包括本地主机(Ubuntu、Debian、CentOS、Fedora 等)、云服务([腾讯云](https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61)、[阿里云](https://www.aliyun.com/product/kubernetes?source=5176.11533457&userCode=8lx5zmtu&type=copy)、[百度云](https://cloud.baidu.com/product/cce.html) 等)。 你可以使用以下几种方式部署 Kubernetes: From 9d62668fcf6bcfa1e0dadf068b32244b933a2f87 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 9 Dec 2020 23:49:26 +0800 Subject: [PATCH 555/611] close #479 Signed-off-by: Kang Huaishuai --- compose/demo/django/docker-compose.yml | 2 ++ compose/django.md | 3 +++ 2 files changed, 5 insertions(+) diff --git a/compose/demo/django/docker-compose.yml b/compose/demo/django/docker-compose.yml index 18643f29a..861980abd 100644 --- a/compose/demo/django/docker-compose.yml +++ b/compose/demo/django/docker-compose.yml @@ -3,6 +3,8 @@ services: db: image: postgres + environment: + POSTGRES_PASSWORD: 'postgres' web: build: . diff --git a/compose/django.md b/compose/django.md index b5ff327a0..16a588f5e 100644 --- a/compose/django.md +++ b/compose/django.md @@ -35,6 +35,8 @@ services: db: image: postgres + environment: + POSTGRES_PASSWORD: 'postgres' web: build: . @@ -78,6 +80,7 @@ DATABASES = { 'USER': 'postgres', 'HOST': 'db', 'PORT': 5432, + 'PASSWORD': 'postgres', } } ``` From da10b3a7a1c6e0b98a8cf3ed036188d8a0a4398e Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Fri, 11 Dec 2020 22:00:57 +0800 Subject: [PATCH 556/611] remove docker desktop edge channel Signed-off-by: Kang Huaishuai --- install/mac.md | 2 +- install/windows.md | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/install/mac.md b/install/mac.md index f09fdca1c..d0e8fb986 100644 --- a/install/mac.md +++ b/install/mac.md @@ -16,7 +16,7 @@ $ brew cask install docker ### 手动下载安装 -如果需要手动下载,请点击以下链接下载 [Stable](https://download.docker.com/mac/stable/Docker.dmg) 或 [Edge](https://download.docker.com/mac/edge/Docker.dmg) 版本的 Docker Desktop for Mac。 +如果需要手动下载,请点击以下 [链接](https://desktop.docker.com/mac/stable/Docker.dmg) 下载 Docker Desktop for Mac。 如同 macOS 其它软件一样,安装也非常简单,双击下载的 `.dmg` 文件,然后将那只叫 [Moby](https://www.docker.com/blog/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可(其间需要输入用户密码)。 diff --git a/install/windows.md b/install/windows.md index 9ad6a3263..70fefb8be 100644 --- a/install/windows.md +++ b/install/windows.md @@ -8,18 +8,14 @@ **手动下载安装** -点击以下链接下载 [Stable](https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe) 或 [Edge](https://download.docker.com/win/edge/Docker%20Desktop%20Installer.exe) 版本的 Docker Desktop for Windows。 +点击以下 [链接](https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exe) 下载 Docker Desktop for Windows。 下载好之后双击 `Docker Desktop Installer.exe` 开始安装。 **使用 [winget](https://docs.microsoft.com/zh-cn/windows/package-manager/) 安装** ```powershell -# stable $ winget install Docker.DockerDesktop - -# edge -$ winget install Docker.DockerDesktopEdge ``` ## 在 WSL2 运行 Docker From 47e83e7aa3c9f730d02a14657744d9f6a24fd537 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 20 Dec 2020 22:10:25 +0800 Subject: [PATCH 557/611] docker v20.10.0 released Signed-off-by: Kang Huaishuai --- .github/ISSUE_TEMPLATE/Bug_report.md | 6 +++--- .github/ISSUE_TEMPLATE/Custom.md | 6 +++--- CHANGELOG.md | 5 ++++- README.md | 2 +- install/centos.md | 4 ++-- install/fedora.md | 6 ------ install/mac.md | 4 +--- manifest | 2 +- 8 files changed, 15 insertions(+), 20 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md index d0ac6ea99..4db514ec7 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -21,11 +21,11 @@ about: Create a report to help us improve * [x] Others (Pls describe below) ### Docker Version - - + + * [x] Test (v20.10) -* [x] Stable (v19.03) +* [x] Stable (v20.10) * [x] 1.13.0 or Before ### Problem Description diff --git a/.github/ISSUE_TEMPLATE/Custom.md b/.github/ISSUE_TEMPLATE/Custom.md index fa5bf1311..6db0f8f22 100644 --- a/.github/ISSUE_TEMPLATE/Custom.md +++ b/.github/ISSUE_TEMPLATE/Custom.md @@ -21,11 +21,11 @@ about: Create a issue about Docker * [x] Others (Pls describe below) ### Docker Version - - + + * [x] Test (v20.10) -* [x] Stable (v19.03) +* [x] Stable (v20.10) * [x] 1.13.0 or Before ### Problem Description diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f5260754..cfd3cfc49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,11 @@ # 修订记录 -* 1.2.0 2020-12-31 +* 1.3.0 2021-YY-DD * 全面支持 Docker v20.10 新版本 +* 1.2.0 2020-12-20 + * 错误修复 + * 1.1.0 2019-12-31 * 全面支持 Docker v19.03 新版本 * 增加 `BuildKit` diff --git a/README.md b/README.md index 4fa8d0026..ffe37c571 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![](https://img.shields.io/github/stars/yeasy/docker_practice.svg?style=social&label=Stars)](https://github.com/yeasy/docker_practice) [![](https://travis-ci.org/yeasy/docker_practice.svg?branch=master)](https://travis-ci.org/yeasy/docker_practice) [![](https://img.shields.io/github/release/yeasy/docker_practice/all.svg)](https://github.com/yeasy/docker_practice/releases) [![](https://img.shields.io/badge/Based-Docker%20CE%20v20.10-blue.svg)](https://github.com/docker/docker-ce) [![](https://img.shields.io/badge/Docker%20%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98-jd.com-red.svg)][1] -**v1.2.0** +**v1.3.0** | 语言 | 构建状态 | - | | :------------- | :------------- | :--- | diff --git a/install/centos.md b/install/centos.md index 683ca0919..e424f4b3b 100644 --- a/install/centos.md +++ b/install/centos.md @@ -50,7 +50,7 @@ $ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.r # https://download.docker.com/linux/centos/docker-ce.repo ``` -如果需要测试版本的 Docker (**或你的系统是 CentOS 8**)请执行以下命令: +如果需要测试版本的 Docker 请执行以下命令: ```bash $ sudo yum-config-manager --enable docker-ce-test @@ -87,7 +87,7 @@ $ firewall-cmd --reload 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: -> 若你想安装测试版的 Docker(**或你的系统是 CentOS 8**), 请从 test.docker.com 获取脚本 +> 若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本 ```bash # $ curl -fsSL test.docker.com -o get-docker.sh diff --git a/install/fedora.md b/install/fedora.md index c1fba7c38..fc72d6564 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -85,12 +85,6 @@ docker-ce.x86_64 18.06.1.ce-3.fc28 docker-ce-stable $ sudo dnf -y install docker-ce-18.06.1.ce ``` -由于 Fedora 31 默认启用了 **Cgroupv2**,稳定版本的 Docker 与 Cgroupv2 不兼容,你可以安装测试版 Docker,或者执行以下命令切换到 **Cgroupv1** 并重启计算机: - -```bash -$ sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0" -``` - ## 使用脚本自动安装 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装,另外可以通过 `--mirror` 选项使用国内源进行安装: diff --git a/install/mac.md b/install/mac.md index d0e8fb986..3ceefb0f3 100644 --- a/install/mac.md +++ b/install/mac.md @@ -40,9 +40,7 @@ $ brew cask install docker ```bash $ docker --version -Docker version 19.03.8, build afacb8b -$ docker-compose --version -docker-compose version 1.25.5, build 8a1c60f6 +Docker version 20.10.0, build 7287ab3 ``` 如果 `docker version`、`docker info` 都正常的话,可以尝试运行一个 [Nginx 服务器](https://hub.docker.com/_/nginx/): diff --git a/manifest b/manifest index dafda1705..3edf306bf 100644 --- a/manifest +++ b/manifest @@ -1,4 +1,4 @@ -DOCKER_VERSION=19.03.8 +DOCKER_VERSION=20.10.0 DOCKER_COMPOSE_VERSION=1.25.5 DOCKER_MACHINE_VERSION=0.16.1 ETCD_VERSION=3.4.0 From cc726421c85b9e872e64231c23765934b05de39e Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 20 Dec 2020 22:18:08 +0800 Subject: [PATCH 558/611] Update compose version Signed-off-by: Kang Huaishuai --- compose/install.md | 11 +++++++---- etcd/install.md | 4 ++++ manifest | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/compose/install.md b/compose/install.md index 92ae6fc3d..468a1a5ee 100644 --- a/compose/install.md +++ b/compose/install.md @@ -9,7 +9,7 @@ ```bash $ docker-compose --version -docker-compose version 1.25.5, build 4667896b +docker-compose version 1.27.4, build 40524192 ``` Linux 系统请使用以下介绍的方法安装。 @@ -21,7 +21,10 @@ Linux 系统请使用以下介绍的方法安装。 例如,在 Linux 64 位系统上直接下载对应的二进制包。 ```bash -$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose +$ sudo curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose + +# 国内用户可以使用以下方式加快下载 +$ sudo curl -L https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose ``` @@ -42,7 +45,7 @@ $ sudo pip install -U docker-compose ```bash Collecting docker-compose - Downloading docker-compose-1.25.5.tar.gz (149kB): 149kB downloaded + Downloading docker-compose-1.27.4.tar.gz (149kB): 149kB downloaded ... Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress ``` @@ -50,7 +53,7 @@ Successfully installed docker-compose cached-property requests texttable websock ## bash 补全命令 ```bash -$ curl -L https://raw.githubusercontent.com/docker/compose/1.25.5/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose +$ curl -L https://raw.githubusercontent.com/docker/compose/1.27.4/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose ``` ## 卸载 diff --git a/etcd/install.md b/etcd/install.md index d188f5efe..5366f1ec2 100644 --- a/etcd/install.md +++ b/etcd/install.md @@ -12,6 +12,10 @@ ```bash $ curl -L https://github.com/etcd-io/etcd/releases/download/v3.4.0/etcd-v3.4.0-linux-amd64.tar.gz -o etcd-v3.4.0-linux-amd64.tar.gz + +# 国内用户可以使用以下方式加快下载 +$ curl -L https://download.fastgit.org/etcd-io/etcd/releases/download/v3.4.0/etcd-v3.4.0-linux-amd64.tar.gz -o etcd-v3.4.0-linux-amd64.tar.gz + $ tar xzvf etcd-v3.4.0-linux-amd64.tar.gz $ cd etcd-v3.4.0-linux-amd64 ``` diff --git a/manifest b/manifest index 3edf306bf..107f15ce2 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ DOCKER_VERSION=20.10.0 -DOCKER_COMPOSE_VERSION=1.25.5 +DOCKER_COMPOSE_VERSION=1.27.4 DOCKER_MACHINE_VERSION=0.16.1 ETCD_VERSION=3.4.0 KUBERNETES_VERSION=1.14.3 From fb162df03313133f7ccd159d491ee63a62d11b54 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 20 Dec 2020 22:32:04 +0800 Subject: [PATCH 559/611] remove project travis ci Signed-off-by: Kang Huaishuai --- .github/CODEOWNERS | 1 - .github/workflows/ci.yaml | 48 ++++++++++++++++++++++++++-- .travis.yml | 65 -------------------------------------- .travis/id_rsa.enc | Bin 1680 -> 0 bytes README.md | 11 +++---- docker-compose.yml | 2 +- 6 files changed, 51 insertions(+), 76 deletions(-) delete mode 100644 .travis.yml delete mode 100644 .travis/id_rsa.enc diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index fb7faa903..bf8cf1de4 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -28,7 +28,6 @@ /.editorconfig/ @khs1994 /.gitattributes @khs1994 /.gitignore @khs1994 -/.travis.yml @khs1994 /_config.yml @yeasy @khs1994 /book.json @yeasy @khs1994 /CHANGELOG.md @yeasy @khs1994 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5ba4edc3f..445529d6b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,16 +7,58 @@ name: CI jobs: build: - name: Build GitBook + name: Build runs-on: ubuntu-latest steps: - uses: actions/checkout@master with: fetch-depth: 2 - - name: Build + - name: Build Gitbook uses: docker://yeasy/docker_practice with: args: build + - name: Build Gitbook Docker Image + if: github.repository == 'docker-practice/docker_practice' + run: | + sudo chmod -R 777 _book + echo "FROM nginx:alpine" >> Dockerfile + echo "COPY _book /usr/share/nginx/html" >> Dockerfile + echo "COPY .docker/docker-entrypoint.sh /" >> Dockerfile + echo "ENTRYPOINT [\"/docker-entrypoint.sh\"]" >> Dockerfile + + export VCS_REF=`git rev-parse --short HEAD` + + docker build \ + -t dockerpracticesig/docker_practice \ + -t dockerpracticesig/docker_practice:gitbook \ + --label org.opencontainers.image.revision=$VCS_REF \ + --label org.opencontainers.image.source="https://github.com/yeasy/docker_practice" \ + --label maintainer="https://github.com/docker-practice" \ + . + + docker run -d --rm -p 4000:80 dockerpracticesig/docker_practice + + sleep 5 + curl 127.0.0.1:4000 + + echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin + docker push dockerpracticesig/docker_practice + docker push dockerpracticesig/docker_practice:gitbook + env: + DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} + DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} + - name: Upload Gitbook dist + uses: docker://pcit/pages + if: github.repository == 'docker-practice/docker_practice' + env: + PCIT_EMAIL: khs1994@khs1994.com + PCIT_GIT_TOKEN: ${{ secrets.PCIT_GIT_TOKEN }} + PCIT_GIT_URL: github.com/docker-practice/zh-cn + PCIT_KEEP_HISTORY: "true" + PCIT_LOCAL_DIR: _book + PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}} + PCIT_TARGET_BRANCH: master + PCIT_USERNAME: khs1994 - name: vuepress run: | sudo rm -rf _book @@ -73,7 +115,7 @@ jobs: PCIT_GIT_URL: e.coding.net/dpsigs/docker_practice PCIT_KEEP_HISTORY: "true" PCIT_LOCAL_DIR: .vuepress/dist - PCIT_MESSAGE: Sync from yeasy/docker_practice@${{github.sha}} by PCIT + PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}} PCIT_TARGET_BRANCH: master PCIT_USERNAME: ptt0xjqzbke3 - name: Build vuepress docker image diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3f12f43f0..000000000 --- a/.travis.yml +++ /dev/null @@ -1,65 +0,0 @@ -language: bash - -services: -- docker - -before_install: -- openssl aes-256-cbc -K $encrypted_6cc8cff04075_key -iv $encrypted_6cc8cff04075_iv - -in .travis/id_rsa.enc -out ~/.ssh/id_rsa -d -- chmod 600 ~/.ssh/id_rsa -- export TZ='Asia/Shanghai' -- date -- git config --global user.name "khs1994" -- git config --global user.email "khs1994@khs1994.com" - -script: -- docker run -it --rm -v $PWD:/srv/gitbook-src yeasy/docker_practice build - -after_success: -- sudo chmod -R 777 _book - -- echo "FROM nginx:alpine" >> Dockerfile -- echo "COPY _book /usr/share/nginx/html" >> Dockerfile -- echo "COPY .docker/docker-entrypoint.sh /" >> Dockerfile -- echo "ENTRYPOINT [\"/docker-entrypoint.sh\"]" >> Dockerfile - -- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin -- export VCS_REF=`git rev-parse --short HEAD` -- | - docker build \ - -t dockerpracticesig/docker_practice \ - -t dockerpracticesig/docker_practice:gitbook \ - --label org.opencontainers.image.revision=$VCS_REF \ - --label org.opencontainers.image.source="https://github.com/yeasy/docker_practice" \ - --label maintainer="https://github.com/docker-practice" \ - . - -- docker run -dit --rm -p 4000:80 dockerpracticesig/docker_practice - -- sleep 5 -- curl 127.0.0.1:4000 - -- docker push dockerpracticesig/docker_practice -- docker push dockerpracticesig/docker_practice:gitbook - -- cd _book -- rm -rf .github/workflows -- git init -- git remote add origin "$DEPLOY_REPO" -- git add . -- COMMIT=`date "+%F %T"` -- git commit -m "Travis CI Site updated $COMMIT yeasy/docker_practice@${TRAVIS_COMMIT}" -- git push -f origin master:"$DEPLOY_BRANCH" - -env: - global: - - DEPLOY_BRANCH: master - - DEPLOY_REPO: git@github.com:docker-practice/zh-cn.git - -addons: - ssh_known_hosts: - - github.com - -branches: - only: - - master diff --git a/.travis/id_rsa.enc b/.travis/id_rsa.enc deleted file mode 100644 index 5e4575408efe2d32cd4f1d6d11987f2b915b9d17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1680 zcmV;B25{o1;yEeP;f?g$hIj7}{4s+oxh`2aC%pR6)~+8-IL zTh6{Zsg6kUu`cG5%3?hJKM6dzaFWKY{oZK?Q?1%V5PfD3$bwi(CXIz~$BZIlW!};> zc`VPisFqU!QE&ARJ~9;c7DK}TA8XtLj7Hm$?b_d!@d2fh(V6wFjP96)Xg(A@A+XAT z=fBeo*6#}{PwtWou@vzLR2O}ozfo`%*@2osnn=3@YAy;3&GflKL_tso=zGskoBdq2 ziUeWh1+bC4C?5a0{nZNDfF-ZR`5Sd1-BI$!a0sN@sBdjYZq1A8!ih9&0~N-vQGv+o z^Hvkeq3m46H_7W~NetCt0e;z9Xgfzy2Z!O;KwRN0B4QAviB-fdA4tKL1O#)bIfw@b z=gIP#(N>wRykihK95X`($?l_9o8W+|_L_};g*dm+4cp#)(@^~Dqb+RClh4Q<$PF|Y z97@JL92kmDHV?67>jqYpughHjKrI0>>3?@SFj0QxYdtU#5savW@|_Y}Gi&N5ONu zVRke^?6XJTs~<(lwccQ6ng}Y_*xxXCDYJwfELZ#!wTi2L4kfb_xBgn37ox((1}%D1 z-wRPT-GT&`xM$Z(Jl4)%$BLOs-Fpt}T!m4J%4=BrjUO4!EU`6L=G|5w*e2UsIcQe$ z&#xtn&2BBTd9vbT)wWSNTe>-JEW@PwOU0X|i>f|^h`I!3mZ2T+##k)ZW%a}0#B9%R zE;defMGHKQD(?Cd)id%gDv`1YYJr2eBLHLIhA}JN2}z_;1T`Is4Cj2AucmCKhPOs! zAI19KMN)PAQn5DP-)5ryZb-cjIFCF^B=$g~)^IQ;EgR>oh)4vDh;v%JZkKrPXB@nq zW*>ceDNYXR=zCdkt{m>E%w3gxdFxWMCB1@7Th9YPqv}o9H%| zdBRm0#B!krZ?KIr#CUsC4;GBr&5-!t5Bg@Q<*XKvLFZl2GVBt@ef>6Z_`A=6*hJN zI-n*I4u^vKIY{1R?+90h^H`VvN+^TjunuWlA97VwWMqi*#@jO)dSqMEb9VPvQlF&c zMxd%`s(Gf194Qod*l&0#pnRyw+KKf&F|P5X2;K4_#c^y_(WUX%jX}*>pvvoYEU*n$ znHIYLl8i$9|5*;9X$4cVpfr{DcOBRlImj%mz~yO_UWK#KeD8J={`y>}XO71L_gtJ( zRngE9Uq3ged$pSe*MDht9|B!AP~)b~G0DgUmN{wEW2G2_DIwE)~MQ z8(iFyF{y)L(M}g+FC9;DY{ceqB?ccH8)1v+unov=1+~mS`8~4D(BQiOPp;JjxP)idA+Ib1~!S4vf!U@z%qbB%t(z-(X%D)1lQ{l|XJHD0X|n z)j)b@m6o+L;1(Nu8G;puO^n>y%leG|Sz$khy2iH3_5F@cHZoKmi9I)s#^lFT8Z$h` aRZdWiv9vTmf{BX+fd@SKrMR~Cy Date: Sun, 20 Dec 2020 22:58:09 +0800 Subject: [PATCH 560/611] remove mesos Signed-off-by: Kang Huaishuai --- .github/workflows/ci.yaml | 1 - SUMMARY.md | 8 - mesos/README.md | 6 - mesos/_images/marathon.png | Bin 13638 -> 0 bytes mesos/_images/marathon_basic0.png | Bin 27087 -> 0 bytes mesos/_images/mesos-architecture.png | Bin 46092 -> 0 bytes mesos/_images/mesos.png | Bin 28889 -> 0 bytes mesos/architecture.md | 83 ------ mesos/configuration.md | 172 ------------ mesos/framework.md | 89 ------ mesos/installation.md | 387 --------------------------- mesos/intro.md | 20 -- mesos/monitor.md | 110 -------- mesos/summary.md | 7 - 14 files changed, 883 deletions(-) delete mode 100644 mesos/README.md delete mode 100644 mesos/_images/marathon.png delete mode 100644 mesos/_images/marathon_basic0.png delete mode 100644 mesos/_images/mesos-architecture.png delete mode 100644 mesos/_images/mesos.png delete mode 100644 mesos/architecture.md delete mode 100644 mesos/configuration.md delete mode 100644 mesos/framework.md delete mode 100644 mesos/installation.md delete mode 100644 mesos/intro.md delete mode 100644 mesos/monitor.md delete mode 100644 mesos/summary.md diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 445529d6b..08065784d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -87,7 +87,6 @@ jobs: cp -r install/_images .vuepress/dist/install cp -r introduction/_images .vuepress/dist/introduction cp -r kubernetes/_images .vuepress/dist/kubernetes - cp -r mesos/_images .vuepress/dist/mesos cp -r underly/_images .vuepress/dist/underly echo "include: [_images]" > .vuepress/dist/_config.yml diff --git a/SUMMARY.md b/SUMMARY.md index 414e65c00..e3ef168dd 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -170,14 +170,6 @@ * [附录五:如何调试 Docker](appendix/debug.md) * [附录六:资源链接](appendix/resources.md) * [归档](archive/README.md) - * [Mesos - 优秀的集群资源调度平台](mesos/README.md) - * [Mesos 简介](mesos/intro.md) - * [安装与使用](mesos/installation.md) - * [原理与架构](mesos/architecture.md) - * [Mesos 配置项解析](mesos/configuration.md) - * [日志与监控](mesos/monitor.md) - * [常见应用框架](mesos/framework.md) - * [本章小结](mesos/summary.md) * [Docker Machine](machine/README.md) * [安装](machine/install.md) * [使用](machine/usage.md) diff --git a/mesos/README.md b/mesos/README.md deleted file mode 100644 index ec9b7f4e1..000000000 --- a/mesos/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Mesos - 优秀的集群资源调度平台 -Mesos 项目是源自 UC Berkeley 的对集群资源进行抽象和管理的开源项目,类似于操作系统内核,用户可以使用它很容易地实现分布式应用的自动化调度。 - -同时,Mesos 自身也很好地结合和主持了 Docker 等相关容器技术,基于 Mesos 已有的大量应用框架,可以实现用户应用的快速上线。 - -本章将介绍 Mesos 项目的安装、使用、配置以及核心的原理知识。 \ No newline at end of file diff --git a/mesos/_images/marathon.png b/mesos/_images/marathon.png deleted file mode 100644 index 130c6649f0d0a3b3ed1552ef05d0c1af194bb8a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13638 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 diff --git a/mesos/_images/marathon_basic0.png b/mesos/_images/marathon_basic0.png deleted file mode 100644 index 2b8f920a0605a322030c565002425ff75baf1051..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27087 zcmc$_cT`i)*Ds6(Q4vs)qBOBfF9On0EGSiJA`n2Dlo071M4CdRC{-YUD7}}277$Q+ zQCbKg2@pbn01-k9p}YtEKIN|Ud)IyLUC(;%A6b(#XU@!?y=P{BW|wz*IuBV+UO36X zz`*iIz8u)c%h49R`MqSmqroM&S9x zD-9EO1_su)gWsVJNWKjNgM-bZdv^?cKug%bSG?;;3T>x>G!x=3;8f(bx%~8z*XA&` zq3+Rf=5Ps>n{G#9JYG-UHgdL!n|kq$&9Wn@!q&}3v3*P}^<#}>earMKQ8AULjU4a% z<2ofrueMiJh?el#q)JG2z`nOg8NxqA<-|o&_F(mS4SDvrKG+RQ5BldDPr)oycj`$f z>CC-8$a8^)S@FG8Gb&fGVCL3L-V7mg>&xm1+EzzAA$SYnw!5C0th*nbQu(O%K?x-q z6?{j9UPkCS#K0gCItMMOg!fM<_+w7(4a`_)?hMQ1PG;`+1YgbETih4Rr1kD!LxJe$ zi9-M{7;+b-uUV6eOQaF~IE7HM-kzlLit3*3epP@GN4xkbphea>kJ(YQsr_$V^PJXN z9nw)(pwiNBZm~qVmcMefLN_?#A}dg(bv>iSlTv$<;0N{D(E=(M9_!lwR^8vaK4ZP} zj2(DRamjpQwL?&Vc5oa99&cQ4y$uv`ajN_7fB(Hzy$n49RCR4t{d--QDqZ^T+vEQ< z-;a?v81G8x-y-aPU(65$_K#Ze0v{cxzX=E&Q0;aK-v843E+KGZ<2q3lNsFySPT|90 znWz2^LBK!4y6@kB@XHG#m(qv|6q>1A(Z!&<%KNdE;eUoph(0;vUm3FFewB6lxoyPC z#+^F9^+L1VEL~YfSaU&v_V%{^U`>sn(ms?L)tIxnzrZwzxVaS&>b&&$QLshYE$q1f z6_aR$SI@6K6*S7j-C3T2L2bSJm|Ky@9W!BV?#)(r!FWq^J!ftU@jw9|GEc(B-hDvTY>n5{!O!#VH`Puv4X0dr(_jS;kQ>AwAbhtbiqFxOJ2EyXO|?h z4DR*Y>IZ=mb!T532gZAW9T)NU1IKQ`yfEr})3#?qyIg|r zPs69aUAFR7**W{3R9eUkHAI~(q{+12c+YHjfB|XG>l*j3P$g0_p@rb)c zqQAv9b`^TqrHZMR23b`%Jbv(9*LJ;MYjiSrhRp=$ZX76m;+NoH@9sl({ob542dh~ zh&%AijD`eE>uPP&yDQ;!OoXTo@&DYbC%rR;>xZ77+Uhs#a8dFcECwyB^% zzy5AE;*J8|S9g0unKQqcwI8H>qy>9(n3{pu$>sWjZ`hinyUaaP9+sbL_4F{s?cEe= z+;m}CgQ*t2K?;-cJZ6B}$?{8-g_77=xG#fA@q>f9YllP zTct86*W=9%%xcfWeOda>ZL6K}$VPtr=9eDIlgww_0%f4^dH?FNWYV}IF`v2N*E%p< zETUH%^o$K@N87-B8V>@FX9L*1h=LiG5tzeqLJ(UmPfz+fOttumf`M(L1h;APN~@1E zLxu+T0P7RqJmuRELF&w}PBy(VQ2$PrkfzzR%L8e4?>TX>X@6*3figwj_`XM5bBlBhe*5^< zOO4m69`_i3eA7#8wfb!r%E>>T^kUF$87{Y+U(k`y$y8M@zh zZ%*bwmApn@jhBG2WYu{uOLX(L?_S&jdBao#1s2hLtcEwak8$~1_hFTLkR;}am9$;e zTj!b(w0o^vdBkiS)r*g?_u4(Mg`XTimjfM-5zZWEyL~{RrI*Gvs0BSG*!~pX+qA=n zR^gMomC-DOpvgep`u5!%2{dfxt~YUPA$;bW9tWf@9V3Z5SIbABfqaMkK~%Dr30T}G zx>>hp8hNu>Bw#b{UHHl*_^7)JxONiqmBQ!A+vko}{4ghwY8N@#`>{mmCy7TIwxmtz zpVvmcP+v`O0c&tGF)&oAJG9lFd{W`9FZpzEPtWUopapqSAXBo(H@LBbE@@R^rS$XT zQVDs7sHCp9BPg^IGO%gZ&Dg%E$Ds;U++Z8D3I6T7UinGRPjWKSRoBLXgHNmt@uYWo zfJkj2BsDKrbV&d12*5cs5A`C{kVc?6R+NRgNUZ`f3_GckqPmmw#(&Z@JV4NQHFz!Z zKrPxuo{e0&`{MA7y0`{KF{HVk*5W%a7p&D0UirDLwz5_`CSp$sxtAju@0+ky(d`QQ zy+7O}XK%Jr4=VV2k2{m$kLrK?PD15S*a5;xIBOMf_>UI3 zarG}MIQ{>&U~g9q#t;ZRf0WvR8eZUBDy@+L3rP~wN=~aKf>H>NXbZUcDxtXv%nHr5a`0PinB$WCv z_+Xr@)j#5AAYA$bMNbI+my4UG-1~zpa+& zMpb4Pozg5$>d*K{B@O%`Ox=F0%6{OJWoZ@IFx=JL0eOT=9F)MOx^o)nDqlgNXF;pz z&nxWZQsI5F#s2eB5c1%DX26$W>zO;EJY&ewzRnTW^yw|;CQzOAeD0qQl=~wN&W+cO zdD12Q@IQ>V{PfS_?yZyv(y32du-!bdPGN7b-P^e~ufmmKzuKSixU1l7DI3s}G-mN6 zA({12&rZhbD91YGY2=C~qzk@Hd)mAtT6fME^z*9x$mkUoM;dLNWpLQb@hlnmO06c< z&}ygKRMB>?A2AaJ6H_19vYGcAK{eE;laq3{{m``0#4%rhsS@tJpCy9sFTBO8yU?6!r z;u_lXM#f9!?4Ow`Y& z0o;%n>V-*^wt5HZBk&D;a#~jdElsqJH(g3Ln8YD_na5>4P;z{6`k->TR;!6M7bZk< za=nJ$9o6g50let-yHtQpmbs}iz<5rfB8ry&1@BWN_)oSZ>vV=Baa4NTkFNF-NH7oL zMp0oO4bu2U+$dBtHA_|K0&zd zh3eTEVIrn~+MkS~4W2%ZUzyteaH^(Y(yWZ~^K5!YjBX}=!aB0{$kw$93zx>Y9#ES1!s^6Y-%EPN8)k`>CsQ?65RU{XT)6oomqCyxZ6%mia%)bss8 znr7ejl7inC3{;eDxMj*k=zyM~;^PFrvB=FftxWQHJls8em@IfXp6+jP`I0lXM9N0<$h?e2L%KY_=BZ6^aLz5d(#T{c2t}>-y1^P)RXJxC(WuuiRd^<4q#3$N&x0YJRnq zdFF~fJdNt+JQ$kc+=D;#p1u1&Ts&=(XnIw&^Xlb2F$<)SaSfnfhHDI6P_`I+QZ$a* zPmH#oiA? zPoeWK;k;pAe>2c4>gT(}MtqFM?2OZ@+#VUOu{WED`VvU}{M+qG1*ON;NP}LHX^*G7 z!;`;otZx4{>{?UG-dj@9FNMX&=wU~DvY{miEUI(m-R{m)5?X;ytH~yj+&pWIlW1gh zlUkHjzI5)Xd@14yLd~+a4)TuYEwY@%y4|Sz1F=H30O~Og`FAeO`*g3po(`gexeoWk zvpa0)-;q=V-aw#qn^t&|pqrvL6$#;L&!PYHdP;$8G&(AJ-Pg8=w-!gcvA6Hqa&`?p ze4s^pr0+7&)tja;W`lZnlHIS_{0a}q*HkKbgsiahDNq%J5^k$!$!DM~%~jsHAF;wR z8}Ni$qmnP?NQrA-LP~i&${Gv`RC zdX$ZZzyMUZc|Yq^s{564odnRk)>_}#%f=V206qEM+@87Fp(Fhs!oSDaXei9}N(&pI zh0VS!S*svd!exU*~MqlCKKgFcpBXdU@4oJ z2Ppo<`-bsRrwH=k+!qs8WUp1j%|2sUD0zbt$TMpZK*FF>2z7mCUkc+Oxs*7sz<4r* z$@UCYL2H6i%NEJc*KX+ZEH5|uH~|3}MT%~-=r>$S{m69U zXv&2lv4>Z3+7O#l&VF4FWn+bE12rR|2>GBLep69a0Uf-x;s%iAqCuFu}Fea9jS2czM7GyYEb;9@;6 zAZNaUL~p7q~s!Mom__&I8) zh0DFAkGn?KC^YUD;wn|7C@dxVytxGhBjLXixbm45g=>1C@a9DfiFupnE3oVsvP)Im`q^~Mugpydg@FNeI=c|6K?`dSrdFn&AvzSKZdnC#FLRplVp6z^5`a(m`CqCiOI*5|cKvzcX7+7k=Wjx+DG#$!TVSIebNJ7qr=i zD6zghm;L#B#L6VyA)Zna0@Y4(6bg29YuIbJ6pMIGxY zna;|W%LrwnHm{#AO2Vyg|blN4IXUxMislK+w>VXuwLE-YrEEo zf&1T&s9&QBf7$(_pxR59Fga%Q*=nN6#L0MO`Zs2fvwj=e6wipFXR(}ED5S10`I)_V zrDFM^k&V2xFs)b9^RaA9z<(b1!SY585>&WUr?yzr*PBLm$GFTKxvaDsD4*+3Gf3OO zyeeT4PL2(<&}Q0S>ZTwBSmE~Dcl4WouC^QL3p6vCNv}W6Mw)DXA!ofnC=Z{Px4676 zM=ybM*{Ci~_+gtYlqyHGbEfZMvd#oxqXQu8;}4R}@vo9MS#*@JU7!8AwHsFae}dCk zYx+hB*YbIt`o!q8aVA@0y}8>xCJuL8-PBQBxRqK9Rq}S3H|y4bFW5U$wfMW4%^Wza zKXh{C$&h@eMU*_KMc|uT{By5(FFt;ub7F|L$~ALmNs@xF3RToGuz_?8va&bg#hazc@|J~`mNc8QTq7xS9zS4m0AtM zOZ_}l-^a*b<6hjS2q3mzVvq6N2)seat#Pj$u<|WFcCEWhN~IGcqVCU{mfrY!yp2M{ z{B+9&ZHIR6l@Fa_|2c$MtBzQwJ3W0gvjl3ef{ zNd)OENvXs8jJoWvR+u{~%5|^zC9(NDAKWW@mzuRUv31m`V81&mY2%L zAZwjw#4VfiH#n$A`cG3iEG*3mXWI*BH@?j)*4)D% z4|yc9Gzd4PPZi^Mv2iiL+EI3uvi&YSzbiMG9zLG+iM57VbgRCj zF_Wj%UMY7eBHq@nsxoY))|AI(ZdloM;k}N_0uv_na7|vrIrSfzv|iSDe%B-IU5MHkVh^bLt-vltW-T0)nxJz$4;>EZnyS?R75UIL4> z#NGCro8Fr7?pOSD=%f6dvS&uTpxnLt_$Vo!cBE`x+vX*Q z#$f*z*%ay?zi;dYZlDkH+M{+^K`ipQp`y2SJ5oS~+)VnpSIj?qKPkizxY8&)2gf@f z4&?+c_9ug0tL_x?_V}nC9=zT*KpYcxfqn)Us`5yyZtwBnp5TY{b%r0SDr&oOOq%+}_VM+b zRSQcUChEh|H;7}R%!J$r(~Hg z{TsuYm1WabyCf?5B7kO)VrAKa(`UE=1-^=x4GezHVb>b`@>1+9=zMphsQ9h#35nl6 zk0P#04=eV^et4Y~*0$y8t%0e?EMnH6o5s0~{q%hx)zR&9=9Fdof58&-uS_uAvmp7y3xJXZ_P09J&>o)6 zcH`qwBeA;k_p-5{Km06}WdBwAo0#|ZZn;Kji zm$3tWg})3iV3h+~kD`S|!QRYu)p$ZjtY&bqs-A59`+4~25IurcFIB3|8R`}N_-;eH z*1d)YGD3z8eR+W4C$>!9bvi6v$@l3oCMIHUs`Tn|1Lg45JWP^{b$!XaY#s(=mL_s+ zi8Jwy*Zb7BUhf?Zy1mkL(XCs$!Q1*Y^gz%xO7nhGx}vvEf2Jy1Lb{8o{QyknI@HBo zKhQl7`}yp@&jt<5#*`bCII8$+W%@qtcN<$s}Iq{#T6wt+;25jpSw%vpma+04pt*FeVXvTM^`CvV7LM?KQg z7Sa>}n#2B$=BPh3*Yex9J$f_$8T0AisQV9I|8k)ULaiT6_VFDE?61(yEy)VB-nKi6 zn>Y~2KSKHcX_y&xl0afzO5j+h0_Gz>lL~5FdUWc;2Djy~wd$HNU+>Jf8BA50Zjfaz zn>jtiqN8KnHcfjlP|OVEoOW#b3aZqh;YQ};z~*BoZ{7!FWK=SAM^F(*8S>dgOX~!U3?Eep?~uc-%F$HtE;mrA+jvr9~GMqc|Cc+K?`Dm z<^c3(Mx7w!J?F96TL=xJ^wfnG*#@Z>rJw9&_X6x)#|h;h{N25E7W;kOGkwyIwSI6! zRhuX1Uv08DLij_)i`K2|B#m;}>zdKL_2*#X(GoGm-Tv;)x8BLJgk2pupgFJGzxi0Z z@d1Z_gsr4oDld24<$h>HMAmgw>#8tF+<8>vG%nU%u!<`SSxNkiomC&WZ5IY~l4sAW zpKQ>OyYx9-h_ZWu+v4UpSS3-}E&zS#5!396%h1b3XYmu)ak(MoU&dv?TttI+6x27L z$AAC|QY1igC^{Ez{A!UgDC*Gjth=n5Wg40HNzp zVcN1&no8~S1+sBZOEt_(Fd*oe{$}0JdWnWB8?!FB;hZH`MEWb@MA3Qu_-749FB@(o z|A#O>x89a8d55e!Vteo3_75PVNQs#9A#&cm_o|%^eg-)QV;v`?obhq*05;h_8|{Ct zAz+0S@Uf}kRsA*a=#4`TX8hgWA(QQ&ITe4;iwpmp7f%lO44fD1n<9zLn0=w^CvxAr zIPKFCo0B0jBJaT;e`H}l5B~eM1=tN7LI>979&7R^V&W0ixTz{i$MQKnp@ZWE?$$@h zUHVbe_2Q??lSeO6DeqpQ@*jM4M9}_Mi;h~|T$!+^sql{zcmMNFuf( z`M{P=;T}XzLwevTQe;+ITB)?#FP_%VZ~VQEM=u#R-(G{Cn#Xxce@T<__m zD!c6&O$EyaqM@4V#-Lwa;8c&>VA!ItP&rfX$Trvq0eHCAP;%lQFsSv%?P0_-@~g!e z{G-|1ovc+$?a8<#Yh`>g3$vjzycsNZTnbVuXA93W?ekx>rFkv!t%429oZ0r--EQQJ z`mfYhm*}sX)f$2XMlpX>t)<)9;{>+x(>x3E-aV%_A6xgX{(^1%u4W;C#`>{Aux$}D zK|HQF$+HEdnk>EeJ$ya8f3g|L@B7#9;@EwsT?E{i|rKjkIvx7H?I%?1;!h{YWh}N zH!VKwZ?l#4#0KwJ1MRXF4uFc(5&%?^uf_qhB^O1KOgDclAGl`pz#bR(joJps78N=E zVv)_a`~L}x95nItNE%6n=WVh`?)&{S4L{e_$Ri zjOZ`_>+C7%ul?g<;%pDz9?I+<2-=YL-QV3LPSm-(?d|v;5au{{%70_gguT}jUQ#Gg zDqP|{IsGGgbt+Qez{h9!(B34&;qNQ|@Be`)4g~wxkyRhrSlC+I^ya5AyX#-$H1ofG z(1HHr(bQY=$Q?l^9qeQVt$$*~PPh8}e20|^4*KYk8GUo8KjXu2f%^uY(3jRx0Jp9D zTwwD2xmS-V*EH!SB0E&nk*;0ohnAgBeazSIsX4SmtEAu4GU);oyQ8T#c6m$p`E%AK zoG6p7S>;egne_@r0fqgN1h_qV*KEi>fVQ6P+3|xY!w%dy%Bt_YWaYmqv`Y>~+H5X| zx=laTLWk8_*Bo@|c^q+`;hXbAZZ;wAa`7%x%z~li_%+D9nq-$m&*Qd%$-H1xg=zGIc!Y zfFF0lRFrXv8>>uFxMKSdBIp^*G0hR`3CSr=yr*5NIYk)vpONBCZ-q%A2P;$ z$Z#AFlVgvZT+TKU9K3uPK#t5nwhpF6izdLdD{6fDNqPk97=SRTROmS!$TYw>3 z<_R8IUa*tm4N;bQ;~)fYR8So0==Ai06^f5*HDbn+D&?SZ`qL~bvs!StRPifZ1IVN61>N++>a3~V>)^2~2;?OZP@!pQ|!|_Mk zDth8vJ6{=RezcL6Dy^CNj`C?{igm%LH48P`he$6#56BAiPO^= z>4_E;($@CdMQ>+l);#KoI_3{08+Z1rk{j?~z2|9- zOC?Eg{T8a&wbvjYO|KG=XalZWSu8oipuyskvR4D^SK?zW?g4z#$%Ir?U|Ka?rswHq zy=*lv)S+y{^El|r5211a06u<@-A^fw%N=2H^bfIi738>W2lyyIeP9Nq7TKF-?K0v& z-X)psK6P+Wyqer7#h_-G!e}+|z5z>1+P>HUf$dg-!+L#;+_k2+0Ax(zJVkI(MKTn}Cc|8miQo=G>sAZD1Ndb*arV-aks`%s z&BAVl^w+!>Dnlp}caUI|7cy=^0JSnJ{u6i26N=q9LX7k(JgtP2Q=Sj4tZxDt33zaI zH0duq%V!Ri^?u?bc2#-y?zOY+%++7t*v@(yW3U;O>kVJVk>jA{x)%szeEG0h*r;4S z^QYzPiEnA%s+UON&+*wAEfS?0?hcd6qzOTEK_1fYT!8NCXrSI;{o>u&>U@bzOcMh` zqBCchD_6>e=fs3<1phv|+9|mh)~t`K|9s@}WYKoIB`2#ft*v(V+lD`;W>_pZZO^^i zrq$;aGQ7=aWxbpn6Y=xz;_nzeHmg^d`6HDguclt)TN|hbr}DnyI?FG83}w!nO6om* zjPI;9d@A~=`BneMK{rbi4|$p9le*c~XF9?&ZhM)A$2tJ#0pO=D7-jcUHjg{C>_6#? zoG2JQ#(rFUKKcRDStre-)a-+M0d^rJ(t-_#uJQ;3|Sxgq9j~GKkxk z_x$%m4ki@_M%C4iH(Si>fI}6zL*+u@qEy@KFar)nz?JJMSk%tvftQ9>udFrZX|`0& zataDryUkf|36<>kdVx4^cFmsljcnPy@Kvxn_%RQl=nK0Rj}w-KDM_P79IQ*RogQq1 zm2g=!$6}4pT1#H8xEVFHgez7rnqT#=9@zQ$5O@XaWZ!oo80hV8CbX_ECi4R!W3L?4%oDE3D4s`jTg&Y@B63 zQM9>3>#NI_4Ae8qw_Ze`Qcx=A+L`+;%>0G-xJfRmvM+VIuby|*Cl{iSKc<#uAe!Ml z(;#o@{e{pF!kIihp7&?mK}Tbwm(F{a)d)BL94dwh!|l_pZZhaC**)S$2vo1HFSNml zapx%x%LduGWF(uivc-YWGE|`tJBA8@(2x(=KT%|(Y>Cpy8@-TM0)x3abyFG;6@oU+#Xlw>uykF`9!ZahG9w8(S5Up*J~+(qUX+4_3+(N-7uiPDqpj1C&W11eif12@Oc#6 zA%c;_a6R=>kW*r8t94?^uIMWbTApri+Hmbq<&9t-_{$GnS*S%EJCm0t#uN>HUbwq> z;PwB7iDD*%k3VgZayR4AN^O#;zvZF!X_$WJ6<$W!?4^l2oPWdntZSK7)2<$uh$hLt z!?OYZbgP3Hr7-IU-E!H?>0`dBxD>vdzHvU_{b#~2!(APg9~J?C+kUk81Odk;x65XV z(##Ky*q<`|9V&iSOpNyfc)f*aICcWZXyZ^-4eLZ!-38be+*kunHN}OEO}w%>yal(t zW{}!oy~caXJ9Oo+QN?;Wof8PWJ^s8T+0a)0j!|SVrJrTHl&#^beC^T+oc33AvwpSQz5AOIr*&uKFv$uepVOV3%(HGHW=wuw1nu4s+DjfCRCTW#LY(4T7HAt z`;n5nTu@|X@MFIAkK=3reipXp1`K(sceu+GjQbzeCm_Ss1i1!3=uCgE9=1{{*ae~; zl>Y|w#kobe{<*R+F#bM0q7ifPx2} z(i(Ql&i)A;k(qu|D`&U!zX=Y>&NvE;R~X)3sW4P(My>7o3;xfx%b1%4u4gq+*S9VJ z4YJ1Prceq)NtfR`0hbz}g5l)fbdLX%7&=|<{ccAG-%>-EZ-DC-%`~ZpeVaxpO%i9y z%&hiZo%FVbOFvEk-8Ka4C)9LOHMqQrNFw7iRbEO*R zgbd^7nOYbkUDp^p!vGVK`-iD$|(3c048lEh#!KCS*An0xY zsq@oe4fll@`!`~ZkD$jpjg;vk~UJQ=I33;+rcd`!@l01BZ zH_n^5Zdw$OnjPQJrTgByArU%q->>p4%W$4%?Ci z@|i^_Ghx%sAADn-4MX%qa~8)MLCeK;cbaxOrM;B<>xq7Kiymuf4C1eq>gw*x`nBDG z1wQ59b3(=zDph0CW_s4iBLStQ1B_(HO?Ptr2s-dd5865r8^h({Vn7aDt)moJ6B89f zmWYd*bG5Vn=5MICx3?Bh=wkcW>S9x8|9q$AB&IZP8W}&{_Hd~jFsuY`BJNG*cl17!0cM`EcG|4F&u_TCk{sCh#N|Y9!}`kmN|oOV zwgW#>2wX}QCo}R8qQ>NE%uq+^{rxoHo|+=qeW6_-z%u6~w-@*K^=QN=wx3Mu$mi5A zK}5$ox-1{(-eXRsQWfaPjwfzs0GznZv!t-(aci-@yqx;T_jjr3$eOkr=JBpzv-&c< zQq1CF?6QH?;>y))7jZtQ2OO=9m9Nz_Mure6Q@0$qo&0z!>m{~gPRckfXq)Jinc1Kv zc+@;znp(Es!Y@#A&R;nD+$&~S)KoZnf7?hpW<&T|aen=$vK4Glp|5}}-M2`@g?04u zX%EK>wn*CM78f7QpPSk&Hbq-p!B+StPIw_dHGKswn-(L;V!2HXMhhOh5R;2+Iz1NF>a*ub3I-#si^X0ntOIwdrFYC99sP)h zN8m0W6r_)KIyuR8HFkKs-WYcZA<%6735sGoDswOu6ovRj;|LI8bR}&@tV^43khUmgOcc+u!c>!I-?5#bn>r zcA*rUMS~RW%?VFiF)K(I*#0`<#eP9j)2A;zj-^oF*duZcLn)JaqAQHbnKep%0p->?>uN zGvCEreEnSd;_84B4`{Y4gRBkNNNDqs_|FLW-@|!lx!Tv8 zE))i#t$Q&jP+B7toC?0S0zGFEWj|s{Q=nc~R$We*`&h~po0UfO16D({e^Xr`I zc*eg*a*9?cuduTcT4W8j%tSnP7MlqJL#>!z6(%6qQOKWre+RqmREl3<<_k5CZ8Mr$TltICl?n(quP_QJ@6O7lKl^n#%aa+{|k3PhNlhu908n)IZX$!Al=Nn3u% z{g$b7xqMoc_5qjv5w#@v=9S=-Tf|>W$8wnkbQPV6T}urH4A`qYDA9ok`>IUWwx^$8 zjHk}B%y(iiWuf#Vl_2v|&Leovu$UrFm1}h^W5O06q|44IaWV6$x+_f&=r_Ml6_nuw zZZr}f6I7uVd69)agvV_HU$QHTPy-)-^!ZJIB{Z-%*&xPK^JryXAgrDNZ!YeM$j_QB zu_m#*<nrU#!QP4HDz(_3&+w*S`=N-8XWW~i{Zi&|!-X8>&+)sxT#oI*=IK0STWuR9 zN?@#r5tli2Ca5a2h$xH1%i$cz0vDwD%`C2HJ&2vZ7t?o}+`m8G9@Z6i*y?Gti=2e{ zZ=WFFL5)Fn#%pwt@qKHah^bipJ`GG z%$L0#>jziyLO6Cfnrgy7K`u60zu2UmUssr`po3_e!{jfK*-&pWPK6-Geto%I9FMMx z82@l1fYrWfNwQceiJW6F)M(gOR7lAu!2%zQDy@dygE-i?>6atKI*+}+E~k1^6qj)W z4oReYlvT;;&bSDerWvDObDIq$3zTmb8VRD0@p*T!Kr#lF<7AkfeR^2Rg*<%dSx1cX zy$2ZMC`XrZ*{xAX|H!lB%O!4`3OrJM*t`5DknU?h=w@`v+}O&cHXq5dXbQZ2F~fOy zWj#^}>Mxf#x&3)PmVf93Z<;GAgHj`E!7U!31Tmy9EKCEpi0^z4_m^*^WtMxZtiYXY z$g?a@x^UX}YY?3~KzL!W&K%0FZZ{-fh~9k!hqYX!vM~h}S#A0zS8tVh_nL#@svk*a zJB645`(C-D@*QR0eEkSmvO3u;M_uJ$VW|VzAjxs_hHJ|zhkI{%gA=Z2g5w$Y5Zvw) z878p&TG>qYEcNz=6u|Q9Dx?TSi6nU{BFlbScZUesi_04R_EH|gEpb*MF%Mt)FC+>7 z-!}Okw&J9^YjO|_ErI+e{X}J@OZRUY!+%pMjsXa8R3-hk)_O2>6W#3Uva`buzaJA* zI1-cl3K5`cBx~)DkIZnY&Q?duMAD2~ z*L!YW!DQ6{@x{|8>4|)O-MNs)@wVEc;Cks?5nO92ROPi}viJ8S<8#z)GD=}9An%Lz zE@Eo{teg5kFts$*Jp`DoUFL_#m2e@g_wxz2q`K7jPZIi(*ca0?8kxl>`W0_hi9?MO zFSQ*+z-#G6SP8k?`X;l?Sf|R_wB0-6YsPK7acWK`rgJKBxo%v0FpimTX~M~;BsJ;&qA`g5tln!)wPfeP{lf6n~!Vo+`Q?J@8162;5P z>!rPfq|JqEIp^i;%YG%j*Qam}5z^w@7Pw=!r3)N(OTM)mcm+2`o*;TwW?#PQ5PS&P z)wK9SZzhFvBBH2cIHtwSVLn=M10K-TlwflhvmT=zsWXusd6KxFS>pdYTfGh&>HJb4 zICHl9nE7l}B^x5fA7d-wvGa6w8tH`vxJ-PSD+#2wzaLX8y*sh`?&vDum~3aM;hxCL zGtV-zDzc|uN;Pi2@26F-Z-s>l!i2?HKb2_a0+|?TRT|IhkIlSnU=5s-X!>GY=B))D z2q)@_S5BFgnTF5!^57*}T%F7NA|4s5vQNVbKYsG72{eA_l)=kiLENPqJnIyoHhO*Cq87Zi8PKobQ}5;;wCrU(x)8gaYc=eLmhk4>RsqH~JjouQ3UbCC^obW2s`4!yVGb z8*GJdDh{ESmE}5?2Q=_P(ix_5U*{xX!I`ott56SLt_YWmjg;a_F1>nft(n#{K<-LZ zH+OrDLhxLR1_UjFEv(2*@FK0JplK)o=Wo6lNIf*h%Fhcb!Ghr(5InG{8ypq1wxO5YNubykD`m%UG z{`o_@NftDL#RPDh-N-4NKaa3(2d4(~%T*EcVnQ#^po z43ZC-JE=79g5mGJQgcp6D+xG4&nE~% zlUH4YXv@;et#tN>PGvk{(n z50!1M0CPL!H*s-cL^~W!;zA3&%9Z*cOUUae@|LukFa;J^h0(|o$nYTq>QzQ>dD#s* zt}P4IUFQ~=@9vz_=oTZd-z9q%5gOW0as5&)#$I9`@zCB?Ko9+zMSQ$~a6yVw7kK)V zaJ6o`EbXh~_bb2P=%coWJNk;f@A*w1u064^%~TH8p~AXZ_79E-y;TWNAsuQj;Oi&Z z(NL3pGK9|bKr3G=_Sc#7i-Xq5IaX$jYH~r(BE_-Rrd5^NF?Med*Q$Fy;U-+)43Dzx54`pNI=kxs zIFLny7`_r?^)3(!sA8AB6DC*uw{U5@;AkIxrUZ7yDq(;oMTTzU6rZub(cQo7AdaJENi&t_TB62H_` zKo_NnIZ|V3AD~MqhHNreTz#iwV^*-o=l15T#mW%S1zZ zxp?EAR-ty1KmBPrs~>^X7~8&fmnXXDj%N>8Auw{%lUZjes(u}O&_JR`kM2A+UbD1agd*g=Y8u|1X zK8N0@P*Axsgx;=4y?iHp1js@?W_v+e#rXO51LupzA%kocKW+#?i#o>M@&*OP4-YTL z1$|u7>4`3!ICjqvK4@xJwnmQnqWJY%p7&^k>n^wUQk<_lXV+bhQ%KzIuR|O#C$fz; z{dJU|x{_#ZzLj)qivb0bXJsIQ1~>lWg(o4;_@oW(7RtCfJ$mj|DMR?Ir9P7iM!1wV zY8O!Lz3hQYa(P;`x!3il3(c>Jf3nVxspHQ9K{kU8%+HA!tefPB9o;tMM*M%heRoh( z?YA|8SU^BuUnGEl1yPX_KtVbRf?{YAi~^xZQ=~|T&_qR4LKg&SBE5zlTBsV3D!l{} zH1q%gLI^G4JMsO^y))n3`DX4n_x}FkaOONYB%J;1wbtHy1qTFb9=F~8pl2J4bp82!WjLOFD$_Z4 z3e6f6*y_043HPPF@~m-CMeEj_K5&R1@+tZ0so7tKHN9^ay9IMT4JFi;ev(EOhKDZ8 z|4uW0g%d(^1HFzfe5*CJWd~00Tj!5Qn$BalrvRgqEMn6I2*{4ci z=pEH%H7xsLjneRsw~-&S*fdSbsaKx}We^>k`q!j|Uy;D5o(qGgU4=9G7s*q~Wv*7h zmLab3eG7T?^{Ve|zhO;IUzXcqflrIMGhr+3p$mu>X|mc@B3BpHKTFKXbeu3K+>lue z?qsKE&=c|k1&j}p&Wln#F77>ofLx)t(M3P4$ZAwvs5mH$B-g7n#IEC;yz2GN|FA`} z-}9A6KBpNv!=Xn)fSn2&^9&@X7ILoS`{AkePLEdwf*Ucb9tR4VP|wFeBI7dVSC*9C zZE-1SxS2;2Q-NfEw4U5T*02A>%O1);M#LM&_e0b7nqYkBzNFRV=&1K^-4vWeZ+bfH zgIA>z8Zsm@oa@RMuUGDHY37gnOjM#9R+z3PtnufO2JKT&4tDDvPQTrZ)-RS}Pg;F} zHm!o4C&5qiAUBYf%DH+FyogXV{W%Hhmnz{`0OZ_qAD*jXNSq(m_Jw6?cRku@u6Dkn zp^UtH${aS$n&n+0F`0rPhEKKsZmVImKB62U<$ zm=%VkK+iTM(ZX99crq@u)Y*GjZk>6BIN_bnHFzh?jpF={YjjuUGk1MD zVY_MT`3!b_;90UtxI*N)$>fcH|8Gps{`*s4f0U;VWZXBWyr}=`vx--}iGW!R%a=-B z5$toHj($&FQ)ZI;`5QTiDPk&XVR5%T`W|2ubCfDK3gM5m74q(W3b z#8Q5<-cDyA*X~=gofGs34t6i1DUwMR%lJ;z-HeOnBU3vsSO@f;QB2{#L0N1cTPXE( zP9e=P>t#7P5F6~g?tQ{Lu9-!b$7(Se7GR`;E(`%3_(O|0=zIF%k)1Yd%1*Ur4?Uma z8}2$fD%>;B9(@9hbg3piy|;KtJ3E*lo`f#f+odvjt_+DMY<-0dF^=>sE{^-WD>)D& zU`V1aF+1EKdi=r7`K-0a8T` zda%`2|G*}JKc?*()$=B@DbHcVdXlWjY%SEyMOvE|#&O5Fm`tv~`HY2a8o+7}@ym-s z(cKG)>O)$WoS*gEm319q-J-BLCIK6cn&E0|9b8NnV&{xbjP$DNzN>UeNRU*{w1;Cc zhQd{e9_9u$!f!XAncWlw7Er2gRxtSeuIu*6TVtj{abLCG^m^Vs#bUDoH zi*VQ7C`L$b0jaghKih^N=7Z+t!^%xL)*02wX3EAoe!5X5K7?9MsKh67ER8Ey05@TY zgZ+c7=T#uCUYW}x*8%q-rd9%gVN!AL+jW^AS#tJgYl3DbBTK#GYA=T8X9gi7bn8$( zRJ?R7cU+B$Fd1<-flLaY)RyrT)B;}8%2Agfr#9Twd>r_t`!67QUIq?c-u{=u^FR6n z0y>!FE8zoPpJgyS4N$pQ&Yfra_WjdEdi-Db^&jl|-zcX3mkaV6z<3#n-I&!Y8$0(F zKUO||>;Os1P4xRP7%O0MO&~rqnb?*4HH8Eu01dx?;ZxwU?)O)(Y2UV>N z`$ye6nfoV-du)`x{S(EP|A=UYm`*Unu0(=d9ugoydFzz;^jx|I$g*7e5`WzOu#Ln; z9omgLS(C7NLUc=vk-znqa2f1&AD zj75S+Wcc-blIb*752YItnIXHvcol{E{S-hw;&y76G+VC2fE&NTPuSHxycdz?qMkaH z^I1C1vCE9<>jFW^M)0R!lMK8lA6@vfCg4Iy!x*?xG5c%whfn`0b7;@3nZngzTUpxB zHK$KEs2+BBtb%AJUoR7WHBMTPxhYzZzM6^fm_|(b3;k3l1>8yg$@!i*lL~U>lx5(d z2g{wqO|`E=Qkdc2E+XY)vKM4iSW%z9Fo8A77P|EMUThU#a}w1ut)@Cah(I~lib z$jG0=VP@yX)>H=2;tgsx03_S=H?_Dvc={MoyqTooltz(ad0@6bTV&$ytJN1^y47y( ztL2ZXpt|AAaKLD}r|Z_&4%xcK?E5AgzPVksM8!aS}$jsY{YxB3&Je!tnz` zdeUk0_pn?eY}c!Ay&2!EB8A*NRIe}ZnI$R&Dv0I60e1}X+X!1voEDB2#J1tg#tP&7 zv=K{eT}gD4E++~5DI3`(>{sL_dlcmYg)77lX`j{PL;lv74ctlNv58Zk?=SEwtK($b zn|W=8Wt)E?qnB^nypw=#IsD7@)*7D_cM(L=laXQ(i*v9HyojJ{k6Aqoab%_RJik!1 zDpRU>`2oyjgS~w6TNMyAT~_}4Yn%!y7YF0%A+~;P+gf4yZ_p0@Sj_sW(f1>Aw`(UT`K_*FANdlhCmrpN>TalqMKM;3aVQem0jp$W=E6k}v zhW-=1M~dU?ImtC8mtICSjOy=xc~&0Hwb@!z@BbcQTQ`TJPT{0pBhFAd?)FW*4|Vf6 zHK2CxB11{r&bHJ{e(208Z2aeV=eaW<7^}$04y#cypE7WWSDza}U_r!P-X*rA<&?1l z1tb_>*~EkQpS8`QB*FFLas) zitG1GZ}4^PZa7`Jwxh-m;knyBvAq#X0?GSFufDr_t^Q7VF1a%6sFIx?)1H$h7Pb;oKtiqVjyPZY5)Kq%xr(9)Rw>SKxgTAiHRgczCY}K`i;))!rZb4&KPm$ zLQ=_{Uw&QL5bK8T%VA2wE%P2*Fw7ZyAGrY&kwm7C5pTwyjr2{9roU}$NC4qk#r|DF z-5Mp?SlqrqMQ!X%P-Ao=SZ(DmE+TMso~<1yM;4agGp?bQ;HN1M0Y^98%*%YPjc`Y} z^8ttj<*Bi?@QhDoFn>_?H=hfu2?d8EaZCBK@4O1SL*%bPLZklNa7i4Utu6qFzFNa&X9tKg%@30*G=Or58Ql2#*dggLl3;y7Ue;h&yX2|4 zyXop%I18sY{#Xy1f&pmMfXlm608Wq!49$dLIwdN8LZb3_3&Od)%1)X#Hku7T)Z<=` z5A|5G?V$irgM-M~QwM-7uo07LbIgdHUDCimwk1EiuJSgt)!w|rOY^a|akBe-lv#VH z8t=-mO{psGv|274GT*?_*hQ_x>F0Ej$|5aY6L4W28*bK! ztBq`|{=Igr(%wFWZRroP1f%MIu8kO%gM}6C=U7_=IkF^{ho#^7oGQJ$mDN2PZmOfb z>rd04He){2S|*SBYWQj@RGS~W9J~Lt+gEf(8{wCG3Av}K_%@rAubsrl)ezcRBkvGX znJ6=lD3ST$nIC=z4VlcG1ZpSyFTEiH@WSrsvvR>!zDRl36^ljw%C=}*C`S0tUVks? ztqk$|Q8(h%scS`)C%#v-B779$S#8RmPZ%W6H>~#&0h+sfn~-ry8IrAcq=%}(uolbk z%3Bk_V-L60po|d9pp)ZP2rP9WY58Yjo;#pjkcauM+sG;@iQCv@%F2#O3OZu^+MHfU z+Y^8{bTapZb%3Lf@ef9xJ46yZ) zMX`R=2uFB-^XG%3DT~}bA{$>@Yo@d#EYxPHps+UI7u~hPSK$1--o`8C+M!dQzS>z@&Lq6UuW-gs=w;w|mT>Yp zd#vbF4QTj&&yw5buJnhwWwIy&3v0A)lsu+B6vPGKHF$1I%yQX)*HWj&IpBk{dcwrg zvrWy9vl63``R;_j7fM%~g1pM70?fWh0W<3+?g>ELG~33nA5F2-21&Ew?w7Qaj;8Yv zjF{9d8yH@FsqipxZ2$ZP)sI*~6e{>#mk145a;12Qi+F`cRVu*hk@lwQU^~{<^G}6E zR{dl|stB+)?tej07DFEFNi!^&G|vhV2-q%mw5$EUy&3<@M$iBD$&ZrA;8iT@hb5l+ zA)s33V!Gd&0*h|;I^W#n!2F}hT3WWCOTxig72rx0E-;&x9o6lNP^U7M=#k38fQnRJ z{>Dw{FSUxzPwTf>HJ)8(s9cUFY3x!%@6Qy9r{G@ z^Ni)3Wd zVqhEM;6Rj3{X-JETPZkSzIY-hRX7gMGhB&~M3{NZOQNT16>7nV+~u1kgJjeUWYm5q z2eF!r+nrfPG42J`sJJlPnf^a(M59;fuO_3u#^y zLkfoY7JWsmk}($*yPK`>?UwE4zD{-fl%(=*%(XRP3wYYz-3KCwF8b9{^AX8nk$aXe zd?O|v?s-`3kS`Ud2`C;M{o#w-UWgj-(V#I%8wB0G9VZMn$mT#u@TLh||LB(6(7v)D z)^!|J&FgbwvP`+SnmD@NDPo%rYkvyjS*cL%wa3fjUZscC-N6f^mmiS#g0d1QG=l#E(dLs-AkD``xqmBRssyi& z=~i!uCExHOOdl3TVEQ>T*Pdt08MR=>m9_DtQ#ZNCt5w`uJX{}GSCZ19TtS!G(;}}9 zE`7E;z_py0Xo{5+Dm1U<>TN!>amLEZ~GPKA8-9U_iHs=KIP;^_z5s+T>TV$z{DjF+H5U#Q#GjT>}u zo2a4a@Cw&Ykq3kgJzl`sF0wNtmkjN4PPkaNlDCsq2%|VFi+>uLN#cexGe))`-Oonkk7*n@{?opUoi<8hJ0{Tk~ih^4)jI9RD6E4!`sW-84|zO37zE+tE8p6 zkG!@BIN8057O|&reP2uOJ5oIzH1&IF>Nz6)M!kz%qtg5sT{~^`{C1{#2L++@h_Nf; z{wf2GR^|4-8H4K`l+T)b(~($bDn53!t!k@ARZU4NO7L@LyVxUFuZ+LNJy5Ar^KK)g zPG_OXjkK}R>uAgo%WzkA>8%U1b2YOK!nM@ochj}7H1KMz@v7yZM4ynt)d_0W{E_+P z-POvLDR#=wx-_+n5wKY9M8o`K1DU}`bp>`|tF63f@apXn5$`8|p8&(`>ZK!UJDAW!r+IL%z28LXL$W z(KqO2gweVfX6&7J;Z(!;^#rc?_HMy~I8w;Sc>?F0q9*kBi1oM7UaL|`&!QpE4Df2P z4#xYM$xC^{i@fj%A$wI~kwS?DyX9c3wMs7L8GDr5q}x>sV7r2VQb#>*Ib)i^@ubz5 zdHj&39(D%Sw4Hxe(ZmTPeX^kECx~iDI?IWm9W7vHf<)BRgrqodVZRxeOuQ#y&$w@PnZ@qE=c~-)uO)mYliFv;K-=US?B;S#Q~SZ2=yum03bGZ9bY! ztlOKsX^TnWZ^AEO-Tn7?`E!d#sR0BsD>`(D_&fMAVZdfC*p@~>883_>P_G%l{8H`g zV$^b_dZdLLpZe}8^RTB&KelG;|4Ar3)DyLS=sfo*NTuvS$3XDJYNrTn7( za?>?h?QWt4Wtp)@>KR}4Mdiav+ICHL5|s2ahcN z$AL)a%#=aP@9U#ej11ri|N83~=SHbm&8Wg@^CmdE6Mc#AG}a^<))EMz)4~L<)=9V<9q2x1Nr;Y!H2S|IRhhu-nvJ7tn@opJ4;)#&4p%drQ75@{`y>a`}$=(OdZ2_I7 zhVcJi44DnI=B@LUWgOCY7FaEFT8Y+JmS^Nr^UP(TcKkLOjX$UX3RmJLk6X6^psnll zg2m7@c!vtpoW}=mPrx@!E^SXb$t2T+SOB5>FRZ!`adbv5q6x{x!=jtDK0jv;;991o z!_IE&C9%Zb1YvhfIwF|Lgv7~5ffAre0=Q%``iuX{=IBD%E!O6l>x|YEv;K3d{UK1= zNz!>iAk9K@0T?cQ3wW0i|30JLjUUgUAmA%i=w4-^0JUN1)C9it$AZGQQFcI;K8PCQ zXP*2R);pcP%gKv9m~CQ^Z5){A426|mTT=QMwE@e96-ND!GJOJ{ZNj8x4NX|;m zNM?vSq-pebMt4bAld8rsG)G&JEiXlP_F-ZrR;qM=oVKZZS0_b}YPv`V1rOk53HIsf2L z;(YdXxPVL9VIXZdmG|r(H0$?PD16?$Ha$CrsF>Df+r7RUc|ItX0Fb} zr_ij7mtJnAPD433X0B=P`RV?=iB5<1$LF1LfHa?<1RBPlpF^DLH8SbPAha8Qe(K|I zlK=TF;P(Y^06e-AFZa>^=+BPm`X3!Za0N7WgkxBiD0TqaUmuAb90}N}H~{7!L(_5I zfUkXQQ=$2@?F54^+c^^*Sf76+2PLDyT=Y#?2>xh`^+pFF>XmN*OZSi1z|at3PVR(T zf3$Up0i(?10ZaC`G-%jujA&r$Wb&Suf3z)S0Hf@vp`rab?FB+$&I-4e|D3avGBC;s zE1(yD20DQm~P*CiVIEey@ zmwLMSjL%*csK^VIniORlG9-^l>5Mb2ymb@JjfmI-g$7m}HH$+$12pjS1}Xd3-@)zIM5 zk9CeFzBsRNJE$CJ1K_0&O4)9|YPS(1d+-GkUhj1EBMjYq^UrWMhc~88@cyBN{n=YGsApxVO8OJ79-!B;-La~VXTcXD} zOE6f(=mMM8S$N5EU6dR*K6v)M6#a5J|J*Canr)WlqrO+H`&$1b(*K}t@4W^ZN7X)A43sm)#VYz`$H`IsW zbT7N;bU&$s4bq}L(f5^Zd4i!uWvvzJlt}yL{Y)(Jj1(*ntwvQ}5+*3GOm_!_7U+V# zBoEVS$d$4oL7aUvrqLoA?(XmN7;PwuNQ8Q-AwY%Wl~eg(+qOf3%`7pLf%vys6IS8PEpIg z6AY1r%Ynf?1?VfK6A8#Aa22?(C(LkL&?J?B{u>yvjFEm$FQ>bgR_?MP5YcgF2wRd$ zIh=nuw$kuj$vRyy`^RM}XAXSAL?4thHxeRdC9u7xe(o3TO^@0$fe+AAND;;mX?K!) zTMHfITk@P8pOx~}(K?7XN#MHAW9+FOX??!81*SSfm#Qq*X=G~*c%>XoI_#pUIeL_8 z+l%v!2g0}W%ILV1KWmSCPg66~f`-2sUW#zdnxQOvqiorq2(N81QXBOs^o44Pt7CuNWu4TrDs&_+9~{V5!T{z z^6duf$%|)N%YH9QUVsBmS< zUDG(aw}E&@a%>?jyT#I*P*kP4UAXWKTp_=+Uge}G&W4>;IjYB-C%Iq8mPNv7UF640 z%sJHKw=nVoA{^Ev;E`b0n4 z*}o2(>QOC$M`zduq4PBOw1u0GxP>~I%!}8(eK)Gz{j@kTk;F@NZ#3V4Vv)I8&Lb1) zxly9s8J5eTcS1>)uAvZR$E&*dxDwt>xJ|}dD9Tlps>Rt!`2;q;)$oi_?aL)D_`Z{- zspx1^=Ayo+3MqyJ9ckcJ#9DZ*%PYl!F_>ZS&oEujB9(_BIB!(AHI($*9%pqWw(+1h z^|6^v_^8LbwHt$2C>_e2k zANObqL$b&#xq2gW>c>3R)!S5af}T^01uK_SyHkPRfW_a#UXp-?mL-G?TpP3V9pfZM ztXUs_>X;3s)@;$8T~w;b*B~kJV$;?rm2Of_t8YwgK9;{#Ic^az) z(hIP84qwmlTyR#zo8l8J%`0f7f1w*p;P56z{%>MFmu+|kB*k;oYr)Ea{ zS^o?rsFpMJ*LpyTWt1TfoolBzt7PH&#zunpQ3TaxzguA+MoMF9;%qiztr;nQSSJoE zvv1F@yy(jR2pj3KJca4>r?LCzS4jI<>g8y%_bQ+1ViyrsYT}bb7Zq+OJ%wqJx6WQ@ z))NR@8l#tCU8WL&sdrP=HvPsZ0$DK7=~OULCS9e1?0IHxqirxmI0;+x(7LTKeZ$1C z8&{)Pzt9D9$S7$?3OR8?3=2*_D?x-H196jFNRHWkr)@rcUiz-rE$8O{-S5Ir~SrRgL=xMl*t8d>_p)z{BeOKA5toF4H1kxZ` zp{X%TGFIT@Ao|dZQ7C;=Qt^zRfE~dt?Q%5U>oI<9U26J}3`0U9M#3IeJ%N$mB3r5~ zT_ml-6y{va7g*&*L>hJQ8T(g(}b*5fh*FAAw9_N0GgHHEO0q|bJ zhiMD;aU_r+boM*k(ncvbxomq>$nS~ryRwB0qVY(NQNxJnqu?~Y>0A+)pk( zY6dABm#z+HHkF>A3ILow(>{4n84tMsdG2WGglU&3{qj`}4R0~na0Aj1bcK&k2@&?8 z(zqyxjDNg+s8Q+Qmov;=KYG?>V;|{LY(^q}w3i?cwb5r$!2leYHF`ZE!dOqZxcRe} zo=~bHj8f?7o@`hak$PpkW3GFiT#ErobV22b$e6xR=hx#aCELeqKcQ^KnV#hYK7m&1^9S5=cYkCglM74Uh^^R|-5yp>pHAfOOPI zH1a;3RIpNIHgDXkF#|DtD>X)<*TOsUwVg0fex}V9X!@dXDK+uTBOKi72hF*M9UyTZdr2AA zIi)~(jM>=3lr7Ksy+#gQNLpI#Glv<}{;1BjQkQI(d(!cZ`nS@DSG`q5ew3l-y>Q_= z#wQlv%2wQbxv^IaVX`lj_WQ$&6ka#rJwX}*+f(*MIK3o$JyxE0#?y_}{mYkxfGrp$ z?8<^iS3p0$zWf9xYnz(Qtf{PqQyV=czME!fP$ntR+j!-#yY5vv;JjnAx)efxACHM-o=9o;4_IaBQSNQ!eKIAO-G#lmn0qfqzLRV4eb<5d^`D?Odkyozmg6$lL^yh zbX*|hSC^v8gXo$n$mX8NaWY@@h}xC;k$uC>tRkXlJM z`93kAg>sP+_R=ngvZKq#`5Fy`{g)ry71+}w3dA0<1~>9sCD75(z|G?$G5cWsi!|4%^fby2Pbuq;a(nT)b1y3y&vRe{4DAXY1m@(?b5#E zds97rGf1TK>6Vu4I;%aa?p3NfuM9<9)Ds_+vnEo(eF22q@9xE#f~i~3_3W4V^w6lKg9S0C_3k2#%Sl0Yx7i5)_24CgR zIeBN#8mJv%B<;vo4`3|zS6gG24s5)ralJ?P&eN`z--rLccpZFC_j5Ys)09JV_-OfH zHoSDJ-*i%Ny}*!6y*^2@Rns$_y_e+%xKKn%jZ&F^_qm-xKoGFoQZe@LXKR>fD_}6+ z%kEbS_oI_T#)#{^HVhjx0mT`UJb7Wxtk~GV#&lslolEj^fbvE^f;FOjUf}iAdxv0y zN7ojP%GJXWdrnUU$A{}V?}^w;o%5?GQbe-pEk}Ew#8r2y^`8q3EZ;H*NG1e_uO2>N zxSMqOCB431${mu#!?ADmDoJi!CorbBaps;@`uAd^#s#M?d*nV+*ML@#tlkO9*`XWk zu+-x$(Bb%YQ<8Xk|43u1jFp@1yn{1pQ*VD#C&Rn)@~scvcQD4jG(cXBE~CbPUH3O5 zz9#`R-hiW4@NY^R%LNc@OhTU>TS%UcoKbH#t8qq;N(El992q4J^qw|*c|B*330v%{13cx1& za~LE9px9+sGB$q_bihV})6rlb|4a>Zk)hb}k)ST#pL0Y58Zqd;VE#Ew3pS9dC~8IM z{y9espb=p6oc}<9_J5)Lzfb~>^8dG1T1H)6^+y_>Ef4jVzvcEgZZ?eC>hc3G`HOdo z??cZ`Det2K<7hNkH5Qa~NXvnU({0$W<PPs>8*95o1dhqxbGjIJPW|;rc-ED(;#h{$@DJPNV{pl{q;ub2=0L?9_n<`2t3C zU0+1`FST|o1werPU(bXFEC-$D3~S}wA7|ZKaVKaw2lbRod*%s5Ay!#Fq} zv2~spG8H{7>YupKq~VvjvLt$-5^h&2O|5Z!7xs!FyQt^7(${XOgxRQQtMO}Sq@ZWm zS+T%}_k&!$H4S?a|HkkoS$<0`Li@2HtAE`PB_+vT*ErVjVHBoUpHYXf5h6N~BRi90 zh;);`HwJ_#sA(j1RiAtg0!PD3*$8@$UE}7kd)MX9Rp4u%$n!_Eax%042p7qa|5Aio z;_uH=S%b8EwBL_=)_6YQ1`URDhmdnpJ-}$&l(d|7oL)VjR?W6jKD$VXKd8P5w$mJ? zzngM3b6zUM1ceseQTy3=Vp*0iXjA2f(pjy0z77gs1}wCjr_tGGKr|K4L~18Tk{)7s`4W3uYnUFR8kR`ntu#HAiWYs+E2 zEAwUUjV4K}=L13xien*0jZviylG7!Hi%qOQbyOxQbX-q2l3d?p&yPkg=O7hgT0Az| zXi)n^W7&Vwhex_v#OS6k&1+fBfhf*~j=Ypmjy^GQ)1~K;`T`xM!Sz(+vfL(5Ja5zg z%Qn0}p&A`;xDCE61vNICEcmKFnTo;vY};OgARbc?QaU&qZ_wxNJ-BpV`FU18y;jOz zJR2^YREb8T{VpodS^jWGVlNdWyu7KBP(tMWADHOtR|jR4TMExal?K{by*b}FJ33AB z9*a7Xt@G13?=+p%^^!e*>*X!gX~koT{qL3Y9(?NC|Mo%Nmf(UmPYE~A{sd5d5ZPwq;<>&Zi!4KspDXPRV#^HT&b^OY_NPQ;>adTNO;>o zO0K7}b;huPoiG|E6wLEmZLfP*;^Raze8kkUSufUu7lw(LJ0VV`g%^>@y{brEfn+hq zjv~PaI|iojY@30c`M(hn%gb*WGls8qdzUm12L3SWz)E56JQb{ew8p8kTZ^}DR_Olu zc%~^>NK3=7qjx#q2R~BLKf`MwQp-WP=f5qFi1Jh4l35TU{`jF|^`I+F@xD_ddy5#R zmmHjMklWLb{r-qmXm+W@If*L=U%QX@yJ$j19?aHl=IT4rI_YoJSZ<;WZsC5btvJcL zxpE7|HI%PziPHJ=VwRAWxnD=OxhYj)ho-j3mrm=qUhW@6Lt_8sDJm~9M#uYboEPlf zsie=+FFrOVl73vAwu7(D;~3j@+J##x*Ov>hZtm9@X>{W7(o_UZSe$brV5CD=HC#u#NaReN5?;{5n{sEt*qCyS@E6Z*{0H zM$-S=UfYT(9n}b!GJ0KbI#3;i)D69KmY(y7rjNJIEn>@(Rzr3gh0aSzG`HxyoQr726Fl|YSRC_88B_of9Fwdv*= zdb~O$-d;qix@}Vd17$#yL&yStxzBk$##1CrXKBu0mIlxN5M$(j^MSf9+#% ziQ&vUq51AS81856>Q?_dn4ryA?X{p_NAR-O%kcetDEV)1ylNa&PtK9}#rQ$gRO&y2 z)pL{TTFGFJ!)0h>|GhP>ps;c&X^N$@%JFxJlNRW|LmQ7$t`uOCSWS(?SIGZMFCF)Q z|0NC@I|l!sgNN?I%l{>YsWhSeUt$=JS%v>4hEX^M{h!3R{=R0{MkG(O&E+o!P2OH< zxpMF!vb_N9Lo-c*@bL2=;o;K3AT-Z;bzpe_>kbvmj{me|jQAM~Nksch&Gkxu8pUMX zC8W!L$^W>D3Ke#u1)c%{-y(1C#a;KEnJn*}dRbh{UcdeL%%LbsL7sUxJ`hIi^T7f7j3Zv;jXN?bj!HbrotxRqQW!2EDk z(ngoHjC`d{JEL=rzlJ=ns&)S9uu0xJ!0rlkC7hd)bp|mZc<5dJ?{EBOgqqoLH%S0`n~zPY)PsFv$zMj8 zupdP$0~4^HF$y!5_pcp~6sR2=Jp8gV@VOHy@a+Ff=7ICR6yA03`SXl@afDA^baywXxdR?NAPAxDprCF7!+FHM$<HGWtV!_c`8$W(*j=*NhmjYhpA#N7U~sbcoqhuc;;g10ym1Z+H*Yoa$a zbx&^H!bzgVGWPt`S>ls&Iz8$}L!wEY-C~!wOj!=SI;cy0&pd!bj|Pq!Q6c;;>vNFP zq9b>G+6ny-LB` z+xC||<+Xu+hiA_~BDXj*uSN!PzU=$yih0NMRe+USl^t5kgGd!QhDrxapK34WIiW)E zEkE9zWIrJn=bf#&ae<-MD=sd=>jBgAdVu4+x{$pxrBavuUc}WBSJcO$F9WSh_|V*v zF}1Rtb5n0{cv-D(eW26m>!)`XLN6|7o{zL1KwLRC;=iQMxAjvF-`6VI^*c6q?arvG zqR-|Rev7$Oql^QvqnX`PdL$O^Z*o)ScbF;W7NyxY!K!tYq&zJh8vLT(anJeeuw(qe z1Iv7>hYhQ^B^focD;u}eY7rH4c%uXXR30dd>v8`FbgpUkysR>aIledZ z-=?Az!tpNo$(+1*BsjL?gXPxz@<9cLadA-8f-u%L{>gT>w4wFjL6_~FKJawH3kA_#*BcPsMd9xF?%=e)%;zfG zwKD12V@LnPipG7hm4l3HAFk({-7kDLxi-TBY*x0CykV0b<^x_I+gB20UwNDnCOyZ} zvw%NmznwiQTa|JvJ>pK6V*qU^iaQGYG~55tInq>HHR^NrjNLBMx)VoA^yf{@jxCp( zaq)SNe(qqXj@yI#!ict}Co-O7;IW~6o2%shJV?|Yz{pHTscvO(tCS2fi9!{SgC{LD z7~J!21D9}H1<-+mA1IhHeBRqmY_ErMy60|V7$(N_z!7s>$p+_Rk&0^u$JHpVw88fi z2S$VG*YlI#UfEf{@_QhCSjaHBbPF8CMQSa#@(i5uWFR8+jIU(79Oi;2R-a8g72QJe zavN`Rjk@%>=RmJuy7LnoEr-Y(Qe5zCbyJ_4#bcOy!s*Im*M9#LZ&jrFdxYd|52x~} z3hVGSn6DF|`v>-O=boX<0wZHId~pcqG96q=_Mn)QGBfmlRLr$fOPk+l!&crlf|(iJ^cLr_Kv7@ zs5@N4#CSC(VQnRs>lqtX@OlVb{I+=5iX0#u`Ac{RJo-Mf2anJJn7_=C;2A^WVx@n8@6;GpT@a_eNuEs74TDeM=qwU#qyp5fKrZKtQ^PlI zJ@v>yd0+lL&%`C@{0a(`>1Mm2T|?s%!UHt~hpOlgTCK^T(@XbS)lPH(K0Dnp<t>LM-$!DlYBrYR@7egaRU5i}9m-srt?Bv@u(-{`Q zyqIlz0Mp!d4YTBWN!ah-u{uaBb`T7=*EO^-(trc2c%uwy|u^#vDb=jt%I9n#A&xUc7?eaA@K$fD;%=t}c`j*xik?-bk-cHF})@#&f2 z6+3>1a1Rw;oBY(Wv0gnqUP`n}z~f8x{&B{>rcSa0vO$|(E8N>($ibj8gVg`hBE1rS zNAPyX-eb%Y?pA-W!gon zdDCuvqVUYNkmft)Hq7NPb4FqFD>0|EqUL>{d7*Iyz8K8v_3@R(!lHr{9B~k0U{+{j zEE%Ud{6sIKI^3d3B#UK^ z(>b2QSHmcKkM>A(_wFU9D~afHC~;Ug+Q3co#H+UAU#{KFbjWGq5}==`*N*`G)NB&z zINRXq^;lRsHK(3?W8dXgA4B~PU$-pq64qcyEt5+$sc!1DM2Ir_yZh9x z@i-pv=y(j+Rg1#!#!yXvY)_Zv2Tp{;*NC*jQpak^*%8h$6n5oI$k|FoX^PM2I#0$b zePyFG*1>xE+li}nPaE&tG%`@^eNs&VnF1qRH#;i-RU1X>Jic~wuHn^$IMZS?toM~i#?a-h*W44!xBY!)eiH3u8WFV7wzpXiOCBhO zv)6Jg3C8HaEw{qPV*BSH93R59e(6z(Y@a~aHU1CP!&bNV5;u#-iv`jkUg>vkwnEdL zDXMS7su{93lTeu}FhVJk(Rz8*xIK^grZ`K=;>5#2V^HWO)?Pe)lyV|>7#~)XS z8UK{mv#lDkSme4}nmNwA)9({|R;!=j_T!Yg!EJ}2-1@GI5JdQO9tSf>kSI7jt`4pPoak`V>g2>Ykf{?hKEUH?N><>I%0p6ih4o2JhWTd)wQadbT*r6s1=6tFESqvW$ zh;9{CeP^I~eufVg^Qi(X&V{D+urVmV$g_Su9PkgLX3P&l8D7r3r%6PRDHzihfx*Y-;|6EKQ( z+ukzJCVp9Z0vixl?mbTaaj&;ob{f6q33nIz*nw^)LqPvxC#iVZF__}zeCXcwDQCJk z|HA7p376A*LgHqkIcNGvaO7kUX8WL)T2T390ZguRxsXHX6kHP z8mYFxjhh58x0_&P_FJSrctHPVyEX;=i*p}ib}x_0h{o|-Ec3MYfIoM^cabzWK&5A_ z-Y|zoUF&doA8>li5EhtBm(~@V+>RbvV`d~aS9X%eh8;tW z@v?kF_9QZL<$^Dm=iN zvJY1v%{aDM;hqcUHiFw6oFb4P;K%3KQJ;wsoU~ded!)CyOXmqC8}y-Fm4m~>H`~)N zw9d__7AA%{)^3VN3g^b&sqWMgPY6?hO&{q#QFj$EQhEeiBy}fwd?(|{S^KLQlqRG| z!WyT`&$dau^ou7vra;xd^Bg0kt2M6R3NUYYW=L8#_}BF z7TglP7H)>2%oNInIs-~I0OIGZ@c7Et*E7-Vbu1?zrZYXeuN_*DOy$8#3+)k3<|4Lu z-GxZZUqXAH2b+%^T^TnxZ8(#Yn+e<+t1%G?^$%~mzr&Y+1w51!#kBSzkRJTN;w5O^ z;?poEhlb0ri<9U`uGWjE;oBnaI}_(MCHL>KuMp=eVn_BeLqh`}SvUtcQ+a1sFgLul zz-}6d?+zqDF;WnC;Qmf!?Db40nf=op#S^cPi}6f0ZSCs*N#$fEpF1~S_N}0;K7{eX zs;?3e90ellW{)i2;SZ!S!r@zCYX`JM%d;+J&%69D3%-C5%`OF}-oK=N*omsPIx36g z1kbu>U?*__BSpgpBmsVxaS3;F=zEk0jk`Wm!^DfIsq$W5*qi_QiLOfMlh7S7KDfl+ z+$C)7auxmzX@WX0T;o_0KUrPhOz<|nBMeLxkdOoH`(t7k2MbH5A2?o|Nte1VTw?>6 zT}#zp%kxD{nS28dNT$>AWAxO{pQ8xb;?U6f5`Pw9xiM4^PL>vK;zl7 z*h#AIRH1L9|BFG^;;a z+h6kI{YNfMygZx>NE?@UW3 z89wLvIzQ`o)_#O;Kr96ASKl1eV14&_qAwO|p+g3Icb-QzeQSm~9X5Z9IBe*;B+V47 z%{LQ`v|@;n+TAR3I26lgRr!#p`G$apje`(!){RcGb&E35awr${<0kzyJ0>=U58k=hZ9efb&SK5ZHBytP%IDNljvRMI?H5#{;tRxU z^w8I30M-GD&| zoMuMzkwHylRgd^f;E3FXbl+%hN^!=V8NA5{JA56`3c**kJ@N2()LmQ$Q^OLT77KCl zT3pwqgH^j;<(u$SoSBR?XV3$?1WyXKn>*}VcVHaM?}YbNua~mAx!3dPLMYWJ|B=sc zNtT#aA8KY-5TcAm3CuxUCLtryat3W)y!QsC?skEis)aTpteY@TBy8o5^Eu%cT`Ihe zos)5S=R`a8gz0s-Wp7zAFULyk!)9))wy$;xt{;0Ee3@rtQT9rS>qJPO6|SYt8xzyzi#J~h;|3em~P?s1T;k@X2|t74#hBc)Isu+Z}&VnRA}vx zdEdyt@R@Oi)0Clb&9xheThfZyM%pbJ11WFCOz(N`Xx-Cma}Ln#@&}dBO2by@tkahh z8}GMnU1u3No@pQL!pY4!J~$}r2;#MS?g*pr$yPmhD0}MCj@V00OB}u957p?Aul63M z@REE$Uf;LJy6JM1&OE15yMpu!xoABku`O#QSAwFXuaOFr|tg|c5!V|oQ#;@q&Vv5F?1E8*)T zdZ|-ZH1i>6h1;>Ek;c=HPQ1!)=fM0eNe9ul4wtiFY?S(0anHF_yCKWYgN4(%X73uA z+2#iCaFz9N&0w|8G`=vy6XUBR-ZyW7G;f`~wm;YBHq2yEX5FMTKdt4+i0FtCl-5TCLqR zyWP1Va7`p_{m8hX#-w4Cuqb!pbH~cJ%6CKQGiJFdZWoy?n^<@LD3YzbbC^5Hd4gm! zyfSs1GI88%vmD!usCX?J4DWEeb6J$_AR>DL&UPu5;|gE$d#1@ca$THdA|Y=0ZdsMP zn7eJAoIXj+F*OL;&OhK-)B21m>&W_?1M#L)dP^!o=}GuQ*TwZaHm35vzs?(7oHCs& z0aO~vw4b+@dl9(B`LTEGzbs+&9(2?zsu26?+qXDhm#mjW<{&fOcX`o)?DiWE{0|rn zv5>RoW*4XV5?s4F;wt4QVnkk783i0@!Ps|3jNeZ4nAQ2(pM%ueJbSPCJ`=jm zmM+e&Y;1npH?P@XA7jjFyUgYC~ltB4J*t)*bMd`|}nP6XrI8$eAmA`Ba| z!0DUx6Ru*ng~V0dtk%A--L`4lY6%2w1(Y$a_U!#nO1PRXP{kqMdf|a?oTaA95ebL$*6hp&MZd@8VdtjB&>sR@x%h-+}OPu}|^|M|-_Eh$5lfq=iG zK1ts7n+u~RPu#;ssN2`p!ugW7*oRtuKFk03?!%C;uyvg|%XH;=_b*|Z@ zU@=o0F~j~Xd#%@owa3>SugvuTl&r%oMP#y598w`u07Bzw(xC=)O0yoYC;R&J*=pN( zp|q&9_HeK7ib2}N_-x0!s?n^J-UolV{3JN%PK$Kn^j+&j$*BtPuE>=a;I)-hLr?gn z^n(o-gC}<4#3P+>f9Qp#_B_`%HeM9%)S`FRKb>N#CZ6CHYD091tbQw z3m+&(eV*j0Qj~;Ecd9#{#dKfisg%!OQe}T6FT*@zw`h@snTmu0Hoq=C=K!Q?_XHak zNt~~lO25h1z7_e@<&vEmyd8y_=rtaDZw+&{p#rSYr|%i~Qadoo>tTu=s$PN>lxHsr zG4w2L&(*&eZM}o?`cpu7r{e`|3iP5X`RP9MH~$He@L03+c5+Q(Ku^NnFhYVocrK5g z2xw-PT+bdAd$((c?ZlZYey;wg&+%a`l>_FY-WQ<=p8c^uZX9mu57Zf?y25x4s)l|R zgip3x1kA2rXtQd2oPS-gs9hwX&n`JGTsWkSzb-nP9i$JBuoua34soVpM`(wk;xNtZ z>EMUODJhc9@3l2ng!59+T_3C8ZgGCA9l<9DUpaq;Ef}3>c`w3+-WHf?wIO}>E|K^x z9IzcyC7FN2X@hk6rsGDZ>Dy`fVe1hxlrP~-W)Ex0czUI<$0FX|)yNGjq~!0IGD&$> zs?*)~_1pWY99jXZF683w&0is2JT;gbYgs>8B?ubW33bMoTtj*~OaF%O8;!Nk;|YI%9F@?3j42J~FKjFYhg=wy#5(uE*C; zlv&9)19e+tT8GACPZu!5RP`p^94zlYLEKP7dl7K>xy+=?7jJ7+D7XC zR@y5=`ta~IQS0(J9-??QKz*NpFAby4&`}Pc zrrUQQ?{Gi!yvl7mfAk3AC)Pj}3xxc^#0a(Hp^Eg(duDl70(i#sFWghb-IaKD2Yv{< z+2-j)OD8q%xJfP5Hq8)G$7l>J4v&WfhrG$0-4V9W5VXzm({a~ZaKx>AsL5%s(f3-J z0Dn=CDjrCeE>!M6;J?`OSu-|1a~U^1%#6ulQ@Z9xwwC#u*0lG4jUq|@hXb6x1Ijg( zKCAJ+P6Z9&-8@QUt@|=Dz}@scX87T5ixs2M1+IVgOqo{xp!;sw`4R5ojKpLR>+$w6 z%K|G=o0v+M{!6utzfJ@n&vz&DN6^3qYh{`B19StF6GL9vs{l7%GtRK+J2_y%+E9>@wSBq zHxjV{h?n7Vg{_fm2Gga|%xgR-4eE>*=W~2_kKtb@d{roxO1qWyA4111^f6q&(JS2| zT3b0CFBjjln%5H^qi6!m4+_>Tt)#W_>1wU=cr@ zDgmHdYi7mImYt98pp;cdySdqa$qmVJ(nR??_U%~u&bGf@H~%ec;c=>vlbE7+^UK;2 zQRPrUJjCnRNr*7L|KoN{X!nsL1xHkqRaR$bdU$$7yoeo%(2>e7fe%SkuCoai_jqE)-X=sJ6s`k{!WL z^fM7A`cu_6lWCy*h`L?MEhG1C(L#HJ=lb1Ls0DkJw-u&q@q`kya>lEGJM~n*j#l@$ zUx-7|QF_T&`)JAGHXTrO7a9ve6;u#0D-AUe)PAeZvg6yR&*gJC)U0@ZMoc~9LWG5d zpL|m)!_we*4cyAY1Zx&AD#eZOPHAv+qt^2eRAm zSv*f__zzb;1@pOfdFeth6iyb@s{Oy>3zzRP-M(#|dh@Nf!u+Jdu;J#rxIvD%%(oor z^>N2rGhA934s%V9FS>F4vQg!>W?kFUbp@@h(BxW=J(KoMsSYvu>m}u@R|2*Zu{xZ| zTt;JE(OYEQURU$(^S)U^SKnU}SO~QC8Vtu?cSqUHDR?b*;0ybnRrlpd%Eo{=W}m7P zcw1KxbE_E{C_BsAWib-DMck)j&b8CKqCax=y?yiLgiyKjsI*8-lG2m{UWa|MP)BC? zPfDSI=94_v-V#|L*|^NitW~O?1!QD+>e~hbnNgr!Ez(}gx$n;P=cYsb4Ot(woHXwu zrfO_>`*p7;TQSRHNAc2xn+#f#}nV`5FAV zr&Ac_vb^Qw%!Frg9gi_RHRUwy$H#Y$(Q>xI-mseCjqcfEJ6X9UNOQkff{zJD`FGQDNFCni*ufJ;xvox_vv_>C+|7a2$iI8Rwn}`6?;i3RlZ%_6{;57mY5v zY9x)dW?2?`7ALEJ@iP>f@DdEAi)BQY3b~B~U-Lb08`c3{72$gClXuZ|ic79`tXD2NuULix zFtjD~GAkpgMaGEeR}Ynex+JVf3i`lbH(U5{fwCT%^)Rex2HR_1|G*oP4S^zevVsY} zzpZVN`}piLy1CHSxh(qcZ^M8h9~nP&=}&~;I6fd9E&?QSh@Lt2d7pVUV(qjb)|!J) zQDsE$P_KCqw4diwG#jINioO0}y>bR?V{W(4`+V=OcWopBuZ$>7pc*&;y}+}Y5<=5+T>&GySdmrLzcg4pHOe7*ni@@jcA@HmJ}W@7tyQ5*7g#-Wpp`nVK z!W74<{EpaDp1*bYd&&6#fb$-cwTNMG(BlWbY?FH#kZ8o!eE5`N=LgY$t_X<& z#V&Cme#Qr8U7%v(u>_A}cIVyZ)e@?|pP~!gJ}SjDANfK5Y+J{7DNeThIZ3@L$&DGz z4{SaU@BVtuJ6u4!G(LSTNF*W`apTy@P!SS;%ZmMxcI)Ld3*jC#K`(v~te?+civ#wM;K}d$ zGl_ScfY_Ts)QJr^)ipJUla>=PQJp(hs!0;SDI@Wq?SB8pofj5lkdY?OK6D)te4?38fnJFJ-yzz{qQzQItl!bv7mm^|BQSHDG1z!|i(6UG}E^Z*>!;nBWUQJsC#9hh6CD^ z748C*)Eh15xX^Eue;K-=C%~$u71V)>LIYgMZu#JpAPHaYUiK3V{|MdqF8;lL+#gQ< zOY{J22!+nj2%zDYMMjr}1=DeP-%qxuncI1xQ|YvYFKK_teFJ1E1IX1sVFRC(de#+7 z@9{u3ehFjO8+aQB^b8RLuXFwziqu2^imGF(g=0`T4Y;3uxas-S&|I zxw@K~$K0XJ-$!dVJ$pmi)8{9&GYLP=&x{B_Ml>DJIsCNAE65Fp8`4&ywvz-F)=$>^ z1M$|k$uw0q^X+p>-n2wCKp$fF;@sTXE!ThZ(4(f0On^NURi$^Zu~lJn*e#nmDl)3- zKL9BBYVp^DA$#Qo0Ph#}tK zqZgjE?od0Nznb)IAxzJ5b0f#ac9*2#U~l}vgM6zyZ?_tiM8-+1))TfD@MqXkfzr%< zBG45d2H>CX0XyNI)fcTU1RMP@mD|JFS{GVB?yJHL?>)KI<;(#*H{OK{ob?0sl!L9H9y^=>}<}LNu!Q~eO<0B!|eSJ z`GM*~$Sux{kBVtY)Jg0kl;Ud)e!Os6P<{fSPPt1?esc~Mhu^qD?d@64Bc59zGA}P- z(^sSZ{|{O39Z&WD#{Y*3DGnLQ3PnPay*D9*>`k^~Zw^T~wvxTFWzS>pabzE|#|hbv zy^ryGo!;;F=llKMe*ZgO&v8B1b=|MWPW|9+9;5*ub$qPls#z`HsvvMd@b?9;2P(Dyd$hw@WtWzNNLqdEZsA4afw?DkF8aS zvB)J$gn-~vQZLq!<)!pPW2`}+w6fF|soGM=9h|_of7*@@GsX_A8=vGjVHHDx7RpRH zl7vSI2(<(TNH94AN76;I`--pp4s)~D22m17+4JE?K8b5;ZElnBrlR|P;!g;HY2dGZ zHvw$)k$fN>?}vAYX&_E|T$X$&8!`C|{i}Px=LZ6=4H8z^DS>_32{1=^W>6&vq3t!) z)mL@%Kzu=(+h1VB`vtXFPREtBI5|oDK5Fxj~4Y-+51G@qccrBKb9wz@p0tDWA11u;I zP4gWj-H=)3*{npZ7&&2{5tQSCCy6YNz(hFBon>j^7^Z#4uP{(qbCyXb1cVGRs}z_sfv!sq92Q3M zDXwYtU5`qrOB?;LRhE*L`u(4_7$7Tkv>FgJr$PV3WaD*#thE0D!t&(BKCpMfp6rki zfy*_amXYh#cQ{r0Chl?G81mI72$JKeve`MD>Iha}eXVx6dUkQPL@~{$F1`D{+HFl+ zN;;z;KJeKe!tOs_fSy$BXXucO(ffWKH^1C%4%!^~CX%b`xQ0p~gxMDQuM}FX%+UZC zNx~*@mu;tXjzPQcej?WzDq;{h@-25V_iCOsEuCYMJ^5X^OvUkvV7f7LYvlxaw_^TI z^_~4Z^DEdB(NT3H`jHXrSMQ~bGUHV6i2+2AF-!7JlFmePZNs)#@SA0JMu{)Qd(8dH z%q%AYge*G-E5#RY7g6(T;Pf?;B<2N*S&bYbX2NCaqGGYT6<ymj31aj> zN3OT1QmodwdJLE^dEI&ilX-k`z@9fCnmKp*nU&ZKL?nSx+gIaq#MDql=knIQ63?%9 zR-Wk6f6gA%jX$Pobc|uDJo8n<8!h*|T*J>qzpZzfO3<-ik~K0?^bfv8)I<(#w+XL} zWG1KbX=z4r_KOO<=~+7ge><(2w+R95k!RC1dGD_Nu)%?IZ0$J_9R-DzG>GtZB);!k z*q*c`H&TtLdgP>$lnumO`TvuLgF(|PR-$h!Mq!1o1IRSSLR}VGYInGjFR#s$xo_@^ z94;wr8ZIav!ac@{iD|fxGbU!ReP*b(tb57{m#%)I4$(O@Q|_uW=h?OE*+e(D#>~r| zk`H#MhuIoPKRgE(%nB}b%PhS7qkX>Vd&tfqVKo)D_dvh_v@CcznGd1#|xR z);w*fLE9Ck$VVjAC-HyT`YeO@#j4mpR))zP2CVGxXz=FkF1U^nym>)&G*a&7ikjgO z^w>$QW|WJ1hXLzK=6wLLPKt&VHa40xKf2)KQc{f=redAxyfLY$ladYLZV~G7rmyBJ z<5$3i-K${V?%P0)9UuCCbgO!mE<5Y0-CG%GrIXQ(x}{{?Ubm;lEw|MalxIu_5s&uC zps!nsr?f1n*L+G(m|cU z(B4`#Pcrz)^(&^hO08F1J&FT$t_Lr&?n`suR@TStx}lj(>{R|;@8#JL0B4QmPx!*7z9 zToBlZsOw%i>5N^`Dn-tS;oi_)fSBuD#rK{IXSJ(n_A{ibKxun~0oYs)V`Et;Zt^Al z?1XukRhoNWWiXVtj{5ul(&N2q5aLVfAFrY20=S3uYchrlYbV3+z8?l8a|qwhpUzO_ zvrAr~2&*}ZOJrxqPp8P?xc3lt=kciWx_vLnrbF8u_ukj5P7h!KXPtoEidH*hqlLc} zDf_VinP>lJE1LzPU7xfEizam0iRUH7e9+nN{LPSlh;(sUu+sMhn`PxiUvlTQppV6K zVcfcJt5r(bSRk${B(bQRtgGako4&0QCX3zr8fYl6AH!z!<{;-Q32IizdKWnP?AmZf zf+@Ny^dW3&p~|I|9af@&ny8>rvuiyJb4h7rSt5vNDr^?Fqt_90Xsw3KuN62P-Vt>B z&14|tQ!7xiCBhkn%mxeY_XG4(<&~x$nwpr#t!1kToUQHI0Fic_bqKXGN*YO2!WzV$ zc&PGf$c!LEt5#^FryTZJ6z;Kc)JUA*Th)GzI-{n0ovsQgr4F;8f{I1R=WY)NkJE9z zOlt}QQWXE6Q^tc2BBe1)O^)E&KqPd1I2EUeRK3{Fm-8Z9eWt2>>F279eauAc(;=$e zo7N~nriTn`|8+26{CH|q!Qh^l!NWV9p)#|rH#at$%A0e#U0tbHUV0_aiF!8Q(|M1R z!jlrc+MFqO2YLbb?L>B1EyW1{P7OS2iCXY6V{g9dH~?t6Ty+oV>>7&V^sDGwbkK-J zqw5k^gZHYvnGOKV)vk9v>lal~^hx8jGf`!eUPKfeLe_q|`1*a*_Xa{U8)oE>t628P z^$$1+X~i1a0ROZ*>x@;`>Zwy`{6SbPs6`O+V(VdQd>Bj&6&9@{%x+)S+tP!cp&Zgw z^>`GkFpWD?G`6;%xb7GTH2Z62M9M8713!}in@up!{<6V41<1UlKd1%uR*{LW*m8`N zSvq|8>F9e(te6IQHC9EZ8l;&OG+aGWfSTC-PN(=?*X``4tZC<->B7Q`i}%p0uvtBc zGz){mxso901dWyd%QvJ=q;@p)p#Ii*$>w!LOI~m8$@NWp@l_6-ZkMn?Z-Mn%~V)* z9=Ul>2bU9=sj;BPUc_sPbwP`$6JD1|NpBhEz8k_gz4Qy9x5A@-&KqesR7JpVwT?m( zX;%r(!b5OGjl8~S0R&gcN}8Iqm~g+*u7>vx)~TPwiB@UE#+drhuAD~j)nqy?8Z995sqr;s@a%ip3tzE=Tp zzERp=>1`ZOQS^;Fw!BwK^cn9c9+mBMebp}6OIxv|p6(GU`s(y$^g{+6omv((oHDr{ z>In0HNxfm>1n9{xgS<$4x*o4ESa`!HaOI3`lT-PYE4~wte@JZe&CK9L=hRw?QPDS% z4BKvtlagAcW`a|qOEl9e)u&iorTTuJ7rd!O*j!rR=4PmVhwrI`SmhkAp}c$C!z@S{S>p|l zs{J2c)_8`<_r4OFKyCu1j|Qi8rTU6JSD4j2mK}t1bVkw{0HDz?pBAz|rPACj-<324 z(|c`AKXYCAwFYE5xe|&4cA)W&km0ewJ2EVCnpj?6)#gEN+Je39*Ne6~A@qrI1{GIP zkIaPww#-ZWeXlZ;l$$xKj9Xd*Wj##=p5LihhTr(Vvag|g>Cp}P%>m7~|0&pqF8oHo zCE^wN;+0fl0k=qN*}By=yNOe&!wetBe96CD(;5G)yHUfztlU;H?`X{Xd|?%5Kfabp1i5~FF8UZLqG z^xK7SDxW&Kmwfv7&aIDxDAfgw;4ixrVBgK z{_L+p_lLtMR^gwpZmRC zx8;Rp$J=nN=Xr4j8pVPkoR2EH_iOD_pYxSkp-(UUbBv+uMUrlvFHB>+hz%}93;-v7 zunX`;>@R$l29uD^@8mf&)Y)sEzxF!j1u!cW_6lEvocx`KrVb;1kA>e{wm671TaQ-5h+opuw1uG) z?OT_Nz_psBtmy;FbN^PBtZsuRU2A9M_a1#PkTw#&_5s=wk7>){=(GL1lG4mk+;oIG zdyzV)I>#qF@9DAql~i83`!;hfO`h~^;_NnTYR}2~4`oe@p3sZ@{DeMVICDDNgzS5f zZ-b9yzbidF!0o8a+Wtw8W1!kpOzV z=jkiY@`rkN%XWbr?AK_OaD2ld^W8Itr}*{VBnpI_ST+H$yc~h$wf3g#>96j zez~?D+PaV8ApACVOqTJ03q^6EGzn|wXnFU%MYv9IDRtbeUPPAi{B$Y{g}iAc4WJPH ztkL^qi{YY^(E|^7bPoY;fhLxu%~=9s1CdUBZ{v18-*K?^r~8Q;^z`mq=4!Y7JVlLj zWmF1V>-h8ZbPQJ*iQttlvxZNR^#2Z`3yWo;4Y#zb#@T_-Yl4{-zlzkd{QG^AES^yc~P*JqdiSXO_W}CkkoCaLxET${NF!1EV6z97Wl{eLQBxX z7w?a)7=y(n^2A;JSAPzkun(`Xnshk&b^>;pn`+UN?AQ#Mu-pps7W_3w77;{YZPRAW zYSF9|rRlK4vy3lfxa+Cv4>^1$>JME{B}loKOhjye#hohI^=Y>zm(K+MwQ(NAluxGl zZCD$ZCAOw+8-q7i9Cq2Unu#&N1H+LbVU-ou{=a>tz5KRmZQy{1bv30svm4I1?I~g= zGk-i7r*IBDmFNF^Dl1~ModvU{-K@ zhw_?Uy2!7Rg!ki9K4;u9S{hhz%5szMP+F$}Ecu^te<`MxP_{aq`o~*fRXC|KC^5 zMO-%>G3M=@<0J0sJl^Fq)iB*rT@0 zt`XELnYwdw5wj-7nV_)kbE;p_N6lvTt8o?t$7*HnU1rQltsTIB5e4Fmw$kbuV3J=Z%)x_k66yUsw?i?5Euz_onoUEc-#>X(@-FaqCsdD`UfA#nO{9%G_?b zAcWF9Q%Nz+h_~c~72=a@T@IGI9xMl&& z(~N)0*V-!XT~#DiwcO;0VdKm0t=Asu+02(~KbO@D7?1Q%Z7uZTL(#wbFZ7R_U~=v;I87OInX#vtUQl5ouc!hOY~}uQZ(HkqcXCcX9XX z?_2KtQLvYJpa||9B(p!H_G$suHGblZfuFu)`EzxQUS=btFg5l}Vdw#RwNnRntlYf|Q8r$_?5!?O= z+Q&j(pUB4XEJI6&?Naia{qio}e(=F=84%P*iBe9>YCvpy#%q=4CzuyRih5Zggz~FT zrCrm4WFBe~5zl{4o4}*5`i&l(Q~YZ|2BwW*%!)OW!_iD0Wbo#Vn=7k%@UTM)ib&fz zu#LPL0!z@nXzk%V6%e}bBrV{uYG=ty`nVQ6i=Y^q**WQggGzW=~5x!oO%#7VWlUn(|kdCjGmzl z32i9;WUyV=%=Xnr@0CY~SJ&d-so?w6U{(4E2%i+SK4#J-_iasgA^y7=96lW%%z=t} zKQ+#sjwT=$30G*Dd=Jlc1be046Z+)$zQr2#&cW-v6|`h)u*Mqovq3Ld4H0D>$rv?g z77R7awpWpksF*dLNH~sLf9PYc>I_SfE&rb8EW6=y`fV*j!>nlNC4dELFNI5Z3D0?; zix`*<=TX1vKg(1Xr5Er9$B&n&;LU|ZmOOW9e9yMb`33Cd`2cm&WjB#I-m`uY(V|=k zcABAzmU0&G3V)JCC2Pv9^aNNeV;YfU&k0&AEe$?C>;0HyPk{s%VK%iKG2>hv$#PNA zScQN|nChYv=NGhL>uGIr(E>a zkV+xAa1P(rL74F83Sd)aKO$D4cNrQ4E`BU#eP};DiZ}$6r!Rga{<tyO|g3{bMQaBJnTgG=9bzC&)wxy0&pZh;-Z>g^ zyyotpDf-Dw81mGGWLDs@Dwx~-EeH`gFZO_nhM*;2H*FA_#Bgzbg&9V6YDRWF9z8%g z_l>7Ef~B=eoCs>h5lW@@`P@3rCthzoVES2Ogd4Do196SXUiUUYMPY{z6(+o`9<7yw zMuosg49I6i4%@ky0n!`oGC6`@!}SbzLZiHZ%m=p_a*c_IY&%H0_W;a$hA!jhNBMjd z?@nqL>)9}3+ns_rtxklqfKm&|>wjG^;}93xE|I^>-4Dc%i~m?nwE^}GvwbY|irm+q zqh-bLhse=Zz%S=vY;P+Y=ButMe<#v;=1aoF8AY*Hc(blxjGt(a9`Yk6!Mgv0Z6K}7 z15S4I?6R-n%1!&&YwKQmS%Fz^!S`V~A+vpxyp*m7^saW#!ma4PH=8SRYtGGoy5pP} zEpX89-g4+(enx9oEPaX!0j^;E4BlsAY+=ronM&mRqUx3U$M2)p9m&-zxJ zFP$DKQ3E+m`Ko}OSGdVB%Hk5wLz_o$b5{ID@2V?n*%4Jj<6~#VFQ%m3`}rowxczkfk2={b z&hUPAPR93)=9RVnM;e)LaVpEgLLttd5&?5C9TMB z>!Pft2t7plqliT7ggVurDE1U?b-hYS zj$m9byA<`~lf1W(5w(Z5&lfW%z8bLCN^9K67t=rz!Sw6JuF_^(`}kVzsfn7A+bV0L zNbUXpIv^#y9hgw4(7?vjSIS`MNkSUHRLcHuGP^s;{%N8W?P;w8GG5Yq`}<1uX7iP+ z<1*aUvkEi@NY0E>Tctp>SGfq*src-TKj8*UVcN*piU0QF9VE`fFtS;W4C3goq`>8`hIDuaS)`Am#QNCie_y&^SL#KdFomgUti3l?|`V>NgkGBLS>0Qc8F;Z}kc zG@Pbv%I};ze0}kVt2Mg4GZ%V&nCXWEtBqW%sO-MpI=XR)BNEy7pJgIX5DMhL%+} zVfUfV-u&swei&*Y|1B}<)C7Ny@2X{X9a#?bvq{j&XL0lw4B4rHB*KMPF8vsW4$oc> z`?wHZsWjy-2f)^0x(p5Xm~Oj2o|Gjpl78^p}P;fG(4J=ue^v66LGu! z9IZL5TBRcZzK4+&&^qoR)Ri^!uS(UG3)3gh@<#U&ZM5~I{G|i7bzMRy@DaiQ7FxeF z(BXBm?!KvAkrqWQAPK|~avD8$SA9t2wjKgxP8wd%rGQEMsS%vEXzE%aY~92)dKivu z;(l8yee>r**={SPZRmQMd)fr&Y5IykV>-7f6r7z}__klga?I#_3t|SNk5@wTaR?l< zLZHs+uU}&p+bh$&qHb_9<~6%BWhiHxjqPu8xN@iEQAgAy*M#xB*F(fk(L$P#N6sq~ zi9yz1TcT4hWRB|+G(kuok1WvZ-R21iMW*dMo-rcT$&T1jZz0jFmeObwj675^wN1)6 z$DvJ6iUIfe3V>Lg4N`}%)`ZvglC51|`w9AAH_c7n0Nn4YLx*g*Ishr9J)W@>vH<$n zLmh;QoLpO~MN8)ux$pZ(J|{R~|-c zrRZ=U8d?_fTk3`XYIFl3j&}l>N;2*s{b?bje{ZS!b9wcKOftXY2al_GmhTfc_fSYp z?R)nW7Em$hLO7S>#K>Q>6_*(_%3_2ifIN7`3NuRo`taJ%ZEa6p;GU@ydMu<0d#SBH zbYQK#&9yrXC&K%M0s2bbSQgWg`<_M#{(aCJG$d?VsNJ@InPXOjB*&hHG`8Uul+XMq z;@5U!ZEr6jb)SoJ*-=c_0};~J_B|BKKnm81=QA)i5!=prIiE-w^HL+Tm*Pd$YY)kN>s76 z0vrlhvx4vyJvY0RNA%S}b%q<^^nX09*$9>?eptbU_54_z_NK_(slqrYm*yaBalB!e zd;K;;u;X8`H3i@U8rTC{8*FEO`lVjjN_0#J6qOGHYlci`&A4>dA5j&o@5ZZ z+dZl_{`O`3LPNCf4xRk7qM>Ju-J1uH_kW)uzR7bpbAlp*3rkPvvv8FZ>y$PH>9e>z zlB5DLJl~VAK%|8vhXGqnIvNB_5anI9+psc~g**`l-wMa%{@Tr{uf%{tKsU%)|K10d zhE6kH=_8+?wes!w3=LU|_{uhHH7(kW~f1OI#9b^s!doFgC*@+8cgu`ugLjr;>f4HPXhok zyip?mGpT6kHNZ-J{Rv|lf6juPz#gR03pi$fy#4%_+_NGCYAjBhszu@9O8vVO(YhfiNN;`qTk?8-nDXsI0 z3m{{4%Z(-SW{tqh?(_b16`;==J;swr5p6KVZ{L5oNG2diH7}hO^sW=XTzqxhV&Qb4 z7O8&qnFd!Y@RmcMeBa6TboLPsc!v9;_T~gRio8Z4)wGjxObcr0{t*A=HO2oG%jcTb zwM8B_pDrjGL5?+;X0^j*=bL>JY)nun)Dg$cO6#|bN5BSG$>cVXWl*!u`0Jla10(#v zL{Q~(faLGo_B$>z`boAPfP<^)$gBK=A^?Iu`Psa6dFP!W=l`KYseol=vBlZNioX}e zg#-uQ;okM=Q8^?w-XAc!WzIQhgxCE)lJp_wZ#UVyUf}O7SS&QOV|xQ6^Y_uN+h+vd zF#zQs3d!^E%>VJN78t&jO(cjP3@~KYI*6gQ02#+ot>dKMI-l_+GbsfRVW%`_eJcM73V+AlmZ}P`}Lil4vwDpO#ILb^Ul}UEJ(TJU1p2{ zivI`W2V=(Pl|g_w8}?2a*ycGXl_dh7L8m6wIpy_*%%q_YxMzJN5-;jf7;RC4eSoi6-|Jlkf z%!5dzAX{0!?TWMmu%>`}cwG!1IllLF1a@i%*zxwj54~DNb{p5gwEr_}Zr~itmmm`btXhvxTYQ=2^P4bTk~SP)8+j@>O!9-c zDCW$pLaICPNWa~Ls!C8|U$Q`tnW7wmLjLzb;LrhLJ&TGYj{d1bwN;(K{Ur8dO&XML z=+poH26JIid%7qG{7nUc3ca)%kb>bS%^+Zv@PWcJ+W!2E&HZb}&|0d+{|N6wz~l@bh@{#+1m@?<{Xy}MbSIr2s58tq$7erh z6&yp%_>W};0*tr)NR)M6`5tKpX3_UKoE3*u?p;GJ|1qnN;?FSm{LEk%J8aK;^j|Y6 zfn5PYK5FOLV8V6s#Psgp^au=2?@z}Kz74E|F?Sklirb!K$r<*&vqFv(lsW${>wid~ zm11Fs@jaw@C$Mhkc-buRzf`Oqv{)_B4N4}v%wKhS4S5{4{kInt0F%JT!GOP4(mqG$ zwTwmnCb5|Kw~*T&jnLT;jV~_I)*8U{eu3}Z=_)?vpZS|g@)KCW%E4w9&3g*e1o+oe zDW_2fg)}$2Mm7Cxx479TZl4WiK1)82%&yT0bpgy9Rd4)J_MfUQUBG3TCR%Gp;bvV< z>}%Ha>+7k;k`i_g>Jeb?|BaI0@r6_M_#O%A0wu|AVaEX0qU8 zPkP`D-9L0pyW?Sx)KlK+L)0x29-`Ne@812f(iXJ*Y!m6Fx;i(?GK+!M--FXVg&AJjgrstgpI(@ViuhPdIqb0D8s*>Gn z_TRE*QCMv?_?{l6e)KbrV|^_8vtw|81kRc`GX7BV4OP)EA)zRq=EPuV@VcE9Vw&xf zINwlp5DrFv$o}O-qyCIpCh=$c$DDh8T>jE6HWRb}e8knje)}Q7hqL2~HtY%1aBOD- z@_6i8c`3)Z06+Ygp&?ix2Ilw?BhOaLKT#rvsu(Gbb$&k=;+~d!ZpMeGXXM+MI4(0b z9yt=_{EK$FGFB8)YS9cd?+sUA6xTN|}FR?_`$5lvf zZ7KdfkP{fOa?78xf-;C3Xe+m7mTe-AHNjskC=23Q>*yf1P^)Vaa(}12<#7M+Dy4oH zOnkNNb9>SH5VJ>$&ANqx^zigPO?%t-FD_5Oi*46b^;ggb%VT{3n2!y1S(IP?zSn;y z0YoVbc>Nyrp?B>bc5EnWkKTt3fKCCifTHNt&nSelxAI(`J5YDlb~jnTXGQ8`@&+&n z9aLFG{|&+$a6I1&ph4a$T|m-r5eFn&^|8=&MTeXh7D8x8hgX3K@!fArA1@?1Qu5P?BWs6 zzdL`rw5Gr2H2M}0JL4gJH~6}qe(314_DlyBgJ5$@XWg54@QfM#&(Oq->ovn?FhCyE zkUP^j+;qX&1b^vgS#hoaW6*PQ*!Fzduljd*rY1ova_f6Tilb4edWGD6$pP+cFt3a& zSIL3K?XNRvc^t4|y{*Vw860AWz&N&c@TU6XF zkNru$z#QB7tww}9`SI+i6m8h%uC^8RK!;{!B^pZ|g;KC57OKKP3JO^Da=~^BtlDHM z8x87$U=VeQ5O@8r?iat|NBe*ht;zj+W8F0nL6n`lY$Z*g)yiV((eWZ-eVUnC=Kf5- z8Hhnp-kiEqODYUkzzK$zBGsAQHFJS|r5|sbiA6y5{`UJ9y!5ofOY|&@AYSfQgpXY> zjj64|txjS1*I&Op3)6awGznh{UDCUpfQ8oLve(|(@7PcIVHN=D>S$OHlMaCqNZ8FB zyJUnn>ftTkQVb3N)cW>?KR|iSURJ+_Iv~A-;9-;Lo8KR%FKbz?s4tyO1u75dm$6y4 ztRAoinLJ51uKy@TjtFUaLK%n}=GR;>Drcu-H6?%zuIR-g;2O0CT{aWB78=O?_GNMg z!Qefm%ID!B)3dF%Y*N>bU20Z#u}m!=h~}^e9v43te;s$fOTksIXGViQK^JNj z5qNiiCjw{q*kN<7>S%_5HTQY?3fg(zuELydHlBrZ`AE!44-r0_or1rT?G7o~n(0V|fjrmZjG;00|&lr7GL;BBU zu~fL$3<(d;+~Pu)Rq#eEr!rV+DQolDEe2HG;?46cTp5*%DF$GT(>ie9?Z@V9`}`qL zWi?9p-gq5@H{pY`v_~I^$gIAqd6HS*BI-kiIyaF3<)pP8KEELCH<9FR1!VeLsl+GR9}ANz^#T{ z3>D2Fu~>d(=(zrjK-~BT)fZX~%W1%0n5v$auST+ zVPl%U)R^nLh)PlamUVP&#VltsCo81qr@YLie0B4%Ck|JpkTP2h3oHDUy;DLC_r&S= z2!l78)1~HI+n9lpN$Uq6A_w-07!qsf-P^392tD{%aG1ae@$TFBX0o5FH$-A%-dEHW zIIX!$E8x%=!Tz!k_L$9IbU!aVmoU2r6kkt{c!X=J7t2cIB24Jn&S=Nxdv!edSMv4p za5%TkqS0{?8*pJpDW?lt6QEia0s*YF#A^O&_es-!8f*%7@>b;%^@63^E4=r@3)m7o z(lc@NUXF$?P`O^Eg7C`E?l-(8Hi%CH#o=7}WJTWOLV1T1BwfFQ5VZcQ^=$7-mNSnV zr1ROfZp3mja>dl8eKs}GheLX$?p~%uFfU21_vss)4e8Re?8G#bDv+Mr(Lm`;$b5>G ze9Mzz5{lK}*XrUe&zXioU#eQct(3Fa@GO)3#a?O_U6s{d?j%CqhS{s@KVGpP4QHzi z0%bg!xi&lEcc9$=#yK30>L1k3wx)2sFuw#YHW~cd=fUYSIS+m+fiTB|Xl*|zf42GI5VJLoeMbav-# zg+A+HT=#w|PXiPtT}e8Sck2kxHpr@4^GEa26sRkT?&hXlUKa&_)&|DXT}aTnW%Uhk z&@se|qm@ihByjy&yKtjdxC`P|T^jj(`s4RPoU^f)+bE6vD#Dyb_#K#HL5P(e?AB|* z*9`EmnlC~*7?btn*eXy9l9e?+D(mE5fwTl7RVN2}9Zm>eNlI-7FT0omnh#KGJ>H(b z)SmP)l~@y*A(>tk)noISz8&pAXU8nh~a>`i@T?mOAA5U}Z2tEVXrb4ik=qM>!c zSDN?RaJ$1QA`tpC*CpEKt2gY#0!W)cmfOsDs=sYx0R*#F2|9@DyJt|vN2l#s&T zKF3SH^?a>=SS!0JTEg?@`O>$wFm@VubmZ%3xWzAiFV%;{^KZ;Pnzi%ez3N5t|31kV zAzymSh4ejC0-)jUaML@w#WoqD5M6+~9>4sgKaR;%@ZNn;VWgK>6Z8Q{Ru}*fSgZND zt5Nsrv~QA){*xLF-m-X!7PZRi(sHm)(sZ^cl=CX5VW{Dgt_ruNNsz~mnH+_%1Kyk= zMcIhA5@+EaOShMH>S#t8p$=~c9f39KTAkDJ)c?M0T=o3JA_UXI*Vipo`_3_Nd}-HI zR;^FwDH76DrX8dKeomAOSyHD))24ImerZ=af|5WT(f)I_P*ue@MVo~8o=XYe95^;WSLM zMkSTsBpf9obcze0_ms2rK_^0G{HJw(r#xl^KR-F8fGg(p>cs6V2_ceN%1E$&>?h^s z$)sp8k(;lSK6H_Xaa5Dm)GmFAs5whKYxwTrQM)J|j^dlUQ=iX-X^Jysj)}Jb)Esw{ zbC{s3;DFhbmRb4-!pMA6{p1Hz_U#$_3XdglDs>=KdATrmBbK9=s}?e=&Fc@Vd(`wC zP+qDN<<*Sz_xTpwr?C;q-5ypC&TbNdFCUgv$_;8v)`4GdStTh+JRmo4HIn z!Wm?Xid$c{mN{2E?+f8{tQBEU{wcq=)Uwjrj4Jr1TJN57>J8ism)rOzfP2YS@_K_T zU<};(QC;B>AT1$){pn<>K~?t&ATj}H8iVOKv@7Np$^da=J-s)+!yD_%|YB9H}4g^G#6|VXln)dDu}E--SGW6{P|s z^Qo<#2Ym%BCRMN0ze;(Svno}LkVq=7?0HYv0oL6Y z8JcYDM^*cD=oy=)lPcWq6e5*N3u-dXLZkE?jAa$Kbn}n2TKuvU&JiKs zlc&|t5N=Jh^84j0(Lkhmo%)R)zcKai z$0KZ$?ZB0sCO^BY$bz`pU75px?V9#~3a!k3=OZq7`?vN-?k~}U7e6|EbQ-z8{L$>K z58L`6^`I&cahwL!NGblW&IuaCo_!KF&`$&+vAvjwUmL&pHJ|f!qnV-)+b`=E3c0$9 z(nkCzlmIbMBmlVd`c|ZdS-Nn#q`06Vm?_8Vk>HBJiQ)w2o6m(?j)fdyYjHdpA}0!@ z?*3KLWkt9(Fzw&*npyP+-mX$>;+XE=n*3-{Pnh?2>~qyhND*A8i1TZqzx78PqkybT zXMC1j(j}~=Ov)~)zdu<1PT7M6Pdw3nE@sQEg0Ck{NB(a&pzDH$KqoE@7pZaw_56ZL zuWqi@W``CIJu+L01rN5lBDkW84u=PyffqqMgd<`rXk4Jw$a7T1JNU-){X!k-vh<4R zA)1S70lO7aC!cPkv5pcY5{D|sLC@6GWz6b0$Xt7+Ak5}{!xlI;e5IVq!rd4WC4n@i5+Tcz}o4t*90XF{)1 zSB6+=^%ZkB77&}r|I7~{j{DwS6n}thrR?gU@a6FJS4I>2!sj1glVZ=b@82~!PlP!_ z3n?IvI6^eoILVhd|D+a8Y8NcKe)AlMK}DZSyOLOh&ava4AHv_q-86G6uz5d7^?R8F zV`?v2gnS63ly+T8AcTadGI)E#cdZ9M56-}x`%2$Q*oOjL06t^?knL`uH-1QgHzH); zng6YHpxH6?xnS}MmBQ6@_P$~z)Q|^4mnN`h?J{-GObGr-^4Wg!C&!ukRV!PmBYECL zrzkTaxwKL_Uy1aF4O{JdK;&pS^e(y1zfC_agc9Tpi+6vG4#*Uhvd}22c$fd93cLvp17JRe+*RMBtL=I@w+d<>lG}V2-pIe<4bs^vs-B%G~wP zXp@{?ms5gBL-2_=;4f$NExdHll~SpL^ta}}3qctz>cz8A&1Bo_;_E z5->)C1W)Ib(JL~xJ9h_8`q)2p8-wDbYe0xXr;nl$8Lfq)x8Wc7oumF|{OnmiLC@to z;*%M?vsZ>m->`j`yxPtD!bUD)&SvsVIt$(O(O+YZe(mJ(vGD%Rw6PvvvSeydnob5O zfVrVA+-8=-<@$HQGw7ED*7TcTd!~n4!ui~gwAZs6D;tshhlekB(Nfi=bx<`?Ajs#U!QS%VhCJ$KFyu{;q14 zEaa>r0F)~9y!|3nJ9|(&3o2C~{(Rv;XNtEj67XnfMBlKTwsKa0@3+{~9eXL#X#Gt; z5n*z-`_~66vrB6QYYArDvo_A}((<=hQ}a6|4P@JWjPxx^VOGa_zIlJ8RyDJ>T$Ppx zj{lT$fc3cbw&{I*va1E?^pBcWUxu{ybD6;~DaH5iUi(%bu%X6l|FKu?ZW1$kTB)IW z@5mrQC7B=Z`#Vg7K#!PD78H8oF{LRQ+59CFMeOX-9HZ*DW|SDUKd1;~7yF-*8fKhWbHfuVm%TNnK$Z05;D_RsPTX6>PpI@G31%@w7jtkAPkvM_G`&jFf>bdO# zG17HPSezo*#k<)hRR@Q3_hv+suL0f#4Zm!n<+ZXxA~%7))cb=gBgYkDudI$g zhD@D#&dT;1dBptLK05!w3!vwea5=W9{x&4}%{k|ldvPY#z>^E9FNXC*Nn2B6Mfz1^51lkGU&2LEH|0p`7F2Faoi(L&ZDW6 zcI`LzzIp$~K&0e^4-UUa4DMzeCi}D!Bh;gQ$6G;vUAsVgg^f7PLWm7{OhTx7oHxHC ze3ZGP{cbfUE#sLt;8`0#mH*l@O1XUem|(>+a+RgM!}R=@h^y};^UtZQpK7;;HlTZJ ztYbZ&b}%F>sM9+6Fvb%VN6QTRctiVmsN*ngtmRAt-r4tJ6R|=(y}<9+Z2l}Z{^u_X zc;+s!e#V$LU(3=M#+wX?W}aQG+DH5OJ^k`mIoz$`<$jR2=^CA#3qi+Df`yl%OF}1d zC5dyEfR9B(sQPP=BWont(kHEOjbreixDQnWQwGYyJ@t|R7k)&SuoiNr+yKF>uwrsn zL}98dUC*$Q2HmFf{eF4IVTEe#Kj*Qmiue&foX4eNzaqvJPQF)mV422xdogFM)cr?avJ4gQW~HGj-u zBmmR}*m5-h?!{+OjWC)Um7Dp6hx5;*tI<4{D92Hg9y_tiM70{6Rhxr==x}aXeUMk& zkU_q0+MSB?i^Mc#;i3A4M^|t@WfF>Z`R@0#Cf(b^a^WsB9rT5UMH0eNFO~$AA2|r7;ac9$lVK)Bai~YZBQ!$L^wfP* zlBL9edAlWtsr@(sVjtXBk%WSk&9^a9|7~-Klnuw>`u9EWbd~i+o%L;7K?oZY>a_<_ zQ&dC-i|-=exP%k3xObmK;GE=alTY*@SEQ@y8~(rco-`clwf$0^NLix@6NO{nDr=*| z5F&LFBO+ug8nW+X8`+YG3eicnlBMi~%-FIdDY6cYZL%|#nfX7z;e^h+T>tNH*L-Qr z{N{e{=ib)}DCC`tjsPnkMpb+Bt_`OQG0?oSAj{t6=}RwOKwlOrtdO_w#LZaln;j_W zbDT?6mzTHlb`fq3caJ^5e3fKJ#QKrr)hV7r3%823&c3DN1v!|Ak$0&dU`P8+5w?3+y(4q<(kJ`f+ z{_cxVy9)Swmad$sA=eShnwA+D;}RiKGuQY_LfEYow{M*{ML#+4ywtp0p&0$Kj8Yi2 zQkr{-@)@dujolTx57yCacErZZ%~S{T=l!_rT8JvKpr@8t;~shB776{0iPhrn=OPu_ zLF=IDI2SY>nIn(pRNm<7V^bNmc?LnAsgglQSKUJI^d9!_@0;~J^y!%aoR3J@%DJ}C zQVU)M!N@h=+rdoriwV-R-4v@fah$Kk7)L1FG<76L_QlIjAMiKh>A7VTBc_gMm|EtT zK)Hx~W^bRFx#-RJL1OG0a|Ao!0$W2>Z>DBqK)+r}zE`+nG zrX%LREK~_Led8;g3+7mKbmLefOq;WtHM_GY2?{ix_#mcm{q*RR#|IV!DxnTS%NDbVo(+5^PDwqAcXhhi7W6~lIA+$0@#3= zv4|p=Po+vz*xc~Vm!Ilzss+ZQ33-?o7#E;*ct2}@IUWp_-8glZWk*{@8SBQHnw+~z zAMTvt0LFRhJlys8VREW%u3KAKZf+`6g$k0k0vy48k_G%}U33?1y7N-xO+_E@buVy| zUFAv)gQRep(>V#E9fhRtTJyeT$$XJ4LmmS%n0;?3#NTxvQKCmb`YN(xmLm<1U*hxB?yQ%7vi;uj9Q={`wyz+CZVIhT}(t+cGbcJkYK$ zOAveCSE!g>yO7KErQ*lFmyex-*wL~cP-SyoV0`;(N2zUV3(0wQShLg#fByEawDZZ* zB5Az$DribLd6ejqnPaa%`V4lLnYf)+!{PAfb$daqbLe7nHoB7u$A{0U_l@9{oLO=3{~yv%I?@lnT{<5=b-=-7Z{sqFj<@^_?cf=P2SU~n9L)57 zXRD(m-W$}POoMD4ryC!#NuZc{Y-M4>dFVZz(D~0kuj9T)P29T^thVsUpsV9PU72mC z7f7Lx9w*pV30FQLO6}jz(iC7KrRj9*Wul|T_inFTm$u?V1|Ks_{mvAeEozeWD7VBB zXK>CVjch}@m-1(0fn@U}aNpr?^%tz}FuxNtCUeay%Q&Y_%NbcQs!SqV=x4#3dyudD z-1TD>f%rB|{0mnYSmlir4ihvpDL#XZ;*L!#1p{9|1#ZWh=8@6fuFq}t*6~pJz(+)$ zbUn@EJ&g3QCNRoXWbsN$P(VP^uBI3Bp0}@q3SntCcT+h2pZhI zlHiuVjkt9h)p$5N&wqN5u0xqn#|xN?DEiNQnlHgpeFF6yXCz-r|5au;qfzA!lmG& zcLD<9c7>-qd)&TWJI)P(QyHgQ-q;Mybp2N95>7mDmB&|_Kdt}DoKW?B>wB_;_kuLc zAp}vyN|@_NLueM`+$r|^EbR-2={*wOiP#_WiwTED#=f&s1jWt=|B#eKH|`WMC4NYZ zJKOKGboF`WmwCLU79!f11U>Uz&EW7!;PQcpKnW6(v=S?lCJfmtk|>K*pK@dvk7>@0 z$u2tD(ewrn?*8_hwVx{5E(Y(c!{~0Z4fu zE3m;&1IAgq(|U6UQK7L6 zGD2M9;bE-lA0U9Bkj!O?6$x+w$bW+lQ&ZPiQN`gaVJ36gncLNpfPgCS(SAy|cE1%8 zHb>6~4aFJ`pKWRX2QY8v1q@wBC6WkS*}-Vns*oz~^9s%G`HI4bJ=!TdWiE{vt{Yw{ zz7#1DwsR4|?)z)yX1{27{Xz|XD+3n!lWnGOyQwgfg-N~D;U=RkK&v)=M$s&UY<1Y0snS_Onhc6kb<*O;~S31~{`AQk5; z|EB$+A@9O8&SV|rp}FaD72?+<;- zMu`#AW?d5^9kY4?ZySoWPRwPp-|lL{*Oyvy6u=E4xUyfYft7AQJbGa=?c+s8Ha6As zO_qd}Ks!L*RX5hjTfaZ_FunRK*;=Fx@#~?Tpq%Q&X^4v+_EXTJiUTa|BFTw%o2S&? z7aDFptM}#YlHu{9k2h9Ns=kJkE15oimog05^J1AYo|nGErRo(fu#U)knJXRb+S%Z; zIzf;%kV-=8n5N5F2iO%|bkxQWZW*|CI31E(fIdMnXQ(}WY-+?odVrYqpF)i0eOq8llQ%hZuono6x-X-;@ zbv5L}i_qlIUqCo6(BjW6+-6ZJ#?taOO8?53JeH}Z{EbBjQs=GD81bH^H{Qehp-l+W zSTtP>A*x;M&InjG=QVV9R?O6?JMZJcb}e=|yjeTW)RvwaJ4AFY@?!2txn_^lTO0#b zL)*m8UWsz`_ytmM0ZYXstZy6D^j6a!JaO)NmdPB6XV(PO3OUt0&w1pa*(Gu-SEhv7Uibd?q$-Rk-| ztHbo$aS=`bD#kL2k<6O3+FteWl-D%N7S>9w8B~esW6EygxtMeClX%P#rhEl>gtTwW zByFlN!Wq58y5EDzUwrd4nM=~4G|3|gtrh{(KBJu2Q zYeoDf2Vw~9MM`uJZ61B`9c2G}5x!RQxnioD`9rmw5>2<*zz5{%T-fx~6vJIYam^ob z;Z#>RB+O<$b>+a(rMMJ+jEW^+DbFu7UL`ptP1Sj+Q%cq5l2lUz(xmIbYO18<#T)-a z7CrJxyw(6Bxf$AW8MpJON&`LWPOA4Au?_>mHI+YYLW=#7udDhlP@&72dma5v;znL)G5!pTZx;x7yfGhgcE3BzBwH-+x(GI>Dwn@aAxPm# zM*IuzRhC`l11CEgTx%%hQL}ELq>FK-jjK`Wn#|T^w>%z1KRA6C)%<~W)1hiN0~JIq zumNHR;8Gkl^P6@}IJsj=+3NYY>blIQ27k97u%JNvo@H$aDqS=1p_Z4&n(r3MRQgI_ zOQT6|g;d%G&+ArE65{THTTu!zn@*T4pGB80d=&t z*g$2_wUFWCd%Igc-)>2l=XH@&vzPaiEk~mbZ43(B0EWPP=Qn_~)yCG1%)|4cdgFfp zr2Ibkt8~%PCn7(CD!}a#l5$*`^egWW5v&0VE~X321hSOQ8Ob3!!^xNMSy>S7Ex#Zy zL^5*8yyE!P#_=5RvTn#vR(8@)!^6pMw?LP?+byi24duPoZQodtNt~9t>`M&?Lr=Y- z=eueMTAqGBb35MNmsvLeFzrZFAoaQR2Jo8u4#TQ$hu=mC!@YqprgHAeDig_i_|~tF z+%BM|UL^B2xt8ds8NrU++*FsMTGx$*nMZnS5QQ6v?B(4Z*&`QUzQkRWB2WA}P4WKL zDxH%v?#(4Lt5X+K0x}ufsL#{CSkmY_dyrGmPb=sz2RU8=M9RzzBMR)ztP73)X`JaM zWnWw-Ox3>5&zcFaz?^*ctG%HNA30(8c7j4wCX_ifv-5S6Ajf-55~t}*(}{8_6+`23+y0! zHGoFtRpyaCJ#S)ya4Xf+SXkm+X|3n2<99*2YCJ&aS6JJbqU<} z0gHf@?gv!!YEl_?glyUw3R>szxP%xKpzrOp=(Zu{uKl4M;)}y!#V@J$wD7ASlrKL` z62fF|!YHw_e!JEj`uZo~4$Z|@pMLdxLIskKQbqJP=La+xY_xIO^_(^>F|n700z!W2 zDctGkzL?jhZe^FDTUqyS{>`myBf*tFK(??!2F=0|D$c@ho{lz2e4yOX`gsW?8D7$@ zx)jN4BeFM69;wn+9BHBX*HnUi>{3d~0ZOa)n&@&umS~iRQ&WodKNNeF&hIQh7yT*6 z#T@%rE0Gw$n5iZ5aY9VYoUQw2w3sl5uk7r;H%o82WLL)bKd^nyW@Q|#2C!rJ^bWUm zSo&#OB0VwlwHTFMH?$b#Qwe8Wzi&K1Ic^s=;->nqI#XG)QUiEx)5pJv38+@h%v8=j zh;TX5BOm{8uFK#l7P-UCXn~XO+j9RA-Cx#cZb6(HCDZAoa1}|kwlNE{H;SVx0=Sgv zDM{@+fTtG%d3q$jD8=*ZztgF^6Njs?7UGzYM$G?t!0+7IH*L@8Fe($Cv~1c_Uf zLR6$^+Fo`W+*iH|j0l)@7-W8mlmSV#b!UEJN_9RZW-s9G?f1Vn8NLH_OFg10b`n@_ zy|^~jJr-$=KX-(Paowu-=x#B^ruGwweKO#*oP3^|?@VJtet+wwRQ~k(XQMQsT}cEU zRfUQfXE7$eZUsL*sYIlYRMvlytJ{Sjsvmwn-k#J?jt}y@e`+E1;ubp{2rW^n&`R!j z5Ru5|nTIuvF<~YxO|RX55k*~PDfbs6`=?)4S<=-_+@&(s-~Mn)>D05?9!O%|@E%BT z`~XGpw)riqK}>~q;krMAx=M7eRGHz8*VMvv1Bwm4<>$3;{vK0h?4tVwQZ7H3=aJFA z%pwg5dS24)GRO0)U|beX59?Dt6LES6gC-- zpm30Q;`)V|UvkpRv6sV<+W#<*s-jM-L+<*6z5V&y{6-*;fgs7k1{iqS{cx~G%>_DX zg-l)DIG%YV8xMBTzM04y(LWv7b0=Cl_qZ$d$hlW? zKynpm(ZDM&mgjPSHN0J`G$lN{{`I@EOC?fnxjJSGA=L!!f?@5;_vbxl$=HZt z8?YT)(e3q%M=urxp&1S}nW2s+7@o$cY%_Go&zbH(_)`2kB`aoS&SLE5PZJ_xC~x{? zcFycnqY^8&V=XKTJg;)i3PfSo80O713_F)MbQS1LnLYqD5NSiv7v*TURy>=rNc+@U z(N+N6S?pK=r@a=o&S~7ROU(Hda{AuF+e5`wDJ3hd*bw>5l?#h+(l(`H!VuK+c+?(r z;E4|=xn1N20rGu=1G4M~vv3}Y=|gR3K2Fl1W-}|6c&r(p0&4lHz1PG^_K(R*gD_~t z22jLP+&)2~B5Pwli?#X!VR2jZ@yVgQZa@;*?`O&%-(`e>*a=9zfY{c*5Mg_?r@;A+ z-a7?a^BzvOlod08WNz%h4JnS5$Y_Z}x;vW7GKrtgZCG!>&dNp<-Vhx?POn^(%IrdF zc+Cd+LCt-@vLsJjJX@c??6*L}P4c5meKheiFWsWdONPFQ=+Ag#u*yujtk6@b794~r zllc?{gI~G)-8=(?d0WV4C5!Ox1_}vi;^#mUyHbpLB2j(#ZwY~5tl`Cxzr7NdS6M63 zhM6mpcA^C~RfkosGJ z%&$fp28Y==bqaiYd&c z+&up=ZirMq3V>Okq&AVqW9Z@!Nw4fzDP$Kz-elPnB|35DqWr)ynT&@}krWjP!W$J# z2duhLzjth*Ha`LJW?wHmFy3cavBir`L|$I^02=&c5l{iJ(Mv;{QjKsx#( zJHw>uNd~!OxtV8^Rzu}W1-r5CIR80~b#qs;f{Lwf(5>i`#>uBZR7dbPI^;;72cZy2 z=16i@PSx5s9-gn7(UHcC;nf3&j;)T*hDZ|{SjkkRL97@hr|r8sA?q~;qhPu0y~tx~ zJ7Lot!&&B$79;Y&EqDfNTvB}=LH0yQkQUHBAj0dLUMwy{Da6vGyFv7-@%YSlHRtEC z{4M8n(Zh-M-8BIue4<2mpAzmAA@APeFdc=;7gEeV8nm<^A9RZW)IRQK?ky&qwHrMm zvKJJm{k%jFlwSgsgS!INTLM5?-zsW&@z|*dUFwHyb(5zVAxZ`xqL>kRL7MLvRK^!T zlD)mkd<63%ZkKKJRxYGPpZnFI`Fro%WTtd}V_}^@e0L^tN zd(Wb3Nlz{MI*#C;F5>(Xl}}iCJyP9SNyU{5O(ICsgMDf^Y;-Nymf|!p-kF`rFs|tK zkiLl!%_0@CXP^!Cy` zpma^A4q8%K58s9G zv-v`txV;s!9lOmzA8!=h{yOM-HeXGLTuV4Y9f*=CHj)KxuiUcB}VxcJ_Dpe5$1VRxAEm2V;phQLKMNmLM zDT0KSM8Jr2kSZYwgc2cy5CSA2?QYcfeCOQpo&VnR-*N94caOo?gt4>N+;gtA=A6&- zY+`J!Eo9bjTfb`6Dw#8TmF>Re#aeN&mQ2tGsdxX4B^Pt?V$j_cS_bn5@p4ZpiY7y7`OnN#k>7G*OjcfG}3~#1J&>p&d zyAfzm@3uz8Q;Vu~zkVd+jAx)OTkDBJ_!^_*261t3HXeAUaK>uj7Id-Ku8%~!7z%Y3 z@|{J)JPZ<+(P&7=%Q}FPx zXQ4eUX00Se&^fg>@+p?BOkN{wcvi)4wiZPztX^NhakA$;q%=-&{3476SARWfc){0= zur09MujUi<8B9n|ysG=flGetsP92wKw>I_{>S%f2UB9`IxasXk95*rt&Rw8Uh71gA zr4v8Meno_*j3;chM1DW2^;|l0kWEvFMLl1AhbuTBs@{goEMzt>@fV8YV^*Hv+oA7u zE+WC~;vLA|gH6q@TtQh$KD}s{WJzDqqQO|QkxSaGxn)r^!Q4^r!NhULQy1|bvUz>E z<~pn1hd}nprV_CdCS#%(Q`-RDVE$O8E8GDOglC_juR=A}{AcF0mwJaB7iDQJk8bz8UuF?3Dn2`yMMfEQor zG>6#0D0WS?XJnh)N*SyQQi$+6PaI-Q(Gq2i(3_)F(&cLTAK~PaD~{_(UOE!87;dN{ zmsFCL#!nk)YSb)EV+Dk{E)E&NqcYBx7T4eAb3^7o!MRsWBcl)vw*^Y`3)CItX75J2 z>XagAQC6nddM#+aUcv?H7p~e~Z#;RX_F|!Xk78Z=_GOBOw%9BFmeB{%(NC)Fx~e`wbC)yyoar|GNS|Y?vy084zzUBDe(8h z5x&lQw^^u$VxAk-g)s3T1{^AYUOUqjZsSc8poS6>ECW-{q}px$dNz; z{lO^b_-NEvp{GE>It>fo8g|gM+9{=AfXg0NBA6p}E`i7A?sDQ#H%pVgi9R2uTU!-{ zmG4sT!Ggh#r06c?{pqlZ{4kJZhJJ6G9IU$&EPr@{cnUhNCTvkn^Z*l%B zHd5aZv{aCl7GhjH4|$S1lr*QTIapFg%dW#8)t^A1S|70`*$(v9k*#0&1Lq>FXK=DK zOHW^o4fLF+Hm#?jVQ8#^ zjTR=Wq@(w?fJVDQXhgiZUq3i2dQ%KHeCDl+&9ITa{&g1i-O=Lu@{hou&9V6om_~-Q ze5!r`|MOU4)0>*(*-Ntdl?DYIP zXPiE|Nx5KPx?X5k(w^^vMwJk3uK0Nm9h$GBW~=s|$Qt^g2|fjy%zn_?hweFI?pqkG zWEv2Vxjfj}maVRt36|+ves~7rpI)PCbq>-oQm%TR7(I3*_~Tc!eFu?$YC~p{r&uc~ zT$w|=p3%LUGtTa^26Z;ZjAgXz4(9%t^)s&J-)AWMMAUvjE$I&Cr!QSuS%~9KF)mUA zV~^a@H{z}RCf6a?4U=7;S~U!Gv9{)6ibe1bE|n?zi&r6;AuYEBDf4aAYshC(oHbH+ z;5u*2oFQv90s68re?JfTjgC$^<+UPn$x$++gj&?dY*F5ZqNa(__J@v0l7DqK(aU^hbC=jAoj02AJga6M{RJ%~g_!)K7qc%U!YNn@m zY%!1V-S0MYaQ0C6`>*|W9@OE8=|J~0;52pXw4qA(4wGM{j?xXSByF&0j!wX|Y(b2* zV)=N%)9DUsYkib@{#6dUUw0VgKu8MVgi7>zZ!A}G0t7eL%+`-s=RrX8~iF?E6H*?Y$*S#Mc~l4KzCxu zc(wYkcs908oFz2Q;$e|kZsV*-Tam)O6b5@lFgLP2Be;nHt0YFhcC)pU30#U!4Iime z?nO+U!}42SN)#=?-sbl!S;grs!@EN=JWLXr_FGd~MH6`V_mHnjq}c-Bw4r?Wc*nrs zZoJo|487Ixvh|57=ctV_CllwCUcijg*wwV)MX?Fk8;}1rHy8AhG`D~#`*5tMur03Q zMqw0%`_*7M*X#&|Y=9dccFn^^>NU+dm-ozk!>-Y2upP zYx-bH#wlLa|7jbCK-yl87slYZd%3p9(E{RH z8XwbimSLV2Zo5qy4%kUx+hZDeEfc9zcJu>MA8LJPwDyQwtF?U#3^Xa zn1@(_F*!Xf@0letxGGk-R_tz1cUrwC2jUqQTJ=;b>1>6G zg^k=wOrPrnReQ5+k*9A^H6B!LedlMuet6QnHvR^yOZ)^?z-y3R%HB5q1az^b-i4nw zJV$q--n$T49cpC4J;?1n8WG)E*7{XSqFm&5`;PHg`p3+Iu{&-oy@qOxScjl0gJNYK}D@Sz7XYlbgcL;T+K7OzM$Ql3ncOV-hm-CUS!+)&Ubj4*d@D6K^0Ye&B z|C4_|zJICuc_k&Er7ZVjUMTPWCog|X&o!TV`>PTdk^fTy$b*1N;Pa3FdF}AO{l%4{ zgN+n*5|CVwIGejXfOm;x+;)|F-gW^26E%ssYH7^NKp_KBafZCiZN!T?VjR~-JO$lC z5lkAK++F^Xk~YEd2@NtH(+`e|U1Gq#8f*|G`ZY55%HC}on${6ZxbRk`+^-Yxdrv`1h@EGl5-F^d@*gvPO(_SiWW z7?D4ebIsld+($+Q=IGYtgR#(b~MvWz~EcBrcr9c$vARQ29-fOyXC*q1d;*$wV@!l{hSopeKMO)%Bn*2CvV<%4wz zgM&9%I!j6_7R7R_R#^wIsMomqaTkG08iJSlU1h$6vV$draFbn_2#I;QSd=%}?ML8< zt7*vPwO=NVm5aP1T6y{4{I=eja7=4dOl7V!r&oW*&!MT*fSFA@7uaGShw?jCtG#Wg z!R`Iug9k6xIb!$hdhXU0ahBEPYZ2H*Hg!SjWU4G+!sbW#gVbx(trw>h4HAgkO!`aV zo~^GDQ~oVSSFak8kJA84!U{Yk+eyOqEvrU}JElF}6s?w(5sm#V!3&IHEEi#}+*xzF zR$FL>fDO$M8ovc(Iu%>mUcK1Uu=7-4=aD#+*=k#FWSprUoCJbL*9SYeoxm5Ug%uIz z0(vHn@3B9-dws$XZX^6E$KQ$7r5aryS@7aDR-24js9cIe2_ab8&o9A$t@^w_k#{LB zMA-K_EVOn%xaR)O=iw2Vu8@na4y{S_^|Ko!m-<5fCiZUG(O34PGs#kLc~rn+gdoHD z$;l-(*sK!k%Mg{pz0Ddx>5{1j_sy5taKCx;uB+$0$>a0J1^fh<#ZMIn@LSdL8LsX= z84Sjx14Y4ISkL)@_19>!Q~cmfaC>Aa}4Nv4Cym|7qI zWdzH=t=Jt-cb7}t)IG-O@6*wcqBs9+H*3foEKKW94j$D0-)g{u8I@%3e zRENgx7=1~-cFTW{`8;cAe$2MR5%T4vdHRh4y>I@?sLpfCEwOgL4Li%S&Bf|vpEIm_ zy5XLuXmM{Uxr4HMYa3?I=aC?lng?iO8*ixs;H^G8p>)+Tb%ZpbP2E z>Qd%nVCs+6ib#*1Yp%|mNTyy}X647Ca3Lnbs2S(QP4Xw~Z2DZnGk|`0J)!Z{1?K`C zo{{2Co7Raql)Ka{zjM#GOzZVqW+2{JDcF3$FAx;tGtK|RXbDi>nBs)*4 zVVA`0bF<}f`_-gZ3c)Y%Q=rMI5_hq(cuZ1MwksAjqPtA2#N*Ezm(_Y-yZratc$gDp zH<}Sc|9jP4yM5pr&yd0raqzrIX9D7Z5Dp-*-0w-aizH42o)ckD4V(B_eTUWMa`2f- z7wE0z5B|Nm?JPHp@^%BSOL|uz3zBnV_)iqY?Jc$t3zk2~szriZ)*&;KlYZUk=EDb%0k_BF_!f6L740NdsZ9h>@;Ta?Iug(r2 z7y~u@_;!$Z4&)%#PU63TF25nWf8zyBX|4bvdHcY6r+JAFkpi?hfR%>lr4h76RBeSU z(L#QlP1LjOst_BR^i{ zpoN2Idk%6wA?tvs#g(UtT^U>01=@mNF2Y|GVDTJItfIDyJam2+^t%=Rn}z8Gp*RW2 zOG@A$p#4))TzjOlZ24fm<(>g0vb-jIQM0^ zsEf1Nd4zK@Mj!?WK7-_o+TEGS!Be6Jiv%(&;(&h9^PsVUR??Z@byD#~NJVsGh}+=H zjoqJ3#6EH232kAn_g!bvO>scE2DqQ-eO0jfi3ftJj>zFYbmcN*p`7PvdCH>mqT?pn z+^E*$DQMvcNFht`Tulpi=={D49xqGG8y6;>4wFVqI3RLEDNRt3jwzQ?TsyYqRxLRL z)Lt=1*RXM(wfc)XyWc+n$M*bP5 z_v4#G-hEDicr64*zzBgwwL_e%1BR9>8TLwc4%ZG#5K)tC=>|csjqoCC1AcA;!Br54 z4A5baFCcIy!|IkFnuSG1zu4aPT4!HYRtPy?D-`-Ch~!(4mr1Sa=kDtHZt5aK1C3QK z>eC%zc9^VEoO>*a6euRzi0=fJ3LV7Lt_N{UK2F<+p)fC`2yexrk@FTsB|w`YW|M9i zJm7VqaBsL|bfoKI%BBg%eECjlSj$V8@fp?HkMfs;vzj)l@SFb{1tMqjCvx1;7r}*` zQ3r`{&O=3Vso%HPrQ?-1xZru50{GS1B%YwFO}by6+OvI)!3L>;}lAn{{=n<1};*wt@+my z7Ppsat!W`PzAbTkXZK2`FKTh2(i1+t9N%0bUM>Mi4t?*`7Jk>>gLa0Ro$1>r>e+>w4;2(=JfGP9WlA2)9h1Dgyd2HuM*MdGHl2wua zz9i+=+}3NA1d5){uX!cGE(TYz^I;A_pqE4%q&j+jKfh2)}&e1$(Pp!R|V zzpU2I8}Hb51a&-2Z1x;AAA=US0k;HZp{r=ZRSVdG5g)kKS^R41EyU!lSR2H=90}qv zHCK!0*OJOK;_i;peBNfF^+wr!SxdbWvwMCwQ9tVXsF&D8ypY(py;i_Z5szmH5~wiY z2fV$Hewz0&m&DZ*74t0*=C#eA2>VcW^P?bS6_=$ZW&!ps-70EYZl?&^sT`!3lRyk9 zt^;yTpS`q4%BI;{X&+CYahcez81tux8%^OQKzRw?uT^F1h%Y@(1RpU^SV7O5dDNFD zPfm9_fYX3oCyQw^8>gsUqq(D@PPjz0H?z&F)7x>xCMA#;Xi|W`+?|*1f*=zB1Ju;f z2~Ju`T3{DE;^42odP8fvJm^raN)>W8D62?vq$zUg_?6=?*_AN#z9jKVQW~$pFZY#% ztf^0f;eKrSYhvCPF>Zm_%`>E(=D{a$i9~A4BSGL(>b*u4^^SIYP9<}!8e{gm;r+J*KH8uNLKAK-+Cm`jW82*iGk}H@ z9MW?sjjCHG{^6w-N2W_DUCSK?h-p z3}2g+mQRO0 z|7`aZf9!E*0hb??FF-&hB3Qk==8lt{NiT1G7)wT~6T|jyo|PMZ);u7OWfm#9+Hph0 zIbX$3ap~2VQ4KY%AEKK$1iEu=7j)ulxwgVV^x#)uiV z0;sPN{XW9`s&*`@wxeAhWL)BsNV%;Y>(_>LOK2)M%g=H9s<>|W6-#mL6ccaFyB_Er zJ_8u@ozMXoQ!@4qsqTvP5k*-w?Qi>#8fn#STy`tmYLp_3Qx+R62Tqb770H8GG^5^= zW;#0PJP<9W^={M;9l?Qz?=GKyUyG!i?)GmvCW;}LV?k3*DXIF8siVa~=LqKfoH;Ne z-U@#jjtReJtA_d#_h3m1k@Wigl#6sP-IEr^E4&gKTAPCZo;8UX+wzY z4_1dde;OI+;e)0pohBpqAE8IEa#Cn&Tf__dX|~+0Bz$OruQY+E{Kcq6CJkY=3E{BY z#qLRznnR9PAE&ujklxD0cPAa<=sV@Zf6C0F95&wBbA0Eby>uh>n(M|d?4`Kq5E7|R z!9#B!c$#sx^U#rlN`yvdngY=G5~UOABXJMrFE1cITWEi+byrj+&Jy5WB*i|#1jmBAI2Vx^lqN7(J`T7Upio9pXZj_CEX|F}t$k;< zfXq@S=tXKd)RD~&K=0RhZ>QU|_oD)@H|HV4!SbN6REYJW&Ehml-0Bc;zRQ~l>#>A# z|1!PmN=+Wn)@q>G2FAsQ-Lu7G3(iDzJi)z&%%=xglimVGMk5nKtW8joJx!tv%NWe< zB!9;dNmYbZ_ff&N?R6ywl_e>ZHxy2KtFHJ|7IB#9{|TVWXG#Vp#AB36wQT}W9IED< zXYq}9l4RfKIv;&P`CT<*Q|*kh?{AvBk=Ery{m+Y(^75=svit|C3Di+w9;mW+W-s4^ zRz0Xnxs|m1@OVVTjg5oWY5<_1xFrT|5>3(m8J6u>9MKXC7@ejZ$Qgm9^O~$GF{|Bp&5=E z;K-^Qkxr>Z`&7l==)k>4E8U~-KBs1j|BBvYG_mG5lW;3iHY2>lDBo{o?bI_e>^igS z7XY@vPvmJla!QqxnsevN?Ym`6{G`Y`DtcgBI&nYXzgED11c0yZc%HT&JUfFLEYse+ zgy+%mr#)#(mTD?Z+`%U8E|3-N(o@{A#~s<-K{*+SpXqTl7|b}|uZ7T=M7}HT4ceDV zHl5s0yIgL`dFJ03A7!PxjO``O0{R~p`wux`QRfvm7X$}czY(8u?OMrD0DSsU3rrpE z29>^X-Cc3=_}u*(jwziaWM0yq0XZ!}jMhHMLi=yScu%isKgCgTn&T4Gm~p^Zjw38S}#0NFzv75G?vPC_LW$KON8s0Du(evz?d+ zSGJ@z^$H3g3TgJ$Z8d{?VcI(AwCk_>M14(>SSzdAn<2D;@U$v1A_xBO^EUu{EJ&h! zl>%lyFF&SctGuJkuR5%?O&(<7QH$7jDXnR|BI3VGs^8wi-$^~mcV67MR|8yVwmhfn zrxA-%-`%M<{vAM3e$y4LE$Q<$)N7yigA*`gn%naHFs_(&v-Ez07mTBq{gS$=IWCm& z9(ff;o$u%-ZDq1rqNY_!>5uoRUJMwWsCn!@k4W7y__cZUQZH_yGRTg3uC}<$SM{xt zBwaXG;jr!Eo(p$oz^zd##+eh9vw06E?1aGyKf})1(4kC@ld01iIClwy|5IHx2gahz z8q8*cfVPMcGB+%9Cv7T$U@lB1-Tkz!3N2GNws?~0Xo9Hq@x}@nGvsYL$^Ekw1lcdE zAxtV|C`nXNxbdf-jSqeMl)LRgWmv=^7>2x0=<6B#aHM*D+>-*Y#wKj%A7$gX(UqTD zK)wN8YO9z4ue1svf$ORePBIJgZ5{83xX1MEh8HA%L{WmIeJhP4O4KfwTnW>32 zs(GpUAGM?FBck4e{BDQ3ropqu?jfsvs*3}0Wx+ESOm9}1Oe~%3bi|MgykZ#D1OM`i z56f0|JI7&bZ}c~_=UpFM&Ece4bW0XWxK`c6i2alkBi5@N>)_=yOE0|hCxW$3MPcrR{0bhTtY+?E?Rad(>~)K5X)USQZu6!&G#b9(J^@M?%Xh0PLoISI8mp8 zW=d}A_F{zPMgo=Z$^iuDF4b(lMX5wS`GCc^(|^P)2mXwft08eeC%fkU2xQ_IcXdKw z^^Nn8IUJ{s_#b(`f#Qato&BszlEyDm2j1-1gg-2$MXGF%L4B|q` zVQ-Lq(bOHAeyfniw*Y6$z4_EpthcSIbjMhIcyKLtdGaYWgOkR$3uCt5#O;OQFj@VM zHpY*UCGhgvk}IKnE-Pd~Qal4@bIW%9X(e8>lUF!YpT2+~)Rz3xu4~N!>g`wnq;6i>H zui*>bwCd@3v+fTD@HVoZM_%H8zUd6WbhweEGaLB{5*+_7lUHu!f_k`MYdxdzqUZYO z^YrQU(RP(yI?C_?*t1AjGKG=P~qu{Xh$)itao#TykyH*Bw2 zzr*^I4?i(lNR+j%(b!SvjBq}vsJLs?eMXHoQd7(Sn)u<|gODKvlrGfbjACC)|G4F2 z^otW`-!LOIR$i9U&SUd8tX=709xw_;5RY1$Zr3M2MMLHZeR*){q^Prn!OQebA8ir| zjap3X578y)RxW39UCGAB7uuCU)HI?EAoHselGAE~>oBz?&ZcFgH)o0?ZYUGOhAsl+ zN|MZmq!^Eug@1gZZ~^iqdO7dGS}E$p-Egc-V%YJ_Px0#VAp3P2U&`38+jPK{jF>ge z*wqqua?b!Y8&@L8^k$YI6DUGSBoJ>a&2vvgH1)sf>o(l2l75USx(b^!i)Yy@76?7% zN+P_K)oD+`<>~#J$G@tXuc#!(Rj!<7b;--PN6&e0hv*8EArY!8HYWu_IVZn_2yFr8 ztsA0rf>rwNh9hL=0`}m}I(%x0z*JLCx>U-G9N*Q(2PXNR_4kDfvm&?ZXWqPCO*KoNlp!SfAxuwTV?Hb8=C)02`!E?IlDy)I= z;}mf~UgMfqS0r}78U~oJM;mzIm`3*(hI#h)Ct57A8N01vWaoyR?=a9smJ3X-N7m%g z!i#@Y=>};J0UGsz#P_nlUMs)Vj~?NMV4RFk%Syg;r$0_oswK%pX4yjSw0@P~*_Rcz zJb_+m)`3Q?DQmS1(;e*xk83l z62qnl{H8YJs@AY+O6(uqU}nOEJjkjAqjqP_2_}YH&(LbWTbF@XesW5Jt;af=nzJji z$lPSmSF#~`is5eJ{#jWzxrhNsZ35Gp`blbB8!}jaZN0m6-Wqi1OoaxZirWy~v-y2K zL?7F*^D=XMtTp>z+q4tQHeYqzAiC9iMCqku`|CTd(iIqDy;o2~4%`#@CiAS(AVd5W z+a?XboOi>#hk&%|7Lj%2psDp}quTuxMY)-~7Y-_E3dM1^>FcCu^gO zfLQN+=Tie>L`hKw6^9z#B6D7{hh9G`Q~=d83NAMJ-XMFM1YGML2EW{}7-Tq@53imz zRr*Kkn3>=q4{G0zM4mK3lvLw-)+LW0N$(~n*m8l^=dY39N z{GPpP=92%hbAL?M1TRgPrHNn_oGhU&g~C7Zn6$k@)G8x1^Kn}Lh5mDLLw}EQ+okB~ zn?rKq!jnk+GCeD`ztbodB^oQyPa~Ci<{#l#)*{7QN6V(62Em(j^gbjB!&~3$6Ge!H zcuqJ6USHGTm4M#yuT*>>5593K|G-gs=^#KU@M{Tl0vlK2^Xb?}uRZ5NVt)XL&u?{O z;wz*5;BoIM{Nk5B*`SHW??g|o^OK|-Dv*66 zWrOcqh(-c0g1XUAd6fb#W|+DT|~xNhol zS$~>;Lv+j{8BVysjTMS>~p#|ER;Cp*Sd~i zj`4v!bKO$pEv9+}P@B&BI+jN+2A4l=9}Dp?=Uzhl0QYKmW!bfe6o)wNYVRJ7jUyC#5?5p4!#k$=tGdrvXH` z(|yQ}(Yw_{nQot5WQzaY(!Ta%-0M=@_|XrY@xe#WwktRUF!`>O=6EE^8vpVP|x3AH5(xv;@9($;orOkPb_J#BORpssZwl{gVt3{N)sjno>< zjlNiPy8}IDqJwn+AMUAX3LmOj>Ph28L{IEvZLb@qke5&8$!wP2fb#n<%X2;2zuMnT z&4fIndp~SUxL(dmQ(TDZgd4(sW8d>U|7PcDvzv#im@;~4$6ud2yz1$I(#vg&$1s-2 z(um%gOs>PhW!Tiu5~TN4sN6~O$Ozl@f774(q0smtpOB`UjD9d@PPf5*i?c645A5m* z|51Wz^DbvFEtv3C^d?rrGNt7>=0Yfwp65>wfU5{lMf+1k&%vQl}5_wdYWZOoeD& zcSGULR@B2Spfl~Jd6|tHR(yS6g>*-9nh4WkguNiGw?e-ULZp@iE2W7w365A^C1KhX zo0V)cjtB%89Mxw~`Gm2lS%VqO(RUXiPWOSG(e28-CYT&yzhx~9t4QI%;@a^WW^cE| zkRz=&Wk)`X=r|IKnmwc%ztz$P6w6uj)pW`XVPfbT8~^j5#ApqXH!Uqyj$M4<;4z~& z{1s@QS(OjD{tKAgGmxH5^mVyQ%ohZ6&M->JQU55;ezUOy({90OO;axB+jD@F9|_k3 z2G`aXAJCGUj$CvV0=5gwp<1|YZAk~V##iSYzfr#;Qc$jgo)285yc>KX6wTAqojbs! z_?`=VttR6M`j8KOY^?}NAc9q1jxYV)gLbxItia4MypS*!bu*!nJ2qf6y7eU5UM+tv zY)J9K=rzL?lHSS2h0s{<)ou@JS@XOb*z!H4UU$OzW^=?Dcxj!Q6HqL`Q$%iuoo+&H zWogV;tA*!%ucvJ$m>am(iTO?RU`cn_C&K^}zEGOROj=Dl0Iq3LYfI8tH^k2=+Ini~ zgDd217RGL1-Kx)vhc|9x>82$W) z!&d22Nd@;{yL5jt`xCZ#V%VWQkN87syPHyZjlpPnQ2vK}Qhcw#U1HIFPi5Has3!|c zm7N1Ot{vI|QDCqS4JWP0U_LJbIh1Q4-YIz2{FA-?#Oywd1H=+^{dQv${QKPsY~l9v z5b3kAXKQ^KHPm3H6t8Dp<(?~$^s3Ad=&6=_qo2j{?WWcWATNHA&h(5Ll#KrpBciX&wJ5xGBKl75yTo1Tx^n893wRPTP_2#nD+~woDUh` zl3HxkzWU1DaVWWgLxFuK@>3AA)E!#es0(0xgyxy_QFgB>hW`WtRevwH>Ms2X8Ffwr zJl+w+qh5pBswhiwUP%!Bw=01r?H;iKN2cp^WgGy$s==mX+Jd(3|<}8f^`^!o@EW=FX?#MGuFAiqAt-RMtw>m|Zu3 zL8@#{*L`v$1Lht!x_B6XGAm8=uRv6)GrzFbTFD4Nw<|q9!jsA5F*UriO^T4+rx|^} zXxsPB^9QhiUZt3JmSD~elMY^9b6glE%b)6TIQ@XmyDg?_#_&$esypll->)Z+kNDr% zs3dx1>~Z z1ZD0u6pV0-Oq0SoIU2CDDu(ia+NUFx4p0b;yET^H$F^Ccr3TD)Y_cJOj`E{t0I{rd zxWt58+ETfCzv_$w@-?Z$_#>ISHKPg;_j*)ix*tIs*h2s*7*xdP7gfmBx*J7W*9g~w zwY9(@K{BmR`MvNkkxVOenMd zsYd;>%~cznt;}2Ef$bd*kQp@b#^xrYjEiC4@vu;u8+k|X84_>K; zKAI5)*k|{rdVEFA*4Wxl{8G_$y?lK>kQ}VrbK_70C9ZM5@RbI=d`)>!K()@RYb;yW zEoC+aD_r4)Jtu>M2_lWyruIUNz?(gog}-8Bh^CtR?FTTZ*?Q~@4LdI&@9k9Pd<(OY zO-Bs`6}Uq=V@``76i}@w1Z$(~{_{y|eG8sx9WL|$XvY8@v6fYH*DFxL{Pl6)9Xo;D z*B^}dtd&ON=!cQ3EIJ|rM<8{X=T!OCYP4`QEu*TB+eL28dVo;~RfMQf>->3J#SNq3 z(-ZXTI|MZuxO4Ug4!1sVjT`oq2hm2QWfW*}e!vPe``zh- z?Us!eh^iYAeJ5byhml8Y%5igae-rF{j*AO#J4S`j7{*;)>yt?#j)#qbjhM~%*mL1p z!22AC^cA_obf>?klt{QUTg;QL4ciQRx|R~Z3D>^!fX0O%CA$uoQN4EZEdCcy1IX5= zgX9|)iY?d1qIv@h_=OX#)a%q~R0w(31;rit+UkKH_JKPZL4zLbf9KNCSd;{^FGo|h zg=iMmRSQiw&;Sp4^s@x#HwE0utV#bCoC7xmLEVzt*%4_F*zhiziIG3pr875PIE)U; zz+652(2S%1_@_uHbxbl^RNp7FSRoPwPZ!BQn)o_Wa`g^dpJR_!b0$5jvDrQLzp{jN z2)sn7H)XBDBR`pm4}qt{5?~KcyR18(kB`@zD%!Vn{^&Q~J!tBvJ?o=D6vpynnZb=a zS{?d&9d)X+R2Q^N>|vX(cp$MU1eHhq<4BWft#%Q}=5gr{|FA#+~%x zJh4o2=P){fggO`djr}5+wNbQvd4xnIjG*jrdpSW#ip>6qX{j0CZQ{{w&@5Ip)-JO( zKfNixqw`&yDQth|)h1o>r3$v??qT)WhQ3aIxzS|AeJ4wt)^vvZA=45B;?h@Oh=F1B zo0SFYmj@pVTl^?6TgdtObw(*|xKo1xx~QG**UbeDEL0QsyZ&uuh0Zt%P0(7Z%LSks z3y~vh+JgcQ{ysNI)2ksxm8h})Iy#)Ron#*5a1+X`4e}qSwQDWzWGpQ4N4`zbxS1o< zdtDXx$YnW9v1g-0T`#heXcqxaRDg9&5KFds&NlrP`J>p$!=20O*B7JN6GhyIjzw6! z)gj@?$etCZvk#iwNa+YHbVpS6!(_a_o4UTyeh?ptGs)@A(S+#IgbXRCk@S!ON? zjV38~joO3&2LAlv1V9iwa+LzxK!ek$iIEH4H#42Xwa161qSfBA%IM~QM#A|6N2NuA?W%tpYiXBQ+N z#;`>Xrf!KdM+)P^oG;R$C8*BY5K&ZNn3UL$QZgo%foE2$S*(=q!xvbk$)Kc}rJ`!* z+_2GJfewioe#hslkxn@3OOBW(Pwny^|Ls;r|oXPmrdOZpYF@S!s= zkrJ8ie}ZCQ2N@m&J#$BXuGF5Vs+BSz(Noc58`WyL4+pcSAcUWwfuB6(DAS=SR3;NH zTB@Y6&uEG29!k82t44>(MlvhWVJ$(V13f0YL%k~5I4sFZEd_5(%QO_GQ{&M9%28&H zS3SPAk^`8HQQ2fOn0DJH+^q;nZ%_aN`Dx9HStJMO7FA*knbs2*Yzu3OUn!&uhj3dPB z!eQT}iM*rQY9X}Hj76X(vi#TAMyR6zx)vhwaj^z|8GxNF^lo*}y${|GzHwlpdecjp zAbB6Te_cHcbg&CqN4XA=)3f{I9s&Hq%Qt|)PV z{}m$tSlb?e|D7lU(#wGE->uX^_%#e)yc{4$FHGFPM4yfEH=%!`n#Eh*S@Q*W3umR; zTA{PLs5@$|y3Hw5Jzpy%t`Dg1BE=($oXD;p4qbJC|KMM|QdaByY8NSFalp>X4)Sf& zRF(xBaPx1(vRN+H8Xx{7D<2 zR^>D0VKX=s1x^!w5yBLh4>_dcS|3TwEilu%^L1>5_mEQ<9!`6TqPBA`^!$2rbNWCj z{9TF0Px8l&d-us?UikH<$1C)vmw)v^M%}Fdl}aQ(3`Kkke>T;d+sNyDo*s)r!Ao%q z)X^(^0|1{18U7vYK*Ltx)th<*Q*`s$(ih;xRU&cGPnAfDV$6?*7lm0@Q+GVp1dl&( zqMk+R^W;H*d3Eel;zB7xr z-7r2J{kZ9n%a$`G*SEgcTr}E5`Y80R>4lX~NFFjQ=|}@i;}qWW({YQJ>gr=GdFM#L z4*hIbmdUgj=#j3VtjojmT#%yq5Cf*)k5IBtznoB8Zx}7+VodaHb z0&tUlWi7{plvxYN!2rmR`#{^kEAuz4D>ULa6OU_z#(PD7H@tYgt?rZd<7mC@@S;<} zu1=7P=uPBV{3rKMKO`rPR}}m4LPVa9(Y{xG^?Ud`L(^)8x7|d>x2OH)^xX7~?v_aP z3eEfv>o7OBM=XR--&<-_X38_A*ddsr#R`d;n`BRH-|IRKTv*TNGwU{e&>lv`guP)D z=RK8KlA>ENf@*z?4qmn~`Vi6P77^b1GUclEN=$(%T?;gKlU5-F^CJMOQ86lPuD@fr zQC9EB+Ds=KjiX<{4bgl547FpK{Mub#zax*f*XDyzckB`NkE<%sjx>-Sb&YTk>C})^SL8 zu46eCwVhQ_5SA50Fb_7?+O{{|8RJuhmTP@E^}0x}%y*^RrKh(IHG(f8QfR>lFFgVecO6m_>b3%N;Q@hrRu~qAx&#QWdnM5!5 z0n3o7py8C8{*1ru$Dk@#Y0QG@t*iOE#y=Kyz(k`y%L+Yh?D}|i+Tdw8D|qYx?166% zC|wS8jWX~zVRg4zqz?dq$dl0C{h=cGGvNV!2%tRc1!1ve%k+%C&ATofVXFGNagcQ` zIhHUxHUf2}e_d{9N&FAE%06-MJ=y2al2g_>fZ+xE{p$)8kFeOPKEJWn8#Z8R_BT|Q z)MIeCGG$^Y0~J=#i^Pqon`BR!3eh@?3W20il!ewO_2M6ahSRNenvv=Z&8`ywmGJbh z`yQl~1wJWsL3Ni4z!syyf&w5kw{;q@xMJx!6TrE$_GKJGyCe>)w{l_C+*>p464y%Wh>O!{Xh>vNuN-@YMF8 z2D+lk3%c(uunT7o?k$ktZ&@Fp4$8olbJ(1koaKqlL8o%zokUEzi`kOt?65y^HOjc( zTDAMlFwer!(o`-^5+0vYwVc5cr+%*W5P%)w?F(^rM6~fPJ$*CD<7wh}+P6z<*>9y# zBBVCKlxj0jrId1$PfB>?8Dnvo)207~Xm*8B5Cz2;hG zJYJ(He!|agx1M^;3Bwk51?vM%WT^>wMjsE5(>&V-p2PE~9azj4|FSNpq`mXgFQ%y# z*7$NT&dILb;bowz4?)^X(;rG)i{F15HA2d$4=wYhnt)^lKKRJU3V?|w_JHL7gtYhX zP36BThW^%dfbJdZTmLB$a(!q7)+0X%brdd9C|6SNXrQ-d3Th0y#JaC4iGFGJePii< z`8!hgQ!stb(Aoyve~vu*LN}$xzdu;yZGcF#k*vBB;69@Ie$58SOyaRnSu-d4&5>80 z*96e|@wynB0o;l4JzHshhVc0aY{`xBQT0+%od>j_5$~X9$na*a4riuIZNsUB0j})j z(CVs>+MdUudrF)YhUr~zI|iGuvn3&2!m-Bl3*j#1a~ko`K|XSiz%JzO@&nTJ!RUvy2ka&5 zg;X#@VF+DL>ySThsnp2;AJ{%TVtr1GC=7+XNEtojHciV={ED_#k^40HC93B+IWt4@ z#7?RJA?Ds`V( z`Ve!HDyA3%RrVmL5ZC_|%6OKN2LN;cSTlwEO1!@;mjFW0l*NTS@z97rb$HS)DcL!d z6E>HS?$qn;Z9MOKS6R5bChg8x0`}?Tk7UUm$iWj}InFL~U(ZEV(m33(g(`@zt!@=-GGO_bA zd)-$*avWZ*n7(iR++i)B4}!7VjBVR?j;wS5zR9m*S`5_5)e8RHCZ>} z_5Q|Zs2})a`8+mXpLsWLbHF5?&oZG+|L5(YS(|Nq5EKjqlHRq7GVsJJm|`dIctE^d z4apHtM6a4C#BRg;?3FoQoJ`kn3TK60sXfSb*~AOa@J?YnFgB?Z{wm(5ZhWln0Ss-6 z*#pkHH{|qEu*W$mDh;&dyem(o`RJJkrKGdf4SMuo;rIMi`={2Ok@MVlvREI~;0rBrl<#ajOF5I*=T>+>o*%7W&G;N> zatf&KS@BT6cpUDedn2Kut{R&07Le#euW5=}@o?xiXaf>-5MFa`NB;oF_kxpHAPBsu$B#HX zgdhW4M2|uuq6?t4@!v1R+k7CmavIF4Q-3nO)lv}7ogg`cP(u!mv8}c0E&zFT-3K)p z9s!t7$NiS4&MA+u&}qeJ%<@_G%b!QM(DVqqc?L=*N68XHUAut20AB9rjlqbGL&ff1 zDear&Ev5sAa0&*gjL94#g~mfrB#{OP1)D$KQI|RxvxSJYtMmZ*U*mXm&L}UAH$FEa z(tib5H6VXgqS&9zeKp{gNY_YZUl9;httc2|^@_S2*7q^;RcmNuO{c=R>l3=E$FbLx4s^uK08ev9Y zCp>mv$}&8R($y+J{=n^7by^NF{bouYkBTl7|0xRBQY8#M_n20!?gH1B_Ac)0?R;^2 zy3&p$%fPGW(l>-*Ys-zBGh0#7%fqd%z@cMNDv4;;`B5XnZ6&J#z;^Ity45rDwhKa zulae^0(uUX5%(TnfrekkkZl5(@sa*zZqYq*LLMd%Ce}K7N2U>rIG70Tey?tOjfVMg zFB7FJ+NV`=_xEXUsqi7QXp!CRx#||@7;0Zi!ca0hz#HMB$5}%Jh2K(=0M85H<63Ez zG(2Q8&Bm-EHRyu8#h}9EQGOo2nmMu5?*1b&b)D!vEy_kvap5_aE7(sm>PVc+s0;x@ z|DAaIR~J(P?)1D`$#}pTY|QmtVFA*jZ52f`x}E5tMTF&Q&K@w(xq-i!;>-a>hXjfy z(@(zbR0%3fZ8$?cmmE^GHm=t20XQAw+>QVe2Os@3L zqpU*5XkR$_JBXE=q59+-=H`DJ#FYij&Xh`Cg@MdU+Q=~VdWwEaR+9vSEY`{{%T;Ww z&OZN|DquwVt_)om`!ve|`$E*q&mxjsAcipiJ+@+OXT8$}43TxshkqJO4IF?ALHOSk zj`g|IO{%nWPpzkCSgD~At03!Iua}^6QPGWu(W$A^UyPts@)8)fY)LEse(fcAAz4=T z_pZow?ab3e94cCu?XJ_856T5V!qma)8N&fF^*(y10L%zeG3SQG-wgvwz5B_MMq^GY zgJ1~9PEjBW4_IC5kK}T+-&*rwax_=Ka)LQe2m&w>y+ZT+TVFOU8T(^DlyNp#5Hv5DNm&a2e0SQ|1PXPO3lqsty zTgi3}=SHyGl-K(!s)%OaV@mSrwr=Srfj5DLBYv;|9{)zo-ps$cb<|Tjd#0ZE3j-D(3gPFFvn!nKi`8?X3nrI+MSSdQge1 z$U88!tl~#jSO1TS7h6krqYf=W)-Z-u>o+7X2AZ(1=ryO=^rq;h0x-~qu>`z;77GrW z)xr8KaB`gzu{AJAiaj?O0j574G~G^2m3hKcd6|0h)tz%^M}^AHa*d&`Xf^HQ01wax zYMFW^(Tv;MT10pU8eD-1hH234(ZQn;$pWm`c-PL!!6mreFG=nKlP&}YTu4AkD|Jtb zY0cI1nAdN)johDEVg1*C79rCQ>MSYoP%sX0<0Mtaau(Yr%%>u4)=*Z6XB6aQ3&eV| z1bBM_i1-Ds$1a7vND16I$1}!C&v0E{^+%@-g1GL2s3FUalT5%)mNg3ksh;oQHK=a+ zUu!w`ZD8u3&6j0oW@mtP8GsN?pz*P{6W)bjd)6K}0-T+?X+uR*!F%y0xQ`2cPJI$GLP^*Or*V;&R3gpC{(gS-f4jb~eB<1X^CIC(MvC7C2 z0Tn!IoM7)j+o`ASO4HWobWBVjwn<0E4S8+UNN-P^#|ymVUV6G^snd8XX0;|JLl0$b zx6%_pYs#MzGYEs~I=Bh)1ZK9%n6K+YrJVTX_plYL<5^{oq5~?1GW(2?;^Co6zU~!u z{9ns)b6M~urgOL1oAB;C&)gh0jpMh)o$tWq0A65KSzx~Yrj+b znv|nDJTwdSfUbjB;rPz+wKr{L^^XSxiiS1ok{<}-F4MFlEAnq~rogt@J8D$eDyuDa zmtHq5&;7g*%#n*GI7OAA$@!dtG7KIFwdxT6d6%e9lap;-3I`$$CJR7~HiVqCqseuc zD_!5n#hnt&y4@={+3t$|YCo7a?@n#ES!ORD$4dhDO2e{0Ce97vS%p*Y{xo3mcNHGh z<(bHel@H?KSnU_DaWoD{Yj68zgcVNE3(RN^ME6w zsSnE-PtkeSP}Pc_`y(;NKe%Co0GdqYTp91g)myb0w^y~l2tF9?G1k^TUP-EcW~Nr! z->lBzcMHID^_dHIyf>xP*~s^c%gDYR{jJ}6XEml^=t*shZ2x*JMWg7L<@L7DUWQGd zJk>p~R;_n;0L$r+%u37Lu|Ntmh`Ud>tw)rjT!MBC>dMQ1<}Jm{e-=fX*UBF5Nh>(- zGU$1!vRRBgXYYNnn*Q8cXCGPh4?iE(Rc-oKCsf{^AysgvZB7P1;( zjn&p;5A#j~2dwc2mZ5xo>PKOhw*@DOI!uIz+v`O2y*nk?tmZ}gPApLk4c3exTgg&t zs*P?hoF<%j$z8eDDxzY+7we@w{+P!P-M+@ex~WzT_XWOP9eOANt2lLk=3Y2rDwzz-_&OIrrD@-)n?0C--8~33yW6$ z&B54$ghH*Y6o)+!hqgH^%S$j;`u6UaEFUF+x2i}1SUsy+v`cvLEFjr0Ur+DR^1EAV z&VlQxkGzvu{vg0*WvcxB=O7?lp8sN8LJ4qNZ)dEMYB`lwnlxNrmRmnzqtmaE|1zwa zN?TbNb}AOJv0i;brFF({?o!Gnwj&Q^g@@gr^3nS0!7J*QOT6HyMuV zs_vcUn*8Xi!0f)K>o7wSRsKN0KX}r+VBh*8f4RZl_fwqES4bYEXwD~%&Fp55q${Qp zg&p9h3}c;fa-!Mq#(JM?#;qeRy;`%M(7C60>6e&>{O3A;16#FCqkn6SL;+&}*3$sx zO3cUVe8*}@MgzkLHg_xSMRbhGz<5!VJVytMI(7$C zf!fP66Eb-A#VFzPDcem)8IIl$F!UqI)7c1;-nrYGK8`HkxHx3|_(X?^6_O+GXar;I z^8GudqJ%d!xF-bQtC#T!hgvXm4WTt&m?ul#^}t<~v7d81BETfrW=2q-_MAL#IqO|E z&pnJLb!Do*CbZnI&k>GX3dAaPA@)3mG3T%?6&O*ghIhf+#hPiYpeD3dRS!+>PkI!Yh=jEEBQ$)-oyE{Pt6D+m>5$oKnyTAifOrEy2?8 z8#%Go14avrlv;QG^5F3oP_O}~$FJ*+e|E0^hx!h0jpPtX;I}pk3uL=tId+UEi4v`? zQ2z~c91Z&H)9`ThT1w4SAo$)pq3;cR{z}}b6&g&?MFqGb0@Q0;hNj9@oE5$%zvzVB z`)P&9V8qDXwS6i60}MlG6Xp-7$iz1v9VZ;=8s>=TpI>NCZhve}*aI7D_<*)>srPLN zicFz>M4;d1Xh1>d`3x1tb@StE51{$aab>PfQE36a!%llH=IppXZ~_dQGEw8LCb&eR z?3iBq9Z0*jl|5=os>g4I!P?nAgi798U)|A{^C^v`+msc2*u>%L844 z?fc^Rx&qe*C5R>`L3i##%|NN>#EL|+dX(fcM18x zVryR5zOuBcGHNS2iZkR@Vl5dV>D!;{s{dxI{%=EN@ih7n%b5xAy5%PAM4AgNm01~FwyQX(JQmmaG9`moMs zN=;T)cm`_-`OarP=qg1s^U2GWDaIbo?oL<$#`KE1^<48&ZL=E?eyW6th_p5T2*~aC zBdOY{Pk-jbudgl?zbin{@(a!L&ca6A#<63U2#km-s-Nwpog=-gA%1a)EYMp10sW-iE7bh2_*^l|7Q&VQ$I3t}&A+Te1pZEQ7A|_o*s9M9q z>ooP1ogFGp3w4t6hBRbf+yVaoSnTFy*|FF)_m)@qrtN@buyZU;5{gBlHS!|w_c^Xr z>E3{>;xBXKLm>X*ewsJgyj5})@kE)l5%@J*O%u&{bnZHltEjVHvHXquo)Fo?g_;ZZ zql)PV6}*ys5@vLg(a;U{Sp~fFpGtKvCM8n$z*;ZfAmJjJdSlRK<{XAN23SS-w25wT zm6m%s+@XrJX;UcUf!w2i3EDAr9IhXw{zBN%d%a88%JMj;^qB)H{LU>KYvuj2lJkHs7qjODpOX zh{{4YxKo?`7eVKa8zWp!P2*=QMxJ}}wHg4|yD2t+k37jjdY-?ZA>YEr4^A#CW; z0XE*pW3t1Z^sM8qxGWO&H)hYazSo=#a)Q8=wQ}QXHJIrOWmqa24B*O7k3Zi2$BN_q z*Prp|OE`8WW|0|?30zsQOj1@=iiHx>h9vUqLqXJWaQoB6X(HY0%nEBn|ID6f=iDZw) z{2-kADLR@{EaZSnCnlC9ho`!S-y+`zjW?rh8G4UGuP#6P8@)??;9gtA7m;=91=IaG=*p&vJqvA}@S!%HD! zKCmkK?s7Zx#@zoz83zB HO~`)%avHv` diff --git a/mesos/architecture.md b/mesos/architecture.md deleted file mode 100644 index 22b1d8538..000000000 --- a/mesos/architecture.md +++ /dev/null @@ -1,83 +0,0 @@ -## 原理与架构 - -首先,再次需要强调 Mesos 自身只是一个资源调度框架,并非一整套完整的应用管理平台,所以只有 Mesos 自己是不能干活的。但是基于 Mesos,可以比较容易地为各种应用管理框架或者中间件平台(作为 Mesos 的应用)提供分布式运行能力;同时多个框架也可以同时运行在一个 Mesos 集群中,提高整体的资源使用效率。 - -Mesos 对自己定位范围的划分,使得它要完成的任务很明确,其它任务框架也可以很容易的与它进行整合。 - -### 架构 -下面这张基本架构图来自 Mesos 官方。 - -![mesos 的基本架构](_images/mesos-architecture.png) - -可以看出,Mesos 采用了经典的主-从(master-slave)架构,其中主节点(管理节点)可以使用 zookeeper 来做 HA。 - -Mesos master 服务将运行在主节点上,Mesos slave 服务则需要运行在各个计算任务节点上。 - -负责完成具体任务的应用框架们,跟 Mesos master 进行交互,来申请资源。 - -### 基本单元 -Mesos 中有三个基本的组件:管理服务(master)、任务服务(slave)以及应用框架(framework)。 - -#### 管理服务 - master -跟大部分分布式系统中类似,主节点起到管理作用,将看到全局的信息,负责不同应用框架之间的资源调度和逻辑控制。应用框架需要注册到管理服务上才能被使用。 - -用户和应用需要通过主节点提供的 API 来获取集群状态和操作集群资源。 - -#### 任务服务 - slave -负责汇报本从节点上的资源状态(空闲资源、运行状态等等)给主节点,并负责隔离本地资源来执行主节点分配的具体任务。 - -隔离机制目前包括各种容器机制,包括 LXC、Docker 等。 - -#### 应用框架 - framework -应用框架是实际干活的,包括两个主要组件: - -* 调度器(scheduler):注册到主节点,等待分配资源; -* 执行器(executor):在从节点上执行框架指定的任务(框架也可以使用 Mesos 自带的执行器,包括 shell 脚本执行器和 Docker 执行器)。 - -应用框架可以分两种:一种是对资源的需求是会扩展的(比如 Hadoop、Spark 等),申请后还可能调整;一种是对资源需求大小是固定的(MPI 等),一次申请即可。 - -### 调度 -对于一个资源调度框架来说,最核心的就是调度机制,怎么能快速高效地完成对某个应用框架资源的分配,是核心竞争力所在。最理想情况下(大部分时候都无法实现),最好是能猜到应用们的实际需求,实现最大化的资源使用率。 - -Mesos 为了实现尽量优化的调度,采取了两层(two-layer)的调度算法。 - -#### 算法基本过程 -调度的基本思路很简单,master 先全局调度一大块资源给某个 framework,framework 自己再实现内部的细粒度调度,决定哪个任务用多少资源。两层调度简化了 Mesos master 自身的调度过程,通过将复杂的细粒度调度交由 framework 实现,避免了 Mesos master 成为性能瓶颈。 - -调度机制支持插件机制来实现不同的策略。默认是 Dominant Resource Fairness(DRF)。 - -*注:DRF 算法细节可以参考论文《Dominant Resource Fairness: Fair Allocation of Multiple Resource Types》。其核心思想是对不同类型资源的多个请求,计算请求的主资源类型,然后根据主资源进行公平分配。* - -#### 调度过程 -调度通过 offer 发送的方式进行交互。一个 offer 是一组资源,例如 `<1 CPU, 2 GB Mem>`。 - -基本调度过程如下: - -* 首先,slave 节点会周期性汇报自己可用的资源给 master; -* 某个时候,master 收到应用框架发来的资源请求,根据调度策略,计算出来一个资源 offer 给 framework; -* framework 收到 offer 后可以决定要不要,如果接受的话,返回一个描述,说明自己希望如何使用和分配这些资源来运行某些任务(可以说明只希望使用部分资源,则多出来的会被 master 收回); -* 最后,master 则根据 framework 答复的具体分配情况发送给 slave,以使用 framework 的 executor 来按照分配的资源策略执行任务。 - -具体给出一个例子,某从节点向主节点汇报自己有 `<4 CPU, 8 GB Mem>` 的空闲资源,同时,主节点看到某个应用框架请求 `<3 CPU, 6 GB Mem>`,就创建一个 offer `` 把满足的资源发给应用框架。应用框架(的调度器)收到 offer 后觉得可以接受,就回复主节点,并告诉主节点希望运行两个任务:一个占用 `<1 CPU, 2 GB Mem>`,一个占用 一个占用 `<2 CPU, 4 GB Mem>`。主节点收到任务信息后分配任务到从节点上进行运行(实际上是应用框架的执行器来负责执行任务)。任务运行结束后资源可以被释放出来。 - -剩余的资源还可以继续分配给其他应用框架或任务。 - -应用框架在收到 offer 后,如果 offer 不满足自己的偏好(例如希望继续使用上次的 slave 节点),则可以选择拒绝 offer,等待 master 发送新的 offer 过来。另外,可以通过过滤器机制来加快资源的分配过程。 - -#### 过滤器 -framework 可以通过过滤器机制告诉 master 它的资源偏好,比如希望分配过来的 offer 有哪个资源,或者至少有多少资源等。 - -过滤器可以避免某些应用资源长期分配不到所需要的资源的情况,加速整个资源分配的交互过程。 - -#### 回收机制 -为了避免某些任务长期占用集群中资源,Mesos 也支持回收机制。 - -主节点可以定期回收计算节点上的任务所占用的资源,可以动态调整长期任务和短期任务的分布。 - -### HA - -从架构上看,最为核心的节点是 master 节点。除了使用 ZooKeeper 来解决单点失效问题之外,Mesos 的 master 节点自身还提供了很高的鲁棒性。 - -Mesos master 节点在重启后,可以动态通过 slave 和 framework 发来的消息重建内部状态,虽然可能导致一定的时延,但这避免了传统控制节点对数据库的依赖。 - -当然,为了减少 master 节点的负载过大,在集群中 slave 节点数目较多的时候,要避免把各种通知的周期配置的过短。实践中,可以通过部署多个 Mesos 集群来保持单个集群的规模不要过大。 diff --git a/mesos/configuration.md b/mesos/configuration.md deleted file mode 100644 index bacec5daa..000000000 --- a/mesos/configuration.md +++ /dev/null @@ -1,172 +0,0 @@ -## Mesos 配置项解析 - -Mesos 支持在运行时通过命令行参数形式提供的配置项。如果是通过系统服务方式启动,也支持以配置文件或环境变量方式给出。当然,实际上最终是提取为命令行参数传递给启动命令。 - -Mesos 的配置项分为三种类型:通用项(master 和 slave 都支持),只有 master 支持的,以及只有 slave 支持的。 - -Mesos 配置项比较多,下面对一些重点配置进行描述。少数为必备项,意味着必须给出配置值;另外一些是可选配置,自己带有默认值。 - -### 通用项 -通用项数量不多,主要涉及到服务绑定地址和日志信息等,包括: - -* `--advertise_ip=VALUE` 可以通过该地址访问到服务,比如应用框架访问到 master 节点; -* `--advertise_port=VALUE` 可以通过该端口访问到服务; -* `--external_log_file=VALUE` 指定存储日志的外部文件,可通过 Web 界面查看; -* `--firewall_rules=VALUE` endpoint 防火墙规则,`VALUE` 可以是 JSON 格式或者存有 JSON 格式的文件路径; -* `--ip=VALUE` 服务绑定到的IP 地址,用来监听外面过来的请求; -* `--log_dir=VALUE` 日志文件路径,如果为空(默认值)则不存储日志到本地; -* `--logbufsecs=VALUE` buffer 多少秒的日志,然后写入本地; -* `--logging_level=VALUE` 日志记录的最低级别; -* `--port=VALUE` 绑定监听的端口,master 默认是 5050,slave 默认是 5051。 - -### master 专属配置项 -这些配置项是针对主节点上的 Mesos master 服务的,围绕高可用、注册信息、对应用框架的资源管理等。用户应该根据本地主节点资源情况来合理的配置这些选项。 - -用户可以通过 `mesos-master --help` 命令来获取所有支持的配置项信息。 - -必须指定的配置项有三个: - -* `--quorum=VALUE` 必备项,使用基于 replicated-Log 的注册表(即利用 ZooKeeper 实现 HA)时,参与投票时的最少节点个数; -* `--work_dir=VALUE` 必备项,注册表持久化信息存储位置; -* `--zk=VALUE` 如果主节点为 HA 模式,此为必备项,指定 ZooKeepr 的服务地址,支持多个地址,之间用逗号隔离,例如 `zk://username:password@host1:port1,host2:port2,.../path`。还可以为存有路径信息的文件路径。 - - -可选的配置项有: - -* `--acls=VALUE` ACL 规则或所在文件; -* `--allocation_interval=VALUE` 执行 allocation 的间隔,默认为 1sec; -* `--allocator=VALUE` 分配机制,默认为 HierarchicalDRF; -* `--[no-]authenticate` 是否允许非认证过的 framework 注册; -* `--[no-]authenticate_slaves` 是否允许非认证过的 slaves 注册; -* `--authenticators=VALUE` 对 framework 或 salves 进行认证时的实现机制; -* `--cluster=VALUE` 集群别名,显示在 Web 界面上供用户识别的; -* `--credentials=VALUE` 存储加密后凭证的文件的路径; -* `--external_log_file=VALUE` 采用外部的日志文件; -* `--framework_sorter=VALUE` 给定 framework 之间的资源分配策略; -* `--hooks=VALUE` master 中安装的 hook 模块; -* `--hostname=VALUE` master 节点使用的主机名,不配置则从系统中获取; -* `--[no-]log_auto_initialize` 是否自动初始化注册表需要的 replicated 日志; -* `--modules=VALUE` 要加载的模块,支持文件路径或者 JSON; -* `--offer_timeout=VALUE` offer 撤销的超时; -* `--rate_limits=VALUE` framework 的速率限制,即 query per second (qps); -* `--recovery_slave_removal_limit=VALUE` 限制注册表恢复后可以移除或停止的 slave 数目,超出后 master 会失败,默认是 100%; -* `--slave_removal_rate_limit=VALUE slave` 没有完成健康度检查时候被移除的速率上限,例如 1/10mins 代表每十分钟最多有一个; -* `--registry=VALUE` 注册表信息的持久化策略,默认为 `replicated_log` 存放本地,还可以为 `in_memory` 放在内存中; -* `--registry_fetch_timeout=VALUE` 访问注册表失败超时; -* `--registry_store_timeout=VALUE` 存储注册表失败超时; -* `--[no-]registry_strict` 是否按照注册表中持久化信息执行操作,默认为 false; -* `--roles=VALUE` 集群中 framework 可以所属的分配角色; -* `--[no-]root_submissions` root 是否可以提交 framework,默认为 true; -* `--slave_reregister_timeout=VALUE` 新的 lead master 节点选举出来后,多久之内所有的 slave 需要注册,超时的 salve 将被移除并关闭,默认为 10mins; -* `--user_sorter=VALUE` 在用户之间分配资源的策略,默认为 drf; -* `--webui_dir=VALUE` webui 实现的文件目录所在,默认为 `/usr/local/share/mesos/webui`; -* `--weights=VALUE` 各个角色的权重; -* `--whitelist=VALUE` 文件路径,包括发送 offer 的 slave 名单,默认为 None; -* `--zk_session_timeout=VALUE` session 超时,默认为 10secs; -* `--max_executors_per_slave=VALUE` 配置了 `--with-network-isolator` 时可用,限制每个 slave 同时执行任务个数。 - -下面给出一个由三个节点组成的 master 集群典型配置,工作目录指定为 `/tmp/mesos`,集群名称为 `mesos_cluster`。 - -```sh -mesos-master \ ---zk=zk://10.0.0.2:2181,10.0.0.3:2181,10.0.0.4:2181/mesos \ ---quorum=2 \ ---work_dir=/tmp/mesos \ ---cluster=mesos_cluster -``` - - -### slave 专属配置项 -slave 节点支持的配置项是最多的,因为它所完成的事情也最复杂。这些配置项既包括跟主节点打交道的一些参数,也包括对本地资源的配置,包括隔离机制、本地任务的资源限制等。 - -用户可以通过 `mesos-slave --help` 命令来获取所有支持的配置项信息。 - -必备项就一个: - -* `--master=VALUE` 必备项,master 所在地址,或对应 ZooKeeper 服务地址,或文件路径,可以是列表。 - -以下为可选配置项: - -* `--attributes=VALUE` 机器属性; -* `--authenticatee=VALUE` 跟 master 进行认证时候的认证机制; -* `--[no-]cgroups_enable_cfs` 采用 CFS 进行带宽限制时候对 CPU 资源进行限制,默认为 false; -* `--cgroups_hierarchy=VALUE` cgroups 的目录根位置,默认为 `/sys/fs/cgroup`; -* `--[no-]cgroups_limit_swap` 限制内存和 swap,默认为 false,只限制内存; -* `--cgroups_root=VALUE` 根 cgroups 的名称,默认为 mesos; -* `--container_disk_watch_interval=VALUE` 为容器进行硬盘配额查询的时间间隔; -* `--containerizer_path=VALUE` 采用外部隔离机制(`--isolation=external`)时候,外部容器机制执行文件路径; -* `--containerizers=VALUE` 可用的容器实现机制,包括 mesos、external、docker; -* `--credential=VALUE` 加密后凭证,或者所在文件路径; -* `--default_container_image=VALUE` 采用外部容器机制时,任务缺省使用的镜像; -* `--default_container_info=VALUE` 容器信息的缺省值; -* `--default_role=VALUE` 资源缺省分配的角色; -* `--disk_watch_interval=VALUE` 硬盘使用情况的周期性检查间隔,默认为 1mins; -* `--docker=VALUE` docker 执行文件的路径; -* `--docker_remove_delay=VALUE` 删除容器之前的等待时间,默认为 6hrs; -* `--[no-]docker_kill_orphans` 清除孤儿容器,默认为 true; -* `--docker_sock=VALUE` docker sock 地址,默认为 `/var/run/docker.sock`; -* `--docker_mesos_image=VALUE` 运行 slave 的 docker 镜像,如果被配置,docker 会假定 slave 运行在一个 docker 容器里; -* `--docker_sandbox_directory=VALUE` sandbox 映射到容器里的哪个路径; -* `--docker_stop_timeout=VALUE` 停止实例后等待多久执行 kill 操作,默认为 0secs; -* `--[no-]enforce_container_disk_quota` 是否启用容器配额限制,默认为 false; -* `--executor_registration_timeout=VALUE` 执行应用最多可以等多久再注册到 slave,否则停止它,默认为 1mins; -* `--executor_shutdown_grace_period=VALUE` 执行应用停止后,等待多久,默认为 5secs; -* `--external_log_file=VALUE` 外部日志文件; -* `--fetcher_cache_size=VALUE` fetcher 的 cache 大小,默认为 2 GB; -* `--fetcher_cache_dir=VALUE` fetcher cache 文件存放目录,默认为 /tmp/mesos/fetch; -* `--frameworks_home=VALUE` 执行应用前添加的相对路径,默认为空; -* `--gc_delay=VALUE` 多久清理一次执行应用目录,默认为 1weeks; -* `--gc_disk_headroom=VALUE` 调整计算最大执行应用目录年龄的硬盘留空量,默认为 0.1; -* `--hadoop_home=VALUE` hadoop 安装目录,默认为空,会自动查找 HADOOP_HOME 或者从系统路径中查找; -* `--hooks=VALUE` 安装在 master 中的 hook 模块列表; -* `--hostname=VALUE` slave 节点使用的主机名; -* `--isolation=VALUE` 隔离机制,例如 `posix/cpu,posix/mem`(默认)或者 `cgroups/cpu,cgroups/mem`、`external` 等; -* `--launcher_dir=VALUE` mesos 可执行文件的路径,默认为 `/usr/local/lib/mesos`; -* `--image_providers=VALUE` 支持的容器镜像机制,例如 'APPC,DOCKER'; -* `--oversubscribed_resources_interval=VALUE` slave 节点定期汇报超配资源状态的周期; -* `--modules=VALUE` 要加载的模块,支持文件路径或者 JSON; -* `--perf_duration=VALUE` perf 采样时长,必须小于 perf_interval,默认为 10secs; -* `--perf_events=VALUE` perf 采样的事件; -* `--perf_interval=VALUE` perf 采样的时间间隔; -* `--qos_controller=VALUE` 超配机制中保障 QoS 的控制器名; -* `--qos_correction_interval_min=VALUE` Qos 控制器纠正超配资源的最小间隔,默认为 0secs; -* `--recover=VALUE` 回复后是否重连旧的执行应用,reconnect(默认值)是重连,cleanup 清除旧的执行器并退出; -* `--recovery_timeout=VALUE` slave 恢复时的超时,太久则所有相关的执行应用将自行退出,默认为 15mins; -* `--registration_backoff_factor=VALUE` 跟 master 进行注册时候的重试时间间隔算法的因子,默认为 1secs,采用随机指数算法,最长 1mins; -* `--resource_monitoring_interval=VALUE` 周期性监测执行应用资源使用情况的间隔,默认为 1secs; -* `--resources=VALUE` 每个 slave 可用的资源,比如主机端口默认为 [31000, 32000]; -* `--[no-]revocable_cpu_low_priority` 运行在可撤销 CPU 上容器将拥有较低优先级,默认为 true。 -* `--slave_subsystems=VALUE` slave 运行在哪些 cgroup 子系统中,包括 memory,cpuacct 等,缺省为空; -* `--[no-]strict` 是否认为所有错误都不可忽略,默认为 true; -* `--[no-]switch_user` 用提交任务的用户身份来运行,默认为 true; -* `--work_dir=VALUE` framework 的工作目录,默认为 /tmp/mesos。 - -下面这些选项需要配置 `--with-network-isolator` 一起使用(编译时需要启用 ` --with-network-isolator` 参数)。 - -* `--ephemeral_ports_per_container=VALUE` 分配给一个容器的临时端口的最大数目,需要为 2 的整数幂(默认为 1024); -* `--eth0_name=VALUE` public 网络的接口名称,如果不指定,根据主机路由进行猜测; -* `--lo_name=VALUE` loopback 网卡名称; -* `--egress_rate_limit_per_container=VALUE` 每个容器的输出流量限制速率限制(采用 fq_codel 算法来限速),单位是字节每秒; -* `--[no-]-egress_unique_flow_per_container` 是否把不同容器的流量当作彼此不同的流,避免彼此影响(默认为 false); -* `--[no-]network_enable_socket_statistics` 是否采集每个容器的 socket 统计信息,默认为 false。 - -下面给出一个典型的 slave 配置,容器为 Docker,监听在 `10.0.0.10` 地址;节点上限制 16 个 CPU、64 GB 内存,容器的非临时端口范围指定为 [31000-32000],临时端口范围指定为 [32768-57344];每个容器临时端口最多为 512 个,并且外出流量限速为 50 MB/s。 - -```sh -mesos-slave \ ---master=zk://10.0.0.2:2181,10.0.0.3:2181,10.0.0.4:2181/mesos \ ---containerizers=docker \ ---ip=10.0.0.10 \ ---isolation=cgroups/cpu,cgroups/mem,network/port_mapping \ ---resources=cpus:16;mem:64000;ports:[31000-32000];ephemeral_ports:[32768-57344] \ ---ephemeral_ports_per_container=512 \ ---egress_rate_limit_per_container=50000KB \ ---egress_unique_flow_per_container -``` - -为了避免主机分配的临时端口跟我们指定的临时端口范围冲突,需要在主机节点上进行配置。 -```sh -$ echo "57345 61000" > /proc/sys/net/ipv4/ip_local_port_range -``` - -*注:非临时端口是 Mesos 分配给框架,绑定到任务使用的,端口号往往有明确意义;临时端口是系统分配的,往往不太关心具体端口号。* diff --git a/mesos/framework.md b/mesos/framework.md deleted file mode 100644 index 2430d4a10..000000000 --- a/mesos/framework.md +++ /dev/null @@ -1,89 +0,0 @@ -## 常见应用框架 - -应用框架是实际干活的,可以理解为 Mesos 之上跑的 `应用`。应用框架注册到 Mesos master 服务上即可使用。 - -用户大部分时候,只需要跟应用框架打交道。因此,选择合适的应用框架十分关键。 - -Mesos 目前支持的应用框架分为四大类:长期运行任务(以及 PaaS)、大数据处理、批量调度、数据存储。 - -随着 Mesos 自身的发展,越来越多的框架开始支持 Mesos,下面总结了目前常用的一些框架。 - -### 长期运行的服务 - -#### [Aurora](http://aurora.incubator.apache.org) - -利用 Mesos 调度安排的任务,保证任务一直在运行。 - -提供 REST 接口,客户端和 webUI(8081 端口) - -#### [Marathon](https://github.com/mesosphere/marathon) - -一个私有 PaaS 平台,保证运行的应用不被中断。 - -如果任务停止了,会自动重启一个新的相同任务。 - -支持任务为任意 bash 命令,以及容器。 - -提供 REST 接口,客户端和 webUI(8080 端口) - -#### [Singularity](https://github.com/HubSpot/Singularity) - -一个私有 PaaS 平台。 - -调度器,运行长期的任务和一次性任务。 - -提供 REST 接口,客户端和 webUI(7099、8080 端口),支持容器。 - -### 大数据处理 -#### [Cray Chapel](https://github.com/nqn/mesos-chapel) - -支持 Chapel 并行编程语言的运行框架。 - -#### [Dpark](https://github.com/douban/dpark) - -Spark 的 Python 实现。 - -#### [Hadoop](https://github.com/mesos/hadoop) - -经典的 map-reduce 模型的实现。 - -#### [Spark](http://spark.apache.org) - -跟 Hadoop 类似,但处理迭代类型任务会更好的使用内存做中间状态缓存,速度要快一些。 - -#### [Storm](https://github.com/mesos/storm) - -分布式流计算,可以实时处理数据流。 - -### 批量调度 -#### [Chronos](https://github.com/airbnb/chronos) - -Cron 的分布式实现,负责任务调度,支持容错。 - -#### [Jenkins](https://github.com/jenkinsci/mesos-plugin) - -大名鼎鼎的 CI 引擎。使用 mesos-jenkins 插件,可以将 jenkins 的任务被 Mesos 集群来动态调度执行。 - -#### [JobServer](http://www.grandlogic.com/content/html_docs/jobserver.html) - -基于 Java 的调度任务和数据处理引擎。 - -#### [GoDocker](https://bitbucket.org/osallou/go-docker) - -基于 Docker 容器的集群维护工具。提供用户接口,除了支持 Mesos,还支持 Kubernetes、Swarm 等。 - -### 数据存储 - -#### [ElasticSearch](https://github.com/mesos/elasticsearch) - -功能十分强大的分布式数据搜索引擎。 - -一方面通过分布式集群实现可靠的数据库,一方面提供灵活的 API,对数据进行整合和分析。ElasticSearch + LogStash + Kibana 目前合成为 ELK 工具栈。 - -#### [Hypertable](https://code.google.com/p/hypertable) - -高性能的分布式数据库,支持结构化或者非结构化的数据存储。 - -#### [Tachyon](http://tachyon-project.org/) - -内存为中心的分布式存储系统,利用内存访问的高速提供高性能。 diff --git a/mesos/installation.md b/mesos/installation.md deleted file mode 100644 index 0a60a1857..000000000 --- a/mesos/installation.md +++ /dev/null @@ -1,387 +0,0 @@ -## Mesos 安装与使用 -以 Mesos 结合 Marathon 应用框架为例,来看下如何快速搭建一套 Mesos 平台。 - -Marathon 是可以跟 Mesos 一起协作的一个 framework,基于 Scala 实现,可以实现保持应用的持续运行。 - -另外,Mesos 默认利用 ZooKeeper 来进行多个主节点之间的选举,以及从节点发现主节点的过程。一般在生产环境中,需要启动多个 Mesos master 服务(推荐 3 或 5 个),并且推荐使用 supervisord 等进程管理器来自动保持服务的运行。 - -ZooKeeper 是一个分布式集群中信息同步的工具,通过自动在多个节点中选举 `leader`,保障多个节点之间的某些信息保持一致性。 - -### 安装 -安装主要需要 mesos、zookeeper 和 marathon 三个软件包。 - -Mesos 也采用了经典的主-从结构,一般包括若干主节点和大量从节点。其中,mesos master 服务和 zookeeper 需要部署到所有的主节点,mesos slave 服务需要部署到所有从节点。marathon 可以部署到主节点。 - -安装可以通过源码编译、软件源或者 Docker 镜像方式进行,下面分别进行介绍。 - -#### 源码编译 - -源码编译方式可以保障获取到最新版本,但编译过程比较费时间。 - -首先,从 apache.org 开源网站下载最新的源码。 - -```sh -$ git clone https://git-wip-us.apache.org/repos/asf/mesos.git -``` - -其中,主要代码在 `src` 目录下,应用框架代码在 `frameworks` 目录下,文档在 `docs` 目录下,`include ` 中包括了跟 Mesos 打交道使用的一些 API 定义头文件。 - -安装依赖,主要包括 Java 运行环境、Linux 上的自动编译环境等。 - -```sh -$ sudo apt-get update -$ sudo apt-get install -y openjdk-8-jdk autoconf libtool \ -build-essential python-dev python-boto libcurl4-nss-dev \ -libsasl2-dev maven libapr1-dev libsvn-dev -``` - -后面就是常规 C++ 项目的方法,configure 之后利用 Makefile 进行编译和安装。 - -```sh -$ cd mesos -$ ./bootstrap -$ mkdir build -$ cd build && ../configure --with-network-isolator -$ make -$ make check && sudo make install -``` - -#### 软件源安装 - -通过软件源方式进行安装相对会省时间,但往往不是最新版本。 - -这里以 Ubuntu 系统为例,首先添加软件源地址。 - -```sh -$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF -$ DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]') -$ CODENAME=$(lsb_release -cs) -$ echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \ -sudo tee /etc/apt/sources.list.d/mesosphere.list -``` - -刷新本地软件仓库信息并安装 zookeeper、mesos、marathon 三个软件包。 - -```sh -$ sudo apt-get -y update && sudo apt-get -y install zookeeper mesos marathon -``` - -注意,Marathon 最新版本需要 jdk 1.8+ 的支持。如果系统中有多个 Java 版本,需要检查配置默认的 JDK 版本符合要求。 - -```sh -$ sudo update-alternatives --config java -``` - -安装 Mesos 成功后,会在 `/usr/sbin/` 下面发现 `mesos-master` 和 `mesos-slave` 两个二进制文件,分别对应主节点上需要运行的管理服务和从节点上需要运行的任务服务。 - -用户可以手动运行二进制文件启动服务,也可以通过 `service` 命令来方便进行管理。 - -例如,在主节点上重启 Mesos 管理服务: - -```sh -$ sudo service mesos-master restart -``` - -通过 `service` 命令来管理,实际上是通过调用 `/usr/bin/mesos-init-wrapper` 脚本文件进行处理。 - -#### [基于 Docker](https://github.com/sekka1/mesosphere-docker) - -需要如下三个镜像。 - -* ZooKeeper:https://registry.hub.docker.com/u/garland/zookeeper/ -* Mesos:https://registry.hub.docker.com/u/garland/mesosphere-docker-mesos-master/ -* Marathon:https://registry.hub.docker.com/u/garland/mesosphere-docker-marathon/ - -其中 mesos-master 镜像在后面将分别作为 master 和 slave 角色进行使用。 - -首先,拉取三个镜像。 - -```sh -$ docker pull garland/zookeeper -$ docker pull garland/mesosphere-docker-mesos-master -$ docker pull garland/mesosphere-docker-marathon -``` - -导出主节点机器的地址到环境变量。 - -```sh -$ HOST_IP=10.0.0.2 -``` - -在主节点上启动 Zookeepr 容器。 - -```sh -docker run -d \ --p 2181:2181 \ --p 2888:2888 \ --p 3888:3888 \ -garland/zookeeper -``` - -在主节点上启动 Mesos Master 服务容器。 - -```sh -docker run --net="host" \ --p 5050:5050 \ --e "MESOS_HOSTNAME=${HOST_IP}" \ --e "MESOS_IP=${HOST_IP}" \ --e "MESOS_ZK=zk://${HOST_IP}:2181/mesos" \ --e "MESOS_PORT=5050" \ --e "MESOS_LOG_DIR=/var/log/mesos" \ --e "MESOS_QUORUM=1" \ --e "MESOS_REGISTRY=in_memory" \ --e "MESOS_WORK_DIR=/var/lib/mesos" \ --d \ -garland/mesosphere-docker-mesos-master -``` - -在主节点上启动 Marathon。 - -```sh -docker run \ --d \ --p 8080:8080 \ -garland/mesosphere-docker-marathon --master zk://${HOST_IP}:2181/mesos --zk zk://${HOST_IP}:2181/marathon -``` - -在从节点上启动 Mesos slave 容器。 - -```sh -docker run -d \ ---name mesos_slave_1 \ ---entrypoint="mesos-slave" \ --e "MESOS_MASTER=zk://${HOST_IP}:2181/mesos" \ --e "MESOS_LOG_DIR=/var/log/mesos" \ --e "MESOS_LOGGING_LEVEL=INFO" \ -garland/mesosphere-docker-mesos-master:latest -``` - -接下来,可以通过访问本地 8080 端口来使用 Marathon 启动任务了。 - - -### 配置说明 - -下面以本地通过软件源方式安装为例,解释如何修改各个配置文件。 - -#### ZooKeepr - -ZooKeepr 是一个分布式应用的协调工具,用来管理多个主节点的选举和冗余,监听在 2181 端口。推荐至少布置三个主节点来被 ZooKeeper 维护。 - -配置文件默认都在 `/etc/zookeeper/conf/` 目录下。比较关键的配置文件有两个:`myid` 和 `zoo.cfg`。 - -myid 文件会记录加入 ZooKeeper 集群的节点的序号(1-255之间)。`/var/lib/zookeeper/myid` 文件其实也是软连接到了该文件。 - -比如配置某节点序号为 1,则需要在该节点上执行: - -```sh -$ echo 1 | sudo dd of=/etc/zookeeper/conf/myid -``` - -节点序号在 ZooKeeper 集群中必须唯一,不能出现多个拥有相同序号的节点。 - -另外,需要修改 zoo.cfg 文件,该文件是主配置文件,主要需要添加上加入 ZooKeeper 集群的机器的序号和对应监听地址。 - -例如,现在 ZooKeeper 集群中有三个节点,地址分别为 `10.0.0.2`、`10.0.0.3`、`10.0.0.4`,序号分别配置为 `2`、`3`、`4`。 - -则配置如下的三行: - -```sh -server.2=10.0.0.2:2888:3888 -server.3=10.0.0.3:2888:3888 -server.4=10.0.0.4:2888:3888 -``` - -其中第一个端口 2888 负责从节点连接到主节点的;第二个端口 3888 则负责主节点进行选举时候通信。 - -也可以用主机名形式,则需要各个节点 `/etc/hosts` 文件中都记录地址到主机名对应的映射关系。 - -完成配置后,启动 ZooKeeper 服务。 - -```sh -$ sudo service zookeeper start -``` - -#### Mesos - -Mesos 的默认配置目录有三个: - -* /etc/mesos/:主节点和从节点都会读取的配置文件,最关键的是 zk 文件存放主节点的信息; -* /etc/mesos-master/:只有主节点会读取的配置,等价于启动 mesos-master 命令时候的默认选项; -* /etc/mesos-slave/:只有从节点会读取的配置,等价于启动 mesos-master 命令时候的默认选项。 - -最关键的是需要在所有节点上修改 `/etc/mesos/zk`,写入主节点集群的 ZooKeeper 地址列表,例如: - -```sh -zk://10.0.0.2:2181,10.0.0.3:2181,10.0.0.4:2181/mesos -``` - -此外,`/etc/default/mesos`、`/etc/default/mesos-master`、`/etc/default/mesos-slave` 这三个文件中可以存放一些环境变量定义,Mesos 服务启动之前,会将这些环境变量导入进来作为启动参数。格式为 `MESOS_OPTION_NAME`。 - -下面分别说明在主节点和从节点上的配置。 - -##### 主节点 - -一般只需要关注 `/etc/mesos-master/` 目录下的文件。默认情况下目录下为空。 - -该目录下文件命名和内容需要跟 mesos-master 支持的命令行选项一一对应。可以通过 `mesos-master --help` 命令查看支持的选项。 - -例如某个文件 `key` 中内容为 `value`,则在 mesos-master 服务启动的时候,会自动添加参数 `--key=value` 给二进制命令。 - -例如,mesos-master 服务默认监听在 loopback 端口,即 `127.0.0.1:5050`,我们需要修改主节点监听的地址,则可以创建 /etc/mesos-master/ip 文件,在其中写入主节点监听的外部地址。 - -为了正常启动 mesos-master 服务,还需要指定 `work_dir` 参数(表示应用框架的工作目录)的值,可以通过创建 /etc/mesos-master/work_dir 文件,在其中写入目录,例如 ` /var/lib/mesos`。工作目录下会生成一个 `replicated_log` 目录,会存有各种同步状态的持久化信息。 - -以及指定 quorum 参数的值,该参数用来表示 ZooKeeper 集群中要求最少参加表决的节点数目。一般设置为比 ZooKeeper 集群中节点个数的半数多一些(比如三个节点的话,可以配置为 `2`)。 - -此外,要修改 Mesos 集群的名称,可以创建 `/etc/mesos-master/cluster` 文件,在其中写入集群的别名,例如 `MesosCluster`。 - -总结下,建议在 `/etc/mesos-master` 目录下,配置至少四个参数文件:`ip`、`quorum`、`work_dir`、`cluster`。 - -修改配置之后,需要启动服务即可生效。 -```sh -$ sudo service mesos-master start -``` - -更多选项可以参考后面的配置项解析章节。 - -主节点服务启动后,则可以在从节点上启动 mesos-slave 服务来加入主节点的管理。 - -##### 从节点 -一般只需要关注 `/etc/mesos-slave/` 目录下的文件。默认情况下目录下为空。 - -文件命名和内容也是跟主节点类似,对应二进制文件支持的命令行参数。 - -建议在从节点上,创建 `/etc/mesos-slave/ip` 文件,在其中写入跟主节点通信的地址。 - -修改配置之后,也需要重新启动服务。 - -```sh -$ sudo service mesos-slave start -``` - -更多选项可以参考后面的配置项解析章节。 - -#### Marathon -Marathon 作为 Mesos 的一个应用框架,配置要更为简单,必需的配置项有 `--master` 和 `--zk`。 - -安装完成后,会在 /usr/bin 下多一个 marathon shell 脚本,为启动 marathon 时候执行的命令。 - -配置目录为 `/etc/marathon/conf`(需要手动创建),此外默认配置文件在 `/etc/default/marathon`。 - -我们手动创建配置目录,并添加配置项(文件命名和内容跟 Mesos 风格一致),让 Marathon 能连接到已创建的 Mesos 集群中。 - -```sh -$ sudo mkdir -p /etc/marathon/conf -$ sudo cp /etc/mesos/zk /etc/marathon/conf/master -``` - -同时,让 Marathon 也将自身的状态信息保存到 ZooKeeper 中。创建 `/etc/marathon/conf/zk` 文件,添加 ZooKeeper 地址和路径。 - -```sh -zk://10.0.0.2:2181,10.0.0.2:2181,10.0.0.2:2181/marathon -``` - -启动 marathon 服务。 - -```sh -$ sudo service marathon start -``` - -### 访问 Mesos 图形界面 - -Mesos 自带了 Web 图形界面,可以方便用户查看集群状态。 - -用户在 Mesos 主节点服务和从节点服务都启动后,可以通过浏览器访问主节点 5050 端口,看到类似如下界面,已经有两个 slave 节点加入了。 - -![mesos 界面查看加入的 slave 节点](_images/mesos.png) - -通过 Slaves 标签页能看到加入集群的从节点的信息。 - -如果没有启动 Marathon 服务,在 Frameworks 标签页下将看不到任何内容。 - -### 访问 Marathon 图形界面 - -Marathon 服务启动成功后,在 Mesos 的 web 界面的 Frameworks 标签页下面将能看到名称为 marathon 的框架出现。 - -同时可以通过浏览器访问 8080 端口,看到 Marathon 自己的管理界面。 - -![marathon 图形管理界面](_images/marathon.png) - -此时,可以通过界面或者 REST API 来创建一个应用,Marathon 会保持该应用的持续运行。 - -![marathon 查看任务支持的参数](_images/marathon_basic0.png) - -通过界面方式可以看到各任务支持的参数(包括资源、命令、环境变量、健康检查等),同时可以很容易地修改任务运行实例数进行扩展,非常适合进行测试。 - -如果要更自动化地使用 Marathon,则需要通过它的 REST API 进行操作。 - -一般的,启动新任务需要先创建一个定义模板(JSON 格式),然后发到指定的 API。 - -例如,示例任务 basic-0 的定义模板为: - -```json -{ - "id": "basic-0", - "cmd": "while [ true ] ; do echo 'Hello Marathon' ; sleep 5 ; done", - "cpus": 0.1, - "mem": 10.0, - "instances": 1 -} -``` - -该任务申请资源为 0.1 个单核 CPU 资源和 10 MB 的内存资源,具体命令为每隔五秒钟用 shell 打印一句 `Hello Marathon`。 - -可以通过如下命令发出 basic-0 任务到 Marathon 框架,框架会分配任务到某个满足条件的从节点上,成功会返回一个 json 对象,描述任务的详细信息。 - -```sh -$ curl -X POST http://marathon_host:8080/v2/apps -d @basic-0.json -H "Content-type: application/json" -{"id":"/basic-0","cmd":"while [ true ] ; do echo 'Hello Marathon' ; sleep 5 ; done","args":null,"user":null,"env":{},"instances":1,"cpus":0.1,"mem":10,"disk":0,"executor":"","constraints":[],"uris":[],"storeUrls":[],"ports":[0],"requirePorts":false,"backoffSeconds":1,"backoffFactor":1.15,"maxLaunchDelaySeconds":3600,"container":null,"healthChecks":[],"dependencies":[],"upgradeStrategy":{"minimumHealthCapacity":1,"maximumOverCapacity":1},"labels":{},"acceptedResourceRoles":null,"version":"2015-12-28T05:33:05.805Z","tasksStaged":0,"tasksRunning":0,"tasksHealthy":0,"tasksUnhealthy":0,"deployments":[{"id":"3ec3fbd5-11e4-479f-bd17-813d33e43e0c"}],"tasks":[]}% -``` - -Marathon 的更多 REST API 可以参考本地自带的文档:`http://marathon_host:8080/api-console/index.html`。 - -此时,如果运行任务的从节点出现故障,任务会自动在其它可用的从节点上启动。 - -此外,目前也已经支持基于 Docker 容器的任务。需要先在 Mesos slave 节点上为 slave 服务配置 `--containerizers=docker,mesos` 参数。 - -例如如下面的示例任务: - -```json -{ - "id": "basic-3", - "cmd": "python3 -m http.server 8080", - "cpus": 0.5, - "mem": 32.0, - "container": { - "type": "DOCKER", - "volumes": [], - "docker": { - "image": "python:3", - "network": "BRIDGE", - "portMappings": [ - { - "containerPort": 8080, - "hostPort": 31000, - "servicePort": 0, - "protocol": "tcp" - } - ], - "privileged": false, - "parameters": [], - "forcePullImage": true - } - } -} -``` - -该任务启动一个 `python:3` 容器,执行 `python3 -m http.server 8080` 命令,作为一个简单的 web 服务,实际端口会映射到宿主机的 31000 端口。 - -注意区分 hostPort 和 servicePort,前者代表任务映射到的本地可用端口(可用范围由 Mesos slave 汇报,默认为 31000 ~ 32000);后者作为服务管理的端口,可以被用作一些服务发行机制使用进行转发,在整个 Marathon 集群中是唯一的。 - -任务执行后,也可以在对应 slave 节点上通过 Docker 命令查看容器运行情况,容器将以 `mesos-SLAVE_ID` 开头。 - -```sh -$ docker container ls -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -1226b4ec8d7d python:3 "/bin/sh -c 'python3 " 3 days ago Up 3 days 0.0.0.0:10000->8080/tcp mesos-06db0fba-49dc-4d28-ad87-6c2d5a020866-S10.b581149e-2c43-46a2-b652-1a0bc10204b3 -``` diff --git a/mesos/intro.md b/mesos/intro.md deleted file mode 100644 index a33a5b769..000000000 --- a/mesos/intro.md +++ /dev/null @@ -1,20 +0,0 @@ -## 简介 -Mesos 最初由 UC Berkeley 的 AMP 实验室于 2009 年发起,遵循 Apache 协议,目前已经成立了 Mesosphere 公司进行运营。Mesos 可以将整个数据中心的资源(包括 CPU、内存、存储、网络等)进行抽象和调度,使得多个应用同时运行在集群中分享资源,并无需关心资源的物理分布情况。 - -如果把数据中心中的集群资源看做一台服务器,那么 Mesos 要做的事情,其实就是今天操作系统内核的职责:抽象资源 + 调度任务。Mesos 项目是 Mesosphere 公司 Datacenter Operating System (DCOS) 产品的核心部件。 - -Mesos 项目主要由 C++ 语言编写,项目官方地址为 [https://mesos.apache.org](https://mesos.apache.org),代码仍在快速演化中,已经发布了正式版 1.0.0 版本。 - -Mesos 拥有许多引人注目的特性,包括: -* 支持数万个节点的大规模场景(Apple、Twitter、eBay 等公司实践); -* 支持多种应用框架,包括 Marathon、Singularity、Aurora 等; -* 支持 HA(基于 ZooKeeper 实现); -* 支持 Docker、LXC 等容器机制进行任务隔离; -* 提供了多个流行语言的 API,包括 Python、Java、C++ 等; -* 自带了简洁易用的 WebUI,方便用户直接进行操作。 - -值得注意的是,Mesos 自身只是一个资源抽象的平台,要使用它往往需要结合运行其上的分布式应用(在 Mesos 中被称作框架,framework),比如 Hadoop、Spark 等可以进行分布式计算的大数据处理应用;比如 Marathon 可以实现 PaaS,快速部署应用并自动保持运行;比如 ElasticSearch 可以索引海量数据,提供灵活的整合和查询能力…… - -大部分时候,用户只需要跟这些框架打交道即可,完全无需关心底下的资源调度情况,因为 Mesos 已经自动帮你实现了。这大大方便了上层应用的开发和运维。 - -当然,用户也可以基于 Mesos 打造自己的分布式应用框架。 diff --git a/mesos/monitor.md b/mesos/monitor.md deleted file mode 100644 index 641b38db0..000000000 --- a/mesos/monitor.md +++ /dev/null @@ -1,110 +0,0 @@ -## 日志与监控 - -Mesos 自身提供了强大的日志和监控功能,某些应用框架也提供了针对框架中任务的监控能力。通过这些接口,用户可以实时获知集群的各种状态。 - -### 日志配置 -日志文件默认在 `/var/log/mesos` 目录下,根据日志等级带有不同后缀。 - -用户可以通过日志来调试使用中碰到的问题。 - -一般的,推荐使用 `--log_dir` 选项来指定日志存放路径,并通过日志分析引擎来进行监控。 - - -### 监控 - -Mesos 提供了方便的监控接口,供用户查看集群中各个节点的状态。 - -#### 主节点 -通过 `http://MASTER_NODE:5050/metrics/snapshot` 地址可以获取到 Mesos 主节点的各种状态统计信息,包括资源(CPU、硬盘、内存)使用、系统状态、从节点、应用框架、任务状态等。 - -例如查看主节点 `10.0.0.2` 的状态信息,并用 jq 来解析返回的 json 对象。 - -```sh -$ curl -s http://10.0.0.2:5050/metrics/snapshot |jq . -{ - "system/mem_total_bytes": 4144713728, - "system/mem_free_bytes": 153071616, - "system/load_5min": 0.37, - "system/load_1min": 0.6, - "system/load_15min": 0.29, - "system/cpus_total": 4, - "registrar/state_store_ms/p9999": 45.4096616192, - "registrar/state_store_ms/p999": 45.399272192, - "registrar/state_store_ms/p99": 45.29537792, - "registrar/state_store_ms/p95": 44.8336256, - "registrar/state_store_ms/p90": 44.2564352, - "registrar/state_store_ms/p50": 34.362368, - ... - "master/recovery_slave_removals": 1, - "master/slave_registrations": 0, - "master/slave_removals": 0, - "master/slave_removals/reason_registered": 0, - "master/slave_removals/reason_unhealthy": 0, - "master/slave_removals/reason_unregistered": 0, - "master/slave_reregistrations": 2, - "master/slave_shutdowns_canceled": 0, - "master/slave_shutdowns_completed": 1, - "master/slave_shutdowns_scheduled": 1 -} -``` - -#### 从节点 - -通过 `http://SLAVE_NODE:5051/metrics/snapshot` 地址可以获取到 Mesos 从节点的各种状态统计信息,包括资源、系统状态、各种消息状态等。 - -例如查看从节点 `10.0.0.10` 的状态信息。 - -```sh -$ curl -s http://10.0.0.10:5051/metrics/snapshot |jq . -{ - "system/mem_total_bytes": 16827785216, - "system/mem_free_bytes": 3377315840, - "system/load_5min": 0.11, - "system/load_1min": 0.16, - "system/load_15min": 0.13, - "system/cpus_total": 8, - "slave/valid_status_updates": 11, - "slave/valid_framework_messages": 0, - "slave/uptime_secs": 954125.458927872, - "slave/tasks_starting": 0, - "slave/tasks_staging": 0, - "slave/tasks_running": 1, - "slave/tasks_lost": 0, - "slave/tasks_killed": 2, - "slave/tasks_finished": 0, - "slave/executors_preempted": 0, - "slave/executor_directory_max_allowed_age_secs": 403050.709525191, - "slave/disk_used": 0, - "slave/disk_total": 88929, - "slave/disk_revocable_used": 0, - "slave/disk_revocable_total": 0, - "slave/disk_revocable_percent": 0, - "slave/disk_percent": 0, - "containerizer/mesos/container_destroy_errors": 0, - "slave/container_launch_errors": 6, - "slave/cpus_percent": 0.025, - "slave/cpus_revocable_percent": 0, - "slave/cpus_revocable_total": 0, - "slave/cpus_revocable_used": 0, - "slave/cpus_total": 8, - "slave/cpus_used": 0.2, - "slave/executors_registering": 0, - "slave/executors_running": 1, - "slave/executors_terminated": 8, - "slave/executors_terminating": 0, - "slave/frameworks_active": 1, - "slave/invalid_framework_messages": 0, - "slave/invalid_status_updates": 0, - "slave/mem_percent": 0.00279552715654952, - "slave/mem_revocable_percent": 0, - "slave/mem_revocable_total": 0, - "slave/mem_revocable_used": 0, - "slave/mem_total": 15024, - "slave/mem_used": 42, - "slave/recovery_errors": 0, - "slave/registered": 1, - "slave/tasks_failed": 6 -} -``` - -另外,通过 `http://MASTER_NODE:5050/monitor/statistics.json` 地址可以看到该从节点上容器网络相关的统计数据,包括进出流量、丢包数、队列情况等。获取方法同上,在此不再演示。 \ No newline at end of file diff --git a/mesos/summary.md b/mesos/summary.md deleted file mode 100644 index 53d589162..000000000 --- a/mesos/summary.md +++ /dev/null @@ -1,7 +0,0 @@ -## 本章小结 - -本章讲解了 Mesos 的安装使用、基本原理和架构,以及支持 Mesos 的重要应用框架。Mesos 最初设计为资源调度器,然而其灵活的设计和对上层框架的优秀支持,使得它可以很好的支持大规模的分布式应用场景。结合 Docker,Mesos 可以很容易部署一套私有的容器云。 - -除了核心功能之外,Mesos 在设计上有许多值得借鉴之处,比如它清晰的定位、简洁的架构、细致的参数、高度容错的可靠,还有对限速、监控等的支持等。 - -Mesos 作为一套成熟的开源项目,可以很好的被应用和集成到生产环境中。但它的定位集中在资源调度,往往需要结合应用框架或二次开发。 \ No newline at end of file From aa3d56fce9e0746cf399483faf5c39a74b873aa2 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 20 Dec 2020 23:22:30 +0800 Subject: [PATCH 561/611] remove travis ci Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 1 - .github/workflows/ci.yaml | 2 +- .vuepress/config.js | 1 - SUMMARY.md | 1 - cases/ci/travis/README.md | 47 -------------------------------- cases/ci/travis/demo/.travis.yml | 16 ----------- cases/ci/travis/demo/Dockerfile | 3 -- 7 files changed, 1 insertion(+), 70 deletions(-) delete mode 100644 cases/ci/travis/README.md delete mode 100644 cases/ci/travis/demo/.travis.yml delete mode 100644 cases/ci/travis/demo/Dockerfile diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 6866bf657..6250589c9 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -51,7 +51,6 @@ jobs: "security.ubuntu.com/ubuntu",\ "nginx.com",\ "img.shields.io/github/release/yeasy/docker_practice",\ - "travis-ci.org/yeasy/docker_practice.svg",\ "launchpad.net",\ "www.w3.org/1999",\ "chat.freenode.net",\ diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 08065784d..45819dfed 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -99,7 +99,7 @@ jobs: PCIT_GIT_URL: github.com/docker-practice/vuepress PCIT_KEEP_HISTORY: "true" PCIT_LOCAL_DIR: .vuepress/dist - PCIT_MESSAGE: Sync from yeasy/docker_practice@${{github.sha}} by PCIT + PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}} PCIT_TARGET_BRANCH: master PCIT_USERNAME: khs1994 - name: Set coding.net CNAME diff --git a/.vuepress/config.js b/.vuepress/config.js index 0130ab02e..5ffa543ce 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -222,7 +222,6 @@ module.exports = config({ 'drone/install' ] }, - 'travis/' ], '/': [ '/', diff --git a/SUMMARY.md b/SUMMARY.md index e3ef168dd..9cecb27e9 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -146,7 +146,6 @@ * [GitHub Actions](cases/ci/actions/README.md) * [Drone](cases/ci/drone/README.md) * [部署 Drone](cases/ci/drone/install.md) - * [Travis CI](cases/ci/travis/README.md) * [在 IDE 中使用 Docker](ide/README.md) * [VS Code](ide/vsCode.md) * [podman - 下一代 Linux 容器工具](podman/README.md) diff --git a/cases/ci/travis/README.md b/cases/ci/travis/README.md deleted file mode 100644 index 792a5cee1..000000000 --- a/cases/ci/travis/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# 在 Travis CI 中使用 Docker - -当代码提交到 GitHub 时,[Travis CI](https://travis-ci.com/) 会根据项目根目录 `.travis.yml` 文件设置的指令,执行一系列操作。 - -本小节介绍如何在 Travis CI 中使用 Docker 进行持续集成/持续部署(CI/CD)。这里以当代码提交到 GitHub 时自动构建 Docker 镜像并推送到 Docker Hub 为例进行介绍。 - -## 准备 - -首先登录 https://travis-ci.com/account/repositories 选择 GitHub 仓库,按照指引安装 GitHub App 来启用 GitHub 仓库构建。 - -在项目根目录新建一个 `Dockerfile` 文件。 - -```docker -FROM alpine - -RUN echo "Hello World" -``` - -新建 Travis CI 配置文件 `.travis.yml` 文件。 - -```yml -language: bash - -dist: xenial - -services: - - docker - -before_script: - # 登录到 docker hub - - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - -script: - # 这里编写测试代码的命令 - - echo "test code" - -after_success: - # 当代码测试通过后执行的命令 - - docker build -t username/alpine . - - docker push username/alpine -``` - -> 请提前在 Travis CI 仓库设置页面配置 `DOCKER_PASSWORD` `DOCKER_USERNAME` 变量 - -## 查看结果 - -将项目推送到 GitHub,登录 [Travis CI](https://travis-ci.com/) 查看构建详情。 diff --git a/cases/ci/travis/demo/.travis.yml b/cases/ci/travis/demo/.travis.yml deleted file mode 100644 index a17054737..000000000 --- a/cases/ci/travis/demo/.travis.yml +++ /dev/null @@ -1,16 +0,0 @@ -language: bash - -dist: xenial - -services: - - docker - -before_script: - - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - -script: - - echo "test code" - -after_success: - - docker build -t username/alpine . - - docker push username/alpine diff --git a/cases/ci/travis/demo/Dockerfile b/cases/ci/travis/demo/Dockerfile deleted file mode 100644 index a58cc938c..000000000 --- a/cases/ci/travis/demo/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM alpine - -RUN echo "Hello World" From d4145058352befe6027a901a1891e7469267b3e0 Mon Sep 17 00:00:00 2001 From: WC <34792731+GFZRZK@users.noreply.github.com> Date: Mon, 11 Jan 2021 18:14:38 +0800 Subject: [PATCH 562/611] fix wrong cmd fix wrong cmd --- appendix/debug.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appendix/debug.md b/appendix/debug.md index 9fce8d7f3..90e06cd6d 100644 --- a/appendix/debug.md +++ b/appendix/debug.md @@ -21,8 +21,8 @@ $ sudo kill -SIGHUP $(pidof dockerd) ## 检查内核日志 ```bash -$ sudo dmesag |grep dockerd -$ sudo dmesag |grep runc +$ sudo dmesg |grep dockerd +$ sudo dmesg |grep runc ``` ## Docker 不响应时处理 From 6265d0274b86a364a8a39cc1b25405592e326812 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Wed, 3 Mar 2021 00:11:07 +0800 Subject: [PATCH 563/611] [vuepress] Update version Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 1 + .github/workflows/ci.yaml | 2 +- .vuepress/config.js | 10 +++++----- cases/ci/actions/README.md | 2 +- install/raspberry-pi.md | 2 +- package.json | 2 +- repository/nexus3_registry.md | 2 +- 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 6250589c9..e0fff2978 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -60,6 +60,7 @@ jobs: "x.x.x.x/base",\ "x.x.x.x:9000/minio/",\ "yeasy.gitbooks.io",\ + "download.fastgit.org",\ "www.aliyun.com" \ --allow-dupe \ --skip-save-results \ diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 45819dfed..80f68850c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -122,7 +122,7 @@ jobs: run: | sudo rm -rf .vuepress/dist/.git - echo "FROM nginx:alpine" >> Dockerfile + echo "FROM nginx:alpine" > Dockerfile echo "COPY .vuepress/dist /usr/share/nginx/html" >> Dockerfile echo "COPY .docker/docker-entrypoint.sh /" >> Dockerfile echo "ENTRYPOINT [\"/docker-entrypoint.sh\"]" >> Dockerfile diff --git a/.vuepress/config.js b/.vuepress/config.js index 5ffa543ce..330dc1a1b 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -48,9 +48,9 @@ module.exports = config({ appKey: "...", // your appKey }, pageInfo: [ - // 'Author', - 'ReadTime', - 'Word', + // 'author', + 'reading-time', + 'word', ], footer: { content: "Made with vuepress-theme-hope", @@ -126,8 +126,8 @@ module.exports = config({ // link: '' // }, { - text: '腾讯云容器服务', - link: 'https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61' + text: '腾讯云2021新春采购节', + link: 'https://cloud.tencent.com/act/cps/redirect?redirect=10488&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=activity' }, // { // text: '语言', diff --git a/cases/ci/actions/README.md b/cases/ci/actions/README.md index 8b5364fbf..204865208 100644 --- a/cases/ci/actions/README.md +++ b/cases/ci/actions/README.md @@ -25,4 +25,4 @@ jobs: ## 参考资料 -* [Actions Docs](https://docs.github.com/en/free-pro-team@latest/actions) +* [Actions Docs](https://docs.github.com/en/actions) diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index be1a73d8a..772670460 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -6,7 +6,7 @@ Docker 不仅支持 `x86_64` 架构的计算机,同时也支持 `ARM` 架构的计算机,本小节内容以树莓派单片电脑为例讲解 `ARM` 架构安装 Docker。 -Docker 支持以下版本的 [Raspberry Pi OS](https://www.raspberrypi.org/downloads/raspberry-pi-os/) 操作系统: +Docker 支持以下版本的 [Raspberry Pi OS](https://www.raspberrypi.org/software/operating-systems/) 操作系统: * Raspberry Pi OS Buster diff --git a/package.json b/package.json index 3ce29fe81..e7d5fb064 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "chalk": "^2.4.2", "commander": "^2.0.0", "esm": "^3.0.0", - "vuepress": "1.7.1", + "vuepress": "1.8.2", "vuepress-plugin-container": "^2.1.5", "vuepress-theme-hope": "^1.0.0" }, diff --git a/repository/nexus3_registry.md b/repository/nexus3_registry.md index 44126130d..619c63a4a 100644 --- a/repository/nexus3_registry.md +++ b/repository/nexus3_registry.md @@ -1,6 +1,6 @@ # Nexus3.x 的私有仓库 -使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry 程序。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/nexus/repository-oss/download) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 +使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry 程序。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/nexus/repository-oss-download) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 ## 启动 Nexus 容器 From 5ebd6fb6f8393abbaac1cd12a82700ca8e89b152 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sat, 6 Mar 2021 11:00:31 +0800 Subject: [PATCH 564/611] Update brew command, fixed #484 Signed-off-by: Kang Huaishuai --- install/mac.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/mac.md b/install/mac.md index 3ceefb0f3..9685c14ad 100644 --- a/install/mac.md +++ b/install/mac.md @@ -11,7 +11,7 @@ [Homebrew](https://brew.sh/) 的 [Cask](https://github.com/Homebrew/homebrew-cask) 已经支持 Docker Desktop for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: ```bash -$ brew cask install docker +$ brew install --cask docker ``` ### 手动下载安装 From ea00e0d82a9af8b2c92e9fd54b1054964ea4077d Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 7 Mar 2021 15:29:05 +0800 Subject: [PATCH 565/611] Update format Signed-off-by: Kang Huaishuai --- .github/workflows/ci.yaml | 15 +++++++++++++-- advanced_network/access_control.md | 1 + advanced_network/example.md | 1 + basic_concept/README.md | 1 + cases/os/debian.md | 1 + container/README.md | 1 + image/dockerfile/add.md | 2 +- image/dockerfile/arg.md | 2 +- image/dockerfile/cmd.md | 2 +- image/dockerfile/copy.md | 2 +- image/dockerfile/entrypoint.md | 2 +- image/dockerfile/env.md | 2 +- image/dockerfile/expose.md | 2 +- image/dockerfile/healthcheck.md | 2 +- image/dockerfile/onbuild.md | 2 +- image/dockerfile/references.md | 2 +- image/dockerfile/user.md | 2 +- image/dockerfile/volume.md | 2 +- image/dockerfile/workdir.md | 2 +- introduction/README.md | 1 + security/README.md | 1 + security/control_group.md | 1 + security/daemon_sec.md | 1 + security/kernel_ns.md | 1 + security/other_feature.md | 1 + security/summary.md | 1 + underly/namespace.md | 1 + 27 files changed, 39 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 80f68850c..68724f463 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -5,6 +5,10 @@ on: name: CI +defaults: + run: + shell: bash --noprofile --norc -exo pipefail {0} + jobs: build: name: Build @@ -39,7 +43,10 @@ jobs: docker run -d --rm -p 4000:80 dockerpracticesig/docker_practice sleep 5 + + echo "::group::Test" curl 127.0.0.1:4000 + echo "::endgroup::" echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker push dockerpracticesig/docker_practice @@ -139,9 +146,13 @@ jobs: docker push dockerpracticesig/docker_practice:vuepress - docker run -it --rm -d -p 4000:80 dockerpracticesig/docker_practice:vuepress + docker run -it --rm -d -p 4001:80 dockerpracticesig/docker_practice:vuepress - curl 127.0.0.1:4000 + sleep 5 + + echo "::group::Test" + curl 127.0.0.1:4001 + echo "::endgroup::" env: DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} diff --git a/advanced_network/access_control.md b/advanced_network/access_control.md index c382b5d7b..c99fb7787 100644 --- a/advanced_network/access_control.md +++ b/advanced_network/access_control.md @@ -1,4 +1,5 @@ # 容器访问控制 + 容器的访问控制,主要通过 Linux 上的 `iptables` 防火墙来进行管理和实现。`iptables` 是 Linux 上默认的防火墙软件,在大部分发行版中都自带。 ## 容器访问外部网络 diff --git a/advanced_network/example.md b/advanced_network/example.md index f7ca843b1..e8bf80214 100644 --- a/advanced_network/example.md +++ b/advanced_network/example.md @@ -1,4 +1,5 @@ # 工具和示例 + 在介绍自定义网络拓扑之前,你可能会对一些外部工具和例子感兴趣: ## pipework diff --git a/basic_concept/README.md b/basic_concept/README.md index dec8e471b..82c417e95 100644 --- a/basic_concept/README.md +++ b/basic_concept/README.md @@ -1,4 +1,5 @@ # 基本概念 + Docker 包括三个基本概念 * 镜像(`Image`) * 容器(`Container`) diff --git a/cases/os/debian.md b/cases/os/debian.md index 46b8e95f9..df640c147 100644 --- a/cases/os/debian.md +++ b/cases/os/debian.md @@ -1,4 +1,5 @@ # Debian/Ubuntu + `Debian` 和 `Ubuntu` 都是目前较为流行的 **Debian 系** 的服务器操作系统,十分适合研发场景。`Docker Hub` 上提供了官方镜像,国内各大容器云服务也基本都提供了相应的支持。 ## Debian 系统简介 diff --git a/container/README.md b/container/README.md index 5d571a9de..a7bfeffa0 100644 --- a/container/README.md +++ b/container/README.md @@ -1,4 +1,5 @@ # 操作 Docker 容器 + 容器是 Docker 又一核心概念。 简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。 diff --git a/image/dockerfile/add.md b/image/dockerfile/add.md index 5d9f18f25..4970b1034 100644 --- a/image/dockerfile/add.md +++ b/image/dockerfile/add.md @@ -1,4 +1,4 @@ -### ADD 更高级的复制文件 +# ADD 更高级的复制文件 `ADD` 指令和 `COPY` 的格式和性质基本一致。但是在 `COPY` 基础上增加了一些功能。 diff --git a/image/dockerfile/arg.md b/image/dockerfile/arg.md index d4b270813..8f5604b58 100644 --- a/image/dockerfile/arg.md +++ b/image/dockerfile/arg.md @@ -1,4 +1,4 @@ -### ARG 构建参数 +# ARG 构建参数 格式:`ARG <参数名>[=<默认值>]` diff --git a/image/dockerfile/cmd.md b/image/dockerfile/cmd.md index 9877c00e5..b4354ff9e 100644 --- a/image/dockerfile/cmd.md +++ b/image/dockerfile/cmd.md @@ -1,4 +1,4 @@ -### CMD 容器启动命令 +# CMD 容器启动命令 `CMD` 指令的格式和 `RUN` 相似,也是两种格式: diff --git a/image/dockerfile/copy.md b/image/dockerfile/copy.md index 0d482335f..1f03fe9e1 100644 --- a/image/dockerfile/copy.md +++ b/image/dockerfile/copy.md @@ -1,4 +1,4 @@ -### COPY 复制文件 +# COPY 复制文件 格式: diff --git a/image/dockerfile/entrypoint.md b/image/dockerfile/entrypoint.md index bd13ed8da..d7b6e065e 100644 --- a/image/dockerfile/entrypoint.md +++ b/image/dockerfile/entrypoint.md @@ -1,4 +1,4 @@ -### ENTRYPOINT 入口点 +# ENTRYPOINT 入口点 `ENTRYPOINT` 的格式和 `RUN` 指令格式一样,分为 `exec` 格式和 `shell` 格式。 diff --git a/image/dockerfile/env.md b/image/dockerfile/env.md index eba9eaed7..ca3936228 100644 --- a/image/dockerfile/env.md +++ b/image/dockerfile/env.md @@ -1,4 +1,4 @@ -### ENV 设置环境变量 +# ENV 设置环境变量 格式有两种: diff --git a/image/dockerfile/expose.md b/image/dockerfile/expose.md index eb707b039..a2b00b90e 100644 --- a/image/dockerfile/expose.md +++ b/image/dockerfile/expose.md @@ -1,4 +1,4 @@ -### EXPOSE 声明端口 +# EXPOSE 声明端口 格式为 `EXPOSE <端口1> [<端口2>...]`。 diff --git a/image/dockerfile/healthcheck.md b/image/dockerfile/healthcheck.md index 78a83a6db..2684347dd 100644 --- a/image/dockerfile/healthcheck.md +++ b/image/dockerfile/healthcheck.md @@ -1,4 +1,4 @@ -### HEALTHCHECK 健康检查 +# HEALTHCHECK 健康检查 格式: diff --git a/image/dockerfile/onbuild.md b/image/dockerfile/onbuild.md index dbe1384a0..50aa80325 100644 --- a/image/dockerfile/onbuild.md +++ b/image/dockerfile/onbuild.md @@ -1,4 +1,4 @@ -### ONBUILD 为他人做嫁衣裳 +# ONBUILD 为他人做嫁衣裳 格式:`ONBUILD <其它指令>`。 diff --git a/image/dockerfile/references.md b/image/dockerfile/references.md index f726792d3..96969eaf9 100644 --- a/image/dockerfile/references.md +++ b/image/dockerfile/references.md @@ -1,4 +1,4 @@ -### 参考文档 +# 参考文档 * `Dockerfie` 官方文档:https://docs.docker.com/engine/reference/builder/ diff --git a/image/dockerfile/user.md b/image/dockerfile/user.md index 5c60d243d..272c4f5af 100644 --- a/image/dockerfile/user.md +++ b/image/dockerfile/user.md @@ -1,4 +1,4 @@ -### USER 指定当前用户 +# USER 指定当前用户 格式:`USER <用户名>[:<用户组>]` diff --git a/image/dockerfile/volume.md b/image/dockerfile/volume.md index d27172f6a..f534d3a2a 100644 --- a/image/dockerfile/volume.md +++ b/image/dockerfile/volume.md @@ -1,4 +1,4 @@ -### VOLUME 定义匿名卷 +# VOLUME 定义匿名卷 格式为: diff --git a/image/dockerfile/workdir.md b/image/dockerfile/workdir.md index 79ad39587..339540374 100644 --- a/image/dockerfile/workdir.md +++ b/image/dockerfile/workdir.md @@ -1,4 +1,4 @@ -### WORKDIR 指定工作目录 +# WORKDIR 指定工作目录 格式为 `WORKDIR <工作目录路径>`。 diff --git a/introduction/README.md b/introduction/README.md index 2907907a5..61aec6ab7 100644 --- a/introduction/README.md +++ b/introduction/README.md @@ -1,4 +1,5 @@ # 简介 + 本章将带领你进入 **Docker** 的世界。 什么是 **Docker**? diff --git a/security/README.md b/security/README.md index fab030317..c183e6a63 100644 --- a/security/README.md +++ b/security/README.md @@ -1,4 +1,5 @@ # 安全 + 评估 Docker 的安全性时,主要考虑三个方面: * 由内核的命名空间和控制组机制提供的容器内在安全 diff --git a/security/control_group.md b/security/control_group.md index cd2bd39ed..338f5f958 100644 --- a/security/control_group.md +++ b/security/control_group.md @@ -1,4 +1,5 @@ # 控制组 + 控制组是 Linux 容器机制的另外一个关键组件,负责实现资源的审计和限制。 它提供了很多有用的特性;以及确保各个容器可以公平地分享主机的内存、CPU、磁盘 IO 等资源;当然,更重要的是,控制组确保了当容器内的资源使用产生压力时不会连累主机系统。 diff --git a/security/daemon_sec.md b/security/daemon_sec.md index e43359ce4..81c862700 100644 --- a/security/daemon_sec.md +++ b/security/daemon_sec.md @@ -1,4 +1,5 @@ # Docker服务端的防护 + 运行一个容器或应用程序的核心是通过 Docker 服务端。Docker 服务的运行目前需要 root 权限,因此其安全性十分关键。 首先,确保只有可信的用户才可以访问 Docker 服务。Docker 允许用户在主机和容器间共享文件夹,同时不需要限制容器的访问权限,这就容易让容器突破资源限制。例如,恶意用户启动容器的时候将主机的根目录`/`映射到容器的 `/host` 目录中,那么容器理论上就可以对主机的文件系统进行任意修改了。这听起来很疯狂?但是事实上几乎所有虚拟化系统都允许类似的资源共享,而没法禁止用户共享主机根文件系统到虚拟机系统。 diff --git a/security/kernel_ns.md b/security/kernel_ns.md index 18e070b1a..b14e4c27e 100644 --- a/security/kernel_ns.md +++ b/security/kernel_ns.md @@ -1,4 +1,5 @@ # 内核命名空间 + Docker 容器和 LXC 容器很相似,所提供的安全特性也差不多。当用 `docker run` 启动一个容器时,在后台 Docker 为容器创建了一个独立的命名空间和控制组集合。 命名空间提供了最基础也是最直接的隔离,在容器中运行的进程不会被运行在主机上的进程和其它容器发现和作用。 diff --git a/security/other_feature.md b/security/other_feature.md index 95cd6a71d..2486cfe57 100644 --- a/security/other_feature.md +++ b/security/other_feature.md @@ -1,4 +1,5 @@ # 其它安全特性 + 除了能力机制之外,还可以利用一些现有的安全机制来增强使用 Docker 的安全性,例如 TOMOYO, AppArmor, Seccomp, SELinux, GRSEC 等。 Docker 当前默认只启用了能力机制。用户可以采用多种方案来加强 Docker 主机的安全,例如: diff --git a/security/summary.md b/security/summary.md index 3ec846730..ac789925d 100644 --- a/security/summary.md +++ b/security/summary.md @@ -1,4 +1,5 @@ # 总结 + 总体来看,Docker 容器还是十分安全的,特别是在容器内不使用 root 权限来运行进程的话。 另外,用户可以使用现有工具,比如 [Apparmor](https://docs.docker.com/engine/security/apparmor/), [Seccomp](https://docs.docker.com/engine/security/seccomp/), SELinux, GRSEC 来增强安全性;甚至自己在内核中实现更复杂的安全机制。 diff --git a/underly/namespace.md b/underly/namespace.md index ec66db213..ef81aae11 100644 --- a/underly/namespace.md +++ b/underly/namespace.md @@ -1,4 +1,5 @@ # 命名空间 + 命名空间是 Linux 内核一个强大的特性。每个容器都有自己单独的命名空间,运行在其中的应用都像是在独立的操作系统中运行一样。命名空间保证了容器之间彼此互不影响。 ## pid 命名空间 From ce48a157d5e5de79ca95c034477d64603c366343 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 7 Mar 2021 22:36:48 +0800 Subject: [PATCH 566/611] Update registry * remove dtr * add ghcr.io Signed-off-by: Kang Huaishuai --- basic_concept/repository.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/basic_concept/repository.md b/basic_concept/repository.md index c7c8d03c8..69175628d 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -14,16 +14,16 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像的 Registry 服务。一般这类公开服务允许用户免费上传、下载公开的镜像,并可能提供收费服务供用户管理私有镜像。 -最常使用的 Registry 公开服务是官方的 [Docker Hub](https://hub.docker.com/),这也是默认的 Registry,并拥有大量的高质量的官方镜像。除此以外,还有 Red Hat 的 [Quay.io](https://quay.io/repository/);Google 的 [Google Container Registry](https://cloud.google.com/container-registry/),[Kubernetes](https://kubernetes.io/) 的镜像使用的就是这个服务。 +最常使用的 Registry 公开服务是官方的 [Docker Hub](https://hub.docker.com/),这也是默认的 Registry,并拥有大量的高质量的 [官方镜像](https://hub.docker.com/search?q=&type=image&image_filter=official)。除此以外,还有 Red Hat 的 [Quay.io](https://quay.io/repository/);Google 的 [Google Container Registry](https://cloud.google.com/container-registry/),[Kubernetes](https://kubernetes.io/) 的镜像使用的就是这个服务;代码托管平台 [GitHub](https://github.com) 推出的 [ghcr.io](https://docs.github.com/cn/packages/guides/about-github-container-registry)。 -由于某些原因,在国内访问这些服务可能会比较慢。国内的一些云服务商提供了针对 Docker Hub 的镜像服务(`Registry Mirror`),这些镜像服务被称为 **加速器**。常见的有 [阿里云加速器](https://cr.console.aliyun.com/#/accelerator)、[DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc) 等。使用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub 下载速度会提高很多。在 [安装 Docker](../install/mirror.md) 一节中有详细的配置方法。 +由于某些原因,在国内访问这些服务可能会比较慢。国内的一些云服务商提供了针对 Docker Hub 的镜像服务(`Registry Mirror`),这些镜像服务被称为 **加速器**。常见的有 [阿里云加速器](https://www.aliyun.com/product/acr?source=5176.11533457&userCode=8lx5zmtu)、[DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc) 等。使用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub 下载速度会提高很多。在 [安装 Docker](../install/mirror.md) 一节中有详细的配置方法。 -国内也有一些云服务商提供类似于 Docker Hub 的公开服务。比如 [网易云镜像服务](https://c.163.com/hub#/m/library/)、[DaoCloud 镜像市场](https://hub.daocloud.io/)、[阿里云镜像库](https://cr.console.aliyun.com) 等。 +国内也有一些云服务商提供类似于 Docker Hub 的公开服务。比如 [网易云镜像服务](https://c.163.com/hub#/m/library/)、[DaoCloud 镜像市场](https://hub.daocloud.io/)、[阿里云镜像库](https://www.aliyun.com/product/acr?source=5176.11533457&userCode=8lx5zmtu) 等。 ## 私有 Docker Registry 除了使用公开服务外,用户还可以在本地搭建私有 Docker Registry。Docker 官方提供了 [Docker Registry](https://hub.docker.com/_/registry/) 镜像,可以直接使用做为私有 Registry 服务。在 [私有仓库](../repository/registry.md) 一节中,会有进一步的搭建私有 Registry 服务的讲解。 -开源的 Docker Registry 镜像只提供了 [Docker Registry API](https://docs.docker.com/registry/spec/api/) 的服务端实现,足以支持 `docker` 命令,不影响使用。但不包含图形界面,以及镜像维护、用户管理、访问控制等高级功能。在官方的商业化版本 [Docker Trusted Registry](https://docs.docker.com/datacenter/dtr/2.0/) 中,提供了这些高级功能。 +开源的 Docker Registry 镜像只提供了 [Docker Registry API](https://docs.docker.com/registry/spec/api/) 的服务端实现,足以支持 `docker` 命令,不影响使用。但不包含图形界面,以及镜像维护、用户管理、访问控制等高级功能。 除了官方的 Docker Registry 外,还有第三方软件实现了 Docker Registry API,甚至提供了用户界面以及一些高级功能。比如,[Harbor](https://github.com/goharbor/harbor) 和 [Sonatype Nexus](../repository/nexus3_registry.md)。 From 8dd3141c573df28caaf2eecd21fedcf0f377d7ac Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 7 Mar 2021 23:51:02 +0800 Subject: [PATCH 567/611] Update format Signed-off-by: Kang Huaishuai --- basic_concept/README.md | 10 +++++----- basic_concept/image.md | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/basic_concept/README.md b/basic_concept/README.md index 82c417e95..b7b39e950 100644 --- a/basic_concept/README.md +++ b/basic_concept/README.md @@ -1,8 +1,8 @@ # 基本概念 -Docker 包括三个基本概念 -* 镜像(`Image`) -* 容器(`Container`) -* 仓库(`Repository`) +**Docker** 包括三个基本概念 +* **镜像**(`Image`) +* **容器**(`Container`) +* **仓库**(`Repository`) -理解了这三个概念,就理解了 Docker 的整个生命周期。 +理解了这三个概念,就理解了 **Docker** 的整个生命周期。 diff --git a/basic_concept/image.md b/basic_concept/image.md index 5718a1556..d34fadb49 100644 --- a/basic_concept/image.md +++ b/basic_concept/image.md @@ -1,12 +1,12 @@ # Docker 镜像 -我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 `root` 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 `root` 文件系统。比如官方镜像 `ubuntu:18.04` 就包含了完整的一套 Ubuntu 18.04 最小系统的 `root` 文件系统。 +我们都知道,操作系统分为 **内核** 和 **用户空间**。对于 `Linux` 而言,内核启动后,会挂载 `root` 文件系统为其提供用户空间支持。而 **Docker 镜像**(`Image`),就相当于是一个 `root` 文件系统。比如官方镜像 `ubuntu:18.04` 就包含了完整的一套 Ubuntu 18.04 最小系统的 `root` 文件系统。 -Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 +**Docker 镜像** 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 **不包含** 任何动态数据,其内容在构建之后也不会被改变。 ## 分层存储 -因为镜像包含操作系统完整的 `root` 文件系统,其体积往往是庞大的,因此在 Docker 设计时,就充分利用 [Union FS](https://en.wikipedia.org/wiki/Union_mount) 的技术,将其设计为分层存储的架构。所以严格来说,镜像并非是像一个 ISO 那样的打包文件,镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。 +因为镜像包含操作系统完整的 `root` 文件系统,其体积往往是庞大的,因此在 Docker 设计时,就充分利用 [Union FS](https://en.wikipedia.org/wiki/Union_mount) 的技术,将其设计为分层存储的架构。所以严格来说,镜像并非是像一个 `ISO` 那样的打包文件,镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。 镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。因此,在构建镜像的时候,需要额外小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。 From 0a87d2a643fc53a0d04979ec8ab64e2f46d9c319 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 7 Mar 2021 23:54:43 +0800 Subject: [PATCH 568/611] Update container markdown format Signed-off-by: Kang Huaishuai --- container/attach_exec.md | 2 +- container/rm.md | 2 +- container/run.md | 4 ++-- container/stop.md | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/container/attach_exec.md b/container/attach_exec.md index 3c342cdce..aca5d99a2 100644 --- a/container/attach_exec.md +++ b/container/attach_exec.md @@ -24,7 +24,7 @@ root@243c32535da7:/# ## `exec` 命令 -### -i -t 参数 +### `-i` `-t` 参数 `docker exec` 后边可以跟多个参数,这里主要说明 `-i` `-t` 参数。 diff --git a/container/rm.md b/container/rm.md index 5fce0fe17..aa1958c5b 100644 --- a/container/rm.md +++ b/container/rm.md @@ -3,7 +3,7 @@ 可以使用 `docker container rm` 来删除一个处于终止状态的容器。例如 ```bash -$ docker container rm trusting_newton +$ docker container rm trusting_newton trusting_newton ``` diff --git a/container/run.md b/container/run.md index a58697e5f..d4033e8f6 100644 --- a/container/run.md +++ b/container/run.md @@ -1,6 +1,6 @@ # 启动容器 -启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(`stopped`)的容器重新启动。 +启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(`exited`)的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 @@ -37,7 +37,7 @@ bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr 当利用 `docker run` 来创建容器时,Docker 在后台运行的标准操作包括: -* 检查本地是否存在指定的镜像,不存在就从公有仓库下载 +* 检查本地是否存在指定的镜像,不存在就从 [`registry`](../repository/README.md) 下载 * 利用镜像创建并启动一个容器 * 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层 * 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去 diff --git a/container/stop.md b/container/stop.md index 1c00fe4d8..4852848b4 100644 --- a/container/stop.md +++ b/container/stop.md @@ -9,7 +9,7 @@ 终止状态的容器可以用 `docker container ls -a` 命令看到。例如 ```bash -docker container ls -a +$ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ba267838cc1b ubuntu:18.04 "/bin/bash" 30 minutes ago Exited (0) About a minute ago trusting_newton ``` From 6f810c89f3b2fdb2e6b4d22c5cae4dc3b245ecbb Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 7 Mar 2021 23:56:19 +0800 Subject: [PATCH 569/611] Update cmd result Signed-off-by: Kang Huaishuai --- cases/os/busybox.md | 9 ++++----- image/list.md | 30 ++++++++++++++---------------- image/pull.md | 11 +++++------ introduction/what.md | 2 +- repository/dockerhub.md | 19 ++++++++++--------- 5 files changed, 34 insertions(+), 37 deletions(-) diff --git a/cases/os/busybox.md b/cases/os/busybox.md index 25eaa8fc1..ddf59229e 100644 --- a/cases/os/busybox.md +++ b/cases/os/busybox.md @@ -28,12 +28,11 @@ azukiapp/busybox This image is meant to be used as the base... ```bash $ docker pull busybox:latest -busybox:latest: The image you are pulling has been verified -e433a6c5b276: Pull complete -e72ac664f4f0: Pull complete -511136ea3c5a: Pull complete -df7546f9f060: Pull complete +latest: Pulling from library/busybox +5c4213be9af9: Pull complete +Digest: sha256:c6b45a95f932202dbb27c31333c4789f45184a744060f6e569cc9d2bf1b9ad6f Status: Downloaded newer image for busybox:latest +docker.io/library/busybox:latest ``` 下载后,可以看到 `busybox` 镜像只有 **2.433 MB**: diff --git a/image/list.md b/image/list.md index 84efdf09d..d43d9eda1 100644 --- a/image/list.md +++ b/image/list.md @@ -9,21 +9,21 @@ redis latest 5f515359c7f8 5 days ago nginx latest 05a60462f8ba 5 days ago 181 MB mongo 3.2 fe9198c04d62 5 days ago 342 MB 00285df0df87 5 days ago 342 MB -ubuntu 18.04 f753707788c5 4 weeks ago 127 MB -ubuntu latest f753707788c5 4 weeks ago 127 MB +ubuntu 18.04 329ed837d508 3 days ago 63.3MB +ubuntu bionic 329ed837d508 3 days ago 63.3MB ``` 列表包含了 `仓库名`、`标签`、`镜像 ID`、`创建时间` 以及 `所占用的空间`。 -其中仓库名、标签在之前的基础概念章节已经介绍过了。**镜像 ID** 则是镜像的唯一标识,一个镜像可以对应多个 **标签**。因此,在上面的例子中,我们可以看到 `ubuntu:18.04` 和 `ubuntu:latest` 拥有相同的 ID,因为它们对应的是同一个镜像。 +其中仓库名、标签在之前的基础概念章节已经介绍过了。**镜像 ID** 则是镜像的唯一标识,一个镜像可以对应多个 **标签**。因此,在上面的例子中,我们可以看到 `ubuntu:18.04` 和 `ubuntu:bionic` 拥有相同的 ID,因为它们对应的是同一个镜像。 ## 镜像体积 -如果仔细观察,会注意到,这里标识的所占用空间和在 Docker Hub 上看到的镜像大小不同。比如,`ubuntu:18.04` 镜像大小,在这里是 `127 MB`,但是在 [Docker Hub](https://hub.docker.com/_/ubuntu?tab=tags) 显示的却是 `50 MB`。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的大小是网络传输中更关心的流量大小。而 `docker image ls` 显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。 +如果仔细观察,会注意到,这里标识的所占用空间和在 Docker Hub 上看到的镜像大小不同。比如,`ubuntu:18.04` 镜像大小,在这里是 `63.3MB`,但是在 [Docker Hub](https://hub.docker.com/layers/ubuntu/library/ubuntu/bionic/images/sha256-32776cc92b5810ce72e77aca1d949de1f348e1d281d3f00ebcc22a3adcdc9f42?context=explore) 显示的却是 `25.47 MB`。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的大小是网络传输中更关心的流量大小。而 `docker image ls` 显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。 另外一个需要注意的问题是,`docker image ls` 列表中的镜像体积总和并非是所有镜像实际硬盘消耗。由于 Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于 Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多。 -你可以通过以下命令来便捷的查看镜像、容器、数据卷所占用的空间。 +你可以通过 `docker system df` 命令来便捷的查看镜像、容器、数据卷所占用的空间。 ```bash $ docker system df @@ -76,8 +76,8 @@ $ docker image ls -a ```bash $ docker image ls ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE -ubuntu 18.04 f753707788c5 4 weeks ago 127 MB -ubuntu latest f753707788c5 4 weeks ago 127 MB +ubuntu 18.04 329ed837d508 3 days ago 63.3MB +ubuntu bionic 329ed837d508 3 days ago 63.3MB ``` 列出特定的某个镜像,也就是说指定仓库名和标签 @@ -85,7 +85,7 @@ ubuntu latest f753707788c5 4 weeks ago ```bash $ docker image ls ubuntu:18.04 REPOSITORY TAG IMAGE ID CREATED SIZE -ubuntu 18.04 f753707788c5 4 weeks ago 127 MB +ubuntu 18.04 329ed837d508 3 days ago 63.3MB ``` 除此以外,`docker image ls` 还支持强大的过滤器参数 `--filter`,或者简写 `-f`。之前我们已经看到了使用过滤器来列出虚悬镜像的用法,它还有更多的用法。比如,我们希望看到在 `mongo:3.2` 之后建立的镜像,可以用下面的命令: @@ -116,9 +116,8 @@ $ docker image ls -q 05a60462f8ba fe9198c04d62 00285df0df87 -f753707788c5 -f753707788c5 -1e0c3dd64ccd +329ed837d508 +329ed837d508 ``` `--filter` 配合 `-q` 产生出指定范围的 ID 列表,然后送给另一个 `docker` 命令作为参数,从而针对这组实体成批的进行某种操作的做法在 Docker 命令行使用过程中非常常见,不仅仅是镜像,将来我们会在各个命令中看到这类搭配以完成很强大的功能。因此每次在文档看到过滤器后,可以多注意一下它们的用法。 @@ -133,9 +132,8 @@ $ docker image ls --format "{{.ID}}: {{.Repository}}" 05a60462f8ba: nginx fe9198c04d62: mongo 00285df0df87: -f753707788c5: ubuntu -f753707788c5: ubuntu -1e0c3dd64ccd: ubuntu +329ed837d508: ubuntu +329ed837d508: ubuntu ``` 或者打算以表格等距显示,并且有标题行,和默认一样,不过自己定义列: @@ -147,6 +145,6 @@ IMAGE ID REPOSITORY TAG 05a60462f8ba nginx latest fe9198c04d62 mongo 3.2 00285df0df87 -f753707788c5 ubuntu 18.04 -f753707788c5 ubuntu latest +329ed837d508 ubuntu 18.04 +329ed837d508 ubuntu bionic ``` diff --git a/image/pull.md b/image/pull.md index 63520a712..2aa9fb982 100644 --- a/image/pull.md +++ b/image/pull.md @@ -18,13 +18,12 @@ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] ```bash $ docker pull ubuntu:18.04 18.04: Pulling from library/ubuntu -bf5d46315322: Pull complete -9f13e0ac480c: Pull complete -e8988b5b3097: Pull complete -40af181810e7: Pull complete -e6f7c7e5c03e: Pull complete -Digest: sha256:147913621d9cdea08853f6ba9116c2e27a3ceffecf3b492983ae97c3d643fbbe +92dc2a97ff99: Pull complete +be13a9d27eb8: Pull complete +c8299583700a: Pull complete +Digest: sha256:4bc3ae6596938cb0d9e5ac51a1152ec9dcac2a1c50829c74abd9c4361e321b26 Status: Downloaded newer image for ubuntu:18.04 +docker.io/library/ubuntu:18.04 ``` 上面的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub 获取镜像。而镜像名称是 `ubuntu:18.04`,因此将会获取官方镜像 `library/ubuntu` 仓库中标签为 `18.04` 的镜像。 diff --git a/introduction/what.md b/introduction/what.md index 2c4cd7da4..19241e7c4 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -4,7 +4,7 @@ **Docker** 自开源后受到广泛的关注和讨论,至今其 [GitHub 项目](https://github.com/moby/moby) 已经超过 5 万 7 千个星标和一万多个 `fork`。甚至由于 `Docker` 项目的火爆,在 `2013` 年底,[dotCloud 公司决定改名为 Docker](https://www.docker.com/blog/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),以及 [OverlayFS](https://docs.docker.com/storage/storagedriver/overlayfs-driver/) 类的 [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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 +**Docker** 使用 `Google` 公司推出的 [Go 语言](https://golang.org/) 进行开发实现,基于 `Linux` 内核的 [cgroup](https://zh.wikipedia.org/wiki/Cgroups),[namespace](https://en.wikipedia.org/wiki/Linux_namespaces),以及 [OverlayFS](https://docs.docker.com/storage/storagedriver/overlayfs-driver/) 类的 [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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 ![Docker 架构](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/media/docker-on-linux.png) diff --git a/repository/dockerhub.md b/repository/dockerhub.md index 1ea7bdddc..8025987c9 100644 --- a/repository/dockerhub.md +++ b/repository/dockerhub.md @@ -28,7 +28,7 @@ saltstack/centos-6-minimal tutum/centos-6.4 DEPRECATED. Use tutum/centos:6.4 instead. ... 5 [OK] ``` -可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建(OFFICIAL)、是否自动构建 (AUTOMATED)。 +可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建(`OFFICIAL`)、是否自动构建 (`AUTOMATED`)。 根据是否是官方提供,可将镜像分为两类。 @@ -42,11 +42,12 @@ tutum/centos-6.4 DEPRECATED. Use tutum/centos:6.4 ```bash $ docker pull centos -Pulling repository centos -0b443ba03958: Download complete -539c0211cd76: Download complete -511136ea3c5a: Download complete -7064731afe90: Download complete +Using default tag: latest +latest: Pulling from library/centos +7a0437f04f83: Pull complete +Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1 +Status: Downloaded newer image for centos:latest +docker.io/library/centos:latest ``` ## 推送镜像 @@ -74,17 +75,17 @@ username/ubuntu ## 自动构建 -自动构建(Automated Builds)功能对于需要经常升级镜像内程序来说,十分方便。 +自动构建(`Automated Builds`)功能对于需要经常升级镜像内程序来说,十分方便。 有时候,用户构建了镜像,安装了某个软件,当软件发布新版本则需要手动更新镜像。 -而自动构建允许用户通过 Docker Hub 指定跟踪一个目标网站(支持 [GitHub](https://github.com) 或 [BitBucket](https://bitbucket.org))上的项目,一旦项目发生新的提交 (commit)或者创建了新的标签(tag),Docker Hub 会自动构建镜像并推送到 Docker Hub 中。 +而自动构建允许用户通过 Docker Hub 指定跟踪一个目标网站(支持 [GitHub](https://github.com) 或 [BitBucket](https://bitbucket.org))上的项目,一旦项目发生新的提交 (`commit`)或者创建了新的标签(`tag`),Docker Hub 会自动构建镜像并推送到 Docker Hub 中。 要配置自动构建,包括如下的步骤: * 登录 Docker Hub; -* 在 Docker Hub 点击右上角头像,在账号设置(Account Settings)中关联(Linked Accounts)目标网站; +* 在 Docker Hub 点击右上角头像,在账号设置(`Account Settings`)中关联(`Linked Accounts`)目标网站; * 在 Docker Hub 中新建或选择已有的仓库,在 `Builds` 选项卡中选择 `Configure Automated Builds`; From 7afb8991d30a3e1645a8a567703fa0a65dfd33b1 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Thu, 11 Mar 2021 21:27:50 +0800 Subject: [PATCH 570/611] Update install Signed-off-by: Kang Huaishuai --- install/debian.md | 29 ++++++++++++++--------------- install/ubuntu.md | 29 ++++++++++++++--------------- 2 files changed, 28 insertions(+), 30 deletions(-) diff --git a/install/debian.md b/install/debian.md index d6fbc604e..5b433968a 100644 --- a/install/debian.md +++ b/install/debian.md @@ -8,8 +8,8 @@ Docker 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统: -* Buster 10 -* Stretch 9 +* Debian Buster 10 +* Debian Stretch 9 ### 卸载旧版本 @@ -32,9 +32,8 @@ $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ - gnupg-agent \ - lsb-release \ - software-properties-common + gnupg \ + lsb-release ``` 鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 @@ -42,11 +41,11 @@ $ sudo apt-get install \ 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。 ```bash -$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add - +$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 官方源 -# $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - +# $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ``` 然后,我们需要向 `sources.list` 中添加 Docker 软件源: @@ -54,16 +53,16 @@ $ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-ke > 在一些基于 Debian 的 Linux 发行版中 `$(lsb_release -cs)` 可能不会返回 Debian 的版本代号,例如 [Kail Linux](https://www.kali.org/docs/policy/kali-linux-relationship-with-debian/)、 [BunsenLabs Linux](https://www.bunsenlabs.org/)。在这些发行版中我们需要将下面命令中的 `$(lsb_release -cs)` 替换为 https://mirrors.aliyun.com/docker-ce/linux/debian/dists/ 中支持的 Debian 版本代号,例如 `buster`。 ```bash -$ sudo add-apt-repository \ - "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian \ - $(lsb_release -cs) \ - stable" +$ echo \ + "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian \ + $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + # 官方源 -# $ sudo add-apt-repository \ -# "deb [arch=amd64] https://download.docker.com/linux/debian \ -# $(lsb_release -cs) \ -# stable" +# $ echo \ +# "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://https://download.docker.com/linux/debian \ +# $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + ``` >以上命令会添加稳定版本的 Docker APT 源,如果需要测试版本的 Docker 请将 stable 改为 test。 diff --git a/install/ubuntu.md b/install/ubuntu.md index 8ad928cf3..717ba1edf 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -8,9 +8,10 @@ Docker 支持以下版本的 [Ubuntu](https://ubuntu.com/server) 操作系统: -* Focal 20.04 (LTS) -* Bionic 18.04 (LTS) -* Xenial 16.04 (LTS) +* Ubuntu Groovy 20.10 +* Ubuntu Focal 20.04 (LTS) +* Ubuntu Bionic 18.04 (LTS) +* Ubuntu Xenial 16.04 (LTS) Docker 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。 @@ -35,8 +36,8 @@ $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ - gnupg-agent \ - software-properties-common + gnupg \ + lsb-release ``` 鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 @@ -44,27 +45,25 @@ $ sudo apt-get install \ 为了确认所下载软件包的合法性,需要添加软件源的 `GPG` 密钥。 ```bash -$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - +$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 官方源 -# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ``` 然后,我们需要向 `sources.list` 中添加 Docker 软件源 ```bash -$ sudo add-apt-repository \ - "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ - $(lsb_release -cs) \ - stable" +$ echo \ + "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ + $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 官方源 -# $ sudo add-apt-repository \ -# "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ -# $(lsb_release -cs) \ -# stable" +# $ echo \ +# "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ +# $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` >以上命令会添加稳定版本的 Docker APT 镜像源,如果需要测试版本的 Docker 请将 stable 改为 test。 From bc43b30964245cbfb96464c24f75f62288597a96 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Thu, 11 Mar 2021 23:09:37 +0800 Subject: [PATCH 571/611] Update image --- image/build.md | 2 +- image/demo/multistage-builds/Dockerfile | 2 +- image/demo/multistage-builds/Dockerfile.build | 2 +- image/demo/multistage-builds/Dockerfile.one | 2 +- image/dockerfile/arg.md | 2 +- image/dockerfile/expose.md | 2 +- image/dockerfile/volume.md | 4 ++-- image/dockerfile/workdir.md | 2 +- image/manifest.md | 6 +++--- image/multistage-builds/README.md | 8 ++++---- image/pull.md | 6 +++--- 11 files changed, 19 insertions(+), 19 deletions(-) diff --git a/image/build.md b/image/build.md index 37f640103..3d29ad98d 100644 --- a/image/build.md +++ b/image/build.md @@ -40,7 +40,7 @@ FROM scratch 如果你以 `scratch` 为基础镜像的话,意味着你不以任何镜像为基础,接下来所写的指令将作为镜像第一层开始存在。 -不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,比如 [`swarm`](https://hub.docker.com/_/swarm/)、[`etcd`](https://quay.io/repository/coreos/etcd)。对于 Linux 下静态编译的程序来说,并不需要有操作系统提供运行时支持,所需的一切库都已经在可执行文件里了,因此直接 `FROM scratch` 会让镜像体积更加小巧。使用 [Go 语言](https://golang.org/) 开发的应用很多会使用这种方式来制作镜像,这也是为什么有人认为 Go 是特别适合容器微服务架构的语言的原因之一。 +不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,对于 Linux 下静态编译的程序来说,并不需要有操作系统提供运行时支持,所需的一切库都已经在可执行文件里了,因此直接 `FROM scratch` 会让镜像体积更加小巧。使用 [Go 语言](https://golang.google.cn/) 开发的应用很多会使用这种方式来制作镜像,这也是为什么有人认为 Go 是特别适合容器微服务架构的语言的原因之一。 ## RUN 执行命令 diff --git a/image/demo/multistage-builds/Dockerfile b/image/demo/multistage-builds/Dockerfile index 1475e9e4b..d1492bc8d 100644 --- a/image/demo/multistage-builds/Dockerfile +++ b/image/demo/multistage-builds/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.9-alpine as builder +FROM golang:alpine as builder RUN apk --no-cache add git diff --git a/image/demo/multistage-builds/Dockerfile.build b/image/demo/multistage-builds/Dockerfile.build index 60e97bac6..48d620abe 100644 --- a/image/demo/multistage-builds/Dockerfile.build +++ b/image/demo/multistage-builds/Dockerfile.build @@ -1,4 +1,4 @@ -FROM golang:1.9-alpine +FROM golang:alpine RUN apk --no-cache add git diff --git a/image/demo/multistage-builds/Dockerfile.one b/image/demo/multistage-builds/Dockerfile.one index 79694e3c6..ed996af45 100644 --- a/image/demo/multistage-builds/Dockerfile.one +++ b/image/demo/multistage-builds/Dockerfile.one @@ -1,4 +1,4 @@ -FROM golang:1.9-alpine +FROM golang:alpine RUN apk --no-cache add git ca-certificates diff --git a/image/dockerfile/arg.md b/image/dockerfile/arg.md index 8f5604b58..8ec413fe0 100644 --- a/image/dockerfile/arg.md +++ b/image/dockerfile/arg.md @@ -6,7 +6,7 @@ `Dockerfile` 中的 `ARG` 指令是定义参数名称,以及定义其默认值。该默认值可以在构建命令 `docker build` 中用 `--build-arg <参数名>=<值>` 来覆盖。 -在 1.13 之前的版本,要求 `--build-arg` 中的参数名,必须在 `Dockerfile` 中用 `ARG` 定义过了,换句话说,就是 `--build-arg` 指定的参数,必须在 `Dockerfile` 中使用了。如果对应参数没有被使用,则会报错退出构建。从 1.13 开始,这种严格的限制被放开,不再报错退出,而是显示警告信息,并继续构建。这对于使用 CI 系统,用同样的构建流程构建不同的 `Dockerfile` 的时候比较有帮助,避免构建命令必须根据每个 Dockerfile 的内容修改。 +灵活的使用 `ARG` 指令,能够在不修改 Dockerfile 的情况下,构建出不同的镜像。 ARG 指令有生效范围,如果在 `FROM` 指令之前指定,那么只能用于 `FROM` 指令中。 diff --git a/image/dockerfile/expose.md b/image/dockerfile/expose.md index a2b00b90e..48005f9d7 100644 --- a/image/dockerfile/expose.md +++ b/image/dockerfile/expose.md @@ -2,6 +2,6 @@ 格式为 `EXPOSE <端口1> [<端口2>...]`。 -`EXPOSE` 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 `docker run -P` 时,会自动随机映射 `EXPOSE` 的端口。 +`EXPOSE` 指令是声明容器运行时提供服务的端口,这只是一个声明,在容器运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 `docker run -P` 时,会自动随机映射 `EXPOSE` 的端口。 要将 `EXPOSE` 和在运行时使用 `-p <宿主端口>:<容器端口>` 区分开来。`-p`,是映射宿主端口和容器端口,换句话说,就是将容器的对应端口服务公开给外界访问,而 `EXPOSE` 仅仅是声明容器打算使用什么端口而已,并不会自动在宿主进行端口映射。 diff --git a/image/dockerfile/volume.md b/image/dockerfile/volume.md index f534d3a2a..0e8731c05 100644 --- a/image/dockerfile/volume.md +++ b/image/dockerfile/volume.md @@ -11,10 +11,10 @@ VOLUME /data ``` -这里的 `/data` 目录就会在运行时自动挂载为匿名卷,任何向 `/data` 中写入的信息都不会记录进容器存储层,从而保证了容器存储层的无状态化。当然,运行时可以覆盖这个挂载设置。比如: +这里的 `/data` 目录就会在容器运行时自动挂载为匿名卷,任何向 `/data` 中写入的信息都不会记录进容器存储层,从而保证了容器存储层的无状态化。当然,运行容器时可以覆盖这个挂载设置。比如: ```bash -docker run -d -v mydata:/data xxxx +$ docker run -d -v mydata:/data xxxx ``` 在这行命令中,就使用了 `mydata` 这个命名卷挂载到了 `/data` 这个位置,替代了 `Dockerfile` 中定义的匿名卷的挂载配置。 diff --git a/image/dockerfile/workdir.md b/image/dockerfile/workdir.md index 339540374..b8bae25d5 100644 --- a/image/dockerfile/workdir.md +++ b/image/dockerfile/workdir.md @@ -33,4 +33,4 @@ WORKDIR c RUN pwd ``` -`pwd` 输出的结果为 `/a/b/c`。 +`RUN pwd` 的工作目录为 `/a/b/c`。 diff --git a/image/manifest.md b/image/manifest.md index 382e6c338..2e25797c4 100644 --- a/image/manifest.md +++ b/image/manifest.md @@ -24,11 +24,11 @@ $ docker run -it --rm username/test 这样做显得很繁琐,那么有没有一种方法让 Docker 引擎根据系统架构自动拉取对应的镜像呢? -我们发现在 `Linux x86_64` 和 `Linux arm64v8` 架构的计算机中执行 `$ docker run golang:alpine go version` 时我们发现可以正确的运行。 +我们发现在 `Linux x86_64` 和 `Linux arm64v8` 架构的计算机中分别使用 `golang:alpine` 镜像运行容器 `$ docker run golang:alpine go version` 时,容器能够正常的运行。 这是什么原因呢? -原因就是 `golang:alpine` 官方镜像有一个 [`manifest` 列表](https://docs.docker.com/registry/spec/manifest-v2-2/)。 +原因就是 `golang:alpine` 官方镜像有一个 [`manifest` 列表 (`manifest list`)](https://docs.docker.com/registry/spec/manifest-v2-2/)。 当用户获取一个镜像时,Docker 引擎会首先查找该镜像是否有 `manifest` 列表,如果有的话 Docker 引擎会按照 Docker 运行环境(系统及架构)查找出对应镜像(例如 `golang:alpine`)。如果没有的话会直接获取镜像(例如上例中我们构建的 `username/test`)。 @@ -122,7 +122,7 @@ $ docker manifest create username/test \ username/arm64v8-test ``` -当要修改一个 `manifest` 列表时,可以加入 `-a,--amend` 参数。 +当要修改一个 `manifest` 列表时,可以加入 `-a` 或 `--amend` 参数。 ## 设置 `manifest` 列表 diff --git a/image/multistage-builds/README.md b/image/multistage-builds/README.md index f924cd2d7..9d55980a9 100644 --- a/image/multistage-builds/README.md +++ b/image/multistage-builds/README.md @@ -27,7 +27,7 @@ func main(){ 编写 `Dockerfile.one` 文件 ```docker -FROM golang:1.9-alpine +FROM golang:alpine RUN apk --no-cache add git ca-certificates @@ -57,7 +57,7 @@ $ docker build -t go/helloworld:1 -f Dockerfile.one . 例如,编写 `Dockerfile.build` 文件 ```docker -FROM golang:1.9-alpine +FROM golang:alpine RUN apk --no-cache add git @@ -126,7 +126,7 @@ go/helloworld 1 f55d3e16affc 2 minutes ago 295MB 例如,编写 `Dockerfile` 文件 ```docker -FROM golang:1.9-alpine as builder +FROM golang:alpine as builder RUN apk --no-cache add git @@ -173,7 +173,7 @@ go/helloworld 1 f55d3e16affc 2 minutes ago 295MB 我们可以使用 `as` 来为某一阶段命名,例如 ```docker -FROM golang:1.9-alpine as builder +FROM golang:alpine as builder ``` 例如当我们只想构建 `builder` 阶段的镜像时,增加 `--target=builder` 参数即可 diff --git a/image/pull.md b/image/pull.md index 2aa9fb982..f9d29a412 100644 --- a/image/pull.md +++ b/image/pull.md @@ -5,12 +5,12 @@ 从 Docker 镜像仓库获取镜像的命令是 `docker pull`。其命令格式为: ```bash -docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] +$ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] ``` 具体的选项可以通过 `docker pull --help` 命令看到,这里我们说一下镜像名称的格式。 -* Docker 镜像仓库地址:地址的格式一般是 `<域名/IP>[:端口号]`。默认地址是 Docker Hub(docker.io)。 +* Docker 镜像仓库地址:地址的格式一般是 `<域名/IP>[:端口号]`。默认地址是 Docker Hub(`docker.io`)。 * 仓库名:如之前所说,这里的仓库名是两段式名称,即 `<用户名>/<软件名>`。对于 Docker Hub,如果不给出用户名,则默认为 `library`,也就是官方镜像。 比如: @@ -26,7 +26,7 @@ Status: Downloaded newer image for ubuntu:18.04 docker.io/library/ubuntu:18.04 ``` -上面的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub 获取镜像。而镜像名称是 `ubuntu:18.04`,因此将会获取官方镜像 `library/ubuntu` 仓库中标签为 `18.04` 的镜像。 +上面的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub (`docker.io`)获取镜像。而镜像名称是 `ubuntu:18.04`,因此将会获取官方镜像 `library/ubuntu` 仓库中标签为 `18.04` 的镜像。`docker pull` 命令的输出结果最后一行给出了镜像的完整名称,即: `docker.io/library/ubuntu:18.04`。 从下载过程中可以看到我们之前提及的分层存储的概念,镜像是由多层存储所构成。下载也是一层层的去下载,并非单一文件。下载过程中给出了每一层的 ID 的前 12 位。并且下载结束后,给出该镜像完整的 `sha256` 的摘要,以确保下载一致性。 From aa08e3200357a502947db6a5dabd629ae0dffe60 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Fri, 12 Mar 2021 00:12:47 +0800 Subject: [PATCH 572/611] Update repository Signed-off-by: Kang Huaishuai --- repository/dockerhub.md | 14 +++++------ repository/nexus3_registry.md | 47 ++++++++++++++++++++++++++--------- repository/registry.md | 4 +-- 3 files changed, 44 insertions(+), 21 deletions(-) diff --git a/repository/dockerhub.md b/repository/dockerhub.md index 8025987c9..6983c8277 100644 --- a/repository/dockerhub.md +++ b/repository/dockerhub.md @@ -20,12 +20,12 @@ ```bash $ docker search centos -NAME DESCRIPTION STARS OFFICIAL AUTOMATED -centos The official build of CentOS. 465 [OK] -tianon/centos CentOS 5 and 6, created using rinse instea... 28 -blalor/centos Bare-bones base CentOS 6.5 image 6 [OK] -saltstack/centos-6-minimal 6 [OK] -tutum/centos-6.4 DEPRECATED. Use tutum/centos:6.4 instead. ... 5 [OK] +NAME DESCRIPTION STARS OFFICIAL AUTOMATED +centos The official build of CentOS. 6449 [OK] +ansible/centos7-ansible Ansible on Centos7 132 [OK] +consol/centos-xfce-vnc Centos container with "headless" VNC session… 126 [OK] +jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 117 [OK] +centos/systemd systemd enabled base container. 96 [OK] ``` 可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建(`OFFICIAL`)、是否自动构建 (`AUTOMATED`)。 @@ -34,7 +34,7 @@ tutum/centos-6.4 DEPRECATED. Use tutum/centos:6.4 一种是类似 `centos` 这样的镜像,被称为基础镜像或根镜像。这些基础镜像由 Docker 公司创建、验证、支持、提供。这样的镜像往往使用单个单词作为名字。 -还有一种类型,比如 `tianon/centos` 镜像,它是由 Docker Hub 的注册用户创建并维护的,往往带有用户名称前缀。可以通过前缀 `username/` 来指定使用某个用户提供的镜像,比如 tianon 用户。 +还有一种类型,比如 `ansible/centos7-ansible` 镜像,它是由 Docker Hub 的注册用户创建并维护的,往往带有用户名称前缀。可以通过前缀 `username/` 来指定使用某个用户提供的镜像,比如 ansible 用户。 另外,在查找的时候通过 `--filter=stars=N` 参数可以指定仅显示收藏数量为 `N` 以上的镜像。 diff --git a/repository/nexus3_registry.md b/repository/nexus3_registry.md index 619c63a4a..65184cbbf 100644 --- a/repository/nexus3_registry.md +++ b/repository/nexus3_registry.md @@ -1,6 +1,6 @@ # Nexus3.x 的私有仓库 -使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry 程序。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/nexus/repository-oss-download) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 +使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry。在企业中把内部的一些工具包放入 `Nexus` 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/nexus/repository-oss-download) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 ## 启动 Nexus 容器 @@ -11,20 +11,43 @@ $ docker run -d --name nexus3 --restart=always \ sonatype/nexus3 ``` -等待 3-5 分钟,如果 `nexus3` 容器没有异常退出,那么你可以使用浏览器打开 `http://YourIP:8081` 访问 Nexus 了。 +首次运行需等待 3-5 分钟,你可以使用 `docker logs nexus3 -f` 查看日志: -第一次启动 Nexus 的默认帐号是 `admin` 密码是 `admin123` 登录以后点击页面上方的齿轮按钮进行设置。 +```bash +$ docker logs nexus3 -f + +2021-03-11 15:31:21,990+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - +------------------------------------------------- + +Started Sonatype Nexus OSS 3.30.0-01 + +------------------------------------------------- + +``` + +如果你看到以上内容,说明 `Nexus` 已经启动成功,你可以使用浏览器打开 `http://YourIP:8081` 访问 `Nexus` 了。 + +首次运行请通过以下命令获取初始密码: + +```bash +$ docker exec nexus3 cat /nexus-data/admin.password + +9266139e-41a2-4abb-92ec-e4142a3532cb +``` + +首次启动 Nexus 的默认帐号是 `admin` ,密码则是上边命令获取到的,点击右上角登录,首次登录需更改初始密码。 + +登录之后可以点击页面上方的齿轮按钮按照下面的方法进行设置。 ## 创建仓库 创建一个私有仓库的方法: `Repository->Repositories` 点击右边菜单 `Create repository` 选择 `docker (hosted)` -* Name: 仓库的名称 -* HTTP: 仓库单独的访问端口 -* Enable Docker V1 API: 如果需要同时支持 V1 版本请勾选此项(不建议勾选)。 -* Hosted -> Deployment pollcy: 请选择 Allow redeploy 否则无法上传 Docker 镜像。 +* **Name**: 仓库的名称 +* **HTTP**: 仓库单独的访问端口(例如:**5001**) +* **Hosted -> Deployment pollcy**: 请选择 **Allow redeploy** 否则无法上传 Docker 镜像。 -其它的仓库创建方法请各位自己摸索,还可以创建一个 docker (proxy) 类型的仓库链接到 DockerHub 上。再创建一个 docker (group) 类型的仓库把刚才的 hosted 与 proxy 添加在一起。主机在访问的时候默认下载私有仓库中的镜像,如果没有将链接到 DockerHub 中下载并缓存到 Nexus 中。 +其它的仓库创建方法请各位自己摸索,还可以创建一个 `docker (proxy)` 类型的仓库链接到 DockerHub 上。再创建一个 `docker (group)` 类型的仓库把刚才的 `hosted` 与 `proxy` 添加在一起。主机在访问的时候默认下载私有仓库中的镜像,如果没有将链接到 DockerHub 中下载并缓存到 Nexus 中。 ## 添加访问权限 @@ -43,7 +66,7 @@ NGINX 示例配置如下 ```nginx upstream register { - server "YourHostName OR IP":5001; #端口为上面添加的私有镜像仓库是设置的 HTTP 选项的端口号 + server "YourHostName OR IP":5001; #端口为上面添加私有镜像仓库时设置的 HTTP 选项的端口号 check interval=3000 rise=2 fall=10 timeout=1000 type=http; check_http_send "HEAD / HTTP/1.0\r\n\r\n"; check_http_expect_alive http_4xx; @@ -91,9 +114,9 @@ server { ## Docker 主机访问镜像仓库 -如果不启用 SSL 加密可以通过前面章节的方法添加信任地址到 Docker 的配置文件中然后重启 Docker +如果不启用 SSL 加密可以通过 [前面章节](./registry.md) 的方法添加非 https 仓库地址到 Docker 的配置文件中然后重启 Docker。 -使用 SSL 加密以后程序需要访问就不能采用修改配置的访问了。具体方法如下: +使用 SSL 加密以后程序需要访问就不能采用修改配置的方式了。具体方法如下: ```bash $ openssl s_client -showcerts -connect YourDomainName OR HostIP:443 /dev/null|openssl x509 -outform PEM >ca.crt @@ -101,4 +124,4 @@ $ cat ca.crt | sudo tee -a /etc/ssl/certs/ca-certificates.crt $ systemctl restart docker ``` -使用 `docker login YourDomainName OR HostIP` 进行测试,用户名密码填写上面 Nexus 中生成的。 +使用 `docker login YourDomainName OR HostIP` 进行测试,用户名密码填写上面 Nexus 中设置的。 diff --git a/repository/registry.md b/repository/registry.md index cb0179a2a..abba1830e 100644 --- a/repository/registry.md +++ b/repository/registry.md @@ -10,7 +10,7 @@ ### 容器运行 -你可以通过获取官方 `registry` 镜像来运行。 +你可以使用官方 `registry` 镜像来运行。 ```bash $ docker run -d -p 5000:5000 --restart=always --name registry registry @@ -91,7 +91,7 @@ REPOSITORY TAG IMAGE ID CREAT 127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB ``` -## 注意事项 +## 配置非 https 仓库地址 如果你不想使用 `127.0.0.1:5000` 作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。你就得把例如 `192.168.199.100:5000` 这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。 From 9fe6c356f056a974c3cc4c479dbdb7f4afe5b28d Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Fri, 12 Mar 2021 00:15:47 +0800 Subject: [PATCH 573/611] Remove us-en url Signed-off-by: Kang Huaishuai --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e00079011..103738770 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,6 @@ | 语言 | - | | :------------- | :--- | | [简体中文](https://github.com/yeasy/docker_practice) | [阅读](https://vuepress.mirror.docker-practice.com/) | -| [us-en](https://github.com/yeasy/docker_practice/tree/english) | [阅读](https://docker_practice.gitee.io/us-en) | [Docker](https://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! From 1e577a8c6fbb873dcf829c0c4ed34efc2f04d1e6 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 14 Mar 2021 21:42:50 +0800 Subject: [PATCH 574/611] Update hello-world example Signed-off-by: Kang Huaishuai --- install/centos.md | 6 +++--- install/debian.md | 6 +++--- install/fedora.md | 6 +++--- install/raspberry-pi.md | 8 ++++---- install/ubuntu.md | 6 +++--- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/install/centos.md b/install/centos.md index e424f4b3b..690cb9995 100644 --- a/install/centos.md +++ b/install/centos.md @@ -126,12 +126,12 @@ $ sudo usermod -aG docker $USER ## 测试 Docker 是否安装正确 ```bash -$ docker run hello-world +$ docker run --rm hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world -d1725b59e92d: Pull complete -Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 +b8dfde127a29: Pull complete +Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 Status: Downloaded newer image for hello-world:latest Hello from Docker! diff --git a/install/debian.md b/install/debian.md index 5b433968a..a61753f8b 100644 --- a/install/debian.md +++ b/install/debian.md @@ -120,12 +120,12 @@ $ sudo usermod -aG docker $USER ## 测试 Docker 是否安装正确 ```bash -$ docker run hello-world +$ docker run --rm hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world -d1725b59e92d: Pull complete -Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 +b8dfde127a29: Pull complete +Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 Status: Downloaded newer image for hello-world:latest Hello from Docker! diff --git a/install/fedora.md b/install/fedora.md index fc72d6564..2a07e0bf3 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -128,12 +128,12 @@ $ sudo usermod -aG docker $USER ## 测试 Docker 是否安装正确 ```bash -$ docker run hello-world +$ docker run --rm hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world -d1725b59e92d: Pull complete -Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 +b8dfde127a29: Pull complete +Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 Status: Downloaded newer image for hello-world:latest Hello from Docker! diff --git a/install/raspberry-pi.md b/install/raspberry-pi.md index 772670460..ccbd2c0e3 100644 --- a/install/raspberry-pi.md +++ b/install/raspberry-pi.md @@ -111,12 +111,12 @@ $ sudo usermod -aG docker $USER ## 测试 Docker 是否安装正确 ```bash -$ docker run arm32v7/hello-world +$ docker run --rm hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world -d1725b59e92d: Pull complete -Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 +4ee5c797bcd7: Pull complete +Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 Status: Downloaded newer image for hello-world:latest Hello from Docker! @@ -125,7 +125,7 @@ This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. - (amd64) + (arm32v7) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it diff --git a/install/ubuntu.md b/install/ubuntu.md index 717ba1edf..60af93e4c 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -121,12 +121,12 @@ $ sudo usermod -aG docker $USER ## 测试 Docker 是否安装正确 ```bash -$ docker run hello-world +$ docker run --rm hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world -d1725b59e92d: Pull complete -Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 +b8dfde127a29: Pull complete +Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 Status: Downloaded newer image for hello-world:latest Hello from Docker! From da614e84417bfb21504c9405517fef40856f47c0 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sat, 20 Mar 2021 11:22:13 +0800 Subject: [PATCH 575/611] Update link Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 6 +++--- README.md | 4 ++-- appendix/repo/nginx.md | 5 +++-- appendix/repo/nodejs.md | 2 +- container/run.md | 4 ++-- introduction/what.md | 2 +- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.vuepress/config.js b/.vuepress/config.js index 330dc1a1b..59d833c0c 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -83,11 +83,11 @@ module.exports = config({ nav: [ { text: '微信交流群', - link: 'https://yewm28.coding-pages.com/wechat.jpg', + link: 'https://docker_practice.gitee.io/pic/dpsig-wechat.jpg', }, { text: '小程序', - link: 'https://yewm28.coding-pages.com/49682252-3ac4c500-faec-11e8-86ab-eafe0139be6b.jpg', + link: 'https://docker_practice.gitee.io/pic/dp-wechat-miniprogram.jpg', }, { text: '安装 Docker', @@ -261,7 +261,7 @@ module.exports = config({ }, { title: 'Dockerfile', - collapsable: false, + collapsable: true, children: [ "image/dockerfile/", 'image/dockerfile/copy', diff --git a/README.md b/README.md index 103738770..4c175876e 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 ## 微信小程序

    - +

    微信扫码 随时随地阅读~

    @@ -33,7 +33,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 ## 技术交流

    - +

    微信扫码 加入群聊~ 或者微信添加 dpsigs 邀请入群

    diff --git a/appendix/repo/nginx.md b/appendix/repo/nginx.md index 8abac44e7..84a3396b0 100644 --- a/appendix/repo/nginx.md +++ b/appendix/repo/nginx.md @@ -16,7 +16,7 @@ $ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d ngin 用户也可以不使用这种映射方式,通过利用 Dockerfile 来直接将静态页面内容放到镜像中,内容为 -```bash +```docker FROM nginx COPY static-html-directory /usr/share/nginx/html ``` @@ -39,7 +39,8 @@ Nginx的默认配置文件路径为 `/etc/nginx/nginx.conf`,可以通过映射 ```bash $ docker run -d \ --name some-nginx \ - -v /some/nginx.conf:/etc/nginx/nginx.conf:ro \ + -p 8080:80 \ + -v /path/nginx.conf:/etc/nginx/nginx.conf:ro \ nginx ``` diff --git a/appendix/repo/nodejs.md b/appendix/repo/nodejs.md index d44563aa6..9af57c173 100644 --- a/appendix/repo/nodejs.md +++ b/appendix/repo/nodejs.md @@ -10,7 +10,7 @@ 在项目中创建一个 Dockerfile。 -```bash +```docker FROM node:12 # replace this with your application's default port EXPOSE 8888 diff --git a/container/run.md b/container/run.md index d4033e8f6..5f7802fd5 100644 --- a/container/run.md +++ b/container/run.md @@ -37,7 +37,7 @@ bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr 当利用 `docker run` 来创建容器时,Docker 在后台运行的标准操作包括: -* 检查本地是否存在指定的镜像,不存在就从 [`registry`](../repository/README.md) 下载 +* 检查本地是否存在指定的镜像,不存在就从 [registry](../repository/README.md) 下载 * 利用镜像创建并启动一个容器 * 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层 * 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去 @@ -47,7 +47,7 @@ bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr ## 启动已终止容器 -可以利用 `docker container start` 命令,直接将一个已经终止的容器启动运行。 +可以利用 `docker container start` 命令,直接将一个已经终止(`exited`)的容器启动运行。 容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。除此之外,并没有其它的资源。可以在伪终端中利用 `ps` 或 `top` 来查看进程信息。 diff --git a/introduction/what.md b/introduction/what.md index 19241e7c4..534739fa7 100644 --- a/introduction/what.md +++ b/introduction/what.md @@ -4,7 +4,7 @@ **Docker** 自开源后受到广泛的关注和讨论,至今其 [GitHub 项目](https://github.com/moby/moby) 已经超过 5 万 7 千个星标和一万多个 `fork`。甚至由于 `Docker` 项目的火爆,在 `2013` 年底,[dotCloud 公司决定改名为 Docker](https://www.docker.com/blog/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),以及 [OverlayFS](https://docs.docker.com/storage/storagedriver/overlayfs-driver/) 类的 [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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 +**Docker** 使用 `Google` 公司推出的 [Go 语言](https://golang.google.cn/) 进行开发实现,基于 `Linux` 内核的 [cgroup](https://zh.wikipedia.org/wiki/Cgroups),[namespace](https://en.wikipedia.org/wiki/Linux_namespaces),以及 [OverlayFS](https://docs.docker.com/storage/storagedriver/overlayfs-driver/) 类的 [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](https://github.com/opencontainers/runc) 和 [containerd](https://github.com/containerd/containerd)。 ![Docker 架构](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/media/docker-on-linux.png) From 6cfc12eece8e58f10fc24674b85aedcff9e0ec74 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 18 Apr 2021 18:58:58 +0800 Subject: [PATCH 576/611] cli experimental is deprecated on 20.10 Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 28 ++++++++++++++-------------- README.md | 2 +- buildx/buildx.md | 4 ---- image/manifest.md | 2 -- install/experimental.md | 30 +++--------------------------- install/mac.md | 4 +++- install/windows.md | 2 +- 7 files changed, 22 insertions(+), 50 deletions(-) diff --git a/.vuepress/config.js b/.vuepress/config.js index 59d833c0c..19a29bd92 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -126,8 +126,8 @@ module.exports = config({ // link: '' // }, { - text: '腾讯云2021新春采购节', - link: 'https://cloud.tencent.com/act/cps/redirect?redirect=10488&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=activity' + text: '云服务器特惠', + link: 'https://cloud.tencent.com/act/cps/redirect?redirect=1062&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console' }, // { // text: '语言', @@ -151,7 +151,7 @@ module.exports = config({ 'design', { title: "部署 Kubernetes", - collapsable: false, + collapsable: true, children: [ "setup/", "setup/kubeadm", @@ -162,7 +162,7 @@ module.exports = config({ }, { title: "Kubernetes 命令行 kubectl", - collapsable: false, + collapsable: true, children: [ 'kubectl/' ] @@ -185,7 +185,7 @@ module.exports = config({ 'fedora', 'centos', 'raspberry-pi', - 'offline', + // 'offline', 'mac', 'windows', 'mirror', @@ -216,7 +216,7 @@ module.exports = config({ 'actions/', { title: "Drone", - collapsable: false, + collapsable: true, children: [ 'drone/', 'drone/install' @@ -327,7 +327,7 @@ module.exports = config({ }, { title: "高级网络配置", - collapsable: false, + collapsable: true, children: [ 'advanced_network/', 'advanced_network/quick_guide', @@ -341,7 +341,7 @@ module.exports = config({ }, { title: "Swarm mode", - collapsable: false, + collapsable: true, children: [ 'swarm_mode/', 'swarm_mode/overview', @@ -355,7 +355,7 @@ module.exports = config({ }, { title: "安全", - collapsable: false, + collapsable: true, children: [ 'security/', 'security/kernel_ns', @@ -368,7 +368,7 @@ module.exports = config({ }, { title: "底层实现", - collapsable: false, + collapsable: true, children: [ 'underly/', 'underly/arch', @@ -391,7 +391,7 @@ module.exports = config({ }, { title: "Etcd", - collapsable: false, + collapsable: true, children: [ 'etcd/', 'etcd/intro', @@ -402,7 +402,7 @@ module.exports = config({ }, { title: "Fedora CoreOS", - collapsable: false, + collapsable: true, children: [ 'coreos/', 'coreos/intro', @@ -413,7 +413,7 @@ module.exports = config({ 'appendix/faq/', { title: "热门镜像介绍", - collapsable: false, + collapsable: true, children: [ 'appendix/repo/', 'appendix/repo/ubuntu', @@ -430,7 +430,7 @@ module.exports = config({ }, { title: "Docker 命令", - collapsable: false, + collapsable: true, children: [ 'appendix/command/', 'appendix/command/docker', diff --git a/README.md b/README.md index 4c175876e..3c8f92e41 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初 * QQ 群 IX (已满):571502246 * QQ 群 X (可加):145983035 ->如果有容器相关的疑问,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new/choose) 来提出。 +>如果有容器技术相关的疑问,请通过 [Issues](https://github.com/yeasy/docker_practice/issues/new/choose) 来提出。 ## 进阶学习 diff --git a/buildx/buildx.md b/buildx/buildx.md index ee7ec45c8..bdbfe9a1a 100644 --- a/buildx/buildx.md +++ b/buildx/buildx.md @@ -1,9 +1,5 @@ # 使用 Buildx 构建镜像 -## 启用 Buildx - -`buildx` 命令属于实验特性,请参考 [开启实验特性](../install/experimental.md) 一节开启 Docker CLI 实验特性。 - ## 使用 你可以直接使用 `docker buildx build` 命令构建镜像。 diff --git a/image/manifest.md b/image/manifest.md index 2e25797c4..b55d749ca 100644 --- a/image/manifest.md +++ b/image/manifest.md @@ -34,8 +34,6 @@ $ docker run -it --rm username/test 我们可以使用 `$ docker manifest inspect golang:alpine` 查看这个 `manifest` 列表的结构。 -> 该命令属于实验特性,请参考 [开启实验特性](../install/experimental) 一节。 - ```bash $ docker manifest inspect golang:alpine ``` diff --git a/install/experimental.md b/install/experimental.md index 037ea40d3..d32844eab 100644 --- a/install/experimental.md +++ b/install/experimental.md @@ -2,35 +2,11 @@ 一些 docker 命令或功能仅当 **实验特性** 开启时才能使用,请按照以下方法进行设置。 -## 开启 Docker CLI 的实验特性 +## Docker CLI 的实验特性 -编辑 `~/.docker/config.json` 文件,新增如下条目 +从 `v20.10` 版本开始,Docker CLI 所有实验特性的命令均默认开启,无需再进行配置或设置系统环境变量。 -```json -{ - "experimental": "enabled" -} -``` - -或者通过设置环境变量的方式: - -**Linux/macOS** - -```bash -$ export DOCKER_CLI_EXPERIMENTAL=enabled -``` - -**Windows** - -```powershell -# 临时生效 -$ set $env:DOCKER_CLI_EXPERIMENTAL="enabled" - -# 永久生效 -$ [environment]::SetEnvironmentvariable("DOCKER_CLI_EXPERIMENTAL","enabled","User") -``` - -## 开启 Dockerd 的实验特性 +## 开启 dockerd 的实验特性 编辑 `/etc/docker/daemon.json`,新增如下条目 diff --git a/install/mac.md b/install/mac.md index 9685c14ad..562631e6b 100644 --- a/install/mac.md +++ b/install/mac.md @@ -16,7 +16,9 @@ $ brew install --cask docker ### 手动下载安装 -如果需要手动下载,请点击以下 [链接](https://desktop.docker.com/mac/stable/Docker.dmg) 下载 Docker Desktop for Mac。 +如果需要手动下载,请点击以下 [链接](https://desktop.docker.com/mac/stable/amd64/Docker.dmg) 下载 Docker Desktop for Mac。 + +> 如果你的电脑搭载的是 M1 芯片(`arm64` 架构),请点击以下 [链接](https://desktop.docker.com/mac/stable/arm64/Docker.dmg) 下载 Docker Desktop for Mac。你可以在 [官方文档](https://docs.docker.com/docker-for-mac/apple-silicon/) 查阅已知的问题。 如同 macOS 其它软件一样,安装也非常简单,双击下载的 `.dmg` 文件,然后将那只叫 [Moby](https://www.docker.com/blog/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可(其间需要输入用户密码)。 diff --git a/install/windows.md b/install/windows.md index 70fefb8be..ffe34f8e4 100644 --- a/install/windows.md +++ b/install/windows.md @@ -8,7 +8,7 @@ **手动下载安装** -点击以下 [链接](https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exe) 下载 Docker Desktop for Windows。 +点击以下 [链接](https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe) 下载 Docker Desktop for Windows。 下载好之后双击 `Docker Desktop Installer.exe` 开始安装。 From 96fc5acc7552f4216509631c5b5570cd75a95acf Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Fri, 28 May 2021 21:50:15 +0800 Subject: [PATCH 577/611] Update laravel demo Signed-off-by: Kang Huaishuai --- image/multistage-builds/example/laravel/Dockerfile | 2 +- image/multistage-builds/laravel.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/image/multistage-builds/example/laravel/Dockerfile b/image/multistage-builds/example/laravel/Dockerfile index 3f247becf..ab455accd 100644 --- a/image/multistage-builds/example/laravel/Dockerfile +++ b/image/multistage-builds/example/laravel/Dockerfile @@ -5,7 +5,7 @@ COPY package.json /app/ RUN set -x ; cd /app \ && npm install --registry=https://registry.npm.taobao.org -COPY webpack.mix.js /app/ +COPY webpack.mix.js webpack.config.js tailwind.config.js /app/ COPY resources/ /app/resources/ RUN set -x ; cd /app \ diff --git a/image/multistage-builds/laravel.md b/image/multistage-builds/laravel.md index 07df96cf4..1d3b1fa89 100644 --- a/image/multistage-builds/laravel.md +++ b/image/multistage-builds/laravel.md @@ -63,7 +63,7 @@ COPY package.json /app/ RUN set -x ; cd /app \ && npm install --registry=https://registry.npm.taobao.org -COPY webpack.mix.js /app/ +COPY webpack.mix.js webpack.config.js tailwind.config.js /app/ COPY resources/ /app/resources/ RUN set -x ; cd /app \ @@ -181,7 +181,7 @@ COPY package.json /app/ RUN set -x ; cd /app \ && npm install --registry=https://registry.npm.taobao.org -COPY webpack.mix.js /app/ +COPY webpack.mix.js webpack.config.js tailwind.config.js /app/ COPY resources/ /app/resources/ RUN set -x ; cd /app \ From ba36c90b6cdb38b4866c25d0694b634e9fe4997e Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 31 May 2021 19:23:39 +0800 Subject: [PATCH 578/611] Update vuepress config Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 21 +++++++++++++++------ package.json | 5 ++--- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/.vuepress/config.js b/.vuepress/config.js index 19a29bd92..3910d64d9 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -39,7 +39,6 @@ module.exports = config({ // }, }, themeConfig: { - baseLang: 'zh-CN', blog: false, // comment: false, comment: { @@ -53,7 +52,7 @@ module.exports = config({ 'word', ], footer: { - content: "Made with vuepress-theme-hope", + content: "Made with vuepress-theme-hope", display: true, copyright: false, }, @@ -65,12 +64,22 @@ module.exports = config({ mdEnhance: { lineNumbers: true, }, + git: { + contributor: false, + }, themeColor: { blue: '#2196f3', // red: '#f26d6d', // green: '#3eaf7c', // orange: '#fb9b5f' }, + locales: { + "/": { + lang: "zh-CN" + } + }, + + darkmode: 'auto-switch', // @@ -117,10 +126,10 @@ module.exports = config({ text: "云计算", link: "/cloud/", }, - { - text: 'GitHub', - link: 'https://github.com/yeasy/docker_practice' - }, + // { + // text: 'GitHub', + // link: 'https://github.com/yeasy/docker_practice' + // }, // { // text: '捐赠', // link: '' diff --git a/package.json b/package.json index e7d5fb064..a35560b87 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,9 @@ "version": "1.0.0", "description": "docker_practice", "main": "index.js", - "dependencies": {}, "devDependencies": { - "chalk": "^2.4.2", - "commander": "^2.0.0", + "chalk": "^4.1.1", + "commander": "^7.2.0", "esm": "^3.0.0", "vuepress": "1.8.2", "vuepress-plugin-container": "^2.1.5", From 8705cede17147c77ce14a952aad57f3fd691a492 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 31 May 2021 19:42:07 +0800 Subject: [PATCH 579/611] Update jd.com link Signed-off-by: Kang Huaishuai --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3c8f92e41..5d2139c5d 100644 --- a/README.md +++ b/README.md @@ -70,4 +70,4 @@ Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初

    欢迎鼓励项目一杯 coffee~

    -[1]: https://union-click.jd.com/jdc?e=&p=AyIGZRtYFAcXBFIZWR0yEgRQH1kXAhs3EUQDS10iXhBeGlcJDBkNXg9JHU4YDk5ER1xOGRNLGEEcVV8BXURFUFdfC0RVU1JRUy1OVxUBFwNXGVscMlVYLlAaXAV1Z1JHA0dWEHVXZTliY1QLWStaJQAWB10fXhwKEDdlG1wlUHzf462DsLMO0%2F%2BUjp2VIgZlG18RBBcCUBlbEAoTBWUcWxwySVI7HAhBBxEOBUgOFQYQUGUraxYyIjdVK1glQHxXUEhYEVEUUFQcC0IHGgRRSAgVARAPAhsLFgNCDl0ZWiUAEwZREg%3D%3D&t=W1dCFFlQCxxKQgFHREkdSVJKSQVJHFRXFk9FUlpGQUpLCVBaTFhbXQtWVmpSWRtYEAYQBVUS +[1]: https://union-click.jd.com/jdc?e=&p=JF8AANADIgZlGF0VAxUDVBJdHDISBFAfWRcCGzcRRANLXSJeEF4aVwkMGQ1eD0kdSVJKSQVJHBIEUB9ZFwIbGAxeB0gyS34PbFlHVHNkI0MQEAoIcSxyBWFLRAtZK1olABYHXR9eHAoQN2UbXCVQfN_jrYOwsw7T_5SOnZUiBmUbXBYBFwBVG14UBBAAZRxbHDJJUjscCEEHEQ4FSA4VBhBQZStrFjIiN1UrWCVAfARQT1gQA0cFAEwOEAcRDlMTDEALQAFTEwwRUhMAUR1cJQATBlES From baeb22245550eeca8421c77d3f981baba35a705c Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Jun 2021 10:50:31 +0800 Subject: [PATCH 580/611] Update vuepress config Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.vuepress/config.js b/.vuepress/config.js index 3910d64d9..94ce5e68d 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -38,6 +38,11 @@ module.exports = config({ // onlyFirstAndLastCommit: true, // }, }, + locales: { + "/": { + lang: "zh-CN" + } + }, themeConfig: { blog: false, // comment: false, @@ -59,6 +64,7 @@ module.exports = config({ searchPlaceholder: 'Search', repo: 'yeasy/docker_practice', repoLabel: 'GitHub', + repoDisplay: true, hostname: 'https://vuepress.mirror.docker-practice.com', // author: 'yeasy', mdEnhance: { @@ -135,8 +141,9 @@ module.exports = config({ // link: '' // }, { - text: '云服务器特惠', - link: 'https://cloud.tencent.com/act/cps/redirect?redirect=1062&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console' + text: '云服务器618特惠', + //link: 'https://cloud.tencent.com/act/cps/redirect?redirect=1062&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console' + link: 'https://cloud.tencent.com/act/cps/redirect?redirect=10488&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=activity' }, // { // text: '语言', From 330beb4fdb80a9491f3878c9263cf57b5b4b87e4 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 6 Jun 2021 20:19:28 +0800 Subject: [PATCH 581/611] don't push pages to coding.net Signed-off-by: Kang Huaishuai --- .github/workflows/ci.yaml | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 68724f463..c44061170 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -80,7 +80,8 @@ jobs: npx vuepress --version npm run vuepress:build - echo "vuepress.docker-practice.com" > .vuepress/dist/CNAME + # echo "vuepress.docker-practice.com" > .vuepress/dist/CNAME + echo "vuepress.mirror.docker-practice.com" > .vuepress/dist/CNAME cp -r _images .vuepress/dist cp -r advanced_network/_images .vuepress/dist/advanced_network @@ -109,21 +110,21 @@ jobs: PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}} PCIT_TARGET_BRANCH: master PCIT_USERNAME: khs1994 - - name: Set coding.net CNAME - run: | - echo "vuepress.mirror.docker-practice.com" > .vuepress/dist/CNAME - - name: Upload Vuepress dist to coding.net - uses: docker://pcit/pages - if: github.repository == 'docker-practice/docker_practice' - env: - PCIT_EMAIL: khs1994@khs1994.com - PCIT_GIT_TOKEN: ${{ secrets.CODING_GIT_TOKEN }} - PCIT_GIT_URL: e.coding.net/dpsigs/docker_practice - PCIT_KEEP_HISTORY: "true" - PCIT_LOCAL_DIR: .vuepress/dist - PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}} - PCIT_TARGET_BRANCH: master - PCIT_USERNAME: ptt0xjqzbke3 + # - name: Set coding.net CNAME + # run: | + # echo "vuepress.mirror.docker-practice.com" > .vuepress/dist/CNAME + # - name: Upload Vuepress dist to coding.net + # uses: docker://pcit/pages + # if: github.repository == 'docker-practice/docker_practice' + # env: + # PCIT_EMAIL: khs1994@khs1994.com + # PCIT_GIT_TOKEN: ${{ secrets.CODING_GIT_TOKEN }} + # PCIT_GIT_URL: e.coding.net/dpsigs/docker_practice + # PCIT_KEEP_HISTORY: "true" + # PCIT_LOCAL_DIR: .vuepress/dist + # PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}} + # PCIT_TARGET_BRANCH: master + # PCIT_USERNAME: ptt0xjqzbke3 - name: Build vuepress docker image if: github.repository == 'docker-practice/docker_practice' run: | From 985e295d708dd22b87aa000fb7c728bbe8f31374 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sat, 12 Jun 2021 15:23:30 +0800 Subject: [PATCH 582/611] Add compose v2 Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 1 + CHANGELOG.md | 2 ++ SUMMARY.md | 1 + compose/v2.md | 7 +++++++ repository/dockerhub.md | 2 ++ 5 files changed, 13 insertions(+) create mode 100644 compose/v2.md diff --git a/.vuepress/config.js b/.vuepress/config.js index 94ce5e68d..3d0f6d169 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -186,6 +186,7 @@ module.exports = config({ ], '/compose/': [ 'introduction', + 'v2', 'install', 'usage', 'commands', diff --git a/CHANGELOG.md b/CHANGELOG.md index cfd3cfc49..2d80a1f69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ * 1.3.0 2021-YY-DD * 全面支持 Docker v20.10 新版本 + * 新增 Docker Compose v2 + * Docker Hub 自动构建转为付费功能 * 1.2.0 2020-12-20 * 错误修复 diff --git a/SUMMARY.md b/SUMMARY.md index 9cecb27e9..34035a201 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -82,6 +82,7 @@ * [使用 buildx 构建多种系统架构支持的 Docker 镜像](buildx/multi-arch-images.md) * [Docker Compose](compose/README.md) * [简介](compose/introduction.md) + * [Compose v2](compose/v2.md) * [安装与卸载](compose/install.md) * [使用](compose/usage.md) * [命令说明](compose/commands.md) diff --git a/compose/v2.md b/compose/v2.md new file mode 100644 index 000000000..d098db28f --- /dev/null +++ b/compose/v2.md @@ -0,0 +1,7 @@ +# Compose V2 + +目前 Docker 官方用 GO 语言 [重写](https://github.com/docker/compose-cli) 了 Docker Compose,并将其作为了 docker cli 的子命令,称为 `Compose V2`。你可以参照官方文档安装,然后将熟悉的 `docker-compose` 命令替换为 `docker compose`,即可使用 Docker Compose。 + +## 官方文档 + +* [Compose V2 beta](https://docs.docker.com/compose/cli-command/) diff --git a/repository/dockerhub.md b/repository/dockerhub.md index 6983c8277..9dfe4fa70 100644 --- a/repository/dockerhub.md +++ b/repository/dockerhub.md @@ -75,6 +75,8 @@ username/ubuntu ## 自动构建 +> 2021 年 6 月 18 日之后,该项功能仅限[付费用户](https://www.docker.com/blog/changes-to-docker-hub-autobuilds/)使用。 + 自动构建(`Automated Builds`)功能对于需要经常升级镜像内程序来说,十分方便。 有时候,用户构建了镜像,安装了某个软件,当软件发布新版本则需要手动更新镜像。 From 31ea892dfc0d65145ef97b3123957d9f20443cf8 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 27 Jun 2021 18:03:05 +0800 Subject: [PATCH 583/611] Update aliyun mirror Signed-off-by: Kang Huaishuai --- install/mirror.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/mirror.md b/install/mirror.md index 1f2a999d6..0a2ebfed4 100644 --- a/install/mirror.md +++ b/install/mirror.md @@ -2,7 +2,7 @@ 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如: -* [阿里云加速器(点击管理控制台 -> 登录账号(淘宝账号) -> 右侧镜像中心 -> 镜像加速器 -> 复制地址)](https://www.aliyun.com/product/acr?source=5176.11533457&userCode=8lx5zmtu) +* [阿里云加速器(点击管理控制台 -> 登录账号(淘宝账号) -> 右侧镜像工具 -> 镜像加速器 -> 复制加速器地址)](https://www.aliyun.com/product/acr?source=5176.11533457&userCode=8lx5zmtu) * [网易云加速器 `https://hub-mirror.c.163.com`](https://www.163yun.com/help/documents/56918246390157312) * [百度云加速器 `https://mirror.baidubce.com`](https://cloud.baidu.com/doc/CCE/s/Yjxppt74z#%E4%BD%BF%E7%94%A8dockerhub%E5%8A%A0%E9%80%9F%E5%99%A8) From 64b75e997fce6c8cd5d1790da7bc882a6de8527c Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 27 Jun 2021 22:34:53 +0800 Subject: [PATCH 584/611] Update project compose file Signed-off-by: Kang Huaishuai --- docker-compose.yml | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 598a48cd7..d54a15791 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,30 +2,31 @@ version: "3" services: - # $ docker-compose up server => up a server,Only Support Linux or macOS - server: - image: yeasy/docker_practice:latest - ports: - - 4000:4000 - volumes: - - ./:/srv/gitbook-src - command: server - - # $ docker-compose up build => build gitbook - - build: + gitbook-build: + &gitbook-build image: yeasy/docker_practice:latest volumes: - ./:/srv/gitbook-src command: build - # $ docker run -it --rm -p 4000:80 dockerpracticesig/docker_practice - offline: + gitbook-server: + << : *gitbook-build + ports: + - 4000:4000 + command: server + + # docker run -it --rm -p 4000:80 dockerpracticesig/docker_practice + gitbook-offline: + &gitbook-offline # this image build by GitHub Action - image: dockerpracticesig/docker_practice + image: dockerpracticesig/docker_practice:gitbook ports: - 4000:80 + vuepress-offline: + << : *gitbook-offline + image: dockerpracticesig/docker_practice:vuepress + # developer test docker image development: From ca29ab51b121f43563f5d6659dedbda5cb6f048d Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Mon, 5 Jul 2021 00:35:13 +0800 Subject: [PATCH 585/611] Update SUMMARY.md Signed-off-by: Kang Huaishuai --- SUMMARY.md | 290 ++++++++++++++++++++++++++--------------------------- 1 file changed, 145 insertions(+), 145 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index 34035a201..c906a784a 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -4,173 +4,173 @@ * [修订记录](CHANGELOG.md) * [如何贡献](CONTRIBUTING.md) * [Docker 简介](introduction/README.md) - * [什么是 Docker](introduction/what.md) - * [为什么要用 Docker](introduction/why.md) + * [什么是 Docker](introduction/what.md) + * [为什么要用 Docker](introduction/why.md) * [基本概念](basic_concept/README.md) - * [镜像](basic_concept/image.md) - * [容器](basic_concept/container.md) - * [仓库](basic_concept/repository.md) + * [镜像](basic_concept/image.md) + * [容器](basic_concept/container.md) + * [仓库](basic_concept/repository.md) * [安装 Docker](install/README.md) - * [Ubuntu](install/ubuntu.md) - * [Debian](install/debian.md) - * [Fedora](install/fedora.md) - * [CentOS](install/centos.md) - * [Raspberry Pi](install/raspberry-pi.md) - * [Linux 离线安装](install/offline.md) - * [macOS](install/mac.md) - * [Windows 10](install/windows.md) - * [镜像加速器](install/mirror.md) - * [开启实验特性](install/experimental.md) + * [Ubuntu](install/ubuntu.md) + * [Debian](install/debian.md) + * [Fedora](install/fedora.md) + * [CentOS](install/centos.md) + * [Raspberry Pi](install/raspberry-pi.md) + * [Linux 离线安装](install/offline.md) + * [macOS](install/mac.md) + * [Windows 10](install/windows.md) + * [镜像加速器](install/mirror.md) + * [开启实验特性](install/experimental.md) * [使用镜像](image/README.md) - * [获取镜像](image/pull.md) - * [列出镜像](image/list.md) - * [删除本地镜像](image/rm.md) - * [利用 commit 理解镜像构成](image/commit.md) - * [使用 Dockerfile 定制镜像](image/build.md) - * [Dockerfile 指令详解](image/dockerfile/README.md) - * [COPY 复制文件](image/dockerfile/copy.md) - * [ADD 更高级的复制文件](image/dockerfile/add.md) - * [CMD 容器启动命令](image/dockerfile/cmd.md) - * [ENTRYPOINT 入口点](image/dockerfile/entrypoint.md) - * [ENV 设置环境变量](image/dockerfile/env.md) - * [ARG 构建参数](image/dockerfile/arg.md) - * [VOLUME 定义匿名卷](image/dockerfile/volume.md) - * [EXPOSE 暴露端口](image/dockerfile/expose.md) - * [WORKDIR 指定工作目录](image/dockerfile/workdir.md) - * [USER 指定当前用户](image/dockerfile/user.md) - * [HEALTHCHECK 健康检查](image/dockerfile/healthcheck.md) - * [ONBUILD 为他人作嫁衣裳](image/dockerfile/onbuild.md) - * [LABEL 为镜像添加元数据](image/dockerfile/label.md) - * [SHELL 指令](image/dockerfile/shell.md) - * [参考文档](image/dockerfile/references.md) - * [Dockerfile 多阶段构建](image/multistage-builds/README.md) - * [实战多阶段构建 Laravel 镜像](image/multistage-builds/laravel.md) - * [构建多种系统架构支持的 Docker 镜像](image/manifest.md) - * [其它制作镜像的方式](image/other.md) - * [实现原理](image/internal.md) + * [获取镜像](image/pull.md) + * [列出镜像](image/list.md) + * [删除本地镜像](image/rm.md) + * [利用 commit 理解镜像构成](image/commit.md) + * [使用 Dockerfile 定制镜像](image/build.md) + * [Dockerfile 指令详解](image/dockerfile/README.md) + * [COPY 复制文件](image/dockerfile/copy.md) + * [ADD 更高级的复制文件](image/dockerfile/add.md) + * [CMD 容器启动命令](image/dockerfile/cmd.md) + * [ENTRYPOINT 入口点](image/dockerfile/entrypoint.md) + * [ENV 设置环境变量](image/dockerfile/env.md) + * [ARG 构建参数](image/dockerfile/arg.md) + * [VOLUME 定义匿名卷](image/dockerfile/volume.md) + * [EXPOSE 暴露端口](image/dockerfile/expose.md) + * [WORKDIR 指定工作目录](image/dockerfile/workdir.md) + * [USER 指定当前用户](image/dockerfile/user.md) + * [HEALTHCHECK 健康检查](image/dockerfile/healthcheck.md) + * [ONBUILD 为他人作嫁衣裳](image/dockerfile/onbuild.md) + * [LABEL 为镜像添加元数据](image/dockerfile/label.md) + * [SHELL 指令](image/dockerfile/shell.md) + * [参考文档](image/dockerfile/references.md) + * [Dockerfile 多阶段构建](image/multistage-builds/README.md) + * [实战多阶段构建 Laravel 镜像](image/multistage-builds/laravel.md) + * [构建多种系统架构支持的 Docker 镜像](image/manifest.md) + * [其它制作镜像的方式](image/other.md) + * [实现原理](image/internal.md) * [操作容器](container/README.md) - * [启动](container/run.md) - * [守护态运行](container/daemon.md) - * [终止](container/stop.md) - * [进入容器](container/attach_exec.md) - * [导出和导入](container/import_export.md) - * [删除](container/rm.md) + * [启动](container/run.md) + * [守护态运行](container/daemon.md) + * [终止](container/stop.md) + * [进入容器](container/attach_exec.md) + * [导出和导入](container/import_export.md) + * [删除](container/rm.md) * [访问仓库](repository/README.md) - * [Docker Hub](repository/dockerhub.md) - * [私有仓库](repository/registry.md) - * [私有仓库高级配置](repository/registry_auth.md) - * [Nexus 3](repository/nexus3_registry.md) + * [Docker Hub](repository/dockerhub.md) + * [私有仓库](repository/registry.md) + * [私有仓库高级配置](repository/registry_auth.md) + * [Nexus 3](repository/nexus3_registry.md) * [数据管理](data_management/README.md) - * [数据卷](data_management/volume.md) - * [挂载主机目录](data_management/bind-mounts.md) + * [数据卷](data_management/volume.md) + * [挂载主机目录](data_management/bind-mounts.md) * [使用网络](network/README.md) - * [外部访问容器](network/port_mapping.md) - * [容器互联](network/linking.md) - * [配置 DNS](network/dns.md) + * [外部访问容器](network/port_mapping.md) + * [容器互联](network/linking.md) + * [配置 DNS](network/dns.md) * [高级网络配置](advanced_network/README.md) - * [快速配置指南](advanced_network/quick_guide.md) - * [容器访问控制](advanced_network/access_control.md) - * [端口映射实现](advanced_network/port_mapping.md) - * [配置 docker0 网桥](advanced_network/docker0.md) - * [自定义网桥](advanced_network/bridge.md) - * [工具和示例](advanced_network/example.md) - * [编辑网络配置文件](advanced_network/config_file.md) - * [实例:创建一个点到点连接](advanced_network/ptp.md) + * [快速配置指南](advanced_network/quick_guide.md) + * [容器访问控制](advanced_network/access_control.md) + * [端口映射实现](advanced_network/port_mapping.md) + * [配置 docker0 网桥](advanced_network/docker0.md) + * [自定义网桥](advanced_network/bridge.md) + * [工具和示例](advanced_network/example.md) + * [编辑网络配置文件](advanced_network/config_file.md) + * [实例:创建一个点到点连接](advanced_network/ptp.md) * [Docker Buildx](buildx/README.md) - * [BuildKit](buildx/buildkit.md) - * [使用 buildx 构建镜像](buildx/buildx.md) - * [使用 buildx 构建多种系统架构支持的 Docker 镜像](buildx/multi-arch-images.md) + * [BuildKit](buildx/buildkit.md) + * [使用 buildx 构建镜像](buildx/buildx.md) + * [使用 buildx 构建多种系统架构支持的 Docker 镜像](buildx/multi-arch-images.md) * [Docker Compose](compose/README.md) - * [简介](compose/introduction.md) - * [Compose v2](compose/v2.md) - * [安装与卸载](compose/install.md) - * [使用](compose/usage.md) - * [命令说明](compose/commands.md) - * [Compose 模板文件](compose/compose_file.md) - * [实战 Django](compose/django.md) - * [实战 Rails](compose/rails.md) - * [实战 WordPress](compose/wordpress.md) - * [实战 LNMP](compose/lnmp.md) + * [简介](compose/introduction.md) + * [Compose v2](compose/v2.md) + * [安装与卸载](compose/install.md) + * [使用](compose/usage.md) + * [命令说明](compose/commands.md) + * [Compose 模板文件](compose/compose_file.md) + * [实战 Django](compose/django.md) + * [实战 Rails](compose/rails.md) + * [实战 WordPress](compose/wordpress.md) + * [实战 LNMP](compose/lnmp.md) * [Swarm mode](swarm_mode/README.md) - * [基本概念](swarm_mode/overview.md) - * [创建 Swarm 集群](swarm_mode/create.md) - * [部署服务](swarm_mode/deploy.md) - * [使用 compose 文件](swarm_mode/stack.md) - * [管理密钥](swarm_mode/secret.md) - * [管理配置信息](swarm_mode/config.md) - * [滚动升级](swarm_mode/rolling_update.md) + * [基本概念](swarm_mode/overview.md) + * [创建 Swarm 集群](swarm_mode/create.md) + * [部署服务](swarm_mode/deploy.md) + * [使用 compose 文件](swarm_mode/stack.md) + * [管理密钥](swarm_mode/secret.md) + * [管理配置信息](swarm_mode/config.md) + * [滚动升级](swarm_mode/rolling_update.md) * [安全](security/README.md) - * [内核命名空间](security/kernel_ns.md) - * [控制组](security/control_group.md) - * [服务端防护](security/daemon_sec.md) - * [内核能力机制](security/kernel_capability.md) - * [其它安全特性](security/other_feature.md) - * [总结](security/summary.md) + * [内核命名空间](security/kernel_ns.md) + * [控制组](security/control_group.md) + * [服务端防护](security/daemon_sec.md) + * [内核能力机制](security/kernel_capability.md) + * [其它安全特性](security/other_feature.md) + * [总结](security/summary.md) * [底层实现](underly/README.md) - * [基本架构](underly/arch.md) - * [命名空间](underly/namespace.md) - * [控制组](underly/cgroups.md) - * [联合文件系统](underly/ufs.md) - * [容器格式](underly/container_format.md) - * [网络](underly/network.md) + * [基本架构](underly/arch.md) + * [命名空间](underly/namespace.md) + * [控制组](underly/cgroups.md) + * [联合文件系统](underly/ufs.md) + * [容器格式](underly/container_format.md) + * [网络](underly/network.md) * [Etcd 项目](etcd/README.md) - * [简介](etcd/intro.md) - * [安装](etcd/install.md) - * [集群](etcd/cluster.md) - * [使用 etcdctl](etcd/etcdctl.md) + * [简介](etcd/intro.md) + * [安装](etcd/install.md) + * [集群](etcd/cluster.md) + * [使用 etcdctl](etcd/etcdctl.md) * [Fedora CoreOS](coreos/README.md) - * [简介](coreos/intro.md) - * [安装](coreos/install.md) + * [简介](coreos/intro.md) + * [安装](coreos/install.md) * [Kubernetes - 开源容器编排引擎](kubernetes/README.md) - * [简介](kubernetes/intro.md) - * [基本概念](kubernetes/concepts.md) - * [架构设计](kubernetes/design.md) + * [简介](kubernetes/intro.md) + * [基本概念](kubernetes/concepts.md) + * [架构设计](kubernetes/design.md) * [部署 Kubernetes](kubernetes/setup/README.md) - * [使用 kubeadm 部署 kubernetes](kubernetes/setup/kubeadm.md) - * [在 Docker Desktop 使用](kubernetes/setup/docker-desktop.md) - * [一步步部署 kubernetes 集群](kubernetes/setup/systemd.md) - * [部署 Dashboard](kubernetes/setup/dashboard.md) + * [使用 kubeadm 部署 kubernetes](kubernetes/setup/kubeadm.md) + * [在 Docker Desktop 使用](kubernetes/setup/docker-desktop.md) + * [一步步部署 kubernetes 集群](kubernetes/setup/systemd.md) + * [部署 Dashboard](kubernetes/setup/dashboard.md) * [Kubernetes 命令行 kubectl](kubernetes/kubectl/README.md) * [容器与云计算](cloud/README.md) - * [简介](cloud/intro.md) - * [腾讯云](cloud/tencentCloud.md) - * [阿里云](cloud/alicloud.md) - * [亚马逊云](cloud/aws.md) - * [小结](cloud/summary.md) + * [简介](cloud/intro.md) + * [腾讯云](cloud/tencentCloud.md) + * [阿里云](cloud/alicloud.md) + * [亚马逊云](cloud/aws.md) + * [小结](cloud/summary.md) * [实战案例 - 操作系统](cases/os/README.md) - * [Busybox](cases/os/busybox.md) - * [Alpine](cases/os/alpine.md) - * [Debian Ubuntu](cases/os/debian.md) - * [CentOS Fedora](cases/os/centos.md) - * [本章小结](cases/os/summary.md) + * [Busybox](cases/os/busybox.md) + * [Alpine](cases/os/alpine.md) + * [Debian Ubuntu](cases/os/debian.md) + * [CentOS Fedora](cases/os/centos.md) + * [本章小结](cases/os/summary.md) * [实战案例 - CI/CD](cases/ci/README.md) - * [GitHub Actions](cases/ci/actions/README.md) - * [Drone](cases/ci/drone/README.md) - * [部署 Drone](cases/ci/drone/install.md) + * [GitHub Actions](cases/ci/actions/README.md) + * [Drone](cases/ci/drone/README.md) + * [部署 Drone](cases/ci/drone/install.md) * [在 IDE 中使用 Docker](ide/README.md) - * [VS Code](ide/vsCode.md) + * [VS Code](ide/vsCode.md) * [podman - 下一代 Linux 容器工具](podman/README.md) * [附录](appendix/README.md) - * [附录一:常见问题总结](appendix/faq/README.md) - * [附录二:热门镜像介绍](appendix/repo/README.md) - * [Ubuntu](appendix/repo/ubuntu.md) - * [CentOS](appendix/repo/centos.md) - * [Nginx](appendix/repo/nginx.md) - * [PHP](appendix/repo/php.md) - * [Node.js](appendix/repo/nodejs.md) - * [MySQL](appendix/repo/mysql.md) - * [WordPress](appendix/repo/wordpress.md) - * [MongoDB](appendix/repo/mongodb.md) - * [Redis](appendix/repo/redis.md) - * [Minio](appendix/repo/minio.md) - * [附录三:Docker 命令查询](appendix/command/README.md) - * [客户端命令 - docker](appendix/command/docker.md) - * [服务端命令 - dockerd](appendix/command/dockerd.md) - * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) - * [附录五:如何调试 Docker](appendix/debug.md) - * [附录六:资源链接](appendix/resources.md) + * [附录一:常见问题总结](appendix/faq/README.md) + * [附录二:热门镜像介绍](appendix/repo/README.md) + * [Ubuntu](appendix/repo/ubuntu.md) + * [CentOS](appendix/repo/centos.md) + * [Nginx](appendix/repo/nginx.md) + * [PHP](appendix/repo/php.md) + * [Node.js](appendix/repo/nodejs.md) + * [MySQL](appendix/repo/mysql.md) + * [WordPress](appendix/repo/wordpress.md) + * [MongoDB](appendix/repo/mongodb.md) + * [Redis](appendix/repo/redis.md) + * [Minio](appendix/repo/minio.md) + * [附录三:Docker 命令查询](appendix/command/README.md) + * [客户端命令 - docker](appendix/command/docker.md) + * [服务端命令 - dockerd](appendix/command/dockerd.md) + * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) + * [附录五:如何调试 Docker](appendix/debug.md) + * [附录六:资源链接](appendix/resources.md) * [归档](archive/README.md) - * [Docker Machine](machine/README.md) - * [安装](machine/install.md) - * [使用](machine/usage.md) - * [Docker Swarm](swarm/README.md) + * [Docker Machine](machine/README.md) + * [安装](machine/install.md) + * [使用](machine/usage.md) + * [Docker Swarm](swarm/README.md) From 1787c392c67348ede2bf1a313a197be7d83978a6 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 6 Jul 2021 23:12:55 +0800 Subject: [PATCH 586/611] Update os version requirement Signed-off-by: Kang Huaishuai --- install/debian.md | 2 +- install/fedora.md | 5 ++--- install/ubuntu.md | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/install/debian.md b/install/debian.md index a61753f8b..515353f0b 100644 --- a/install/debian.md +++ b/install/debian.md @@ -8,8 +8,8 @@ Docker 支持以下版本的 [Debian](https://www.debian.org/intro/about) 操作系统: +* Debian Bullseye 11 * Debian Buster 10 -* Debian Stretch 9 ### 卸载旧版本 diff --git a/install/fedora.md b/install/fedora.md index 2a07e0bf3..32f223475 100644 --- a/install/fedora.md +++ b/install/fedora.md @@ -8,9 +8,8 @@ Docker 支持以下版本的 [Fedora](https://getfedora.org/) 操作系统: -* 30 -* 31 -* 32 +* 33 +* 34 ### 卸载旧版本 diff --git a/install/ubuntu.md b/install/ubuntu.md index 60af93e4c..45d5cca06 100644 --- a/install/ubuntu.md +++ b/install/ubuntu.md @@ -8,10 +8,10 @@ Docker 支持以下版本的 [Ubuntu](https://ubuntu.com/server) 操作系统: +* Ubuntu Hirsute 21.04 * Ubuntu Groovy 20.10 * Ubuntu Focal 20.04 (LTS) * Ubuntu Bionic 18.04 (LTS) -* Ubuntu Xenial 16.04 (LTS) Docker 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。 From 533f30a9393a3abf49d5dfcc520e968715394da6 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Tue, 6 Jul 2021 23:21:53 +0800 Subject: [PATCH 587/611] Update dead url Signed-off-by: Kang Huaishuai --- .gitignore | 2 ++ advanced_network/README.md | 2 +- basic_concept/repository.md | 2 +- repository/nexus3_registry.md | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index cd6ce1c4d..04f9bb93f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,5 @@ _book/ node_modules/ package-lock.json + +docker-compose.override.yml diff --git a/advanced_network/README.md b/advanced_network/README.md index 52ea99073..02106c8d3 100644 --- a/advanced_network/README.md +++ b/advanced_network/README.md @@ -6,7 +6,7 @@ 当 Docker 启动时,会自动在主机上创建一个 `docker0` 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。 -同时,Docker 随机分配一个本地未占用的私有网段(在 [RFC1918](https://tools.ietf.org/html/rfc1918) 中定义)中的一个地址给 `docker0` 接口。比如典型的 `172.17.42.1`,掩码为 `255.255.0.0`。此后启动的容器内的网口也会自动分配一个同一网段(`172.17.0.0/16`)的地址。 +同时,Docker 随机分配一个本地未占用的私有网段(在 [RFC1918](https://datatracker.ietf.org/doc/html/rfc1918) 中定义)中的一个地址给 `docker0` 接口。比如典型的 `172.17.42.1`,掩码为 `255.255.0.0`。此后启动的容器内的网口也会自动分配一个同一网段(`172.17.0.0/16`)的地址。 当创建一个 Docker 容器的时候,同时会创建了一对 `veth pair` 接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 `eth0`;另一端在本地并被挂载到 `docker0` 网桥,名称以 `veth` 开头(例如 `vethAQI2QT`)。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间一个虚拟共享网络。 diff --git a/basic_concept/repository.md b/basic_concept/repository.md index 69175628d..29716c9ed 100644 --- a/basic_concept/repository.md +++ b/basic_concept/repository.md @@ -14,7 +14,7 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像的 Registry 服务。一般这类公开服务允许用户免费上传、下载公开的镜像,并可能提供收费服务供用户管理私有镜像。 -最常使用的 Registry 公开服务是官方的 [Docker Hub](https://hub.docker.com/),这也是默认的 Registry,并拥有大量的高质量的 [官方镜像](https://hub.docker.com/search?q=&type=image&image_filter=official)。除此以外,还有 Red Hat 的 [Quay.io](https://quay.io/repository/);Google 的 [Google Container Registry](https://cloud.google.com/container-registry/),[Kubernetes](https://kubernetes.io/) 的镜像使用的就是这个服务;代码托管平台 [GitHub](https://github.com) 推出的 [ghcr.io](https://docs.github.com/cn/packages/guides/about-github-container-registry)。 +最常使用的 Registry 公开服务是官方的 [Docker Hub](https://hub.docker.com/),这也是默认的 Registry,并拥有大量的高质量的 [官方镜像](https://hub.docker.com/search?q=&type=image&image_filter=official)。除此以外,还有 Red Hat 的 [Quay.io](https://quay.io/repository/);Google 的 [Google Container Registry](https://cloud.google.com/container-registry/),[Kubernetes](https://kubernetes.io/) 的镜像使用的就是这个服务;代码托管平台 [GitHub](https://github.com) 推出的 [ghcr.io](https://docs.github.com/cn/packages/working-with-a-github-packages-registry/working-with-the-container-registry)。 由于某些原因,在国内访问这些服务可能会比较慢。国内的一些云服务商提供了针对 Docker Hub 的镜像服务(`Registry Mirror`),这些镜像服务被称为 **加速器**。常见的有 [阿里云加速器](https://www.aliyun.com/product/acr?source=5176.11533457&userCode=8lx5zmtu)、[DaoCloud 加速器](https://www.daocloud.io/mirror#accelerator-doc) 等。使用加速器会直接从国内的地址下载 Docker Hub 的镜像,比直接从 Docker Hub 下载速度会提高很多。在 [安装 Docker](../install/mirror.md) 一节中有详细的配置方法。 diff --git a/repository/nexus3_registry.md b/repository/nexus3_registry.md index 65184cbbf..de3c0d524 100644 --- a/repository/nexus3_registry.md +++ b/repository/nexus3_registry.md @@ -1,6 +1,6 @@ # Nexus3.x 的私有仓库 -使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry。在企业中把内部的一些工具包放入 `Nexus` 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/nexus/repository-oss-download) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 +使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry。在企业中把内部的一些工具包放入 `Nexus` 中是比较常见的做法,最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像。所以使用 [`Nexus3.x`](https://www.sonatype.com/product/repository-oss-download) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。 ## 启动 Nexus 容器 From 95aed0099e95c0002073b165d8c4011af1e605d3 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Thu, 15 Jul 2021 13:29:08 +0800 Subject: [PATCH 588/611] Update minio case Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 2 +- appendix/repo/minio.md | 36 ++++++++++++++------------------ 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index e0fff2978..0a1080da2 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -58,7 +58,7 @@ jobs: "product.china-pub.com",\ "union-click.jd.com",\ "x.x.x.x/base",\ - "x.x.x.x:9000/minio/",\ + "x.x.x.x:9090",\ "yeasy.gitbooks.io",\ "download.fastgit.org",\ "www.aliyun.com" \ diff --git a/appendix/repo/minio.md b/appendix/repo/minio.md index c36d02d5d..627100d38 100644 --- a/appendix/repo/minio.md +++ b/appendix/repo/minio.md @@ -1,8 +1,8 @@ # minio -[TOC] -MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 -MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。 +**MinIO** 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。 + +MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。 [官方文档](https://docs.min.io/) @@ -11,12 +11,9 @@ MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合 测试、开发环境下不考虑数据存储的情况下可以使用下面的命令快速开启服务。 ```bash -docker pull minio/minio -docker run -p 9000:9000 minio/minio server /data +$ docker run -d -p 9000:9000 -p 9090:9090 minio/minio server /data --console-address ':9090' ``` - - ## 离线部署 许多生产环境是一般是没有公网资源的,这就需要从有公网资源的服务器上把镜像导出,然后导入到需要运行镜像的内网服务器。 @@ -26,37 +23,36 @@ docker run -p 9000:9000 minio/minio server /data 在有公网资源的服务器上下载好`minio/minio`镜像 ```bash -docker save -o minio.tar minio/minio:latest +$ docker save -o minio.tar minio/minio:latest ``` - +> 使用docker save 的时候,也可以使用image id 来导出,但是那样导出的时候,就会丢失原来的镜像名称,推荐,还是使用镜像名字+tag来导出镜像 ### 导入镜像 把压缩文件复制到内网服务器上,使用下面的命令导入镜像 ```bash -docker load minio.tar +$ docker load minio.tar ``` ### 运行 minio -- 把/mnt/data 改成要替换的数据目录 -- 替换 MINIO_ACCESS_KEY -- 替换 MINIO_SECRET_KEY +- 把 `/mnt/data` 改成要替换的数据目录 +- 替换 `MINIO_ROOT_USER` 的值 +- 替换 `MINIO_ROOT_PASSWORD` 的值 - 替换 name,minio1(可选) -- 如果9000端口冲突,替换端口前面的如:9009:9000 +- 如果 9000、9090 端口冲突,替换端口前面的如 `9009:9000` ```bash -sudo docker run -d -p 9000:9000 --name minio1 \ - -e "MINIO_ACCESS_KEY=改成自己需要的" \ - -e "MINIO_SECRET_KEY=改成自己需要的" \ +$ sudo docker run -d -p 9000:9000 -p 9090:9090 --name minio1 \ + -e "MINIO_ROOT_USER=改成自己需要的" \ + -e "MINIO_ROOT_PASSWORD=改成自己需要的" \ -v /mnt/data:/data \ --restart=always \ - minio/minio server /data + minio/minio server /data --console-address ':9090' ``` ### 访问 web 管理页面 -http://x.x.x.x:9000/minio/ - +http://x.x.x.x:9090 From 5caddf44134f273618ae752bbb1bdf10ad575074 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Fri, 16 Jul 2021 12:25:33 +0800 Subject: [PATCH 589/611] [Kubernetes] kubeadm cri based containerd Signed-off-by: Kang Huaishuai --- SUMMARY.md | 2 +- kubernetes/setup/kubeadm-docker.md | 187 ++++++++++++++++++++++++ kubernetes/setup/kubeadm.md | 226 ++++++++++++++++++++++++++++- 3 files changed, 406 insertions(+), 9 deletions(-) create mode 100644 kubernetes/setup/kubeadm-docker.md diff --git a/SUMMARY.md b/SUMMARY.md index c906a784a..42929a977 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -126,7 +126,7 @@ * [基本概念](kubernetes/concepts.md) * [架构设计](kubernetes/design.md) * [部署 Kubernetes](kubernetes/setup/README.md) - * [使用 kubeadm 部署 kubernetes](kubernetes/setup/kubeadm.md) + * [使用 kubeadm 部署 kubernetes(CRI 使用 containerd)](kubernetes/setup/kubeadm.md) * [在 Docker Desktop 使用](kubernetes/setup/docker-desktop.md) * [一步步部署 kubernetes 集群](kubernetes/setup/systemd.md) * [部署 Dashboard](kubernetes/setup/dashboard.md) diff --git a/kubernetes/setup/kubeadm-docker.md b/kubernetes/setup/kubeadm-docker.md new file mode 100644 index 000000000..9f5b0a222 --- /dev/null +++ b/kubernetes/setup/kubeadm-docker.md @@ -0,0 +1,187 @@ +# 使用 kubeadm 部署 kubernetes(使用 Docker) + +`kubeadm` 提供了 `kubeadm init` 以及 `kubeadm join` 这两个命令作为快速创建 `kubernetes` 集群的最佳实践。 + +## 安装 Docker + +参考 [安装 Docker](../../install) 一节安装 Docker。 + +## 安装 **kubelet** **kubeadm** **kubectl** + +### Ubuntu/Debian + +```bash +$ apt-get update && apt-get install -y apt-transport-https +$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - + +$ cat < 执行可能出现错误,例如缺少依赖包,根据提示安装即可。 + +执行成功会输出 + +```bash +... +[addons] Applied essential addon: CoreDNS +I1116 12:35:13.270407 86677 request.go:538] Throttling request took 181.409184ms, request: POST:https://192.168.199.100:6443/api/v1/namespaces/kube-system/serviceaccounts +I1116 12:35:13.470292 86677 request.go:538] Throttling request took 186.088112ms, request: POST:https://192.168.199.100:6443/api/v1/namespaces/kube-system/configmaps +[addons] Applied essential addon: kube-proxy + +Your Kubernetes control-plane has initialized successfully! + +To start using your cluster, you need to run the following as a regular user: + + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + +You should now deploy a pod network to the cluster. +Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: + https://kubernetes.io/docs/concepts/cluster-administration/addons/ + +Then you can join any number of worker nodes by running the following on each as root: + +kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \ + --discovery-token-ca-cert-hash sha256:5edb316fd0d8ea2792cba15cdf1c899a366f147aa03cba52d4e5c5884ad836fe +``` + +### node 工作节点 + +在 **另一主机** 重复 **部署** 小节以前的步骤,安装配置好 kubelet。根据提示,加入到集群。 + +```bash +$ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \ + --discovery-token-ca-cert-hash sha256:5edb316fd0d8ea2792cba15cdf1c899a366f147aa03cba52d4e5c5884ad836fe +``` + +## 查看服务 + +所有服务启动后,查看本地实际运行的 Docker 容器。这些服务大概分为三类:主节点服务、工作节点服务和其它服务。 + +### 主节点服务 + +* `apiserver` 是整个系统的对外接口,提供 RESTful 方式供客户端和其它组件调用; + +* `scheduler` 负责对资源进行调度,分配某个 pod 到某个节点上; + +* `controller-manager` 负责管理控制器,包括 endpoint-controller(刷新服务和 pod 的关联信息)和 replication-controller(维护某个 pod 的复制为配置的数值)。 + +### 工作节点服务 + +* `proxy` 为 pod 上的服务提供访问的代理。 + +### 其它服务 + +* Etcd 是所有状态的存储数据库; + +## 使用 + +将 `/etc/kubernetes/admin.conf` 复制到 `~/.kube/config` + +执行 `$ kubectl get all -A` 查看启动的服务。 + +由于未部署 CNI 插件,CoreDNS 未正常启动。如何使用 Kubernetes,请参考后续章节。 + +## 部署 CNI + +这里以 `flannel` 为例进行介绍。 + +### flannel + +检查 podCIDR 设置 + +```bash +$ kubectl get node -o yaml | grep CIDR + +# 输出 + podCIDR: 10.244.0.0/16 + podCIDRs: +``` + +```bash +$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.11.0/Documentation/kube-flannel.yml +``` + +## master 节点默认不能运行 pod + +如果用 `kubeadm` 部署一个单节点集群,默认情况下无法使用,请执行以下命令解除限制 + +```bash +$ kubectl taint nodes --all node-role.kubernetes.io/master- + +# 恢复默认值 +# $ kubectl taint nodes NODE_NAME node-role.kubernetes.io/master=true:NoSchedule +``` + +## 参考文档 + +* [官方文档](https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/) diff --git a/kubernetes/setup/kubeadm.md b/kubernetes/setup/kubeadm.md index 6d2afb87a..6176d6ce6 100644 --- a/kubernetes/setup/kubeadm.md +++ b/kubernetes/setup/kubeadm.md @@ -1,12 +1,205 @@ -# 使用 kubeadm 部署 kubernetes +# 使用 kubeadm 部署 kubernetes(CRI 使用 containerd) `kubeadm` 提供了 `kubeadm init` 以及 `kubeadm join` 这两个命令作为快速创建 `kubernetes` 集群的最佳实践。 -## 安装 Docker +## 安装 containerd -参考 [安装 Docker](../../install) 一节安装 Docker。 +参考 [安装 Docker](../../install) 一节添加 apt/yum 源,之后执行如下命令。 -## 安装 **kubelet** **kubeadm** **kubectl** +```bash +# debian 系 +$ sudo apt install containerd.io + +# rhel 系 +$ sudo yum install containerd.io +``` + +## 配置 containerd + +新建 `/etc/systemd/system/cri-containerd.service` 文件 + +``` +[Unit] +Description=containerd container runtime for kubernetes +Documentation=https://containerd.io +After=network.target local-fs.target + +[Service] +ExecStartPre=-/sbin/modprobe overlay +ExecStart=/usr/bin/containerd --config //etc/cri-containerd/config.toml + +Type=notify +Delegate=yes +KillMode=process +Restart=always +RestartSec=5 +# Having non-zero Limit*s causes performance problems due to accounting overhead +# in the kernel. We recommend using cgroups to do container-local accounting. +LimitNPROC=infinity +LimitCORE=infinity +LimitNOFILE=infinity +# Comment TasksMax if your systemd version does not supports it. +# Only systemd 226 and above support this version. +TasksMax=infinity +OOMScoreAdjust=-999 + +[Install] +WantedBy=multi-user.target +``` + +新建 `/etc/cri-containerd/config.toml` containerd 配置文件 + +```toml +version = 2 +# persistent data location +root = "/var/lib/cri-containerd" +# runtime state information +state = "/run/cri-containerd" +plugin_dir = "" +disabled_plugins = [] +required_plugins = [] +# set containerd's OOM score +oom_score = 0 + +[grpc] + address = "/run/cri-containerd/cri-containerd.sock" + tcp_address = "" + tcp_tls_cert = "" + tcp_tls_key = "" + # socket uid + uid = 0 + # socket gid + gid = 0 + max_recv_message_size = 16777216 + max_send_message_size = 16777216 + +[debug] + address = "" + format = "json" + uid = 0 + gid = 0 + level = "" + +[metrics] + address = "127.0.0.1:1338" + grpc_histogram = false + +[cgroup] + path = "" + +[timeouts] + "io.containerd.timeout.shim.cleanup" = "5s" + "io.containerd.timeout.shim.load" = "5s" + "io.containerd.timeout.shim.shutdown" = "3s" + "io.containerd.timeout.task.state" = "2s" + +[plugins] + [plugins."io.containerd.gc.v1.scheduler"] + pause_threshold = 0.02 + deletion_threshold = 0 + mutation_threshold = 100 + schedule_delay = "0s" + startup_delay = "100ms" + [plugins."io.containerd.grpc.v1.cri"] + disable_tcp_service = true + stream_server_address = "127.0.0.1" + stream_server_port = "0" + stream_idle_timeout = "4h0m0s" + enable_selinux = false + selinux_category_range = 1024 + sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.5" + stats_collect_period = 10 + # systemd_cgroup = false + enable_tls_streaming = false + max_container_log_line_size = 16384 + disable_cgroup = false + disable_apparmor = false + restrict_oom_score_adj = false + max_concurrent_downloads = 3 + disable_proc_mount = false + unset_seccomp_profile = "" + tolerate_missing_hugetlb_controller = true + disable_hugetlb_controller = true + ignore_image_defined_volumes = false + [plugins."io.containerd.grpc.v1.cri".containerd] + snapshotter = "overlayfs" + default_runtime_name = "runc" + no_pivot = false + disable_snapshot_annotations = false + discard_unpacked_layers = false + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes] + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] + runtime_type = "io.containerd.runc.v2" + pod_annotations = [] + container_annotations = [] + privileged_without_host_devices = false + base_runtime_spec = "" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] + # SystemdCgroup enables systemd cgroups. + SystemdCgroup = true + # BinaryName is the binary name of the runc binary. + # BinaryName = "runc" + # BinaryName = "crun" + # NoPivotRoot disables pivot root when creating a container. + # NoPivotRoot = false + + # NoNewKeyring disables new keyring for the container. + # NoNewKeyring = false + + # ShimCgroup places the shim in a cgroup. + # ShimCgroup = "" + + # IoUid sets the I/O's pipes uid. + # IoUid = 0 + + # IoGid sets the I/O's pipes gid. + # IoGid = 0 + + # Root is the runc root directory. + Root = "" + + # CriuPath is the criu binary path. + # CriuPath = "" + + # CriuImagePath is the criu image path + # CriuImagePath = "" + + # CriuWorkPath is the criu work path. + # CriuWorkPath = "" + [plugins."io.containerd.grpc.v1.cri".cni] + bin_dir = "/opt/cni/bin" + conf_dir = "/etc/cni/net.d" + max_conf_num = 1 + conf_template = "" + [plugins."io.containerd.grpc.v1.cri".registry] + config_path = "/etc/cri-containerd/certs.d" + [plugins."io.containerd.grpc.v1.cri".registry.headers] + # Foo = ["bar"] + [plugins."io.containerd.grpc.v1.cri".image_decryption] + key_model = "" + [plugins."io.containerd.grpc.v1.cri".x509_key_pair_streaming] + tls_cert_file = "" + tls_key_file = "" + [plugins."io.containerd.internal.v1.opt"] + path = "/opt/cri-containerd" + [plugins."io.containerd.internal.v1.restart"] + interval = "10s" + [plugins."io.containerd.metadata.v1.bolt"] + content_sharing_policy = "shared" + [plugins."io.containerd.monitor.v1.cgroups"] + no_prometheus = false + [plugins."io.containerd.runtime.v2.task"] + platforms = ["linux/amd64"] + [plugins."io.containerd.service.v1.diff-service"] + default = ["walking"] + [plugins."io.containerd.snapshotter.v1.devmapper"] + root_path = "" + pool_name = "" + base_image_size = "" + async_remove = false +``` + +## 安装 **kubelet** **kubeadm** **kubectl** **cri-tools** **kubernetes-cni** ### Ubuntu/Debian @@ -77,8 +270,14 @@ $ sudo systemctl daemon-reload ### master ```bash -$ sudo kubeadm init --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \ +$ systemctl enable cri-containerd + +$ systemctl start cri-containerd + +$ sudo kubeadm init \ + --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \ --pod-network-cidr 10.244.0.0/16 \ + --cri-socket /run/cri-containerd/cri-containerd.sock \ --v 5 \ --ignore-preflight-errors=all ``` @@ -119,13 +318,23 @@ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \ 在 **另一主机** 重复 **部署** 小节以前的步骤,安装配置好 kubelet。根据提示,加入到集群。 ```bash -$ kubeadm join 192.168.199.100:6443 --token cz81zt.orsy9gm9v649e5lf \ - --discovery-token-ca-cert-hash sha256:5edb316fd0d8ea2792cba15cdf1c899a366f147aa03cba52d4e5c5884ad836fe +$ systemctl enable cri-containerd + +$ systemctl start cri-containerd + +$ kubeadm join 192.168.199.100:6443 \ + --token cz81zt.orsy9gm9v649e5lf \ + --discovery-token-ca-cert-hash sha256:5edb316fd0d8ea2792cba15cdf1c899a366f147aa03cba52d4e5c5884ad836fe \ + --cri-socket /run/cri-containerd/cri-containerd.sock ``` ## 查看服务 -所有服务启动后,查看本地实际运行的 Docker 容器。这些服务大概分为三类:主节点服务、工作节点服务和其它服务。 +所有服务启动后,通过 `crictl` 查看本地实际运行的容器。这些服务大概分为三类:主节点服务、工作节点服务和其它服务。 + +```bash +CONTAINER_RUNTIME_ENDPOINT=/run/cri-containerd/cri-containerd.sock crictl ps -a +``` ### 主节点服务 @@ -185,3 +394,4 @@ $ kubectl taint nodes --all node-role.kubernetes.io/master- ## 参考文档 * [官方文档](https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/) +* [Container runtimes](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd) From 8dfdbc5b076067c5c6be591cf1cb0cee34a4eaab Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Fri, 16 Jul 2021 12:33:01 +0800 Subject: [PATCH 590/611] remove docker search Signed-off-by: Kang Huaishuai --- cases/os/busybox.md | 16 +--------------- cases/os/centos.md | 20 -------------------- cases/os/debian.md | 40 +--------------------------------------- 3 files changed, 2 insertions(+), 74 deletions(-) diff --git a/cases/os/busybox.md b/cases/os/busybox.md index ddf59229e..a2a81eae6 100644 --- a/cases/os/busybox.md +++ b/cases/os/busybox.md @@ -10,21 +10,7 @@ ## 获取官方镜像 -在 `Docker Hub` 中搜索 `busybox` 相关的镜像。 - -```bash -$ docker search busybox -NAME DESCRIPTION STARS OFFICIAL AUTOMATED -busybox Busybox base image. 755 [OK] -progrium/busybox 63 [OK] -radial/busyboxplus Full-chain, Internet enabled, busybox made... 11 [OK] -odise/busybox-python 3 [OK] -multiarch/busybox multiarch ports of ubuntu-debootstrap 2 [OK] -azukiapp/busybox This image is meant to be used as the base... 2 [OK] -... -``` - -读者可以看到最受欢迎的镜像同时带有 `OFFICIAL` 标记,说明它是官方镜像。用户使用 `docker pull` 指令下载 `busybox:latest` 镜像: +可以使用 `docker pull` 指令下载 `busybox:latest` 镜像: ```bash $ docker pull busybox:latest diff --git a/cases/os/centos.md b/cases/os/centos.md index bc32c99f8..f2107f0c7 100644 --- a/cases/os/centos.md +++ b/cases/os/centos.md @@ -10,15 +10,6 @@ CentOS(Community Enterprise Operating System,中文意思是:社区企业 ### 使用 CentOS 官方镜像 -首先使用 `docker search` 命令来搜索标星至少为 `25` 的 `CentOS` 相关镜像。 - -```bash -$ docker search -f stars=25 centos -NAME DESCRIPTION STARS OFFICIAL AUTOMATED -centos The official... 2543 [OK] -jdeathe/centos-ssh 27 [OK] -``` - 使用 `docker run` 直接运行最新的 `CentOS` 镜像,并登录 `bash`。 ```bash @@ -40,17 +31,6 @@ CentOS Linux release 7.2.1511 (Core) ### 使用 Fedora 官方镜像 -首先使用 `docker search` 命令来搜索标星至少为 `2` 的 `Fedora` 相关镜像,结果如下。 - -```bash -$ docker search -f stars=2 fedora -NAME DESCRIPTION STARS OFFICIAL AUTOMATED -fedora Official Docker builds of Fedora 433 [OK] -dockingbay/fedora-rust Trusted build of Rust programming language... 3 [OK] -gluster/gluster-fedora Official GlusterFS image [ Fedora 21 + Glu... 3 [OK] -startx/fedora Simple container used for all startx based... 2 [OK] -``` - 使用 `docker run` 命令直接运行 `Fedora` 官方镜像,并登录 `bash`。 ```bash diff --git a/cases/os/debian.md b/cases/os/debian.md index df640c147..e9da8eb35 100644 --- a/cases/os/debian.md +++ b/cases/os/debian.md @@ -14,20 +14,7 @@ ### 使用 Debian 官方镜像 -读者可以使用 `docker search` 查找 `Debian` 镜像: - -```bash -$ docker search debian -NAME DESCRIPTION STARS OFFICIAL AUTOMATED -debian Debian is... 1565 [OK] -neurodebian NeuroDebian... 26 [OK] -armbuild/debian port of debian 8 [OK] -... -``` - -官方提供了大家熟知的 `debian` 镜像以及面向科研领域的 `neurodebian` 镜像。 - -可以使用 `docker run` 直接运行 `Debian` 镜像。 +官方提供了大家熟知的 `debian` 镜像以及面向科研领域的 `neurodebian` 镜像。可以使用 `docker run` 直接运行 `Debian` 镜像。 ```bash $ docker run -it debian bash @@ -45,31 +32,6 @@ Debian GNU/Linux 8 ### 使用 Ubuntu 官方镜像 -`Ubuntu` 相关的镜像有很多,这里使用 `--filter=stars=10` 参数,只搜索那些被收藏 `10` 次以上的镜像。 - -```bash -$ docker search --filter=stars=10 ubuntu - -NAME DESCRIPTION STARS OFFICIAL AUTOMATED -ubuntu Ubuntu is a Debian-based Linux operating sys… 10539 [OK] -dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interface … 395 [OK] -rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 243 [OK] -consol/ubuntu-xfce-vnc Ubuntu container with "headless" VNC session… 210 [OK] -ubuntu-upstart Upstart is an event-based replacement for th… 105 [OK] -ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 98 [OK] -neurodebian NeuroDebian provides neuroscience research s… 64 [OK] -1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 50 [OK] -ubuntu-debootstrap debootstrap --variant=minbase --components=m… 42 [OK] -nuagebec/ubuntu Simple always updated Ubuntu docker images w… 24 [OK] -i386/ubuntu Ubuntu is a Debian-based Linux operating sys… 19 -1and1internet/ubuntu-16-apache-php-5.6 ubuntu-16-apache-php-5.6 14 [OK] -1and1internet/ubuntu-16-apache-php-7.0 ubuntu-16-apache-php-7.0 13 [OK] -eclipse/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 12 [OK] -1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10 ubuntu-16-nginx-php-phpmyadmin-mariadb-10 11 [OK] -``` - -根据搜索出来的结果,读者可以自行选择下载镜像并使用。 - 下面以 `ubuntu:18.04` 为例,演示如何使用该镜像安装一些常用软件。 首先使用 `-ti` 参数启动容器,登录 `bash`,查看 `ubuntu` 的发行版本号。 From d4fc0a9da1469a9c57b56582d486f0375e4b889e Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Fri, 16 Jul 2021 12:43:50 +0800 Subject: [PATCH 591/611] remove deprecated features: machine and swarm Signed-off-by: Kang Huaishuai --- .github/workflows/check-link.yml | 3 +- .github/workflows/ci.yaml | 2 +- SUMMARY.md | 5 -- archive/README.md | 6 +- machine/README.md | 9 -- machine/install.md | 33 ------- machine/usage.md | 149 ------------------------------- manifest | 1 - swarm/README.md | 7 -- swarm_mode/create.md | 36 +------- 10 files changed, 9 insertions(+), 242 deletions(-) delete mode 100644 machine/README.md delete mode 100644 machine/install.md delete mode 100644 machine/usage.md delete mode 100644 swarm/README.md diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 0a1080da2..e6546e8db 100644 --- a/.github/workflows/check-link.yml +++ b/.github/workflows/check-link.yml @@ -25,7 +25,6 @@ jobs: "192.168.199.100",\ "github.com/settings",\ "github.com/docker/compose/releases/download",\ - "github.com/docker/machine/releases/download",\ "github.com/etcd-io/etcd/releases/download",\ "github.com/tianon/gosu/releases/download",\ "github.com/yeasy/docker_practice",\ @@ -65,6 +64,6 @@ jobs: --allow-dupe \ --skip-save-results \ -t 10 \ - `find . \( -path "./mesos" -o -path "./machine" -o -path "./swarm_mode" \) -prune -o -name "*.md" -exec ls {} \;` + `find . \( -path "./mesos" -o -path "./swarm_mode" \) -prune -o -name "*.md" -exec ls {} \;` name: check-link timeout-minutes: 25 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c44061170..13c7206ad 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -75,7 +75,7 @@ jobs: git clone https://github.com/docker-practice/.vuepress .vuepress2 cp -r .vuepress2/. .vuepress/ rm -rf .vuepress2 - find . \( -path "./mesos" -o -path "./machine" -o -path "./swarm_mode" -o -path "./node_modules" -o -path "./.vuepress" -o -path "./_book" -o -path "./CHANGELOG.md" -o -path "./CONTRIBUTING.md" \) -prune -o -name "*.md" -exec sed -i 'N;2a\\n' {} \; + find . \( -path "./mesos" -o -path "./swarm_mode" -o -path "./node_modules" -o -path "./.vuepress" -o -path "./_book" -o -path "./CHANGELOG.md" -o -path "./CONTRIBUTING.md" \) -prune -o -name "*.md" -exec sed -i 'N;2a\\n' {} \; npx vuepress --version diff --git a/SUMMARY.md b/SUMMARY.md index 42929a977..4fd7b80c4 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -169,8 +169,3 @@ * [附录四:Dockerfile 最佳实践](appendix/best_practices.md) * [附录五:如何调试 Docker](appendix/debug.md) * [附录六:资源链接](appendix/resources.md) -* [归档](archive/README.md) - * [Docker Machine](machine/README.md) - * [安装](machine/install.md) - * [使用](machine/usage.md) - * [Docker Swarm](swarm/README.md) diff --git a/archive/README.md b/archive/README.md index 5f748758a..00aa7b45f 100644 --- a/archive/README.md +++ b/archive/README.md @@ -1,7 +1,7 @@ # 归档项目 -以下项目不被官方支持或内容陈旧,将在下一版本中删除。 +以下项目不被官方支持或内容陈旧,将在下一版本中删除(或已经删除)。 -* Docker Machine +* [Docker Machine](https://github.com/yeasy/docker_practice/tree/ca29ab51b121f43563f5d6659dedbda5cb6f048d/machine) +* [Docker Swarm](https://github.com/yeasy/docker_practice/tree/ca29ab51b121f43563f5d6659dedbda5cb6f048d/swarm) * Mesos -* Docker Swarm diff --git a/machine/README.md b/machine/README.md deleted file mode 100644 index ebc1c3e21..000000000 --- a/machine/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Docker Machine 项目 - -![](https://docs.docker.com/machine/img/machine.png) - -Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境。 - -Docker Machine 项目基于 Go 语言实现,目前在 [Github](https://github.com/docker/machine) 上进行维护。 - -本章将介绍 Docker Machine 的安装及使用。 diff --git a/machine/install.md b/machine/install.md deleted file mode 100644 index 24afd532a..000000000 --- a/machine/install.md +++ /dev/null @@ -1,33 +0,0 @@ -## 安装 - -Docker Machine 可以在多种操作系统平台上安装,包括 Linux、macOS,以及 Windows。 - -### macOS、Windows - -`Docker Desktop for Mac/Windows` 自带 `docker-machine` 二进制包,安装之后即可使用。 - -查看版本信息。 - -```bash -$ docker-machine -v -docker-machine version 0.16.1, build cce350d7 -``` - -### Linux - -在 Linux 上的也安装十分简单,从 [官方 GitHub Release](https://github.com/docker/machine/releases) 处直接下载编译好的二进制文件即可。 - -例如,在 Linux 64 位系统上直接下载对应的二进制包。 - -```bash -$ sudo curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine - -$ sudo chmod +x /usr/local/bin/docker-machine -``` - -完成后,查看版本信息。 - -```bash -$ docker-machine -v -docker-machine version 0.16.1, build cce350d7 -``` diff --git a/machine/usage.md b/machine/usage.md deleted file mode 100644 index a790f8ce4..000000000 --- a/machine/usage.md +++ /dev/null @@ -1,149 +0,0 @@ -## 使用 - -Docker Machine 支持多种后端驱动,包括虚拟机、本地主机和云平台等。 - -### 创建本地主机实例 - -#### Virtualbox 驱动 - -使用 `virtualbox` 类型的驱动,创建一台 Docker 主机,命名为 test。 - -```bash -$ docker-machine create -d virtualbox test -``` - -你也可以在创建时加上如下参数,来配置主机或者主机上的 Docker。 - -`--engine-opt dns=114.114.114.114` 配置 Docker 的默认 DNS - -`--engine-registry-mirror https://hub-mirror.c.163.com` 配置 Docker 的仓库镜像 - -`--virtualbox-memory 2048` 配置主机内存 - -`--virtualbox-cpu-count 2` 配置主机 CPU - -更多参数请使用 `docker-machine create --driver virtualbox --help` 命令查看。 - -#### macOS xhyve 驱动 - -`xhyve` 驱动 GitHub: https://github.com/zchee/docker-machine-driver-xhyve - -[`xhyve`](https://github.com/mist64/xhyve) 是 macOS 上轻量化的虚拟引擎,使用其创建的 Docker Machine 较 `VirtualBox` 驱动创建的运行效率要高。 - -```bash -$ brew install docker-machine-driver-xhyve - -$ docker-machine create \ - -d xhyve \ - # --xhyve-boot2docker-url ~/.docker/machine/cache/boot2docker.iso \ - --engine-opt dns=114.114.114.114 \ - --engine-registry-mirror https://hub-mirror.c.163.com \ - --xhyve-memory-size 2048 \ - --xhyve-rawdisk \ - --xhyve-cpu-count 2 \ - xhyve -``` - ->注意:非首次创建时建议加上 `--xhyve-boot2docker-url ~/.docker/machine/cache/boot2docker.iso` 参数,避免每次创建时都从 GitHub 下载 ISO 镜像。 - -更多参数请使用 `docker-machine create --driver xhyve --help` 命令查看。 - -#### Windows 10 - -Windows 10 安装 Docker Desktop for Windows 之后不能再安装 VirtualBox,也就不能使用 `virtualbox` 驱动来创建 Docker Machine,我们可以选择使用 `hyperv` 驱动。 - -> 注意,必须事先在 `Hyper-V` 管理器中新建一个 **外部虚拟交换机** 执行下面的命令时,使用 `--hyperv-virtual-switch=MY_SWITCH` 指定虚拟交换机名称 - -```bash -$ docker-machine create --driver hyperv --hyperv-virtual-switch=MY_SWITCH vm -``` - -更多参数请使用 `docker-machine create --driver hyperv --help` 命令查看。 - -### 使用介绍 - -创建好主机之后,查看主机 - -```bash -$ docker-machine ls - -NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS -test - virtualbox Running tcp://192.168.99.187:2376 v17.10.0-ce -``` - -创建主机成功后,可以通过 `env` 命令来让后续操作对象都是目标主机。 - -```bash -$ docker-machine env test -``` - -后续根据提示在命令行输入命令之后就可以操作 test 主机。 - -也可以通过 `SSH` 登录到主机。 - -```bash -$ docker-machine ssh test - -docker@test:~$ docker --version -Docker version 17.10.0-ce, build f4ffd25 -``` - -连接到主机之后你就可以在其上使用 Docker 了。 - -### 官方支持驱动 - -通过 `-d` 选项可以选择支持的驱动类型。 - -* amazonec2 -* azure -* digitalocean -* exoscale -* generic -* google -* hyperv -* none -* openstack -* rackspace -* softlayer -* virtualbox -* vmwarevcloudair -* vmwarefusion -* vmwarevsphere - -### 第三方驱动 - -请到 [第三方驱动列表](https://github.com/docker/docker.github.io/blob/master/machine/AVAILABLE_DRIVER_PLUGINS.md) 查看 - - -### 操作命令 - -* `active` 查看活跃的 Docker 主机 -* `config` 输出连接的配置信息 -* `create` 创建一个 Docker 主机 -* `env` 显示连接到某个主机需要的环境变量 -* `inspect` 输出主机更多信息 -* `ip` 获取主机地址 -* `kill` 停止某个主机 -* `ls` 列出所有管理的主机 -* `provision` 重新设置一个已存在的主机 -* `regenerate-certs` 为某个主机重新生成 TLS 认证信息 -* `restart` 重启主机 -* `rm` 删除某台主机 -* `ssh` SSH 到主机上执行命令 -* `scp` 在主机之间复制文件 -* `mount` 挂载主机目录到本地 -* `start` 启动一个主机 -* `status` 查看主机状态 -* `stop` 停止一个主机 -* `upgrade` 更新主机 Docker 版本为最新 -* `url` 获取主机的 URL -* `version` 输出 docker-machine 版本信息 -* `help` 输出帮助信息 - -每个命令,又带有不同的参数,可以通过 - -```bash -$ docker-machine COMMAND --help -``` - -来查看具体的用法。 diff --git a/manifest b/manifest index 107f15ce2..ba77f7836 100644 --- a/manifest +++ b/manifest @@ -1,6 +1,5 @@ DOCKER_VERSION=20.10.0 DOCKER_COMPOSE_VERSION=1.27.4 -DOCKER_MACHINE_VERSION=0.16.1 ETCD_VERSION=3.4.0 KUBERNETES_VERSION=1.14.3 KUBERNETES_DASHBOARD=2.0.0 diff --git a/swarm/README.md b/swarm/README.md deleted file mode 100644 index 5518654f9..000000000 --- a/swarm/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Docker 三剑客之 Docker Swarm - -Docker Swarm 是 Docker 官方三剑客项目之一,提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。 - -使用它,用户可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台。 - -注意:Docker 1.12.0+ [Swarm mode](https://docs.docker.com/engine/swarm/) 已经内嵌入 Docker 引擎,成为了 docker 子命令 `docker swarm`,绝大多数用户已经开始使用 `Swarm mode`,Docker 引擎 API 已经删除 Docker Swarm。为避免大家混淆旧的 `Docker Swarm` 与新的 `Swarm mode`,旧的 `Docker Swarm` 内容已经删除,请查看 `Swarm mode` 一节。 diff --git a/swarm_mode/create.md b/swarm_mode/create.md index 91391242a..c40a7cc93 100644 --- a/swarm_mode/create.md +++ b/swarm_mode/create.md @@ -4,20 +4,10 @@ ## 初始化集群 -在 [`Docker Machine`](../machine) 一节中我们了解到 `Docker Machine` 可以在数秒内创建一个虚拟的 Docker 主机,下面我们使用它来创建三个 Docker 主机,并加入到集群中。 - -我们首先创建一个 Docker 主机作为管理节点。 - -```bash -$ docker-machine create -d virtualbox manager -``` - -我们使用 `docker swarm init` 在管理节点初始化一个 `Swarm` 集群。 +在已经安装好 Docker 的主机上执行如下命令: ```bash -$ docker-machine ssh manager - -docker@manager:~$ docker swarm init --advertise-addr 192.168.99.100 +$ docker swarm init --advertise-addr 192.168.99.100 Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager. To add a worker to this swarm, run the following command: @@ -35,34 +25,16 @@ To add a manager to this swarm, run 'docker swarm join-token manager' and follow ## 增加工作节点 -上一步我们初始化了一个 `Swarm` 集群,拥有了一个管理节点,下面我们继续创建两个 Docker 主机作为工作节点,并加入到集群中。 - -```bash -$ docker-machine create -d virtualbox worker1 - -$ docker-machine ssh worker1 - -docker@worker1:~$ docker swarm join \ - --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ - 192.168.99.100:2377 - -This node joined a swarm as a worker. -``` +上一步我们初始化了一个 `Swarm` 集群,拥有了一个管理节点,下面我们继续在两个 Docker 主机中分别执行如下命令,创建工作节点并加入到集群中。 ```bash -$ docker-machine create -d virtualbox worker2 - -$ docker-machine ssh worker2 - -docker@worker1:~$ docker swarm join \ +$ docker swarm join \ --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ 192.168.99.100:2377 This node joined a swarm as a worker. ``` ->注意:一些细心的读者可能通过 `docker-machine create --help` 查看到 `--swarm*` 等一系列参数。该参数是用于旧的 `Docker Swarm`,与本章所讲的 `Swarm mode` 没有关系。 - ## 查看集群 经过上边的两步,我们已经拥有了一个最小的 `Swarm` 集群,包含一个管理节点和两个工作节点。 From d1d4f0f47d9fec18404070c3019385fce666f705 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Fri, 16 Jul 2021 12:46:38 +0800 Subject: [PATCH 592/611] Update link Signed-off-by: Kang Huaishuai --- .vuepress/config.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.vuepress/config.js b/.vuepress/config.js index 3d0f6d169..e47b3fde1 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -141,9 +141,8 @@ module.exports = config({ // link: '' // }, { - text: '云服务器618特惠', - //link: 'https://cloud.tencent.com/act/cps/redirect?redirect=1062&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console' - link: 'https://cloud.tencent.com/act/cps/redirect?redirect=10488&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=activity' + text: '云服务器99/元首年特惠', + link: 'https://cloud.tencent.com/act/cps/redirect?redirect=1062&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console' }, // { // text: '语言', From a613c78c333d39c50195d80d99a4eb22f0c43073 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 19 Sep 2021 17:58:20 +0800 Subject: [PATCH 593/611] [Drone] update to v2 Signed-off-by: Kang Huaishuai --- cases/ci/drone/docker-compose.yml | 3 +-- cases/ci/drone/install.md | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/cases/ci/drone/docker-compose.yml b/cases/ci/drone/docker-compose.yml index 8ef416bad..2c04ee9d8 100644 --- a/cases/ci/drone/docker-compose.yml +++ b/cases/ci/drone/docker-compose.yml @@ -3,7 +3,7 @@ version: '3' services: drone-server: - image: drone/drone:1 + image: drone/drone:2.3.1 ports: - 443:443 - 80:80 @@ -12,7 +12,6 @@ services: - ./ssl:/etc/certs restart: always environment: - - DRONE_AGENTS_ENABLED=true - DRONE_SERVER_HOST=${DRONE_SERVER_HOST:-drone.domain.com} - DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO:-https} - DRONE_RPC_SECRET=${DRONE_RPC_SECRET:-secret} diff --git a/cases/ci/drone/install.md b/cases/ci/drone/install.md index 3d94ee5c1..124bafa57 100644 --- a/cases/ci/drone/install.md +++ b/cases/ci/drone/install.md @@ -30,7 +30,7 @@ version: '3' services: drone-server: - image: drone/drone:1 + image: drone/drone:2.3.1 ports: - 443:443 - 80:80 @@ -39,7 +39,6 @@ services: - ./ssl:/etc/certs restart: always environment: - - DRONE_AGENTS_ENABLED=true - DRONE_SERVER_HOST=${DRONE_SERVER_HOST:-https://drone.yeasy.com} - DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO:-https} - DRONE_RPC_SECRET=${DRONE_RPC_SECRET:-secret} From d5ce7f048b7a6606172dfeb177a3b1b635f03346 Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Sun, 19 Sep 2021 18:28:22 +0800 Subject: [PATCH 594/611] Update DD download link Signed-off-by: Kang Huaishuai --- install/mac.md | 4 ++-- install/windows.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/install/mac.md b/install/mac.md index 562631e6b..510d7354a 100644 --- a/install/mac.md +++ b/install/mac.md @@ -16,9 +16,9 @@ $ brew install --cask docker ### 手动下载安装 -如果需要手动下载,请点击以下 [链接](https://desktop.docker.com/mac/stable/amd64/Docker.dmg) 下载 Docker Desktop for Mac。 +如果需要手动下载,请点击以下 [链接](https://desktop.docker.com/mac/main/amd64/Docker.dmg) 下载 Docker Desktop for Mac。 -> 如果你的电脑搭载的是 M1 芯片(`arm64` 架构),请点击以下 [链接](https://desktop.docker.com/mac/stable/arm64/Docker.dmg) 下载 Docker Desktop for Mac。你可以在 [官方文档](https://docs.docker.com/docker-for-mac/apple-silicon/) 查阅已知的问题。 +> 如果你的电脑搭载的是 M1 芯片(`arm64` 架构),请点击以下 [链接](https://desktop.docker.com/mac/main/arm64/Docker.dmg) 下载 Docker Desktop for Mac。你可以在 [官方文档](https://docs.docker.com/docker-for-mac/apple-silicon/) 查阅已知的问题。 如同 macOS 其它软件一样,安装也非常简单,双击下载的 `.dmg` 文件,然后将那只叫 [Moby](https://www.docker.com/blog/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可(其间需要输入用户密码)。 diff --git a/install/windows.md b/install/windows.md index ffe34f8e4..377877182 100644 --- a/install/windows.md +++ b/install/windows.md @@ -8,7 +8,7 @@ **手动下载安装** -点击以下 [链接](https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe) 下载 Docker Desktop for Windows。 +点击以下 [链接](https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe) 下载 Docker Desktop for Windows。 下载好之后双击 `Docker Desktop Installer.exe` 开始安装。 From 31f3540fbc475705fe2ffe745b8367ffd143fa60 Mon Sep 17 00:00:00 2001 From: Dup4 Date: Mon, 1 Nov 2021 19:27:25 +0800 Subject: [PATCH 595/611] fix: typo --- install/debian.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/debian.md b/install/debian.md index 515353f0b..506086cb4 100644 --- a/install/debian.md +++ b/install/debian.md @@ -60,7 +60,7 @@ $ echo \ # 官方源 # $ echo \ -# "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://https://download.docker.com/linux/debian \ +# "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ # $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` From b9455b21691554f095025487be8caa76738f2829 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 1 Dec 2021 14:58:32 -0800 Subject: [PATCH 596/611] Fix format --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5d2139c5d..08b5c6e3c 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ 本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 12 章介绍了容器生态中的几个核心项目;13、14 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、Fedora CoreOS、Kubernetes、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。 * 在线阅读:[docker-practice.com](https://vuepress.mirror.docker-practice.com/),[GitBook](https://yeasy.gitbook.io/docker_practice/),[Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md) -* [离线阅读 `$ docker run -it --rm -p 4000:80 ccr.ccs.tencentyun.com/dockerpracticesig/docker_practice:vuepress`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) +* 离线阅读:[`$ docker run -it --rm -p 4000:80 ccr.ccs.tencentyun.com/dockerpracticesig/docker_practice:vuepress`](https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3) Docker 自身仍在快速发展中,生态环境也在蓬勃成长。建议初学者使用最新稳定版本的 Docker 进行学习实践。欢迎 [参与项目维护](CONTRIBUTING.md)。 From 1ed8c2c81f4ea2c734e8dca7eb59ed9a0b904788 Mon Sep 17 00:00:00 2001 From: Xianxiang Li Date: Tue, 4 Jan 2022 10:41:51 +0800 Subject: [PATCH 597/611] Update best_practices.md Fix a typo --- appendix/best_practices.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appendix/best_practices.md b/appendix/best_practices.md index e93f8e2ec..41afcb2a1 100644 --- a/appendix/best_practices.md +++ b/appendix/best_practices.md @@ -329,7 +329,7 @@ $ docker run --rm -it postgres bash 如果某个服务不需要特权执行,建议使用 `USER` 指令切换到非 root 用户。先在 `Dockerfile` 中使用类似 `RUN groupadd -r postgres && useradd -r -g postgres postgres` 的指令创建用户和用户组。 ->注意:在镜像中,用户和用户组每次被分配的 UID/GID 都是不确定的,下次重新构建镜像时被分配到的 UID/GID 可能会不一样。如果要依赖确定的 UID/GID,你应该显示的指定一个 UID/GID。 +>注意:在镜像中,用户和用户组每次被分配的 UID/GID 都是不确定的,下次重新构建镜像时被分配到的 UID/GID 可能会不一样。如果要依赖确定的 UID/GID,你应该显式的指定一个 UID/GID。 你应该避免使用 `sudo`,因为它不可预期的 TTY 和信号转发行为可能造成的问题比它能解决的问题还多。如果你真的需要和 `sudo` 类似的功能(例如,以 root 权限初始化某个守护进程,以非 root 权限执行它),你可以使用 [gosu](https://github.com/tianon/gosu)。 From 664ac88c856b080aa41231c970980d74a4df55e2 Mon Sep 17 00:00:00 2001 From: NPM Mirror Bot Date: Fri, 11 Feb 2022 13:56:55 +0000 Subject: [PATCH 598/611] update https://registry.npm.taobao.org to https://registry.npmmirror.com --- image/demo/buildkit/Dockerfile.buildkit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/demo/buildkit/Dockerfile.buildkit b/image/demo/buildkit/Dockerfile.buildkit index effcfc9d6..9bbe3993f 100644 --- a/image/demo/buildkit/Dockerfile.buildkit +++ b/image/demo/buildkit/Dockerfile.buildkit @@ -8,7 +8,7 @@ COPY package.json /app/ RUN --mount=type=cache,target=/app/node_modules,id=my_app_npm_module,sharing=locked \ --mount=type=cache,target=/root/.npm,id=npm_cache \ - npm i --registry=https://registry.npm.taobao.org + npm i --registry=https://registry.npmmirror.com COPY src /app/src From 1e415ac76cb6bb918d0eb00994a6b9c9bd282047 Mon Sep 17 00:00:00 2001 From: NPM Mirror Bot Date: Fri, 11 Feb 2022 22:09:47 -0500 Subject: [PATCH 599/611] update https://registry.npm.taobao.org to https://registry.npmmirror.com --- image/demo/buildkit/Dockerfile | 2 +- image/multistage-builds/laravel.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/image/demo/buildkit/Dockerfile b/image/demo/buildkit/Dockerfile index 7e16bbf63..18cf69ce9 100644 --- a/image/demo/buildkit/Dockerfile +++ b/image/demo/buildkit/Dockerfile @@ -4,7 +4,7 @@ WORKDIR /app COPY package.json /app/ -RUN npm i --registry=https://registry.npm.taobao.org \ +RUN npm i --registry=https://registry.npmmirror.com \ && rm -rf ~/.npm COPY src /app/src diff --git a/image/multistage-builds/laravel.md b/image/multistage-builds/laravel.md index 1d3b1fa89..2053cc0ed 100644 --- a/image/multistage-builds/laravel.md +++ b/image/multistage-builds/laravel.md @@ -61,7 +61,7 @@ FROM node:alpine as frontend COPY package.json /app/ RUN set -x ; cd /app \ - && npm install --registry=https://registry.npm.taobao.org + && npm install --registry=https://registry.npmmirror.com COPY webpack.mix.js webpack.config.js tailwind.config.js /app/ COPY resources/ /app/resources/ @@ -179,7 +179,7 @@ FROM node:alpine as frontend COPY package.json /app/ RUN set -x ; cd /app \ - && npm install --registry=https://registry.npm.taobao.org + && npm install --registry=https://registry.npmmirror.com COPY webpack.mix.js webpack.config.js tailwind.config.js /app/ COPY resources/ /app/resources/ From 7c78d1c2564e07202e76ad83f0841e4e0e5f4c5b Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Thu, 24 Feb 2022 21:06:15 +0800 Subject: [PATCH 600/611] centos refer to centos:8, deprecated Signed-off-by: Kang Huaishuai --- cases/os/centos.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cases/os/centos.md b/cases/os/centos.md index f2107f0c7..28bed1272 100644 --- a/cases/os/centos.md +++ b/cases/os/centos.md @@ -10,17 +10,17 @@ CentOS(Community Enterprise Operating System,中文意思是:社区企业 ### 使用 CentOS 官方镜像 -使用 `docker run` 直接运行最新的 `CentOS` 镜像,并登录 `bash`。 +使用 `docker run` 直接运行 `CentOS 7` 镜像,并登录 `bash`。 ```bash -$ docker run -it centos bash +$ docker run -it centos:7 bash Unable to find image 'centos:latest' locally latest: Pulling from library/centos 3d8673bd162a: Pull complete Digest: sha256:a66ffcb73930584413de83311ca11a4cb4938c9b2521d331026dad970c19adf4 Status: Downloaded newer image for centos:latest [root@43eb3b194d48 /]# cat /etc/redhat-release -CentOS Linux release 7.2.1511 (Core) +CentOS Linux release 7.9.2009 (Core) ``` ## Fedora 系统简介 From 18028b8eaa41aa46f0347f99530778a1eabfbaab Mon Sep 17 00:00:00 2001 From: Kang Huaishuai Date: Thu, 24 Feb 2022 21:08:22 +0800 Subject: [PATCH 601/611] Update dockerhub autobuild Signed-off-by: Kang Huaishuai --- repository/dockerhub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/dockerhub.md b/repository/dockerhub.md index 9dfe4fa70..0b8e9586e 100644 --- a/repository/dockerhub.md +++ b/repository/dockerhub.md @@ -75,7 +75,7 @@ username/ubuntu ## 自动构建 -> 2021 年 6 月 18 日之后,该项功能仅限[付费用户](https://www.docker.com/blog/changes-to-docker-hub-autobuilds/)使用。 +> 2021 年 7 月 26 日之后,该项功能仅限[付费用户](https://www.docker.com/blog/changes-to-docker-hub-autobuilds/)使用。 自动构建(`Automated Builds`)功能对于需要经常升级镜像内程序来说,十分方便。 From 7014e4d87c056d5a0f25f7ccf2dbe5b093a666aa Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Wed, 16 Mar 2022 15:14:06 -0700 Subject: [PATCH 602/611] Create FUNDING.yml --- .github/FUNDING.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..c08c58549 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,13 @@ +# These are supported funding model platforms + +github: yeasy +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From 1c4a43e34e4c55cb38302ded7835dc53bee57626 Mon Sep 17 00:00:00 2001 From: mrnyg <36262603+mrnyg@users.noreply.github.com> Date: Sat, 9 Apr 2022 14:27:53 +0800 Subject: [PATCH 603/611] Update secret.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit apache工作进程是www-data用户运行,而密钥文件(/run/secrets/wp_db_password)的属主是root,导致apache工作进程无法读取密钥,从而无法连接数据库 --- swarm_mode/secret.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swarm_mode/secret.md b/swarm_mode/secret.md index 28981d5f2..3c30f34b5 100644 --- a/swarm_mode/secret.md +++ b/swarm_mode/secret.md @@ -62,7 +62,7 @@ $ docker service create \ --network mysql_private \ --publish target=30000,port=80 \ --mount type=volume,source=wpdata,destination=/var/www/html \ - --secret source=mysql_password,target=wp_db_password,mode=0400 \ + --secret source=mysql_password,target=wp_db_password,mode=0444 \ -e WORDPRESS_DB_USER="wordpress" \ -e WORDPRESS_DB_PASSWORD_FILE="/run/secrets/wp_db_password" \ -e WORDPRESS_DB_HOST="mysql:3306" \ From 85be3008fa5247b69c59a0e23a6c28d1e34fde46 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Thu, 12 May 2022 14:37:08 -0700 Subject: [PATCH 604/611] Update words Fix #501 --- repository/dockerhub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/dockerhub.md b/repository/dockerhub.md index 0b8e9586e..cf0569372 100644 --- a/repository/dockerhub.md +++ b/repository/dockerhub.md @@ -77,7 +77,7 @@ username/ubuntu > 2021 年 7 月 26 日之后,该项功能仅限[付费用户](https://www.docker.com/blog/changes-to-docker-hub-autobuilds/)使用。 -自动构建(`Automated Builds`)功能对于需要经常升级镜像内程序来说,十分方便。 +自动构建(`Automated Builds`)可以自动触发构建镜像,方便升级镜像。 有时候,用户构建了镜像,安装了某个软件,当软件发布新版本则需要手动更新镜像。 From 93ea51ff078d6d22a776f758adc9d37da0afb392 Mon Sep 17 00:00:00 2001 From: WitchElaina <81346402+WitchElaina@users.noreply.github.com> Date: Sat, 22 Oct 2022 15:42:59 +0800 Subject: [PATCH 605/611] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=AD=E7=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原句:“这也是为什么有人认为 Go 是特别适合容器微服务架构的语言的原因之一”中的“为什么”和“的原因”重复赘余,因此删除掉“为什么”确保本句语法正确。 --- image/build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/build.md b/image/build.md index 3d29ad98d..64ad73d43 100644 --- a/image/build.md +++ b/image/build.md @@ -40,7 +40,7 @@ FROM scratch 如果你以 `scratch` 为基础镜像的话,意味着你不以任何镜像为基础,接下来所写的指令将作为镜像第一层开始存在。 -不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,对于 Linux 下静态编译的程序来说,并不需要有操作系统提供运行时支持,所需的一切库都已经在可执行文件里了,因此直接 `FROM scratch` 会让镜像体积更加小巧。使用 [Go 语言](https://golang.google.cn/) 开发的应用很多会使用这种方式来制作镜像,这也是为什么有人认为 Go 是特别适合容器微服务架构的语言的原因之一。 +不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,对于 Linux 下静态编译的程序来说,并不需要有操作系统提供运行时支持,所需的一切库都已经在可执行文件里了,因此直接 `FROM scratch` 会让镜像体积更加小巧。使用 [Go 语言](https://golang.google.cn/) 开发的应用很多会使用这种方式来制作镜像,这也是有人认为 Go 是特别适合容器微服务架构的语言的原因之一。 ## RUN 执行命令 From fe7530c3f62f4e5c85d6964388ad1b70c9ef899e Mon Sep 17 00:00:00 2001 From: linhuizi <529246402@qq.com> Date: Fri, 11 Nov 2022 11:31:02 +0800 Subject: [PATCH 606/611] =?UTF-8?q?docs(install):=20=E4=BF=AE=E6=94=B9Mac?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E7=B3=BB=E7=BB=9F=E8=A6=81=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/mac.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/mac.md b/install/mac.md index 510d7354a..46463f2b8 100644 --- a/install/mac.md +++ b/install/mac.md @@ -2,7 +2,7 @@ ## 系统要求 -[Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS Mojave 10.14。 +[Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/) 要求系统最低为 macOS 必须是 10.15 或更高版本, Catalina、Big Sur 或者 Monterey,建议升级到最新版本的 macOS。 ## 安装 From d80f3430b27c05dee8c176f1e146570722a59135 Mon Sep 17 00:00:00 2001 From: Yue JIN <40021217+kingyue737@users.noreply.github.com> Date: Wed, 21 Dec 2022 19:38:21 +0800 Subject: [PATCH 607/611] fix: typo --- image/dockerfile/references.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image/dockerfile/references.md b/image/dockerfile/references.md index 96969eaf9..b9edb4fd5 100644 --- a/image/dockerfile/references.md +++ b/image/dockerfile/references.md @@ -1,6 +1,6 @@ # 参考文档 -* `Dockerfie` 官方文档:https://docs.docker.com/engine/reference/builder/ +* `Dockerfile` 官方文档:https://docs.docker.com/engine/reference/builder/ * `Dockerfile` 最佳实践文档:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ From e76b0b66a0d0998ccee5e22ee4e24631c0fbce44 Mon Sep 17 00:00:00 2001 From: Yue JIN <40021217+kingyue737@users.noreply.github.com> Date: Wed, 21 Dec 2022 20:32:46 +0800 Subject: [PATCH 608/611] fix: wrong key of registry mirrors --- repository/registry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/registry.md b/repository/registry.md index abba1830e..20fce3ace 100644 --- a/repository/registry.md +++ b/repository/registry.md @@ -103,7 +103,7 @@ REPOSITORY TAG IMAGE ID CREAT ```json { - "registry-mirror": [ + "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ], From 6443ddc07cb109f995484b1a384704c422acc383 Mon Sep 17 00:00:00 2001 From: Zhizhen He Date: Sat, 7 Jan 2023 23:45:41 +0800 Subject: [PATCH 609/611] fix: typo --- appendix/best_practices.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appendix/best_practices.md b/appendix/best_practices.md index 41afcb2a1..371c94e34 100644 --- a/appendix/best_practices.md +++ b/appendix/best_practices.md @@ -167,9 +167,9 @@ RUN apt-get update && apt-get install -y \ && rm -rf /var/lib/apt/lists/* ``` -其中 `s3cmd` 指令指定了一个版本号 `1.1.*`。如果之前的镜像使用的是更旧的版本,指定新的版本会导致 `apt-get udpate` 缓存失效并确保安装的是新版本。 +其中 `s3cmd` 指令指定了一个版本号 `1.1.*`。如果之前的镜像使用的是更旧的版本,指定新的版本会导致 `apt-get update` 缓存失效并确保安装的是新版本。 -另外,清理掉 apt 缓存 `var/lib/apt/lists` 可以减小镜像大小。因为 `RUN` 指令的开头为 `apt-get udpate`,包缓存总是会在 `apt-get install` 之前刷新。 +另外,清理掉 apt 缓存 `var/lib/apt/lists` 可以减小镜像大小。因为 `RUN` 指令的开头为 `apt-get update`,包缓存总是会在 `apt-get install` 之前刷新。 > 注意:官方的 Debian 和 Ubuntu 镜像会自动运行 apt-get clean,所以不需要显式的调用 apt-get clean。 From 13b8e12f4435aeb480674f5139c52f8c06c80a5a Mon Sep 17 00:00:00 2001 From: Gao Zhenghua Date: Mon, 16 Jan 2023 16:10:32 +0800 Subject: [PATCH 610/611] [issue-518] Add document on how to use HTTP/HTTPS proxy --- SUMMARY.md | 1 + advanced_network/http_https_proxy.md | 74 ++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 advanced_network/http_https_proxy.md diff --git a/SUMMARY.md b/SUMMARY.md index 4fd7b80c4..4ad078a5c 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -75,6 +75,7 @@ * [自定义网桥](advanced_network/bridge.md) * [工具和示例](advanced_network/example.md) * [编辑网络配置文件](advanced_network/config_file.md) + * [配置 HTTP/HTTPS 网络代理](advanced_network/http_https_proxy.md) * [实例:创建一个点到点连接](advanced_network/ptp.md) * [Docker Buildx](buildx/README.md) * [BuildKit](buildx/buildkit.md) diff --git a/advanced_network/http_https_proxy.md b/advanced_network/http_https_proxy.md new file mode 100644 index 000000000..d8dcc9242 --- /dev/null +++ b/advanced_network/http_https_proxy.md @@ -0,0 +1,74 @@ +# 配置 HTTP/HTTPS 网络代理 + +使用Docker的过程中,因为网络原因,通常需要使用 HTTP/HTTPS 代理来加速镜像拉取、构建和使用。下面是常见的三种场景。 + +## 为 dockerd 设置网络代理 + +"docker pull" 命令是由 dockerd 守护进程执行。而 dockerd 守护进程是由 systemd 管理。因此,如果需要在执行 "docker pull" 命令时使用 HTTP/HTTPS 代理,需要通过 systemd 配置。 + +- 为 dockerd 创建配置文件夹。 +``` +sudo mkdir -p /etc/systemd/system/docker.service.d +``` + +- 为 dockerd 创建 HTTP/HTTPS 网络代理的配置文件,文件路径是 /etc/systemd/system/docker.service.d/http-proxy.conf 。并在该文件中添加相关环境变量。 +``` +[Service] +Environment="HTTP_PROXY=http://proxy.example.com:8080/" +Environment="HTTPS_PROXY=http://proxy.example.com:8080/" +Environment="NO_PROXY=localhost,127.0.0.1,.example.com" +``` + +- 刷新配置并重启 docker 服务。 +``` +sudo systemctl daemon-reload +sudo systemctl restart docker +``` + +## 为 docker 容器设置网络代理 + +在容器运行阶段,如果需要使用 HTTP/HTTPS 代理,可以通过更改 docker 客户端配置,或者指定环境变量的方式。 + +- 更改 docker 客户端配置:创建或更改 ~/.docker/config.json,并在该文件中添加相关配置。 +``` +{ + "proxies": + { + "default": + { + "httpProxy": "http://proxy.example.com:8080/", + "httpsProxy": "http://proxy.example.com:8080/", + "noProxy": "localhost,127.0.0.1,.example.com" + } + } +} +``` + +- 指定环境变量:运行 "docker run" 命令时,指定相关环境变量。 + +| 环境变量 | docker run 示例 | +| -------- | ---------------- | +| HTTP_PROXY | --env HTTP_PROXY="http://proxy.example.com:8080/" | +| HTTPS_PROXY | --env HTTPS_PROXY="http://proxy.example.com:8080/" | +| NO_PROXY | --env NO_PROXY="localhost,127.0.0.1,.example.com" | + +## 为 docker build 过程设置网络代理 + +在容器构建阶段,如果需要使用 HTTP/HTTPS 代理,可以通过指定 "docker build" 的环境变量,或者在 Dockerfile 中指定环境变量的方式。 + +- 使用 "--build-arg" 指定 "docker build" 的相关环境变量 +``` +docker build \ + --build-arg "HTTP_PROXY=http://proxy.example.com:8080/" \ + --build-arg "HTTPS_PROXY=http://proxy.example.com:8080/" \ + --build-arg "NO_PROXY=localhost,127.0.0.1,.example.com" . +``` + +- 在 Dockerfile 中指定相关环境变量 + +| 环境变量 | Dockerfile 示例 | +| -------- | ---------------- | +| HTTP_PROXY | ENV HTTP_PROXY="http://proxy.example.com:8080/" | +| HTTPS_PROXY | ENV HTTPS_PROXY="http://proxy.example.com:8080/" | +| NO_PROXY | ENV NO_PROXY="localhost,127.0.0.1,.example.com" | + From eb327bf9086b821a22253a68c8f9434b79c3a2a9 Mon Sep 17 00:00:00 2001 From: ReginaldChen <41498289+ReginaldChen@users.noreply.github.com> Date: Fri, 24 Feb 2023 17:41:22 +0800 Subject: [PATCH 611/611] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 轮寻应为轮询 --- kubernetes/concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubernetes/concepts.md b/kubernetes/concepts.md index 99391f726..402d0d41d 100644 --- a/kubernetes/concepts.md +++ b/kubernetes/concepts.md @@ -62,7 +62,7 @@ Kubernetes 校验节点可用依赖于 ID。在当前的版本中,有两个接 * 集群范围内节点同步 * 单节点生命周期管理 -节点控制有一个同步轮寻,主要监听所有云平台的虚拟实例,会根据节点状态创建和删除。可以通过 `--node_sync_period`标志来控制该轮寻。如果一个实例已经创建,节点控制将会为其创建一个结构。同样的,如果一个节点被删除,节点控制也会删除该结构。在 Kubernetes 启动时可用通过 `--machines`标记来显示指定节点。同样可以使用 `kubectl` 来一条一条的添加节点,两者是相同的。通过设置 `--sync_nodes=false`标记来禁止集群之间的节点同步,你也可以使用 api/kubectl 命令行来增删节点。 +节点控制有一个同步轮询,主要监听所有云平台的虚拟实例,会根据节点状态创建和删除。可以通过 `--node_sync_period`标志来控制该轮询。如果一个实例已经创建,节点控制将会为其创建一个结构。同样的,如果一个节点被删除,节点控制也会删除该结构。在 Kubernetes 启动时可用通过 `--machines`标记来显示指定节点。同样可以使用 `kubectl` 来一条一条的添加节点,两者是相同的。通过设置 `--sync_nodes=false`标记来禁止集群之间的节点同步,你也可以使用 api/kubectl 命令行来增删节点。 ## 容器组

q(47>IxQb*n!#4OH30{>{|@?8LWx`g1k*Nyh7E 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 R6b%3X002ovPDHLkV1m*iyQcsE From b3d6b681cb358ccaa32204bf967192561a66e034 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Thu, 12 Jan 2017 13:25:22 +0800 Subject: [PATCH 010/611] Add revision and contribute section --- README.md | 98 +++++---------------------------------------------- SUMMARY.md | 2 ++ contribute.md | 30 ++++++++++++++++ revision.md | 57 ++++++++++++++++++++++++++++++ 4 files changed, 98 insertions(+), 89 deletions(-) create mode 100644 contribute.md create mode 100644 revision.md diff --git a/README.md b/README.md index ba3dc0458..f1c180a4f 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,24 @@ # Docker — 从入门到实践 -0.8.0 +0.8.1 [Docker](http://www.docker.com) 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本! 使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! 无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker,以在有限的时间内做更多有意义的事。 -本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍一些高级操作;第 10 章给出典型的应用场景和实践案例;11、12 章介绍关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍一些相关的热门开源项目。 +本开源书籍既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍一些高级操作;第 10 章给出典型的应用场景和实践案例;11、12 章介绍关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍一些相关的热门开源项目。 在线阅读:[GitBook](https://www.gitbook.io/book/yeasy/docker_practice) 或 [Github](https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md)。 * pdf 版本 [下载](https://www.gitbook.com/download/pdf/book/yeasy/docker_practice) * epub 版本 [下载](https://www.gitbook.com/download/epub/book/yeasy/docker_practice) +Docker 自身仍在快速发展中,生态环境也在蓬勃成长。欢迎参与维护项目:[如何贡献](contribute.md)。 + +* [修订记录](revision.md) +* [贡献者名单](https://github.com/yeasy/docker_practice/graphs/contributors) + +## 技术交流 欢迎关注 DockerPool 社区微博 [@dockerpool](http://weibo.com/u/5345404432),或加入 Docker 技术交流 QQ 群或微信组,分享 Docker 资源,交流 Docker 技术。 * QQ 群 I (已满):341410255 @@ -26,6 +32,7 @@ * QQ 群 IX (已满):571502246 * QQ 群 X (可加):366203473 +## 进阶学习 ![Docker 技术入门与实战](_images/docker_primer.png) 《[Docker 技术入门与实战](http://item.jd.com/11598400.html)》一书已经正式出版,包含大量第一手实战案例和更为深入的技术剖析,欢迎大家阅读使用并反馈建议。 @@ -35,93 +42,6 @@ * [当当图书](http://product.dangdang.com/23620853.html) * [亚马逊图书](http://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B00R5MYI7C/ref=lh_ni_t?ie=UTF8&psc=1&smid=A1AJ19PSB66TGU) -## 主要版本历史 - -* 0.8.0: 2017-01-08 - - * 修正文字内容 - * 根据最新版本修订安装使用 - * 补充附录章节 - -* 0.7.0: 2016-06-12 - - * 根据最新版本进行命令调整 - * 修正若干文字描述 - -* 0.6.0: 2015-12-24 - - * 补充 Machine 项目 - * 修正若干 bug - -* 0.5.0: 2015-06-29 - - * 添加 Compose 项目 - * 添加 Machine 项目 - * 添加 Swarm 项目 - * 完善 Kubernetes 项目内容 - * 添加 Mesos 项目内容 - -* 0.4.0: 2015-05-08 - - * 添加 Etcd 项目 - * 添加 Fig 项目 - * 添加 CoreOS 项目 - * 添加 Kubernetes 项目 - -* 0.3.0: 2014-11-25 - - * 完成仓库章节; - * 重写安全章节; - * 修正底层实现章节的架构、命名空间、控制组、文件系统、容器格式等内容; - * 添加对常见仓库和镜像的介绍; - * 添加 Dockerfile 的介绍; - * 重新校订中英文混排格式。 - * 修订文字表达。 - * 发布繁体版本分支:zh-Hant。 - -* 0.2.0: 2014-09-18 - - * 对照官方文档重写介绍、基本概念、安装、镜像、容器、仓库、数据管理、网络等章节; - * 添加底层实现章节; - * 添加命令查询和资源链接章节; - * 其它修正。 - -* 0.1.0: 2014-09-05 - - * 添加基本内容; - * 修正错别字和表达不通顺的地方。 - -Docker 自身仍在快速发展中,生态环境也在蓬勃成长。源码开源托管在 Github 上,欢迎参与维护:[https://github.com/yeasy/docker_practice](https://github.com/yeasy/docker_practice)。贡献者 [名单](https://github.com/yeasy/docker_practice/graphs/contributors)。 - -## 参加步骤 - -* 在 GitHub 上 `fork` 到自己的仓库,如 `docker_user/docker_practice`,然后 `clone` 到本地,并设置用户信息。 - - ```sh - $ git clone git@github.com:docker_user/docker_practice.git - $ cd docker_practice - $ git config user.name "yourname" - $ git config user.email "your email" - ``` - -* 修改代码后提交,并推送到自己的仓库。 - - ```sh - $ #do some change on the content - $ git commit -am "Fix issue #1: change helo to hello" - $ git push - ``` - -* 在 GitHub 网站上提交 pull request。 - -* 定期使用项目仓库内容更新自己仓库内容。 - ```sh - $ git remote add upstream https://github.com/yeasy/docker_practice - $ git fetch upstream - $ git checkout master - $ git rebase upstream/master - $ git push -f origin master - ``` ## 鼓励项目 欢迎鼓励项目一杯 coffee~ diff --git a/SUMMARY.md b/SUMMARY.md index 3c6969343..c6733e387 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,6 +1,8 @@ # Summary * [前言](README.md) +* [修订记录](revision.md) +* [如何贡献](contribute.md) * [Docker 简介](introduction/README.md) * [什么是 Docker](introduction/what.md) * [为什么要用 Docker](introduction/why.md) diff --git a/contribute.md b/contribute.md new file mode 100644 index 000000000..b6c5252d9 --- /dev/null +++ b/contribute.md @@ -0,0 +1,30 @@ +## 如何贡献项目 + +* 在 GitHub 上 `fork` 到自己的仓库,如 `docker_user/docker_practice`,然后 `clone` 到本地,并设置用户信息。 + + ```sh + $ git clone git@github.com:docker_user/docker_practice.git + $ cd docker_practice + $ git config user.name "yourname" + $ git config user.email "your email" + ``` + +* 修改代码后提交,并推送到自己的仓库。 + + ```sh + $ #do some change on the content + $ git commit -am "Fix issue #1: change helo to hello" + $ git push + ``` + +* 在 GitHub 网站上提交 pull request。 + +* 定期使用项目仓库内容更新自己仓库内容。 + ```sh + $ git remote add upstream https://github.com/yeasy/docker_practice + $ git fetch upstream + $ git checkout master + $ git rebase upstream/master + $ git push -f origin master + ``` + diff --git a/revision.md b/revision.md new file mode 100644 index 000000000..fa1512dec --- /dev/null +++ b/revision.md @@ -0,0 +1,57 @@ +## 主要修订记录 + +* 0.8.0: 2017-01-08 + + * 修正文字内容 + * 根据最新版本(1.12)修订安装使用 + * 补充附录章节 + +* 0.7.0: 2016-06-12 + + * 根据最新版本进行命令调整 + * 修正若干文字描述 + +* 0.6.0: 2015-12-24 + + * 补充 Machine 项目 + * 修正若干 bug + +* 0.5.0: 2015-06-29 + + * 添加 Compose 项目 + * 添加 Machine 项目 + * 添加 Swarm 项目 + * 完善 Kubernetes 项目内容 + * 添加 Mesos 项目内容 + +* 0.4.0: 2015-05-08 + + * 添加 Etcd 项目 + * 添加 Fig 项目 + * 添加 CoreOS 项目 + * 添加 Kubernetes 项目 + +* 0.3.0: 2014-11-25 + + * 完成仓库章节; + * 重写安全章节; + * 修正底层实现章节的架构、命名空间、控制组、文件系统、容器格式等内容; + * 添加对常见仓库和镜像的介绍; + * 添加 Dockerfile 的介绍; + * 重新校订中英文混排格式。 + * 修订文字表达。 + * 发布繁体版本分支:zh-Hant。 + +* 0.2.0: 2014-09-18 + + * 对照官方文档重写介绍、基本概念、安装、镜像、容器、仓库、数据管理、网络等章节; + * 添加底层实现章节; + * 添加命令查询和资源链接章节; + * 其它修正。 + +* 0.1.0: 2014-09-05 + + * 添加基本内容; + * 修正错别字和表达不通顺的地方。 + + From f5747f6a5c7b2d10e4dfc30d0d4ebbcd9f38c5d1 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Thu, 12 Jan 2017 15:41:14 +0800 Subject: [PATCH 011/611] Add cloud chapter --- SUMMARY.md | 7 ++++++- cloud/_images/ECS.jpg | Bin 0 -> 456137 bytes cloud/_images/aliyun-logo.png | Bin 0 -> 55842 bytes cloud/_images/aws-logo.jpg | Bin 0 -> 11026 bytes cloud/_images/qcloud-logo.jpg | Bin 0 -> 8382 bytes 5 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 cloud/_images/ECS.jpg create mode 100644 cloud/_images/aliyun-logo.png create mode 100644 cloud/_images/aws-logo.jpg create mode 100644 cloud/_images/qcloud-logo.jpg diff --git a/SUMMARY.md b/SUMMARY.md index c6733e387..bd83f6396 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -123,6 +123,12 @@ * [原理与架构](mesos/architecture.md) * [配置项解析](mesos/configuration.md) * [常见框架](mesos/framework.md) +* [容器与云计算](cloud/README.md) + * [简介](cloud/intro.md) + * [亚马逊云](cloud/aws.md) + * [腾讯云](cloud/qcloud.md) + * [阿里云](cloud/alicloud.md) + * [小结](cloud/summary.md) * [附录](appendix/README.md) * [附录一:常见问题总结](appendix/faq/README.md) * [附录二:热门镜像介绍](appendix/repo/README.md) @@ -136,4 +142,3 @@ * [Node.js](appendix/repo/nodejs.md) * [附录三:Docker 命令查询](appendix/command/README.md) * [附录四:资源链接](appendix/resources/README.md) - diff --git a/cloud/_images/ECS.jpg b/cloud/_images/ECS.jpg new file mode 100644 index 0000000000000000000000000000000000000000..734f94dbf687402c599d19e3c46c0dae6ca83b01 GIT binary patch literal 456137 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�!_ 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