专栏首页菲宇docker swarm 学习命令整理

docker swarm 学习命令整理

版权声明:欢迎交流,菲宇运维!

初始化swarm manager并制定网卡地址

docker swarm init --advertise-addr 192.168.10.117

强制删除集群,如果是manager,需要加–force

docker swarm leave --force
docker node rm docker-118

查看swarm worker的连接令牌

docker swarm join-token worker

查看swarm manager的连接令牌

docker swarm join-token manager

使旧令牌无效并生成新令牌

docker swarm join-token --rotate
  • 加入docker swarm集群(使用docker swarm join-token worker查询的)
docker swarm join --token SWMTKN-1-5d2ipwo8jqdsiesv6ixze20w2toclys76gyu4zdoiaf038voxj-8sbxe79rx5qt14ol14gxxa3wf 192.168.10.117:2377
  • 查看集群中的节点
docker node ls
  • 查看集群中节点信息
docker node inspect docker-117 --pretty
  • 调度程序可以将任务分配给节点
docker node update --availability active docker-118
  • 调度程序不向节点分配新任务,但是现有任务仍然保持运行
docker node update --availability pause docker-118
  • 调度程序不会将新任务分配给节点。调度程序关闭任何现有任务并在可用节点上安排它们
docker node update --availability drain docker-118
  • 添加节点标签
docker node update --label-add label1 --label-add bar=label2 docker-117
  • 删除节点标签
docker node update --label-rm label1 docker-117
  • 将节点升级为manager
docker node promote docker-118
  • 将节点降级为worker
docker node demote docker-118
  • 查看服务列表
docker service ls
  • 查看服务的具体信息
docker service ps redis
  • 创建一个不定义name,不定义replicas的服务
docker service create nginx
  • 创建一个指定name的服务
docker service create --name my_web nginx
  • 创建一个指定name、run cmd的服务
docker service create --name helloworld alping ping docker.com
  • 创建一个指定name、version、run cmd的服务
docker service create --name helloworld alping:3.6 ping docker.com
  • 创建一个指定name、port、replicas的服务
docker service create --name my_web --replicas 3 -p 80:80 nginx
  • 为指定的服务更新一个端口
docker service update --publish-add 80:80 my_web
  • 为指定的服务删除一个端口
docker service update --publish-rm 80:80 my_web
  • 将redis:3.0.6更新至redis:3.0.7
docker service update --image redis:3.0.7 redis
  • 配置运行环境,指定工作目录及环境变量
docker service create --name helloworld --env MYVAR=myvalue --workdir /tmp --user my_user alping ping docker.com
  • 创建一个helloworld的服务
docker service create --name helloworld alpine ping docker.com
  • 更新helloworld服务的运行命令
docker service update --args “ping www.baidu.com” helloworld
  • 删除一个服务
docker service rm my_web
  • 在每个群组节点上运行web服务
docker service create --name tomcat --mode global --publish mode=host,target=8080,published=8080 tomcat:latest
  • 创建一个overlay网络
docker network create --driver overlay my_network
docker network create --driver overlay --subnet 10.10.10.0/24 --gateway 10.10.10.1 my-network
  • 创建服务并将网络添加至该服务
docker service create --name test --replicas 3 --network my-network redis
  • 删除群组网络
docker service update --network-rm my-network test
  • 更新群组网络
docker service update --network-add my_network test
  • 创建群组并配置cpu和内存
docker service create --name my_nginx --reserve-cpu 2 --reserve-memory 512m --replicas 3 nginx
  • 更改所分配的cpu和内存
docker service update --reserve-cpu 1 --reserve-memory 256m my_nginx
  • 指定每次更新的容器数量
--update-parallelism
  • 指定容器更新的间隔
--update-delay
  • 定义容器启动后监控失败的持续时间
--update-monitor 
  • 定义容器失败的百分比
--update-max-failure-ratio
  • 定义容器启动失败之后所执行的动作
--update-failure-action
  • 创建一个服务并运行3个副本,同步延迟10秒,10%任务失败则暂停
docker service create --name mysql_5_6_36 --replicas 3 --update-delay 10s --update-parallelism 1 --update-monitor 30s --update-failure-action pause --update-max-failure-ratio 0.1 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.36
  • 回滚至之前版本
docker service update --rollback mysql
  • 自动回滚

如果服务部署失败,则每次回滚2个任务,监控20秒,回滚可接受失败率20%

docker service create --name redis --replicas 6 --rollback-parallelism 2 --rollback-monitor 20s --rollback-max-failure-ratio .2 redis:latest
  • 创建服务并将目录挂在至container中
docker service create --name mysql --publish 3306:3306 --mount type=bind,src=/data/mysql,dst=/var/lib/mysql --replicas 3 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.36
  • Bind带来的风险

1、绑定的主机路径必须存在于每个集群节点上,否则会有问题 2、调度程序可能会在任何时候重新安排运行服务容器,如果目标节点主机变得不健康或无法访问 3、主机绑定数据不可移植,当你绑定安装时,不能保证你的应用程序开发方式与生产中的运行方式相同

添加swarm配置

echo "this is a mysql config" | docker config create mysql -
  • 查看配置
docker config ls

查看配置详细信息

docker config inspect mysql

删除配置

docker config rm mysql

添加配置

docker service update --config-add mysql mysql

删除配置

docker service update --config-rm mysql mysql

添加配置

docker config create homepage index.html

启动容器的同时添加配置

docker service create --name nginx --publish 80:80 --replicas 3 --config src=homepage,target=/usr/share/nginx/html/index.html nginx 

swarm 文章

DockerSwarm基础命令笔记

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker集群图形化显示工具 Visualizer的安装及注意事项

    Visualizer非常直观地显示了Swarm集群中,服务器的状态和服务器上面运行容器的状态。 Visualizer会占用8080、5000端口,应该规划好,...

    菲宇
  • Harbor -- 搭建Docker私有仓库

    Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registr...

    菲宇
  • Docker+Swarm+Etcd+Portainer搭建集群

    简介 Swarm是一套较为简单的工具,用以管理Docker集群,使得Docker集群暴露给用户时相当于一个虚拟的整体。Swarm使用标准的Docker API...

    菲宇
  • Docker安装与启动

    Docker官方建议在Ubuntu中安装,因为Docker是基于Ubuntu发布的,而且一般Docker出现的问题Ubuntu是最先更新或者打补丁的。在很多版本...

    cwl_java
  • docker的安装

    yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

    小小咸鱼YwY
  • Docker的安装以及加速器的配置

    目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内...

    Python编程与实战
  • SpringBoot-Mysql应用Docker打包部署

    直接安装 docker desktop for windows即可,其中还会包含了docker compose。可通过 docker-compose versi...

    技术路漫漫
  • Docker-如何清理磁盘占用

    最近开始打包我们的一些应用,不得不说,我已经爱上了Docker这个工具。在AWS EC2上,它的存在使我们的工作方便了许多。然而,我们遇到的唯一问题是Docke...

    Shedray大数据专栏
  • 新手Docker安装使用教程,以及常用命令!

    最近博主用调试Docker内容,顺手记录一下,我常用的几个命令!这里总结一下,方便自己也同时方便大家使用!

    砸漏
  • docker学习(1) 安装

    docker是啥就不多讲了,简言之就是更轻量、更牛叉的新一代虚拟机技术。下面是安装步骤: 一、mac/windows平台的安装 docker是在linux内核基...

    菩提树下的杨过

扫码关注云+社区

领取腾讯云代金券