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集群

目录
相关文章
|
7月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
836 6
|
Prometheus 监控 Cloud Native
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
935 79
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
1970 91
|
Prometheus 监控 Cloud Native
如何使用Prometheus监控Docker Swarm集群的资源使用情况?
还可以根据实际需求进行进一步的配置和优化,如设置告警规则,当资源使用超出阈值时及时发出警报。通过这些步骤,能够有效地使用 Prometheus 对 Docker Swarm 集群的资源进行监控和管理。
797 161
|
Prometheus 监控 Cloud Native
如何监控Docker Swarm集群的性能?
如何监控Docker Swarm集群的性能?
951 163
|
调度 开发者 Docker
Docker Swarm
Docker Swarm 为容器化应用的部署和管理提供了一种高效、可靠的方式,使开发者能够更轻松地构建和运行分布式应用。随着容器技术的不断发展,Docker Swarm 在企业级应用中的应用也将越来越广泛。
577 162
|
监控 Docker 容器
Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项
本文深入探讨了Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项,旨在帮助用户高效管理集群资源,适应业务变化,确保服务稳定性和资源优化。
423 12
|
Kubernetes 负载均衡 调度
Docker Swarm 核心概念及详细使用
Docker Swarm 是 Docker 的原生集群管理工具,用于将多个 Docker 主机整合成一个虚拟主机,提供集群管理和调度功能。其核心特点包括集群管理、容错与高可用性、负载均衡、声明式服务模型、服务发现和安全性。本文档详细介绍了 Docker Swarm 的安装配置、服务部署、节点管理、网络配置及故障模拟等关键操作,适用于中小型项目或对 Kubernetes 复杂性有所顾虑的用户。
1419 6
|
应用服务中间件 nginx Docker
Docker Swarm、Docker Stack和Portainer的使用
Docker Swarm、Docker Stack 和 Portainer 各有其独特的功能和优势。Docker Swarm 适用于分布式服务的管理和编排,Docker Stack 便于多容器应用的定义和部署,而 Portainer 提供了直观的 UI,简化了 Docker 环境的管理。结合使用这些工具,可以大大提高容器化应用的部署和管理效率。希望本文对您理解和应用这些工具有所帮助。
995 5
|
数据安全/隐私保护 虚拟化 Docker
Docker Swarm 集群搭建
Docker Swarm 集群搭建