随笔分类 -  (20)docker

摘要:当docker运行在swarm集群模式时,管理节点通过Raft一致性算法来管理全局的集群状态。 Docker swarm 集群模式使用raft一致性算法的原因是: 确保集群中负责管理和调度任务的所有管理节点都存储着相同的一致性状态。 在整个集群中保持相同的一致状态意味着在发生故障时,任何Manage 阅读全文
posted @ 2022-10-24 10:42 Zhai_David 阅读(133) 评论(0) 推荐(0) 编辑
摘要:这个题目是不是很奇怪,没错!所谓的负载再平衡,指的是: 当集群新加入某个节点,或者某个节点由于异常离开集群,之后又加回到集群的情况。 很显然,这些新的节点上是不会有负载的,也就是没有task运行的,如果想要这些节点上也有task,就需要对service执行再平衡的操作,看下面的这个例子: 集群中有3 阅读全文
posted @ 2022-10-21 14:01 Zhai_David 阅读(51) 评论(0) 推荐(0) 编辑
摘要:当通过docker node ls命令查询集群中各个节点的状态时: 在"MANAGER STATUS"列出现“Unreachable”,这个代表的是什么意思? [root@nccztsjb-node-05 ~]# docker node ls ID HOSTNAME STATUS AVAILABIL 阅读全文
posted @ 2022-10-21 10:52 Zhai_David 阅读(474) 评论(0) 推荐(0) 编辑
摘要:以nginx为例子: access.log 关联到/dev/stdout error.log关联到/dev/stderr 当以容器的方式运行的时候,执行docker logs查看日志的时候,发现是标准输出日志和错误日志是混在一起,那要独立的查看怎么看呢? 找了半天,发现还是需要结合bash的重定向? 阅读全文
posted @ 2022-10-20 15:25 Zhai_David 阅读(1796) 评论(0) 推荐(0) 编辑
摘要:对于一个nginx容器,如果要通过docker logs命令,直接查看容器的日志,该如何来操作? 非常的简单,就是将应用(nginx)生成的日志输出到标准输出或者错误输出。 那么,具体的实现是什么呢? 就是在制作镜像的时候,将应用日志与标准输出/错误输出设备进行关联,比如下面的nginx docke 阅读全文
posted @ 2022-10-20 11:33 Zhai_David 阅读(3962) 评论(0) 推荐(1) 编辑
摘要:为啥要说这个问题呢? 其实是为了后面的docker swarm网络的管理作一个铺垫。 OK,回到这个问题上,在docker swarm集群中,有几种网络流量? 非常的简单,2种: 1、控制和管理平面的流量 控制和管理平面的流量,包括swarm集群管理消息,比如:加入或者离开swarm集群的请求,ra 阅读全文
posted @ 2022-10-17 15:29 Zhai_David 阅读(98) 评论(0) 推荐(0) 编辑
摘要:0、导读 看到这个问题,是不是觉得很奇怪? 为啥要锁定swarm集群呢? 你一听就明白了,在swarm集群中,raft log存储的是加密的数据,主要是secret相关的数据,raft log数据在集群的manager节点之间进行传送,传送的时候,是加密的,就是通过节点的key(密钥)进行加密、解密 阅读全文
posted @ 2022-10-14 13:55 Zhai_David 阅读(105) 评论(0) 推荐(0) 编辑
摘要:0、关键问题 docker sercret是用来保存敏感数据的,然后给service来用,用来确保关键数据的安全性。 那么,问题是: docker secret的数据保存在哪里? 1、docker secret保存在哪里? docker secret是保存在raft log中的。 2、谁使用Raft 阅读全文
posted @ 2022-10-14 11:39 Zhai_David 阅读(113) 评论(0) 推荐(0) 编辑
摘要:0、导读 如果我问你,docker commit是干什么的,你或许可以立马告诉我,docker commit是将一个正在运行的容器制作成镜像 没错,说的很对,但是·······docker commit到底是将容器的哪些东西制作成镜像? 你是不是就有些迟疑了呢,如果是的话,接下的部分,你要仔细的看, 阅读全文
posted @ 2022-10-13 11:18 Zhai_David 阅读(1895) 评论(0) 推荐(0) 编辑
摘要:1、概述 在容器生态系统中充斥着各种各样的术语,今天就来为你,一一解码! Docker开启了容器的时代,但不久之后,工具、标准和首字母缩略词似乎在这一领域爆发。那么,“docker”到底是什么,“CRI”和“OCI”这些术语又是什么意思呢?你为什么要在乎呢?继续往下读,找出答案。 2、关于Docke 阅读全文
posted @ 2022-10-12 15:22 Zhai_David 阅读(2450) 评论(0) 推荐(0) 编辑
摘要:service使用sercret时,在容器的默认的位置及文件名字是: /run/secrets/<secret_name> 那么,如果要更改secret在容器中的名字,该怎么做? 下面,通过一个示例,来展示如何达成这个目的: 1、创建secret printf "This is a secret" 阅读全文
posted @ 2022-10-11 15:11 Zhai_David 阅读(78) 评论(0) 推荐(0) 编辑
摘要:什么是secrets? 前面的部分,你已经看到了config的使用方式,config中,存放的是明文的内容,以文件的方式挂载到容器中,今天的说的secret存放的是敏感的数据,比如,证书,key等 主要的目的,就是保护敏感数据的安全性。 下面,通过一个示例来看下,如何创建、使用secret对象 示例 阅读全文
posted @ 2022-09-30 14:31 Zhai_David 阅读(58) 评论(0) 推荐(0) 编辑
摘要:今天,来说一个在service中非常高级的知识点,configs. 然后,通过一些示例,来一步一步的演示,如何在service中使用,有什么关键的注意事项。 什么是configs? configs的准确说法应该是,docker swar service configs. 通过configs这个名字可 阅读全文
posted @ 2022-09-28 14:49 Zhai_David 阅读(567) 评论(0) 推荐(0) 编辑
摘要:什么模板 模板?什么鬼,其实非常的简单! 就是在创建service的时候,直接引用变量,获取变量的值,然后将这些值变成具体的参数值。 可以设置的参数 --hostname --mount --env 可以使用的变量(占位符),有 变量 描述 .Service.ID Service ID .Servi 阅读全文
posted @ 2022-09-22 12:01 Zhai_David 阅读(120) 评论(0) 推荐(0) 编辑
摘要:volume和bind volume都是持久化容器数据的方案。 通过持久化容器中的数据,避免了将数据写入到容器的可写层,从而呢,可以最大化的容器的性能!更重要的是,提升了容器的可移植性!在service中,同样的可以使用数据卷和绑定挂载(bind mount) 接下来的部门,说说在service中如 阅读全文
posted @ 2022-09-22 10:41 Zhai_David 阅读(279) 评论(0) 推荐(0) 编辑
摘要:想象一下这个场景,你有一个服务,想要最好的运行状态,必须需要一定的CPU和内存的数量,这样的场景,如何在service中进行设置? 也就是说,为service设置一个cpu和内存的值,swarm集群中的节点,只有满足这个要求的才能运行这个task。 参数 设置的方法,非常的简单,在创建service 阅读全文
posted @ 2022-09-21 11:03 Zhai_David 阅读(226) 评论(0) 推荐(0) 编辑
摘要:将swarm中的service端口暴露出去,供集群外的服务进行访问的 2 种方法: 1、路由网格 也就是在docker create service时,使用下面的参数 --publish published=<published_port>,target=<service_port> 2、将task 阅读全文
posted @ 2022-09-20 15:14 Zhai_David 阅读(578) 评论(0) 推荐(0) 编辑
摘要:最近今天,在研究docker swarm中服务的部署,发现一个非常奇怪的现象······ 通过docker service create命令创建service,比如: docker service create \ --with-registry-auth \ --name=nginx \ --re 阅读全文
posted @ 2022-09-19 14:27 Zhai_David 阅读(169) 评论(0) 推荐(0) 编辑
摘要:0、导语 今天的文章呢,主要为你解决3个问题: 1、如何为service中运行的容器设置环境变量? 2、如何指定容器以什么用户执行? 3、容器的工作目录(workdir)? 下面咱们一个一个的来看。 1、如何设置容器的环境变量? 非常的简单,在创建service的时候,通过--env指定变量和变量值 阅读全文
posted @ 2022-09-19 11:03 Zhai_David 阅读(603) 评论(0) 推荐(0) 编辑
摘要:今天要说的这个,其实非常的简单,就是说······ 如果你现在已经在swarm集群中,部署了一个service,这个service对外暴露的端口号是8080,怎么将它修改为80端口? 比如,在集群中有个nginx的service,对外提供服务的端口是8080 [root@nccztsjb-node- 阅读全文
posted @ 2022-09-16 10:26 Zhai_David 阅读(214) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示