随笔分类 -  (20)docker

摘要:最近在部署service到swarm集群的时候,出现了下列的报错: [root@nccztsjb-node-01 ~]# docker service create \ > --name=nginx \ > --publish published=8080,target=80 \ > 172.20. 阅读全文
posted @ 2022-09-15 14:18 Zhai_David 阅读(865) 评论(0) 推荐(1) 编辑
摘要:默认情况下,在swarm中部署一个service,会根据镜像中启动命令来启动容器,如果要进行测试也好,修改、调试也好,如何指定service中容器的启动命令? 方法非常的简单。 1、比如先查看某个镜像的启动命令 以alpine镜像为例 docker inspect d4deec2c521c Entr 阅读全文
posted @ 2022-09-15 10:50 Zhai_David 阅读(155) 评论(0) 推荐(0) 编辑
摘要:如标题所示,如何将service中task,指定运行在具有某个特殊的节点上,比如,存储特别大,有GPU的? 方法,非常的简单。 1、节点增加标签 首先,给特殊的主机增加label [root@nccztsjb-node-01 ~]# docker node ls ID HOSTNAME STATUS 阅读全文
posted @ 2022-09-14 14:29 Zhai_David 阅读(367) 评论(0) 推荐(0) 编辑
摘要:对于swarm集群来说,通过节点的标签,可以对节点进行分组。 与此同时,更加重要的是,在部署service的时候,可以定向调度到具有某个标签的node上。 没错,和k8s中节点增加标签的作用是类似的。 那么,在swarm中如何来给节点增加标签? 1、登录manager节点 2、查看集群节点 [roo 阅读全文
posted @ 2022-09-14 14:03 Zhai_David 阅读(1588) 评论(0) 推荐(0) 编辑
摘要:如果一个swarm集群中,你有多个manager节点,比如3个,你的目的是什么? 那还用说吗,当然是一个manager挂掉之后,进行故障的转移了,但是你经历过这个转移吗? 如果没有,跟着下面的过程,模拟一次。 首先,在集群中有3个manager节点 [root@nccztsjb-node-01 ~] 阅读全文
posted @ 2022-09-13 14:39 Zhai_David 阅读(357) 评论(0) 推荐(0) 编辑
摘要:Docker官方建议:每个swarm集群有 3个 或 5个 管理节点来实现高可用性。 因为,集群模式管理节点使用Raft共享数据,所以,必须有奇数个管理节点。只要有超过一半的管理节点可用,集群就可以继续工作。 阅读全文
posted @ 2022-09-13 14:21 Zhai_David 阅读(441) 评论(0) 推荐(0) 编辑
摘要:当你使用 docker swarm join 命令,将一个节点加入到swarm集群时,在这条命令的背后,实际上发生了哪些事情? 这个问题,你能够立马回答出来,如果你还不能100%的,立刻马上,回答出来,继续往下看: 在执行这个命令,将一个docker引擎加入到swarm集群时,主要做了这么几件事情: 阅读全文
posted @ 2022-09-13 14:00 Zhai_David 阅读(244) 评论(0) 推荐(0) 编辑
摘要:对于一个节点来说,如果想要加入swarm集群,需要一个加密的token. 更加重要的是,对于manger节点和worker节点使用的token是不同的。 节点,只有在加入swarm集群的时候,使用join-token。在加入集群之后,如果token发生了变化,对于节点是不会有影响。 更新token的 阅读全文
posted @ 2022-09-13 10:46 Zhai_David 阅读(936) 评论(0) 推荐(0) 编辑
摘要:当在一个swarm集群中创建service的时候,会创建一个或者多个task,那task的运行状态是至关重要的。 那么,如何才能知道service中,各个task的状态呢? 方法非常的简单。 只需要执行下面的命令: docker service ps <service_name> 通过CURRENT 阅读全文
posted @ 2022-09-13 10:07 Zhai_David 阅读(284) 评论(0) 推荐(0) 编辑
摘要:这个问题的答案,非常的简单,2种: replicated(副本) global(全局) 这2种类型之间,也非常的好区分: replicated 副本类型的service,就是你需要部署几个副本,指定一下就可以有几个task在swarm集群中运行 global 全局类型的service,类似于k8s的 阅读全文
posted @ 2022-09-06 14:53 Zhai_David 阅读(180) 评论(0) 推荐(0) 编辑
摘要:在刚创建好的一个docker swarm集群中,manager节点虽然具备管理的角色,但是,还是允许task在上面运行的,那么如果就让manager节点,干一个活,就是管理,调度的任务,不让其执行任何的具体任务,不干活,该如何设置? 下面,先来看下,swarm中集群的节点信息: [root@nccz 阅读全文
posted @ 2022-09-06 10:13 Zhai_David 阅读(557) 评论(0) 推荐(0) 编辑
摘要:尝试将某个worker节点移除swarm集群,可是,报错了: [root@nccztsjb-node-07 ~]# docker node rm cw5bome4a9g1rzelivxejd31c Error response from daemon: rpc error: code = Faile 阅读全文
posted @ 2022-09-02 14:12 Zhai_David 阅读(676) 评论(0) 推荐(0) 编辑
摘要:将manager降级为worker 这个问题,说来挺有意思的,我在集群里面创建了2个manager,然后,模拟将第2个manager节点,从集群中移出去,结果发现报错了: [root@nccztsjb-node-07 ~]# docker node rm cw5bome4a9g1rzelivxejd 阅读全文
posted @ 2022-09-02 13:54 Zhai_David 阅读(964) 评论(0) 推荐(0) 编辑
摘要:驱逐节点?这是要干什么? 我问你,如果你的swarm集群中的一个节点,由于硬件,比如内存条故障了,要检修,你怎么办?强行将节点关机,你不担心swarm集群直接异常,而永久无法修复吗? 所以,这些粗暴的方法,或许并不适合,所以,看个更加温和的方法—drain 也就是,将swarm集群中的节点,先驱逐集 阅读全文
posted @ 2022-09-01 13:43 Zhai_David 阅读(339) 评论(0) 推荐(0) 编辑
摘要:滚动升级,一定听过,就比如说,现在有个服务运行了多个实例,想要对这个服务进行升级(比如:更换镜像),应该怎么弄呢? 接下来的部分,咱们一起来看下。 在本文中,做滚动升级的一个场景是: 部署一个service,这个service使用 redis 3.0.6镜像,然后使用 redis 3.0.7版本的镜 阅读全文
posted @ 2022-08-31 10:50 Zhai_David 阅读(1427) 评论(0) 推荐(0) 编辑
摘要:你在查看docker swarm文档的时候,是不是经常听说 task 这个词,是什么意思呢? 非常,非常的简单: 在docker swarm中,service中的容器,就叫做 task. Container = task 你,明白了吗? 阅读全文
posted @ 2022-08-30 13:33 Zhai_David 阅读(149) 评论(0) 推荐(1) 编辑
摘要:如果你想知道,如何在docker swarm集群中部署一个service,那么你需要仔细的阅读下面的文章····· 1、前提 如果想要完成本次文章的内容,你首先需要一个swarm集群。可以参考下面的文章来搭建一个swarm集群: 如何快速搭建一个docker swarm集群? 2、部署service 阅读全文
posted @ 2022-08-30 10:28 Zhai_David 阅读(311) 评论(0) 推荐(0) 编辑
摘要:本文档将告知你,如何快速的搭建一个docker swarm集群 1、环境准备 首先,说说需要的准备工作,需要具体以下3个条件: 3台linux主机,主机间可相互通信 安装并且已经运行docker服务 无端口限制(或者如下表,开放对应的通信端口) 如需开通特定的端口,见下表: 端口 作用 2377 和 阅读全文
posted @ 2022-08-29 15:09 Zhai_David 阅读(443) 评论(0) 推荐(0) 编辑
摘要:如果docker占用宿主机的磁盘空间很大,并且通过 docker system df 命令检查,发现 volume占用空间比较大,并且有一定的可回收空间, 这个时候,该如何来释放这些数据卷占用的空间呢? 方法非常的简单。 执行下面的命令,就会将那些未被使用的数据卷给清理掉 docker volume 阅读全文
posted @ 2022-08-25 09:59 Zhai_David 阅读(1409) 评论(0) 推荐(0) 编辑
摘要:不知道你在使用docker的时候,有没有注意到volume mount和bind mount的使用? 进一步说,他们之间的区别到底是什么? 接下来的内容,我们就为你揭开他们的神秘面纱。 相同之处 首先,说相同之处: volume和bind mount都是持久化容器的机制。 不同之处 再来说说,他们的 阅读全文
posted @ 2022-08-24 15:21 Zhai_David 阅读(5006) 评论(0) 推荐(1) 编辑