diff --git a/.github/workflows/check-link.yml b/.github/workflows/check-link.yml index 0a1080d..e6546e8 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 c440611..13c7206 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 42929a9..4fd7b80 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 5f74875..00aa7b4 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 ebc1c3e..0000000 --- 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 24afd53..0000000 --- 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 a790f8c..0000000 --- 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 107f15c..ba77f78 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 5518654..0000000 --- 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 9139124..c40a7cc 100644 --- a/swarm_mode/create.md +++ b/swarm_mode/create.md @@ -4,20 +4,10 @@ ## 初始化集群 -在 [`Docker Machine`](../machine) 一节中我们了解到 `Docker Machine` 可以在数秒内创建一个虚拟的 Docker 主机,下面我们使用它来创建三个 Docker 主机,并加入到集群中。 - -我们首先创建一个 Docker 主机作为管理节点。 +在已经安装好 Docker 的主机上执行如下命令: ```bash -$ docker-machine create -d virtualbox manager -``` - -我们使用 `docker swarm init` 在管理节点初始化一个 `Swarm` 集群。 - -```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 主机作为工作节点,并加入到集群中。 +上一步我们初始化了一个 `Swarm` 集群,拥有了一个管理节点,下面我们继续在两个 Docker 主机中分别执行如下命令,创建工作节点并加入到集群中。 ```bash -$ docker-machine create -d virtualbox worker1 - -$ docker-machine ssh worker1 - -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. ``` -```bash -$ docker-machine create -d virtualbox worker2 - -$ docker-machine ssh worker2 - -docker@worker1:~$ 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` 集群,包含一个管理节点和两个工作节点。