Docker Swarm 部署服务

1. 创建swarm并初始化:docker swarm init --advertise-add

$ docker swarm init --advertise-addr 10.1.1.88

2. 查看下当前的信息

$ docker info

3. 在worker1, worker2 主机上执行命令,将worker1, worker2加入到集群中

$ docker swarm join --token SWKN-1-uybgl2iwr2eryes3eryrjkpio45sdgadhzg23ewterthkgiuksfaq2qasew5evm7aerte2gn 10.1.1.88:2377

4. 管理节点查看集群节点状态

$ docker node ls

swarm集群中node的AVAILABILITY状态有两种:Active、drain。其中actice状态的节点可以接受管理节点的任务指派;drain状态的节点会结束任务,也不会接受管理节点的任务指派,节点处于下线状态。

  • 更新节点状态
$ docker node update --availability drain worker2
  • 在manager节点上查看状态信息
$ docker node inspect self

5. Swarm 的Web管理

$ docker run -d --privileged -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

6. docker-swarm布署服务

1. 布署服务前创建于个用于集群内不同主机之间容器通信的网络
$ docker network create -d overlay dockernet

# 查看网络列表
$ docker network ls
2. 创建服务(以nginx为例)
$ docker service create --replicas 1 --network dockernet --name nginx -p 80:80 nginx

# --replicas 指定副本数量

# 查看服务列表
$ docker service ls

# docker service ps nginx

3. 在线动态扩容

$ docker service scale nginx-r=5

4. 节点故障

如果集群中节点发生故障,会从swarm集群中被T除,然后利用自身的负载均衡及调度功能,将服务调度到其它节点上

5. 创建label

$ docker node update --label-add  

6. 其它常用命令介绍

除了上面使用scale来实现在线动态扩容、缩容之外,还可以使用update来对服务进行调整

# 将服务缩减到2个
$ docker service update --replicas 2 nginx

# 更新服务的镜像版本
$ docker service update --image nginx:new nginx-cluster

# 使用 docker service rm 来从 Swarm 集群移除某个服务
$ docker service rm nginx

使用compose文件部署服务

部署服务使用 docker stack deploy,其中 -c 参数指定 compose 文件名。

$ docker stack deploy -c docker-compose.yml wordpress

Swarm 常用命令说明

$ docker swarm:集群管理
init          #初始化集群
join          #将节点加入集群
join-token    #管理加入令牌
leave         #从集群中删除某个节点,强制删除加参数--force 
update        #更新集群
unlock        #解锁集群

docker node:节点管理,
demote      #将集群中一个或多个节点降级
inspect     #显示一个或多个节点的详细信息
ls          #列出集群中的节点
promote     #将一个或多个节点提升为管理节点
rm          #从集群中删除停止的节点,--force强制删除参数
ps          #列出一个或多个节点上运行的任务
update      #更新节点

docker service:服务管理,
create      #创建一个新的服务
inspect     #列出一个或多个服务的详细信息
ps          #列出一个或多个服务中的任务信息
ls          #列出服务
rm          #删除一个或多个服务
scale       #扩展一个或多个服务
update      #更新服务

docker stack/deploy:试验特性,用于多应用部署

你可能感兴趣的:(Docker,Docker,Swarm)