HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    docker微信機(jī)器人

    發(fā)布時(shí)間:2023-03-19 09:55:38     稿源: 創(chuàng)意嶺    閱讀: 111        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于docker微信機(jī)器人的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    docker微信機(jī)器人

    一、k8s和docker區(qū)別是什么?

    k8s和docker區(qū)別有以下幾點(diǎn):

    1、k8s是一種開放源碼的容器集群管理系統(tǒng),能夠?qū)崿F(xiàn)自動(dòng)化部署、擴(kuò)展容器集群、維護(hù)等功能。

    2、Docker是一種開放源碼的應(yīng)用容器引擎,開發(fā)者可以將他們的應(yīng)用和依賴打包在一個(gè)可移植的容器中,發(fā)布到流行的Linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化。

    3、k8s的全稱kubernetes。它是一個(gè)完整的分布式系統(tǒng)支撐平臺(tái),集群管理功能齊全。Kubernetes同時(shí)提供完善的管理工具,涵蓋了開發(fā)、部署、測試、運(yùn)行監(jiān)控等各個(gè)環(huán)節(jié)。

    docker微信機(jī)器人

    4、Docker是一種開放源碼的應(yīng)用容器引擎,允許開發(fā)人員將其應(yīng)用和依賴包打包成可移植的鏡像,然后發(fā)布到任何流行的Linux或Windows機(jī)器上,也能實(shí)現(xiàn)虛擬化。該容器完全使用沙箱機(jī)制,彼此之間沒有任何接口。

    二、docker 和 k8s 面試總結(jié)

    花了大半個(gè)月對(duì)k8s&docker進(jìn)行了梳理,包括之前讀過的書,官方文檔以及k&d在公司項(xiàng)目的實(shí)踐等。

    以下是個(gè)人對(duì)docker & k8s 面試知識(shí)點(diǎn)的總結(jié):

    1 docker

    常見面試題如下 每一點(diǎn)可根據(jù)回答進(jìn)行適當(dāng)深入

    1.1 什么是docker

    docker和傳統(tǒng)linux的差異?

    容器和鏡像的區(qū)別?

    如何理解docker的緩存機(jī)制?

    1.2 docker 網(wǎng)絡(luò)模型是什么?有何局限

    docker的網(wǎng)絡(luò)基礎(chǔ)是什么?

    docker的網(wǎng)絡(luò)模型是?有什么局限?

    docker如何實(shí)現(xiàn)容器間通信的?

    1.3 docker 基礎(chǔ)命令

    cmd和entryPoint差異?

    copy和add的差異?

    簡單講下swam/compose?

    2 kubernetes

    常見面試題如下 每一點(diǎn)可根據(jù)回答進(jìn)行適當(dāng)深入

    2.1 什么是k8s?

    1 為什么用k8s 解決了什么問題?

    2 k8s有哪些組件,有什么作用?【同:Master節(jié)點(diǎn)和Node節(jié)點(diǎn)都用哪些組件】

    3 可以簡單說下Node Pod container 之間的關(guān)系嗎? 【可引入2.2/2.3對(duì)Pod SVC的考察】

    4 什么是SVC可以簡單描述下嗎?【可引入2.3對(duì)SVC的考察】

    5 可以簡單講下k8s的網(wǎng)絡(luò)模型嗎?

    6 Pod SVC Node Container 之間如何相互訪問

    7 swarm和k8s如何選擇?

    2.2 考察Pod

    靜態(tài)Pod和普通Pod的差異?

    簡單講下Pod的生命周期重啟策略呢?

    - 不同組件對(duì)Pod的重啟策略要求一樣嗎?

    如何檢查Pod的健康狀態(tài)?哪2種探針?

    - 2種探針的實(shí)現(xiàn)方式

    簡單說下Pod的調(diào)度方式?

    2.3 考察SVC

    SVC有哪4種類型

    2.4 k8s網(wǎng)絡(luò)模型

    DNS和Iptables在k8s中的運(yùn)用?有何差異

    - k8s如何解決多機(jī)器部署容器的網(wǎng)絡(luò)問題?

    Pod SVC Node Container 之間如何相互訪問

    3 參考答案

    答案是根據(jù)所在公司項(xiàng)目結(jié)合自己的理解給出的答案 不一定完全準(zhǔn)確但在面試中要做到有理有據(jù)突出自己的思路即可。

    4 docker

    問題和答案 如下

    4.1 什么是docker?

    通常問這個(gè)問題主要在于考察候選人是否真正了解過docker,很多人項(xiàng)目中都有用到docker,真正去了解過概念,架構(gòu)的不多。從而來辨別簡歷上的熟悉/了解docker的水分。

    如果這個(gè)都無法回答,那么接下來的docker考察也就毫無意義了,此問題通常也會(huì)結(jié)合以下問題來進(jìn)行考察。

    docker和傳統(tǒng)linux的差異?

    docker都有哪些核心組件?

    可以簡單說下docker的架構(gòu)嗎?

    容器和鏡像的區(qū)別?

    docker是什么:  Docker是一個(gè)可以把開發(fā)的應(yīng)用程序自動(dòng)部署到容器的開源引擎。

    docker和VM差異:  docker是一個(gè)應(yīng)用層的抽象,容器之間通過網(wǎng)絡(luò)命名空間進(jìn)行隔離,多個(gè)容器共享同一個(gè)操作系統(tǒng)內(nèi)核。VM是對(duì)物理硬件層的抽象,每個(gè)VM都包含獨(dú)立的操作系統(tǒng),重且啟動(dòng)緩慢。VM主要為了提供系統(tǒng)環(huán)境,容器主要是為了提供應(yīng)用環(huán)境。

    docker組件:  docker引擎【包含Docker客戶端&服務(wù)端】,docker鏡像,docker容器,Registry【鏡像倉庫】

    docker的架構(gòu):  C/s架構(gòu)

    容器和鏡像的區(qū)別:  鏡像是一個(gè)只讀模板,包括運(yùn)行容器所需的數(shù)據(jù),其內(nèi)容在構(gòu)建之后就不會(huì)被改變,可以用來創(chuàng)建新的容器。 鏡像由多個(gè)只讀層組成,容器在只讀層的基礎(chǔ)上多了一個(gè)讀寫層。

    4.2 docker 網(wǎng)絡(luò)模型是什么?有何局限

    這里也經(jīng)常會(huì)結(jié)合K8s網(wǎng)絡(luò)原理進(jìn)行考察,以及如下幾個(gè)考點(diǎn)

    docker的網(wǎng)絡(luò)基礎(chǔ)是什么?

    docker的網(wǎng)絡(luò)模型是?有什么局限?

    docker如何實(shí)現(xiàn)容器間通信的?

    Docker網(wǎng)絡(luò)基礎(chǔ):  Docker是在操作系統(tǒng)層上對(duì)應(yīng)用的抽象,使用網(wǎng)絡(luò)命名空間來對(duì)不同容器之間進(jìn)行網(wǎng)絡(luò)隔離,用Veth設(shè)備對(duì)來進(jìn)行容器之間的通訊。

    docker的網(wǎng)絡(luò)模型:  有4種網(wǎng)絡(luò)模型 分別是Bridge Container host none 默認(rèn)使用bridge網(wǎng)絡(luò)模型,容器的初次啟動(dòng)會(huì)虛擬化出來一個(gè)新的網(wǎng)卡名為docker0,在多機(jī)器部署下docker0地址可能會(huì)沖突。所以docker對(duì)多機(jī)部署支持的不夠友好。

    4.3 docker 基礎(chǔ)命令

    出現(xiàn)頻率較高的為以下幾條命令的考察

    cmd和entry差異?

    copy和add的差異?

    docker-compose & docker swarm?

    CMD & ENTRYPONIT

    都是容器操作指令:

    CMD 用于指定容器啟動(dòng)時(shí)候默認(rèn)執(zhí)行的命令??梢员籨ocker run指定的啟動(dòng)命令覆蓋。ENTRYPONIT 指令可讓容器以應(yīng)用程序或者服務(wù)的形式運(yùn)行。一般不會(huì)被docker run指定的啟動(dòng)命令覆蓋。dockerfile中的多個(gè)CMD & ENTRYPONIT只有最后一個(gè)會(huì)生效。

    注意區(qū)別docker run 和RUN 一個(gè)是容器啟動(dòng)命令,一個(gè)是鏡像構(gòu)建時(shí)候所用。

    copy & add

    ADD & COPY 選取目標(biāo)文件復(fù)制到鏡像當(dāng)中。是針對(duì)鏡像的指令,唯一差別在于add源文件可以支持url且可以對(duì)壓縮文件進(jìn)行解壓操作。而copy針對(duì)的是當(dāng)前構(gòu)建環(huán)境。

    docker-compose & docker swarm

    使用Docker compose可以用YAML文件來定義一組需要啟動(dòng)的容器,以及容器運(yùn)行時(shí)的屬性。docker-compose用來對(duì)這一組容器進(jìn)行操作。

    docker swarm 原生的Docker集群管理工具,依賴docker本身,很多重要功能依賴團(tuán)隊(duì)二次開發(fā)。且社區(qū)不夠活躍,一般公司生產(chǎn)環(huán)境會(huì)選擇k8s,個(gè)人項(xiàng)目或者容器數(shù)量較少可選swarm,只需要docker即可完成,相對(duì)較輕。

    5 kubernetes

    5.1 什么是k8s?

    對(duì)k8s的考察一般逃不過這樣入門級(jí)的問題,針對(duì)入門級(jí)的問題,面試官可能也會(huì)針對(duì)如下幾個(gè)點(diǎn)進(jìn)行考察,在候選人答出來的基礎(chǔ)上,選擇其中一個(gè)進(jìn)行深入。

    為什么用k8s 解決了什么問題?

    k8s有哪些組件,有什么作用?

    可以簡單說下Node Pod container 之間的關(guān)系嗎? 【進(jìn)一步可對(duì)Pod SVC細(xì)節(jié)進(jìn)行考察】

    什么是SVC可以簡單描述下嗎?【可引對(duì)SVC的考察】

    可以簡單講下k8s的網(wǎng)絡(luò)模型嗎?【可以和docker網(wǎng)絡(luò)模型結(jié)合考察】

    Pod SVC Node Container 之間如何相互訪問【衍生 外部環(huán)境如何訪問k8s】

    swarm和k8s如何選擇?

    1 什么是k8s 為什么用k8s:

    一個(gè)開源的容器集群管理平臺(tái)【容器編排工具】,可提供容器集群的自動(dòng)部署,擴(kuò)縮容,維護(hù)等功能。分為管理節(jié)點(diǎn)Master和工作節(jié)點(diǎn)Node。在我們的項(xiàng)目中主要解決了環(huán)境一致性的問題,通過CI/CD使得運(yùn)維部署變得簡單起來,以及自動(dòng)部署,故障監(jiān)控,自動(dòng)擴(kuò)縮容??梢蕴嵘_發(fā)效率。

    2 k8s有那些組件:

    etcd保存了整個(gè)集群的狀態(tài);

    apiserver提供了資源操作的唯一入口,并提供認(rèn)證、授權(quán)、訪問控制、API注冊(cè)和發(fā)現(xiàn)等機(jī)制;

    controller manager負(fù)責(zé)維護(hù)集群的狀態(tài),比如故障檢測、自動(dòng)擴(kuò)展、滾動(dòng)更新等;

    scheduler負(fù)責(zé)資源的調(diào)度,按照預(yù)定的調(diào)度策略將Pod調(diào)度到相應(yīng)的機(jī)器上;

    kubelet負(fù)責(zé)維護(hù)容器的生命周期,同時(shí)也負(fù)責(zé)Volume(CVI)和網(wǎng)絡(luò)(CNI)的管理;

    Container runtime負(fù)責(zé)鏡像管理以及Pod和容器的真正運(yùn)行(CRI);

    kube-proxy負(fù)責(zé)為Service提供cluster內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡;

    3 Node&Pod&container之間的關(guān)系:Node一般指工作節(jié)點(diǎn)包含多個(gè)Pod Pod中包含多個(gè)Container,Pod中的container共享同一個(gè)網(wǎng)絡(luò)命名空間。

    4 什么是SVC: SVC是對(duì)一組功能相似的Pod資源的抽象,相當(dāng)于一組服務(wù)的負(fù)載均衡。

    5 k8s的網(wǎng)絡(luò)模型:IP-Per-Pod 每個(gè)Pod有獨(dú)立的Ip地址,無論是否處于同一個(gè)Node節(jié)點(diǎn),Pod可以通過IP相互訪問,且Pod和容器的地址和外部看到的地址是同一個(gè)地址。

    6 Pod SVC Node Container 之間如何相互訪問:

    同Pod內(nèi)的容器:同一個(gè)Pod的容器共享同一個(gè)網(wǎng)絡(luò)命名空間可以直接進(jìn)行通訊

    同Node內(nèi)不同Pod的容器:多個(gè)Pod都關(guān)聯(lián)在同一個(gè)Docker0網(wǎng)橋上,通過docker0網(wǎng)橋完成相互通訊。

    不同Node內(nèi)Pod的容器:不同Node上的docker0可能會(huì)相同,PodIP和docker0是同網(wǎng)段的,所以需要將PodIP和NodeIP進(jìn)行關(guān)聯(lián)且保障唯一,不同Pod之間的數(shù)據(jù)通過物理機(jī)的端口進(jìn)行轉(zhuǎn)發(fā)即可完成通訊。

    7: k8s 和docker swarm如何選擇:  :

    5.2 對(duì)SVC的考察

    SVC是k8s中的核心概念 這里涉及知識(shí)點(diǎn)眾多 常見的面試考點(diǎn)如下

    什么是SVC? 如何創(chuàng)建SVC?

    使用SVC創(chuàng)建多個(gè)副本和使用RC創(chuàng)建多個(gè)副本有什么差異?

    SVC有哪幾種類型?

    SVC 負(fù)載分發(fā)策略有那些?

    集群外如何訪問SVC?

    SVC: 是對(duì)一組功能相似的Pod資源的抽象,相當(dāng)于一組服務(wù)的負(fù)載均衡??梢允褂门渲梦募姆绞絼?chuàng)建也可以使用命令創(chuàng)建kubectl expose

    SVC和RC提供服務(wù)的差距:  RC創(chuàng)建的服務(wù)PodIP可能會(huì)變。SVC提供的clusterIP不會(huì)。通過Iptables的NAT轉(zhuǎn)換重定向到本地端口,在均衡到后端Pod。

    svc的幾種類型:  ClusterIp/NodePort/LoadBalancer/ExternalName

    ClusterIp 默認(rèn)類型 分配的一個(gè)虛擬地址,內(nèi)部可以相互訪問,外部不行

    NodePort 將SVC端口號(hào)映射到物理機(jī)

    LoadBalancer 基于NodePort,云服務(wù)商在外部創(chuàng)建了一個(gè)負(fù)載均衡到Pod

    ExternalName 將外部地址經(jīng)過集群內(nèi)部的再一次封裝(實(shí)際上就是集群DNS服務(wù)器將CNAME解析到了外部地址上),實(shí)現(xiàn)了集群內(nèi)部訪問即可。

    svc負(fù)載分發(fā)策略:  RoundRobin/SessionAffinity/自定義實(shí)現(xiàn)【基于標(biāo)簽選擇器】

    集群外部訪問:  端口映射到物理機(jī)即可

    5.2 Pod考察

    Pod和靜態(tài)Pod的區(qū)別

    生命周期和重啟策略 【這里可擴(kuò)展 不同控制器對(duì)Pod的重啟策略要求】

    Pod如何健康檢查?

    Pod的調(diào)度方式?【擴(kuò)展調(diào)度算法】

    Pod如何擴(kuò)縮容?【擴(kuò)展 RC和RS的差異】

    答案

    待補(bǔ)充 --詳見 《k8s權(quán)威指南》讀書筆記

    5.3 基礎(chǔ)原理類考察

    主要考察對(duì)基本組件的理解 和原理分析

    API Server

    Controller Manager【Replication Controller/Node Controller/ResourceQuota Controller/Namespace Controller/SVC Controller& Endpoint Controller】

    Scheduler

    Kubelet 【Pod健康檢查 資源監(jiān)控】

    Kube-Proxy

    k8s-DNS & Iptables差異

    k8s中Ingress是什么

    簡述k8s中的如下屬性及其作用resources tolerations affinity

    k8s中pod、rs、deployment、hpa的基本概念,以及他們之間的關(guān)系

    答案

    待補(bǔ)充 --詳見 《k8s權(quán)威指南》讀書筆記

    5.4 網(wǎng)絡(luò)原理類考察

    主要考察對(duì)基本組件的理解 和原理分析

    k8s的網(wǎng)絡(luò)模型是什么?

    Docker的網(wǎng)絡(luò)基礎(chǔ)是什么?

    Docker的網(wǎng)絡(luò)模型和局限?

    k8s的網(wǎng)絡(luò)組件之間是如何通訊的?

    外部如何訪問k8s集群?

    有那些開源組件支持k8s網(wǎng)絡(luò)模型?

    三、如何理解LXC與Docker之間的主要區(qū)別

    Docker不是lxc的一個(gè)替代方案?!發(fā)xc”是指linux內(nèi)核(尤指命名空間以及Cgroup)的一個(gè)特性,它允許其他一些沙盒進(jìn)程運(yùn)行在一塊相對(duì)獨(dú)立的空間,并且能夠方便的控制他們的資源調(diào)度。而基于底層的內(nèi)核特性的基礎(chǔ)上,Docker在上層構(gòu)建了一個(gè)更高層次的具備多個(gè)強(qiáng)大功能的工具集:可移植的跨機(jī)器部署。Docker定義了一個(gè)將應(yīng)用打包的規(guī)范,而它的所有依賴都被封裝到了一個(gè)簡單對(duì)象里,它可以被傳輸?shù)饺我庖慌_(tái)能運(yùn)行Docker的機(jī)器,并且在這里啟動(dòng)Docker的實(shí)例之后,它能夠確保承載應(yīng)用的執(zhí)行環(huán)境將會(huì)與之前所定義的完全一致。Lxc實(shí)現(xiàn)了進(jìn)程級(jí)的沙盒封裝,它是可移植部署的一個(gè)重要前提,但是要想實(shí)現(xiàn)可移植部署,僅僅是這樣可還不夠。如果你發(fā)送給我一份安裝到一個(gè)自定義LXC配置下的應(yīng)用副本,那么幾乎可以肯定的是,它在我的機(jī)器上運(yùn)行的結(jié)果不會(huì)跟你的完全一樣,因?yàn)樗壎四銠C(jī)器的一些特殊配置:網(wǎng)絡(luò),存儲(chǔ),日志,Linux發(fā)行版本等等。Docker為這些機(jī)器的特定配置定義了一個(gè)抽象層,所以它使得這些相同的Docker容器能夠一成不變的運(yùn)行在多個(gè)不同的主機(jī)上,甚至帶上各種不同的配置。以應(yīng)用為中心。相對(duì)于機(jī)器而言,Docker被用于優(yōu)化應(yīng)用的部署過程。這可以從它的API,UI,設(shè)計(jì)理念還有文檔里得到體現(xiàn)。反之,lxc的輔助腳本專注在把容器作為一個(gè)輕量級(jí)的機(jī)器使用——基本上就是一堆啟動(dòng)更快并且內(nèi)存需求更小的服務(wù)器。我們認(rèn)為容器技術(shù)的內(nèi)容遠(yuǎn)遠(yuǎn)不止這些。自動(dòng)構(gòu)建。Docker為開發(fā)人員引入了一個(gè)可以用來把他們的源代碼自動(dòng)打包到容器里的工具,并且他們能夠?qū)τ趹?yīng)用的依賴,構(gòu)建工具,打包服務(wù)等有著完全的自主掌控能力。他們能夠自由的使用make,maven,chef,puppet,salt,debian包,rpm包,源碼包,或者任意以上的結(jié)合,而無需關(guān)心機(jī)器本身的配置。版本化。Docker引入了一個(gè)類似git的特性來完成一個(gè)容器的連續(xù)版本追蹤,版本之間的差異diff,新的版本的提交,回滾等。歷史記錄信息里也包含了容器的用戶信息以及他是如何構(gòu)建它的,因此生產(chǎn)環(huán)境的服務(wù)器你都有充足的手段去一步步的定位到最上游的開發(fā)人員。Docker也實(shí)現(xiàn)了一個(gè)增量上傳和下載功能,類似于gitpull,所以更換到新版本的容器只需要傳輸增量部分就行。組件的重用。任意容器都能用作“基礎(chǔ)鏡像”來創(chuàng)建更特定的組件。這可以手工完成也可以做成自動(dòng)構(gòu)建的一部分。例如,你可以準(zhǔn)備一個(gè)理想的python環(huán)境,并且把它用作10個(gè)不同的應(yīng)用的基礎(chǔ)鏡像。你所定義的標(biāo)準(zhǔn)postgresql設(shè)置可以被將來你手上的所有項(xiàng)目重用。諸如此類。共享。Docker有權(quán)訪問一個(gè)公共的注冊(cè)中心(/)而這里有數(shù)以千計(jì)的業(yè)界人士上傳各種各樣有價(jià)值的容器:任一從redis,couchdb,postgres到ircbouncers再到rails應(yīng)用服務(wù)器,Hadoop甚至是多個(gè)發(fā)行版本的基礎(chǔ)鏡像。該注冊(cè)中心也包含了一個(gè)官方的“標(biāo)準(zhǔn)庫”,這里提供了一些由Docker官方團(tuán)隊(duì)維護(hù)的實(shí)用容器。注冊(cè)中心本身也是開源的,所以任何人都能部署他們自己的私有注冊(cè)中心來存儲(chǔ)和下發(fā)私有容器,例如用于內(nèi)網(wǎng)服務(wù)器的部署。工具生態(tài)圈。Docker定義了一個(gè)API來自動(dòng)化和個(gè)性化的創(chuàng)建和部署容器。也因此催生了眾多的工具集成到Docker,為之提供一些擴(kuò)展特性。類PaaS的部署(Dokku,Deis,F(xiàn)lynn),多節(jié)點(diǎn)編排(maestro,salt,mesos,openstacknova),管理看板(docker-ui,openstackhorizon,shipyard),配置管理(chef,puppet),持續(xù)集成(jenkins,strider,travis)等等。Docker正在迅速的建立以它本身為標(biāo)準(zhǔn)的基于容器的工具生態(tài)圈。

    四、如何使用docker 進(jìn)行開發(fā)

    Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口(類似 iPhone 的 app)。

    以上就是關(guān)于docker微信機(jī)器人相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    does用英語怎么說(1到20的英語怎么說)

    shadowing影子跟讀法

    chat的doing

    鹽城園林景觀設(shè)計(jì)品牌(鹽城園林景觀設(shè)計(jì)公司)

    福州正大廣場景觀設(shè)計(jì)(福州正大廣場景觀設(shè)計(jì)招聘)