Dockerized化的分布式应用程序的本地集群:Docker Swarm

jopen 10年前

 Swarm是一个Dockerized化的分布式应用程序的本地集群,它是在Machine所提供的功能的基础上优化主机资源的利用率和容错服务。具体来 说,Docker Swarm支持用户创建可运行Docker Daemon的主机资源池,然后在资源池中运行Docker容器。Docker Swarm可以管理工作负载并维护集群状态。

除了资源优化,Docker Swarm可以保证应用的高可用性和容错性。Docker Swarm会不断的检查Docker Daemon所在主机的健康状态。当某个主机不可用时,Swarm就会将容器迁移到新的主机上。

Docker Swarm的亮点之一是它可以在应用的生命周期内扩展,也就是说当应用从一个主机扩展到2个、20个或者200个的时候,用户可以保证接口的一致性。

同样,和Machine一样,Swarm的架构是可插拔的,系统已经包含一个默认的调度器。其它的厂商可以实现自己的调度器。

Dockerized化的分布式应用程序的本地集群:Docker Swarm

使用示例:

# create a cluster  $ docker run --rm swarm create  6856663cdefdec325839a4b7e1de38e8 # <- this is your unique <cluster_id>     # on each of your nodes, start the swarm agent  #  <node_ip> doesn't have to be public (eg. 192.168.0.X),  #  as long as the swarm manager can access it.  $ docker run -d swarm join --addr=<node_ip:2375> token://<cluster_id>     # start the manager on any machine or your laptop  $ docker run -d -p <swarm_port>:2375 swarm manage token://<cluster_id>     # use the regular docker cli  $ docker -H tcp://<swarm_ip:swarm_port> info  $ docker -H tcp://<swarm_ip:swarm_port> run ...  $ docker -H tcp://<swarm_ip:swarm_port> ps  $ docker -H tcp://<swarm_ip:swarm_port> logs ...  ...     # list nodes in your cluster  $ docker run --rm swarm list token://<cluster_id>  <node_ip:2375>


https://github.com/docker/swarmDocker