mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-10 11:54:37 +00:00
@@ -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 \
|
||||
|
||||
@@ -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` 集群,包含一个管理节点和两个工作节点。
|
||||
|
||||
|
||||
@@ -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` 集群移除某个服务。
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
## 基本概念
|
||||
# 基本概念
|
||||
|
||||
`Swarm` 是使用 [`SwarmKit`](https://github.com/docker/swarmkit/) 构建的 Docker 引擎内置(原生)的集群管理和编排工具。
|
||||
|
||||
使用 `Swarm` 集群之前需要了解以下几个概念。
|
||||
|
||||
### 节点
|
||||
## 节点
|
||||
|
||||
运行 Docker 的主机可以主动初始化一个 `Swarm` 集群或者加入一个已存在的 `Swarm` 集群,这样这个运行 Docker 的主机就成为一个 `Swarm` 集群的节点 (`node`) 。
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||

|
||||
|
||||
### 服务和任务
|
||||
## 服务和任务
|
||||
|
||||
任务 (`Task`)是 `Swarm` 中的最小的调度单位,目前来说就是一个单一的容器。
|
||||
|
||||
|
||||
@@ -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` 出现了一些问题,我们可以使用命令一键回退。
|
||||
|
||||
|
||||
@@ -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 服务
|
||||
|
||||
创建服务相关命令已经在前边章节进行了介绍,这里直接列出命令。
|
||||
|
||||
|
||||
@@ -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`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user