Docker 1.6新版本发布了,一同发布的还有Registry 2.0、Compose、Swarm、Machine以及Docker Windows客户端,本文简单介绍下docker三大编排工具和作用地位,重点介绍swarm的使用。
Machine
在没有Machine时,安装docker需要根据不同的OS使用不同的安装方法,配置文件也在不同的位置,流程复杂而且不简单方便。Machine就是解决的是操作系统异构安装Docker困难的问题。具体使用参考本博客这篇文章。
有了Machine,所有的系统都是一样的安装方式,一个命令直接安装Docker引擎,这样就有了docker环境。
Swarm
Machine帮我们快速构建docker环境,但是那是单机的。Swarm管理docker集群,支持用户创建docker engine主机资源池,并提供docker集群环境和调度策略等。
有了Swarm,能够对集群调度管理,就有了docker 容器运行的资源池环境。
Compose
有了集群环境,下面就是部署应用,有时候就需要多容器组装应用,这个时候我们需要docker run image1、docker run image2 …,进行大量重复操作和配置。
Compose就是简化部署应用流程,只需要把命令参数固化到docker-compose.yml中,维护所有应用程序容器的逻辑定义以及它们之间的连接关系。
搞明白了swarm在docker中的作用,下面搭建简单swarm集群。
环境:
- docker 1.5
- 3台虚拟机 – centos7
swarm manage:192.168.0.1 node-a:192.168.0.2 node-b:192.168.0.3
官网:You must install Docker1.4.0 or later on all nodes. While each node’s IP need not be public, the Swarm manager must be able to access each node across the network.
安装docker和swarm
# yum install docker # docker pull swarm
结点(node)docker配置
添加-H tcp://0.0.0.0:2375到OPTIONS
# vi /etc/sysconfig/docker ... OPTIONS='-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock' ...
构建docker集群
1. 本文基于token发现后端,需要生成集群token。
# docker run --rm swarm create xxx...xxx(token==cluster_id)
下面的cluster_id均表示上面生成的xxx…xxx。
2. 将node-a和node-b分别配置docker remote API,并添加cluster_id.
命令格式:docker run -d swarm join –addr= token://cluster_id
[node-a]# docker -H tcp://0.0.0.0:2375 -d [node-a]# docker run -d swarm join --addr=192.168.0.2:2375 token://cluster_id
[node-b]# docker -H tcp://0.0.0.0:2375 -d [node-b]# docker run -d swarm join --addr=192.168.0.3:2375 token://cluster_id
3. 开启swarm manager(这里用192.168.0.1)
命令格式:docker run -d -p :2375 swarm manage token://cluster_id
# docker run -d -p 8888:2375 swarm manage token://cluster_id
swarm命令
1. 查看集群节点列表
# docker run --rm swarm list token://cluster_id ...
2. 使用docker cli
执行命令的格式:docker -H
docker -H 192.168.0.1:8888 info docker -H 192.168.0.1:8888 ps docker -H 192.168.0.1:8888 run ... docker -H 192.168.0.1:8888 logs docker -H 192.168.0.1:8888 rename
网友评论已有0条评论, 我也要评论