dinggela 发表于 2017-12-6 18:38:14

docker swarm入门

  集群相关指令(manager才可以查看修改节点状态)



docker swarm init
  或者



docker swarm init --listen-addr ${MANAGER_IP}:${MANAGER_PORT}
  查看集群的token



docker swarm join-token worker
  或者



docker swarm join-token manager
  工作节点添加到集群,根据不同的token,作为不同的模式去添加



docker swarm join --token xxxxxxxxxxxxxxxxxxxxxxxxxxx ${MANAGER_IP}:${MANAGER_PORT}
  节点升级/降级



docker node promote/demote ${NODE_ID}
  主动离开集群



docker swarm leave
docker swarm leave --force
  从集群中删除节点



docker node rm ${NODE_ID}
docker node rm --force ${NODE_ID}
  当节点不正常以后,手工删除节点



docker node update --availability drain ${NODE_ID}
  查看节点



docker node ls
  ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
集群服务相关
在集群上创建抽象服务



docker service create --name redis --replicas 2 --publish 6379:6379 redis
  global模式可以根据工作者节点的数目自动扩展service的副本数,不需要设置replicas



docker service create --name redis --mode global --publish 6379:6379 redis
  查看集群服务列表



docker service ls
  查看服务明细



docker service inspect --pretty myservice
  查看服务运行在哪个节点



docker service ps myservice
  动态横向扩展服务,以下扩展分片为3



docker service scale myservice=3
  修改服务,参数非常多,这里贴个网络的例子



docker service update xxx --network-add xxxxx
docker service update xxx --network-rm xxxxx
  删除集群服务



docker service rm myservice
  ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
overlay虚拟网络,这个是用来在集群内透明通信的玩意,强烈推荐,通过这个,把服务抽象化了
  创建overlay网络



docker network create --driver overlay mynetwork
  或者



docker network create --driver overlay --subnet 10.0.9.0/24 --opt encrypted mynetwork
  创建基于虚拟网络的服务



docker service create --raplicas 3 --name my-web --network mynetwork nginx
  再创建一个测试,用于两者互通测试



docker service create --name my-busybox --network mynetwork busybox sleep 3000
  测试连通
打开busybox的shell



docker exec -it my-busybox.x.xxxxxxxxxxxxxxxxxxxxxxxxxxx /bin/sh
  在容器内查看虚拟ip



nslookup my-web
  容器内查看全部容器的ip



nslookup tasks.my-web
  容器外查看虚拟ip



docker service inspect xxxxxx -f "{{ .Endpoint.VirtualIPs }}"
页: [1]
查看完整版本: docker swarm入门