1. 创建swarm集群

1) 创建一个管理节点

[root@Thor swarm]# docker swarm init
Swarm initialized: current node (x61xl0lp40736m963leujqypc) is now a manager.To add a worker to this swarm, run the following command:docker swarm join \--token SWMTKN-1-1i2q9napdouz8iimheo9ht9x9hsunffoaiwa2ixyhhcxyh3pu9-0t7xglalpspwop0q7hkfhlixp \192.168.99.1:2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.[root@Thor swarm]# 

2) 创建两个工作节点:

  • 创建一个docker-machine
  • docker swarm join 到管理节点
[root@Thor swarm]# docker-machine create -d virtualbox worker1
Running pre-create checks...
Creating machine...
(worker1) Copying /root/.docker/machine/cache/boot2docker.iso to /root/.docker/machine/machines/worker1/boot2docker.iso...
(worker1) Creating VirtualBox VM...
(worker1) Creating SSH key...
(worker1) Starting the VM...
(worker1) Check network to re-create if needed...
(worker1) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env worker1
[root@Thor swarm]#
[root@Thor swarm]# docker-machine ssh worker1##         .## ## ##        ==## ## ## ## ##    ===/"""""""""""""""""\___/ ===~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~\______ o           __/\    \         __/\____\_______/_                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 18.06.0-ce, build HEAD : 1f40eb2 - Thu Jul 19 18:48:09 UTC 2018
Docker version 18.06.0-ce, build 0ffa825
docker@worker1:~$ 
docker@worker1:~$ docker swarm join \
>     --token SWMTKN-1-1i2q9napdouz8iimheo9ht9x9hsunffoaiwa2ixyhhcxyh3pu9-0t7xglalpspwop0q7hkfhlixp \
>     192.168.99.1:2377
This node joined a swarm as a worker.
docker@worker1:~$ 

2. 查看集群

[root@Thor swarm]# docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
46fbdlksvu4w49lqqw9x9utgw    worker1   Ready   Active
x61xl0lp40736m963leujqypc *  Thor      Ready   Active        Leader
xyscoh7b2s62cl7gdvol1t642    worker2   Ready   Active

3. 启动服务

[root@Thor swarm]# docker service create --replicas 3 --name httpd -p 777:80 httpd:latest
kyn022pzs4ap11wa5gz7qlbyq
[root@Thor swarm]#

在另一台设备上测试

[root@zbops ]$ curl 10.86.10.214:777
<html><body><h1>It works!</h1></body></html>

4. 查看服务

[root@Thor swarm]# docker service ps httpd
ID            NAME     IMAGE         NODE     DESIRED STATE  CURRENT STATE             ERROR  PORTS
2rswqj0s0r1b  httpd.1  httpd:latest  worker2  Running        Preparing 37 seconds ago
tk1wem0defjv  httpd.2  httpd:latest  Thor     Running        Running 36 seconds ago
wrydby42gw0d  httpd.3  httpd:latest  worker1  Running        Preparing 37 seconds ago 

5. 配置

配置文件的管理方式:

  1. 配置文件放入镜像;
  2. 设置环境变量;
  3. volume 动态挂载;
    这3中方式,都降低了镜像的通用性。

Docker 17.06 及以上版本,新增了docker config 子命令来管理集中中的配置信息,无需将配置文件放入镜像或挂载的方式即可实现对服务的配置。但 docker config 只能在 docker swarm集群中使用。

以前我们通过监听主机目录来配置 Redis,就需要在集群的每个节点放置该文件。
如果采用docker config 来管理服务的配置信息,我们只需在集群中的管理节点manager创建 config ,当部署服务时,集群会自动的将配置文件分发到运行服务的各个节点中,大大降低了配置信息的管理和分发难度。

帮助文档如下:

[root@PsqtestA10-211 ]# docker config --helpUsage:  docker config COMMANDManage Docker configsOptions:Commands:create      Create a config from a file or STDINinspect     Display detailed information on one or more configsls          List configsrm          Remove one or more configsRun 'docker config COMMAND --help' for more information on a command.

1)创建

[root@PsqtestA10-211 redis]# docker config create redis.conf redis.conf
knyrzmssepg5jr4kcod19fxrq

2)查看

[root@PsqtestA10-211 redis]# docker config ls
ID                          NAME                CREATED             UPDATED
knyrzmssepg5jr4kcod19fxrq   redis.conf          5 seconds ago       5 seconds ago

3)使用(docker swarm 为前提)

[root@PsqtestA10-211 redis]# docker service create --name redis --config redis.conf -p 6379:6379 redis redis-server /redis.conf
y05kisry81yarvau5c8etzg5l
overall progress: 1 out of 1 tasks
1/1: running   [==================================================>]
verify: Service converged [root@PsqtestA10-211 redis]# docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
y05kisry81ya        redis               replicated          1/1                 redis:latest        *:6379->6379/tcp

4)redis-cli

[root@PsqtestA10-211 redis]# ./redis-cli -p 6379
127.0.0.1:6377> keys *
HISTORY: /root/.rediscli_history
(empty list or set)
127.0.0.1:6377> set age 26
HISTORY: /root/.rediscli_history
OK
127.0.0.1:6377> get age
HISTORY: /root/.rediscli_history
"26"
127.0.0.1:6377> 

转载于:https://www.cnblogs.com/walkinginthesun/p/9432085.html

(六)Docker三剑客之Swarm相关推荐

  1. Docker基础30--6.4 Docker三剑客之Swarm

    6.4 Docker三剑客之Swarm Docker Swarm是Docker官方三剑客项目之一,提供Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案.使用它,用户可以将多个 ...

  2. Docker 三剑客之 Swarm

    作为容器集群管理器,Swarm 最大的优势之一就是原生支持 Docker API,给用户使用带来极大的便利.各种基于标准 API 的工具比如 Compose.Docker SDK.各种管理软件,甚至 ...

  3. Docker三剑客之swarm

    一.什么是docker swarm Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/s ...

  4. Docker三剑客之Docker Swarm

    目录 一.什么是Docker Swarm 二.Docker Swarm 基本结构图 三.Swarm的几个关键概念 四.Swarm的工作模式 五.Swarm的调度策略 六.Swarm Cluster模式 ...

  5. docker三剑客之 Docker Machine Docker Compose Docker Swarm

    Docker 三剑客 一.docker machine 1.Docker Machine 简介 2.Docker Machine实践 二.docker-compose 1.docker-compose ...

  6. Docker系列之五:Docker 三剑客之 Docker Swarm

    title: Docker系列之五:Docker 三剑客之 Docker Swarm categories: Docker tags: - Docker timezone: Asia/Shanghai ...

  7. docker三剑客docker-compose、docker-machine、swarm

    2019独角兽企业重金招聘Python工程师标准>>> Docker三大编排工具: Docker Compose:是用来组装多容器应用的工具,可以在 Swarm集群中部署分布式应用. ...

  8. Docker 三剑客之Docker Swarm

    Docker Swarm 介绍 Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一 ...

  9. @Docker三剑客(三大编排工具):Compose、Machine和Swarm

    文章目录 Docker 一.Docker三大编排工具: 二.Docker Compose [compose的概述] [compose的核心概念] [安装Docker compose] 三.Docker ...

最新文章

  1. 最全深度学习训练过程可视化工具(附github源码)
  2. Mockito对final类型和方法的支持(三):免配置的inline mock making
  3. linux uboot nfs启动,uboot中利用TFTP和NFS加载镜像到ram运行
  4. centos安装盘ntfs_在CentOS下挂载NTFS格式U盘的方法
  5. AutoIt: WinGetClassList可以把当前窗口所有的handle全部列出来
  6. 添加include文件路径_-isystem以及include_next的副作用
  7. 为什么POJO中变量不能用is开头
  8. 8086 按开关灯亮 c语言程序,基于MCS-51的交通灯程序设计(c语言控制直行左转)...
  9. R-CNN学习笔记1:Selective Search for Object Recognition
  10. C语言程序NS流程图生成器,请各位大神帮个忙,画个NS流程图,,急!!!
  11. 一个黑客的基本素养——社会工程学
  12. PLC编程技术的发展及应用
  13. Failed installing ‘Tomcat8‘ service?
  14. 模式化窗口问题![window.dialogArguments]
  15. 如何自定义starter
  16. python描述对象静态特性的数据为_外国法律中,对婚生子女的否认请求均规定有时效限制,日本法律规定的时效期限是 ( )_学小易找答案...
  17. 数据结构和算法(Java),上
  18. 防火墙、DCD与TCP Keep alive
  19. 【Hive】Hive练习题(一)
  20. Vue3 Application died in status LOADING_SOURCE_CODE: You need to export the functional lifecycles in

热门文章

  1. easyv平台_过滤器强制修改dom(暴力自定义组件渲染样式)
  2. 爱奇艺基础数据平台演进
  3. 51nod3174 堆积木
  4. 阿里云 龙珠机器学习训练营Task1:机器学习算法(一): 基于逻辑回归的分类预测
  5. 小程序开发之组件的使用
  6. 人生需要规划——感受徐小平 (转自徐小平博客)
  7. 英国电信公司O2寻求上市
  8. python基础(六)函数
  9. matlab复函数求模长,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...
  10. 如何在Windows 7、8或10中恢复快速启动栏