mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-11-24 07:23:38 +00:00
remove deprecated features: machine and swarm
Signed-off-by: Kang Huaishuai <khs1994@khs1994.com>
This commit is contained in:
parent
8dfdbc5b07
commit
d4fc0a9da1
3
.github/workflows/check-link.yml
vendored
3
.github/workflows/check-link.yml
vendored
@ -25,7 +25,6 @@ jobs:
|
|||||||
"192.168.199.100",\
|
"192.168.199.100",\
|
||||||
"github.com/settings",\
|
"github.com/settings",\
|
||||||
"github.com/docker/compose/releases/download",\
|
"github.com/docker/compose/releases/download",\
|
||||||
"github.com/docker/machine/releases/download",\
|
|
||||||
"github.com/etcd-io/etcd/releases/download",\
|
"github.com/etcd-io/etcd/releases/download",\
|
||||||
"github.com/tianon/gosu/releases/download",\
|
"github.com/tianon/gosu/releases/download",\
|
||||||
"github.com/yeasy/docker_practice",\
|
"github.com/yeasy/docker_practice",\
|
||||||
@ -65,6 +64,6 @@ jobs:
|
|||||||
--allow-dupe \
|
--allow-dupe \
|
||||||
--skip-save-results \
|
--skip-save-results \
|
||||||
-t 10 \
|
-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
|
name: check-link
|
||||||
timeout-minutes: 25
|
timeout-minutes: 25
|
||||||
|
2
.github/workflows/ci.yaml
vendored
2
.github/workflows/ci.yaml
vendored
@ -75,7 +75,7 @@ jobs:
|
|||||||
git clone https://github.com/docker-practice/.vuepress .vuepress2
|
git clone https://github.com/docker-practice/.vuepress .vuepress2
|
||||||
cp -r .vuepress2/. .vuepress/
|
cp -r .vuepress2/. .vuepress/
|
||||||
rm -rf .vuepress2
|
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\<AdSenseTitle/>\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\<AdSenseTitle/>\n' {} \;
|
||||||
|
|
||||||
npx vuepress --version
|
npx vuepress --version
|
||||||
|
|
||||||
|
@ -169,8 +169,3 @@
|
|||||||
* [附录四:Dockerfile 最佳实践](appendix/best_practices.md)
|
* [附录四:Dockerfile 最佳实践](appendix/best_practices.md)
|
||||||
* [附录五:如何调试 Docker](appendix/debug.md)
|
* [附录五:如何调试 Docker](appendix/debug.md)
|
||||||
* [附录六:资源链接](appendix/resources.md)
|
* [附录六:资源链接](appendix/resources.md)
|
||||||
* [归档](archive/README.md)
|
|
||||||
* [Docker Machine](machine/README.md)
|
|
||||||
* [安装](machine/install.md)
|
|
||||||
* [使用](machine/usage.md)
|
|
||||||
* [Docker Swarm](swarm/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
|
* Mesos
|
||||||
* Docker Swarm
|
|
||||||
|
@ -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 的安装及使用。
|
|
@ -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
|
|
||||||
```
|
|
149
machine/usage.md
149
machine/usage.md
@ -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
|
|
||||||
```
|
|
||||||
|
|
||||||
来查看具体的用法。
|
|
1
manifest
1
manifest
@ -1,6 +1,5 @@
|
|||||||
DOCKER_VERSION=20.10.0
|
DOCKER_VERSION=20.10.0
|
||||||
DOCKER_COMPOSE_VERSION=1.27.4
|
DOCKER_COMPOSE_VERSION=1.27.4
|
||||||
DOCKER_MACHINE_VERSION=0.16.1
|
|
||||||
ETCD_VERSION=3.4.0
|
ETCD_VERSION=3.4.0
|
||||||
KUBERNETES_VERSION=1.14.3
|
KUBERNETES_VERSION=1.14.3
|
||||||
KUBERNETES_DASHBOARD=2.0.0
|
KUBERNETES_DASHBOARD=2.0.0
|
||||||
|
@ -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` 一节。
|
|
@ -4,20 +4,10 @@
|
|||||||
|
|
||||||
## 初始化集群
|
## 初始化集群
|
||||||
|
|
||||||
在 [`Docker Machine`](../machine) 一节中我们了解到 `Docker Machine` 可以在数秒内创建一个虚拟的 Docker 主机,下面我们使用它来创建三个 Docker 主机,并加入到集群中。
|
在已经安装好 Docker 的主机上执行如下命令:
|
||||||
|
|
||||||
我们首先创建一个 Docker 主机作为管理节点。
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ docker-machine create -d virtualbox manager
|
$ docker swarm init --advertise-addr 192.168.99.100
|
||||||
```
|
|
||||||
|
|
||||||
我们使用 `docker swarm init` 在管理节点初始化一个 `Swarm` 集群。
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ docker-machine ssh manager
|
|
||||||
|
|
||||||
docker@manager:~$ docker swarm init --advertise-addr 192.168.99.100
|
|
||||||
Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager.
|
Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager.
|
||||||
|
|
||||||
To add a worker to this swarm, run the following command:
|
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
|
```bash
|
||||||
$ docker-machine create -d virtualbox worker1
|
$ docker swarm join \
|
||||||
|
|
||||||
$ docker-machine ssh worker1
|
|
||||||
|
|
||||||
docker@worker1:~$ docker swarm join \
|
|
||||||
--token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
|
--token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
|
||||||
192.168.99.100:2377
|
192.168.99.100:2377
|
||||||
|
|
||||||
This node joined a swarm as a worker.
|
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` 集群,包含一个管理节点和两个工作节点。
|
经过上边的两步,我们已经拥有了一个最小的 `Swarm` 集群,包含一个管理节点和两个工作节点。
|
||||||
|
Loading…
Reference in New Issue
Block a user