Docker之旅:了解Swarm集群

简介: 了解Swarm集群Swarm是一组运行Docker并加入到集群中的机器。发生这种情况后,您将继续运行您习惯的Docker命令,但现在它们将由群集管理器在群集上执行。

了解Swarm集群

Swarm是一组运行Docker并加入到集群中的机器。发生这种情况后,您将继续运行您习惯的Docker命令,但现在它们将由群集管理器在群集上执行。群体中的机器可以是物理的或虚拟的。加入群体后,他们被称为节点。
Swarm管理人员可以使用多种策略来运行容器,例如“最空节点” - 它可以使用容器填充使用率最低的机器。或者“全局”,它确保每台机器只获取指定容器的一个实例。您指示swarm经理在Compose文件中使用这些策略,就像您已经使用的策略一样。
群体管理者是群体中唯一可以执行你的命令的机器,或者授权其他机器作为工作者加入群体。工人只是在那里提供能力,并没有权力告诉任何其他机器可以做什么和不可以做什么。
到目前为止,您已经在本地机器上以单主机模式使用Docker。但是Docker也可以切换到群集模式,这就是使用群集的原因。立即启用群模式使当前的机器成为群管理器。从此,Docker将运行您在您管理的群集上执行的命令,而不仅仅是在当前机器上执行。

一、建立集群的准备

  • 1.一个群体由多个节点组成,可以是物理机器或虚拟机器。基本概念很简单:运行docker swarm init以启用群模式,并使您的当前机器成为群管理器,然后docker swarm join在其他机器上运行 ,让它们作为工人加入群体。选择下面的选项卡,看看它是如何在各种情况下发挥作用的。我们使用虚拟机快速创建一个双机群集,并将其变成群集。
    您需要一个可以创建虚拟机(VM)的虚拟机管理程序,因此请为您的计算机的操作系统安装。Oracle VirtualBox
  • 2.ubuntu下载安装virtualbox
sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian xenial contrib" >> /etc/apt/sources.list.d/virtualbox.list'

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -

sudo apt update

sudo apt install virtualbox-5.0
  • 3.安装Docker Machine
 base=https://github.com/docker/machine/releases/download/v0.14.0 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
  sudo install /tmp/docker-machine /usr/local/bin/docker-machine
  • 4 检查Docker Machine 安装是否成功
root@iZbp162mb58mqtz72o389nZ:~# docker-machine version
docker-machine version 0.14.0, build 89b8332
root@iZbp162mb58mqtz72o389nZ:~# 
  • 5 Docker Machine 安装bash完成脚本
    Machine存储库提供了几个bash可添加如下功能的脚本:
  • 命令完成
  • 一个在shell提示符下显示活动机器的函数
  • 一个函数包装器,它添加一个docker-machine use子命令来切换活动的机器
    确认版本并将脚本保存到/etc/bash_completion.d或 /usr/local/etc/bash_completion.d:
base=https://raw.githubusercontent.com/docker/machine/v0.14.0
for i in docker-machine-prompt.bash docker-machine-wrapper.bash docker-machine.bash
do
  sudo wget "$base/contrib/completion/bash/${i}" -P /etc/bash_completion.d
done
  • 然后你需要source /etc/bash_completion.d/docker-machine-prompt.bash在你的bash终端中运行,告诉你的设置在哪里可以找到docker-machine-prompt.bash你以前下载的文件 。
--2018-05-18 19:11:03--  https://raw.githubusercontent.com/docker/machine/v0.14.0/contrib/completion/bash/docker-machine.bash
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.228.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.228.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12205 (12K) [text/plain]
Saving to: '/etc/bash_completion.d/docker-machine.bash'

docker-machine.bash  100%[===================>]  11.92K  --.-KB/s    in 0.009s  

2018-05-18 19:11:04 (1.31 MB/s) - '/etc/bash_completion.d/docker-machine.bash' saved [12205/12205]

root@iZbp162mb58mqtz72o389nZ:~/dockerMachine# source /etc/bash_completion.d/docker-machine-prompt.bash
root@iZbp162mb58mqtz72o389nZ:~/dockerMachine# 

要启用docker-machineshell提示符,请添加 $(__docker_machine_ps1)到您的PS1设置中~/.bashrc。

PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
  • 6.如果要卸载Docker Machine
卸载Docker机器:
或者,删除您创建的机器。
要分别移除每台机器: docker-machine rm <machine-name>
要删除所有机器:( docker-machine rm -f $(docker-machine ls -q)您可能需要-force在Windows 上使用)。
例如,删除机器是可选步骤,因为有些情况下您可能想要将现有机器保存并迁移到Docker for Mac或Docker for Windows环境。
删除可执行文件: rm $(which docker-machine)
注意:作为信息点config.json,与创建的每个虚拟机相关的证书和其他数据docker-machine 存储在~/.docker/machine/machines/Mac和Linux上以及 ~\.docker\machine\machines\Windows上。我们建议您不要直接编辑或删除这些文件,因为这只会影响Docker CLI的信息,而不会影响实际的虚拟机,无论它们是本地还是远程服务器。

三、开始创建一个集群

1. 现在,docker-machine使用VirtualBox驱动程序创建几个VM :

查看一下各个需要的环境:

root@iZbp162mb58mqtz72o389nZ:~/dockerMachine# docker --version
Docker version 18.03.1-ce, build 9ee9f40
root@iZbp162mb58mqtz72o389nZ:~/dockerMachine# docker-machine --version
docker-machine version 0.14.0, build 89b8332
root@iZbp162mb58mqtz72o389nZ:~/dockerMachine# vboxmanage --version
5.0.40r115130

这本程序比较复杂。暂时不好解决问题。有解决了的请给我说下。

[root@iZbp162mb58mqtz72o389nZ ~]# docker-machine create --driver virtualbox myvm1
Running pre-create checks...
Error with pre-create check: "VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path"
[root@iZbp162mb58mqtz72o389nZ ~]# 

涉及到的环境变量太多了。在此就不继续探讨了,这边有空再继续谈论吧。
主要的引用在这里:docker集群

目录
相关文章
|
2月前
|
关系型数据库 MySQL 应用服务中间件
从零开始,掌握Nacos搭建的艺术(单点、集群、docker-compose)
从零开始,掌握Nacos搭建的艺术(单点、集群、docker-compose)
53 0
|
3月前
|
Kubernetes 调度 C++
Kubernetes vs Docker Swarm:容器编排工具的比较与选择
在当今云计算时代,容器技术的应用越来越广泛。而在众多容器编排工具中,Kubernetes和Docker Swarm是两个备受关注的竞争者。本文将深入比较这两个工具的特点、优势和劣势,帮助读者更好地选择适合自己的容器编排解决方案。
|
1月前
|
jenkins Java 持续交付
Docker Swarm总结+Jenkins安装配置与集成(5/5)
Docker Swarm总结+Jenkins安装配置与集成(5/5)
49 0
|
1月前
|
Devops 开发工具 数据安全/隐私保护
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
52 0
|
1月前
|
jenkins Java 持续交付
Docker Swarm总结+Jenkins安装配置与集成snarqube和目标服务器(4/5)
Docker Swarm总结+Jenkins安装配置与集成snarqube和目标服务器(4/5)
44 0
|
1月前
|
负载均衡 算法 应用服务中间件
Docker Swarm总结+service创建和部署、overlay网络以及Raft算法(2/5)
Docker Swarm总结+service创建和部署、overlay网络以及Raft算法(2/5)
108 0
|
1月前
|
负载均衡 容灾 安全
Docker Swarm总结+基础、集群搭建维护、安全以及集群容灾(1/5)
Docker Swarm总结+基础、集群搭建维护、安全以及集群容灾(1/5)
67 2
|
1月前
|
NoSQL Redis Docker
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)
61 0
|
1月前
|
关系型数据库 MySQL 数据库
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
63 0
|
1月前
|
存储 负载均衡 网络协议
docker集群的详解以及超详细搭建
手拿把掐学会搭建docker集群