粉丝1.4万获赞8.8万


大家好,今天咱们聊聊 doctor 疾群的监控与牌照这俩事就像给疾群当医生,监控是日常体检,防患未然,牌照是对症下,要解决疾症。先说说监控,一个靠谱的 doctor 疾群监控体系得有三大件,咱们用医院打比方就好懂了。 set up sir 就是 每个容器的贴身护士,专门盯着单个容器的 cpu、 内存、网络、流量这些 vital signs 一 刻不松懈。 notice porter 是 宿主机的全科医生,负责检查节点服务器的硬件健康状况,比如硬盘够不够用,内存有没有超载。 而 prometheus 就是 病历库加诊断中心,把护士和医生收集来的所有数据都存起来,还能按规则判断哪里出了异常。最后 graphana 就是 格式化报告版,把枯燥的数据变成直观的图标,哪个容器发烧,哪个节点血压高,一眼就能看明白。 除了基础监控,咱们还得给集群的业务服务装新店监护仪,也就是 doctor 的 health check 健康检查,再配上 jagger 这种分布式追踪工具,就像给服务做全身 ct, 跨容器调用的延迟问题、链路故障都能精准定位。 收完监控,再聊聊牌照。集群出问题不用慌,按步骤找原因,就像侦探破案,如果容器启动失败,别着急重启。先查 docker log 容器日记,这就像看病人的发病记录、应用报错、配置问题全在里面。 再用 docker inspect 检查容器配置,看看挂载卷是不是没接上,端口是不是被占用。 就像检查病人的随身装备有没有带齐。要是 swarm 集群里节点突然失联,先执行 docker node else, 看节点状态,要是显示 down, 赶紧查节点间的网络端口。 swarm, 集群通信靠二三七七七九四六这些端口 就像医生查病人的神经通路,通路断了,节点自然联系不上。还有一种常见问题,容器资源耗尽罢工。用 docker stats 实时看资源占用,就像给容器测心率、血压,发现 cpu 内存超限,赶紧调整资源限制, 这就像给病人减负,让他轻装上阵。至于容器间网络不通,先查 docker network inspect 网络配置,确认容器是不是在同一个朋友圈同一网络,再用 ping 可哦或者 tcp d u n p 抓包分析,就像排查交通堵塞, 看是路没通还是车走错了道。最后再提两个好用的工具,轻量级的 botainer, 就 像集群中控式可视化界面,点几下就能看日制重启容器。 elk 或者 lowkey 这种日制聚合工具,就是日制搜索引擎,海量日制里搜关键字, 故障定位效率直接翻倍。 dogger 集群的监控与排障,核心就是早发现、快定位、准解决。做好这三点,集群就能稳稳当当跑起来。

欢迎观看本期编程知识讲解视频,今天我们将深入探讨 docker 是 什么,让我们开始吧! docker 是 开源的容器化平台,能将应用及所有依赖打包成标准化容器,确保在任何环境一致运行。 类比集装箱运输,集装箱统一货物包装,无论内容物如何运输,都便捷高效。 docker 就 像集装箱,把应用和家当打包,让它在开发、测试、生产环境走哪住哪,避免在我这能跑的尴尬。它通过系统系统级虚拟化,实现轻量隔离,比传统虚拟机更高效。 docker 和虚拟机都实现隔离,但原理差异大。虚拟机像完整房子,含独立操作系统,启动需加载整个 os 资源,占用多且慢。 docker 像公寓房间共享宿主 os 内核,仅含应用和必要依赖启动秒级且清量。比如虚拟机是租整层楼自己装水电。 docker 是 租公寓共用大楼,设施成本更低,灵活性更高,更适合微服务和快速迭代场景。 doc 镜像是指读模板,包含运行应用的所有内容、代码、环境、依赖等。类比生活中的食谱。食谱详细写食材和步骤,可用它做多份相同菜,但食谱本身不变,镜像静态不可直接运行,却能创建多个容器。 比如下载 nx 镜像食谱,可启动多个 nx 容器菜,且镜像分层存储,不同镜像共享底层层节省空间。 dock 容器是镜像的运行实体,动态,可执行类比用食谱做出的具体菜肴。食谱镜像固定菜食谱镜像固定菜,容器可吃修改、丢弃。容器有独立文件、系统、网络和进程空间,与其他容器及宿主隔离,但共享内核资源,比如运行 ubusion 容器,向开临时 ubusion 窗口 操作,不影响宿主,关闭后可删除,不留痕迹。轻量特性,适合弹性伸缩。 docker 仓库是存储分发镜像的地方,类比超市货架,可从货架拿商品拉镜像,也放自己商品推进像分公开和私有仓库。 docker hub 是 全球最大公开仓库,类似淘宝公共库。 企业私有仓库,向公司食堂、食材库进内部访问,共享镜像,方便团队协助。比如成员从私有仓库拉统一开发镜像,确保环境一致。 docker 镜像用分层存储,每层只读,修改时加可写。顶层类比叠放透明文件夹,底层放基础内容,如 os 内核,上层放应用代码, 查看文件,从顶往下找,修改仅在顶层添加,不改变。底层好处是节省空间。共享底层层便于版本控制更新只需改顶层容器,运行时加可写层修改,存于此 容器,删除可写层消失。 docker 核心优势是清量一致,高效隔离,清量共享内核比虚拟机小,启动秒级一致。镜像含所有依赖,开发测试、生产环境相同。向外卖统一餐盒打包,味道不变, 高效资源利用率高。一台服务器可运行数百容器,隔离容器,通过命名空间隔离,像办公室隔间,独立空间却共享设施,这些让 docker 沉云原生核心工具。 docker 常用命令管理镜像容器。 docker pool 像从超市买食材拉镜像。 docker run, 像用食谱做菜启动容器。 docker ps, 像看厨房煮的菜查运行容器。 docker stop, 像关火停容器。 docker r m 像倒掉剩菜删容器。 doctor images 向看食谱本查本地镜像。 doctor images 向看食谱本查本地镜像, doctor images 向打开菜盖、肠胃进入容器,这些是入门基础, 熟练又能快速上手。容器管理 doctor compose 是 多容器应用管理工具,用 y m l 文件定义容器配置镜像端口依赖一键启动所有服务 类比家庭聚餐准备,需煮饭、炒菜、煲汤, compose 向菜单列出各步骤食材工具一键启动,不用逐个操作。比如博克需 web 和数据库容器 compose 定义 web, 依赖数据库,启动时先数据库再 web 简化。多容器管理适合开发测试环境, dock 典型场景开发环境,团队用相同镜像避免配置差异。向共用厨房厨具 c i c d 快 速构建测试自动化部署,向工厂流水线微服务,每个微服务封装成容器, 独立部署。伸缩向餐厅各菜品由不同厨师负责,云原生与 cooperates 配合管理。大规模容器弹性伸缩高可用向城市交通系统协调车辆灵活性,让 dock 成现代开发必备工具。以上就是今天关于 dock 是 什么的全部内容。

在面试中被问到刀砍内存泄露怎么处理,吱吱呜呜答不上来,今天来分析一下这个问题。 首先来理解一下这个问题,刀砍内存泄露是指某个容器占用内存异常,导致数据机内存不足,影响其他容器或者应用正常运行,可能会出现 o o m 的 情况。 下面来实际演示一下。我这台虚拟机总共四 g 内存,使用 free 杠 h 可以 查看内存使用情况,再使用 docker state 查看所有容器占用的资源情况,发现有一个 link container 的 java 应用容器占用资源异常高,几乎快把虚拟机内存吃满了。那如何解决这个问题呢?第一种方法是重启 docker 容器,使用 docker restart 重启容器, 重启完成后,我们再使用 docker state 进行查看, 可以看到过了一会那个内存还是飙升上来了。这个方法治标不治本,时间一长还是会出现相同的问题,容器内存持续飙升,直到把数据内存占满。 第二种方法是在起是在容器启动时候加上杠 m 参数设置容器内存的限制。这个方法本质是使使用了 linux 底层内核模块 cgroups 对 资源限制的能力, 在启动 dcard 时候加上杠 m 参数, 启动完成后再使用 dcardstate 查看容器的资源使用情况。可以看到过了一会内存能涨到一 g 左右,就不会再持续地进行飙升了。 这个方法能有效地限制容器对内存的使用, 如果是运行中的容器,也可以使用 docker update 命令更新容器。第三种应用修复,这种方法涉及到和代码相关,大致了解即可。比如 java 应用设置合理的 gvm 对 内存参数,我们这里将叉 ms 设置为一记, 再运行容器启 动后再使用 docker seed 的 查看资源的使用情况, 可以发现这里内存只会占用到一 g。 如果说在堆内存设置的区间内占用异常,需要使用 go、 go map 等工具导出 java 对 账信息, 使用 mat 工具对堆内存进行分析,查看是否有代码 bug, 或对 java 进行参数调优,设置合理的垃圾回收机制等,这里就不展开说了。第四种,在生产环境 推荐搭建监控平台,长期对内存使用进行监控,提前预警,发现问题并分析解决。好了,我们总结一下 dunk 内存泄露根本原因,一个是未设置合理的资源分配限制,导致资源被异常占用。解决方法是 dunk 在 启动时候使用杠 m 参数或者 k 八 s 使用 limit 参数进行限制。第二个是程序常见的设计缺陷, 如大对象、大量对象创建频繁创建大对象没有使用对象池不合理的缓存策略,缓存数据过多,没有过期机制,大集合使用不当,使用 or release 存储大量数据,而不是数据库叙略化、反叙略化频繁大量的 jason 叉 ml 解析 这个原因的解决就需要对应用比较熟悉,深入了解问题的根本原因,针对具体问题进行解决。

啊,在我们日常的工作和生活中呢,越来越多的订阅服务成为我们日常的一部分,比如说啊服务器啊,域名 啊,合成云服务等啊,当然随着服务的增多呢,我们很容易忘记续费日期啊,造成服务的中断或者是 不必要的麻烦啊,为了帮助我们高效的管理这些服务的生命周期,我们今天分享就是用刀刻来部署一个 到期提醒服务,叫 renew hyper 啊,我们看一下我这边部署的一个实力啊,这边呢就是分布式云资产全周期托管证书啊,这边有服务总数啊,即将到期啊以及过期。然后这边的话就是我们啊自己的服务啊, 比如说我之前那个有一些免费的域名啊,他需要提前一百八十天进行啊,手动啊,续签啊,我们就可以啊,直接提交在这上面,然后到时候提前会给我们啊微信上发通知,然后这边是域名的一个服或者是服务器啊, 啊,就是这样一个服务啊,然后或者你啊其他服务或者想提醒的都可以在添加到上面,然后这边是啊立即检查,然后这边是我们新增某一个服务啊,这边我们填上我们服务的名称啊,然后打个标签, 然后你这个啊付费。这个一个周期是一个什么样的一个模式,比如说循环停运或者是到期啊,收到重置啊,这边呢是选择啊周期的时长或者是农历的日期都可以啊, 然后这边填上我们这个日期啊,然后这边就会显示了,然后这边可以添加一个备注,然后这边呢就是提前多少天啊,给我们提醒啊,这边可以自定义进行配置 啊,最后点击保存就可以了,然后系统设置呢,这边就是我们限号设置,这边是市区啊,我们选择我们适合自己的市区啊, 然后这边是推送的一个方式啊,包含这些啊,这个电报或者是屏幕 ios 可以 使用这个 bug, 我 这边的话主要就使用这个又使用的 bug, 还有就是啊 pos plus 微信推送啊,其他话就根据自己的需求啊,这边还有一个日历订阅功能,主要就是苹果用户可以尝试一下,然后其他的话就没有什么可介绍的,主要就是单纯的提醒业务, 然后我们具体看一下怎么来部署,然后我们部署方法的话,我们可以按照官方的这个 cloudfly 的 方式啊,这种方式呢是不用服务器的啊 啊,我们直接按照官方的啊步骤啊,一步一步进行操作就可以了,今天这个教程我们主要就是演示使用 dk 的 方式,这样我们就可以在我们自己的设备上进行部署啊,我们首先是需要准备一台服务器的啊, 然后啊这个容器呢占内存大概是不到一百兆啊,这个可以作为一个参考,然后我们如果有需要服务器的,可以点开这个莱卡云官网, 点开以后我们可以选择产品服务,这边选择我们一个适合自己的服务器啊,比如说我们选择一个中国香港的 b g p 服务,或者是国内的一些服务器都可以, 然后有兴趣的可以过来了解一下啊,然后这个呢就是这个开源项目的一个地址啊,然后目前只有一百五十六 s 档,我们自己使用的话可以给他绑定个域名啊,这样更安全啊,然后我们啊直接啊登录好我们这台服务器啊, 然后我们服务器上需要有 dock 和 dock comos 这个环境啊,我们就可以使用这个一键安装脚本型安装,然后安装完以后,我们就啊直接从这个部署命令这边开始啊, 我们直接啊新建一个目录并进入到这个目录中,然后我们再新建这个 comos 文件, 然后直接输入字母 i 啊,进入编辑模式。然后这边那个啊配置的话也比较简单啊,主要就是这个冒号左边的九七八七是默认的一个端口啊,我们如果被占用呢,可以更改成我们自定义的端口啊, 然后这边就是数据持久化,然后这个呢就是我们登录的默认密码,这个可以自定义修改,然后演示的话就直接来粘贴一下, 然后我们 esc 啊冒号 wq 啊保存并退出,然后再执行啊容器运行的命令。 好,我这边是已经啊拉取过镜像了,所以说直接就运行成功了,我们可以看一下。 好,目前呢这个容器是正常运行的,然后我们可以啊看一下这台服务器的 ip 啊, 然后我们直接啊复制一下。好,我们直接啊输入服务器的 ip, 加啊九七八七端口就可以登录了,试一下 啊,然后这个服务就搭建完成了,我们就可以啊添加我们各种啊订阅式的服务,然后防止我们那个各种服务到期啊,然后呢飞云 nas 上也是很简单啊,就更复制一下我们刚才这个配置, 然后直接啊启动啊,启动完拉取完镜像自动启动以后啊打开也是这样的啊,然后如果说你想绑定域名呢,可以参考我之前那个教程啊,这边的话分享一下简单的一个使用方法。这边就是刚才介绍的啊添加服务。 然后这边啊通知方式呢,我们建议 ios 设备直接使用 bug 或者是微信的 pos plus 啊,这个的话目前是需要实名,并且支付一元就可以使用,然后其他的话我们就 根据自己的需求啊进行配置就可以了,然后整个啊配置方法也比较简单啊,然后有什么问题的可以在我的评论区给我留言。好了,那今天的分享呢就到这里,谢谢大家。

安装完成之后常见的常见使用跟命令啊,基本上呢,我们如果啊要用一个脚手架,或者用一个 ci 工具,都要掌握它的基本的命令。那 dock 它有哪些命令呢?常规的我们可以呢先启动一下这个控制台啊,我这里呢肯定是有 dock 的 dock。 ps, 可以 看一下当前的进程,就是看我当前的 dock 有 跑哪些,就是已经在跑的这个,呃,容器啊,有哪些容器? 然后呢,看当前的这个进程,那我们现在看一下当前的容器,直接 dock container ls, 现在可以看到没有?没有是因为我没有跑起来啊,如果说我要看它所有的呢? 你可以杠 a, 这就是可以看到所有的容器。呃,所所对所有的容器,这是我们现在这里看到所有的容器,它其实跟这个界面化的工具看到是一样的啊,我界面化工具看到有这些容器,对吧?有这些容器,那我在这边其实看到的这些容器呢,跟那边看到是一样的。有这么多容器,那我看一下镜像啊,多克儿 image, 那 这就是我现在本机有的相关的镜像。有这些啊,当然我有,比如说我们妙码的这个,呃,一些自定义的镜像啊,还有远程的其他的一些镜像啊,都在这儿 啊,还有这个什么 k 八 s 的 mini, cop 等等,都在这个地方都可以看到,这是它的常见的三个命令啊,我们再复习一下 docker, ps, 是 看当前跑了什么进程,这个我们等下给大家跑了之后,大家就可以看到,我们看当前有哪些容器。 os, 如果看当前有所有的容器,就加个杠 a, 这是所有容器,我们要看当前的镜像,就看这个 images, 可以 看到当前的镜像。好,这是常见的几个命令,大家下去之后呢?自己去敲一下 啊,自己去敲一下,那假设我现在要跑一个这个远端的镜像啊?因为比如说我举个最简单例子吧,就是 mys 的 这个 nx。

本期为大家带来的是群辉搭建未知笔记服务,众所周知,笔记软件很多,但数据一般都保存在云端,像个人密码这些记录都不敢记录到笔记中,那么我们就自建一个笔记服务器,把数据保存在群辉那中,这样就不怕泄露了。 像其他服务一样,如果您的 doctor 镜像下载服务正堂,那么就从 doctor 套件注册表中下载。 如果您的 darker 套件无法下载镜像文件,那么您可以通过 darker 命令来下载,具体如下, 首先打开熟,然后通过 party 登录到群辉命令行界面, 然后 sodel i 切换到 routine 虎,输入 doctor 命令,拉去未知笔记服务镜像文件,该镜像文件比较大,下载需要一些时间。 然后回到网页界面,找到 darker 套间的印象中是否存在 with note 镜像。 下载完成,开始创建容器创建之前先说明一下您的,那最好有两 g 以上空闲内存,选择为之笔记的镜像文件,点击下一步,此处为了避免权限不够,仍然勾选使用 高权限执行容器,勾选启动,自动重新启动端口设置,添加两个端口八千对应容器的八十端口 tcp 协议,九千两百六十九对应容器的九二六九端口 udp 协议。 因为八零端口是网页访问常用端口,容易冲突,不采用八千来映射到容器的八零端口。容器创建成功后,就可以用群辉 a p 加八千端口访问。 存储空间设置,此处需要映射一个文件夹用于保持容器为之笔记的数据,具体如下, data 目录下创建一个 we snoke 文件夹,对应容器中的 with storage, 然后 点击下一步完成即可。该容器第一次启动时间比较长,请耐心等待。启动过程中需要创建数据库表,即插入初始数据,可以查看容器日志, 我们也可以通过群回 ip 地址加八千端口来访问,确认容器是否启动完成,像出现这种状态都是正常的,无需担心,继续耐心等待。下面是容器的日志查看和容器的启动过程, 直到出现该日志页面,然后刷新网页,出现该网页就说明为之笔记服务容器创建启动完毕了,默认管理员登录账号 a b m i n w i 一点四页,密码幺二三四五六。 登录成功后,我们来创建一个笔记, 为之笔记支持 mark 语法,该语法书写起来比较流畅,一般程序员记笔记用的比较多,我们只要在创建笔记的时候加上 m v 的后缀即可。下面我来稍作演示一下。 网易云 演示到此结束,下面通过为之笔记的客户端来使用,为之笔记目前全平台支持,不管是桌面还是手机端都支持,我们采用 window 客户端来演示一下。客户端不要去官网下载,就在此页面下载, 下载完成,安装到电脑中, 安装完成,打开客户端登录界面中账号和密码与网页登录一致,服务器地址填写群辉 ip 加八千端口, 然后点击登录即可。提醒一下,第一次打开客户端 需要切换到自由服务为之盒子。登录成功后,我们可以看到网页上创建的笔记,我们修改一下,然后同步一下是否正常。再次打开网页端,我们发现数据已修改成功, 通过网页端可以进入服务器管理后台各种功能请自行研究。 如果您需要外网访问,请参考我的往期视频化身壳,加 d e d a n s, 把服务映射到外网,然后用域名加端口的方式登录。 如果您宽带不是通过路由器拨号上网的,可以找宽带运营商修改,但网络不太懂的朋友要谨慎改动,因为需要调整路由配置, 我怕您上不了网找我。本期视频就到此结束,如果你喜欢我视频,请点赞、关注、收藏,谢谢您的支持!

大家好,欢迎来到我的频道,本期视频给大家分享如何升级飞牛的刀客容器。相信大家在飞牛里一定用刀客部署了不少的服务,比如是下载的 qb 以及媒体服务 jeffrey。 但是当这些服务发布了新的版本,那么要怎么做才能在更新自己容器的同时又不丢失数据呢? 今天就给大家演示如何进行操作。 现在我们要确定容器的部署方式 是用 compose 部署的还是用费牛多克自带的仓库部署的。我这里这个 transmission 是 用 compose 的 方式部署的。这种方式部署的容器升级其实也是很简单的, 你如果不习惯使用命令行,可以在 compose 这个选项里进行升级。但是这种方式升级的前提是需要先停止容器, 然后查看详情,选择 yaml 配置, 在这里修改它的版本号就可以了。比如这里是四点零点五,把它修改成最新版的四点零点六, 然后选择构建,这样就升级完成了。如果你不想停止你的容器,那么你可以通过 s s h 命令行的方式进行升级。首先连接到你的飞牛,并进入到你要升级的容器文件夹内, 然后用 nano 对 doc compose 文件进行内容编辑。 同样是只需要修改版本号, 修改完按 ctrl 加 o, 然后回车,接着 ctrl 加 x 退出,然后跑一遍这条命令, 现在升级就完成了。这两种方法都不会影响容器内的资料。 当然还有更简单的方法就是在你部署容器的时候直接就选择 litest, 这样你每次想要升级的时候就只需要刨一遍到克 compose up 杠 d 的 命令就可以了,但是并不推荐这么做,因为 litest 的 版本并不一定是一个稳定的版本, 有可能是一个测试版,而且如果出现兼容性或者是其他的什么问题,你可能会很难回滚到之前的稳定版,导致容器内资料的丢失,所以部署容器的时候最好还是指定版本。 那么飞牛自带的刀客仓库安装的容器升级就更简单了,在容器有新版本可以升级的时候,那么在本地镜像里会有一个升级提示,你只需要点一下就可以了。 那么到这里今天的演示就结束了,感谢大家的观看。如果有任何问题的话可以在评论区留言或者是加入群组,如果你觉得我的视频还不错的话,也请大家点赞、分享,订阅我的频道,感谢大家的观看,我们下期再见!

一天一个计算机知识,今天要讲的是 docker 以及它的架构。你是一家互联网公司的运维人员,维护公司的多个应用服务。随着业务的快速发展,公司新开发了很多应用,每个应用都有不同的运行环境要求, 比如有的应用需要特定版本的 python, 有 的需要特定版本的数据库。你要把这些应用部署到服务器上,问题就来了。在传统的部署方式下,你得在服务器上手动安装和配置每个应用所需的环境,这不仅耗时费力,而且很容易出错。 一旦某个环境配置出了问题,应用就可能无法正常运行,还可能影响到其他应用。而且当你需要把应用迁移到其他服务器或者不同的云平台时,又得重新进行一遍繁琐的环境配置工作,效率极低。 那么有没有一种办法能让应用的部署和运行变得更简单、更高效,并且能保证应用在不同环境下都能稳定运行呢?这时候 docker 就 闪亮登场了。本地环境隔离我们先从简单的情况说起。 想一下,你有一个房间,你要在这个房间里同时进行绘画、做手工和做实验。不同的活动需要不同的工具和材料,而且它们之间不能相互干扰。 如果把这个房间比作服务器,不同的活动比作不同的应用,那么你就需要一种方式来把这个房间隔成不同的区域,每个区域专门用于一种活动。在计算机里,我们也可以对应用的运行环境进行类似的隔离, 就像我们可以在服务器上创建多个虚拟的小空间,每个空间里安装特定应用所需的环境,这样不同的应用就可以在各自的小空间里独立运行,互不干扰。这种在服务器下为应用创建独立运行环境的方式就是所谓的本地环境隔离。但是这种本地环境隔离也有一些问题, 如果每个应用的环境都完全独立,会占用大量的服务器资源,而且管理起来也很麻烦。容器化部署 为了更高效地利用服务器资源和管理应用环境,我们可以把每个应用及其所需的环境打包成一个独立的包裹,这个包裹就是 docker 的 容器。 就好比你把绘画活动所需的工具和材料都装在一个大箱子里,这个箱子就是一个容器,你可以很方便地把这个箱子搬到其他房间。 在新的房间里,这个箱子里的绘画工具和材料依然可以正常使用,不需要重新准备。同样的, docker 容器可以在不同的服务器或者云平台上快速部署和运行,因为它已经包含了应用运行所需的一切。但是多个容器在同一个服务器上运行时,也会存在一些问题, 比如不同容器可能会竞争服务器的资源,像 c、 p、 u、 内存等。这就好比多个箱子放在一个房间里,可能会互相挤压空间。为了解决这个问题, docker 引入了资源限制机制, 就像你可以规定每个箱子只能占用房间的一定空间一样, docker 可以 限制每个容器使用服务器资源的上限,保证每个容器都能稳定运行。镜像和仓库刚刚我们提到了把应用及其环境打包成容器,那么这个打包的模板是什么呢?这就是 docker 镜像。镜像就像是容器的蓝图, 它包含了应用运行所需的所有文件和配置信息,你可以根据这个蓝图创建出多个相同的容器。想象一下,你有一张绘画活动的设计图,根据这张设计图,你可以制作出多个相同的绘画工具箱子。为了方便管理和分享这些镜像, dawk 还提供了镜像仓库。 镜像仓库就像是一个大的仓库,里面存放着各种各样的镜像。你可以把自己制作的镜像上传到仓库里,也可以从仓库里下载别人制作好的镜像。 就像你可以把自己的绘画设计图存放在一个公共的图纸库里,也可以从这个图纸库里找到别人设计的图纸。 docker 的 架构现在我们来看看 docker 的 整体架构。 docker 主要由 docker 客户端、 docker 守护进程、 docker 镜像、 docker 容器和 docker 仓库组成。 docker 客户端就像是你的遥控器,你可以通过它向 docker 守护进程发送各种命令,比如创建容器、启动容器等。 dock 守护进程就像是一个大管家,它负责接收客户端的命令,管理镜像、容器等资源。 dock 镜像和容器我们前面已经讲过了,而 dock 仓库则提供了镜像的存储和分发功能。 dock 是 什么?简单来说, dock 是 一个用于开发、部署和运行应用的开源平台, 它通过容器化技术,让应用的部署和运行变得更加简单高效。 dock 可以 把应用及其所需的环境打包成一个独立的容器, 这个容器可以在不同的环境中快速部署和运行,而且不会受到环境差异的影响。 docker 的 应用场景非常广泛,比如在开发过程中,开发人员可以使用 docker 快 速搭建开发环境, 保证开发环境和生产环境的一致性。在部署过程中,运维人员可以使用 docker 快 速部署应用,提高部署效率。在测试过程中,测试人员可以使用 docker 创建多个独立的测试环境,保证测试的准确性。现在大家明白了吗?最后遗留一个问题, docker 目前的容器都是在单个服务器上运行的, 如果要实现大规模的应用部署,需要多个服务器上运行的。下期我们聊聊这个话题,我们下期见。

在日常使用 docker 容器中,容器会生成大量日制,占用此盘空间,若没有及时清理,长时间积累可能会撑爆此盘。下面看一个案例,这里运行了一个 ubox 容器,里面运行了一个程序, 我们进入到容器日制目录,末日是在 y 下 delete docker container, 下面 使用 ls 杠 lh 查看,可以看到容器的 jsonlog 文件已经高达七百兆了。又过了十几分钟,再次查看文件大小已经增长到一 g 了, 按这样增长速度,不到一个周此盘就会出现空间不足。 下面来演示一下如何处理这个问题。 docker 软件自身有日制切割轮转功能,在 etc 下 docker daemon json 里面配置如下内容, log driver 表示默认的日制驱动,这里使用 json file, max size 表示单个文件大小,最大为一百兆, max file 表示最多使用存保存三个日制文件。 配置完成后,重启 dot com 服务, 再次启动该容器。稍等一会再查看日制文件,可以看到日制被切割为三个文件,每个最大为一百兆,而且会轮流覆盖保存最新的日制。那如何保存容器的日制?这个就需要用到 日制系统了,如 e, f, k 或者 lock 等。好了,今天的内容就到这里,下期再见,别忘了关注点赞哦!