国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

docker在k8s容器中的作用,以及docker的底層原理,以及k8s的常用命令

這篇具有很好參考價值的文章主要介紹了docker在k8s容器中的作用,以及docker的底層原理,以及k8s的常用命令。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一、docker是什么?

? ? Docker的設(shè)計思想就是創(chuàng)建軟件程序可移植性的輕量級容器,讓其可以在任何安裝了Docker的機(jī)器上,不用關(guān)心底層操作系統(tǒng),就可以運(yùn)行開發(fā)程序,就像集裝箱一樣使用。

Docker 是一個開源的應(yīng)用容器引擎,基于 Go 語言 并遵從Apache2.0協(xié)議開源。

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

二、Docker的底層原理

? ? Docker的底層原理是利用了linux的Cgroups和Namespace技術(shù)。cgroups是用來制造約束的主要手段,而namespace技術(shù)是用來修改進(jìn)程視圖(隔離)的主要方法。

? docker容器只是一個特殊一點(diǎn)的進(jìn)程而已

三、Docker的應(yīng)用場景

Web 應(yīng)用的自動化打包和發(fā)布。

自動化測試和持續(xù)集成、發(fā)布。

在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺應(yīng)用。

從頭編譯或者擴(kuò)展現(xiàn)有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環(huán)境

四、Docker 的優(yōu)點(diǎn)

容器和虛擬機(jī)具有相似的資源隔離和分配優(yōu)勢,但功能不同,因?yàn)槿萜魈摂M化了操作系統(tǒng),而不是硬件。容器更加便攜和高效。

簡單來說可以快捷交付部署,啟動速度快,減少開發(fā)環(huán)境安裝;輕松的遷移和擴(kuò)展項目。

1、簡化程序:

Docker 讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,便可以實(shí)現(xiàn)虛擬化。Docker改變了虛擬化的方式,使開發(fā)者可以直接將自己的成果放入Docker中進(jìn)行管理。方便快捷已經(jīng)是 Docker的最大優(yōu)勢,過去需要用數(shù)天乃至數(shù)周的 任務(wù),在Docker容器的處理下,只需要數(shù)秒就能完成。

2、節(jié)省開支:

其對系統(tǒng)的資源利用率很高,一臺主機(jī)可以運(yùn)行多個Docker容器。Docker 與云的結(jié)合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式

五、Docker 架構(gòu)

容器與鏡像的關(guān)系類似于面向?qū)ο缶幊讨械膶ο笈c類。

Docker使用C/S架構(gòu),通過客戶端連接到Docker服務(wù)器上從而管理Docker服務(wù)理面的鏡像和容器,類似git的架構(gòu)。

Docker 鏡像(Images)

Docker 鏡像是用于創(chuàng)建 Docker 容器的模板,可創(chuàng)建多個Docker容器。

Docker 容器(Container)

容器是獨(dú)立運(yùn)行的一個或一組應(yīng)用??梢员粏?、運(yùn)行、停止、刪除,且容器間相互隔離。

Docker 客戶端(Client)

Docker客戶端通過命令行或者其他工具使用 Docker API

(https://docs.docker.com/reference/api/docker_remote_api) 與 Docker 的守護(hù)進(jìn)程通信。

Docker 主機(jī)(Host)

一個物理或者虛擬的機(jī)器用于執(zhí)行 Docker 守護(hù)進(jìn)程和容器。

Docker 倉庫(Registry)

Docker 倉庫用來保存鏡像,可以理解為代碼控制中的代碼倉庫。

Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。

Docker Machine

Docker Machine是一個簡化Docker安裝的命令行工具,通過一個簡單的命令行即可在相應(yīng)的平臺上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

六、Docker 使用

數(shù)據(jù)卷使用:

數(shù)據(jù)卷是一個或多個容器使用的特殊目錄,它繞過UFS,可以提供很多有用的特性:

1、數(shù)據(jù)卷可以再容器間共享和使用;

2、對數(shù)據(jù)卷的修改會立即生效;

3、對數(shù)據(jù)卷的更新不會影響鏡像;

4、數(shù)據(jù)卷默認(rèn)會一直存在,即使容器刪除。

注意:數(shù)據(jù)卷的使用類似于Linux下對目錄或文件進(jìn)行mount,鏡像中的被指定為掛載點(diǎn)的目錄的文件會影藏掉,能顯示看到的是掛載的數(shù)據(jù)卷。

使用數(shù)據(jù)卷可以使本地的代碼運(yùn)行在docker容器中。

掛載數(shù)據(jù)卷的前提是授權(quán)本地磁盤。

docker run -d --name test_3 -v data_3:/data_3 nginx # 運(yùn)行test_3容器,掛載data_3數(shù)據(jù)卷到容器的/data_3目錄作為數(shù)據(jù)卷 docker volume list #查看宿主機(jī)中的數(shù)據(jù)卷

Docker常用命令:

# 運(yùn)行一個容器 docker run -it -p 8088:8088 -p 8089:8089 -p 8090:9090 -v /root/soft/docker:/root/soft/docker -v /root/soft/dockertt:/root/soft/dockertt loen/rc /bin/bash

命令的格式: Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -a, --attach=[] 登錄容器(以docker run -d啟動的容器) -c, --cpu-shares=0 設(shè)置容器CPU權(quán)重,在CPU共享場景使用 --cap-add=[] 添加權(quán)限,權(quán)限清單詳見:http://linux.die.net/man/7/capabilities --cap-drop=[] 刪除權(quán)限,權(quán)限清單詳見:http://linux.die.net/man/7/capabilities --cidfile="" 運(yùn)行容器后,在指定文件中寫入容器PID值,一種典型的監(jiān)控系統(tǒng)用法 --cpuset="" 設(shè)置容器可以使用哪些CPU,此參數(shù)可以用來容器獨(dú)占CPU -d, --detach=false 指定容器運(yùn)行于前臺還是后臺 --device=[] 添加主機(jī)設(shè)備給容器,相當(dāng)于設(shè)備直通 --dns=[] 指定容器的dns服務(wù)器 --dns-search=[] 指定容器的dns搜索域名,寫入到容器的/etc/resolv.conf文件 -e, --env=[] 指定環(huán)境變量,容器中可以使用該環(huán)境變量 --entrypoint="" 覆蓋image的入口點(diǎn) --env-file=[] 指定環(huán)境變量文件,文件格式為每行一個環(huán)境變量 --expose=[] 指定容器暴露的端口,即修改鏡像的暴露端口 -h, --hostname="" 指定容器的主機(jī)名 -i, --interactive=false 打開STDIN,用于控制臺交互 --link=[] 指定容器間的關(guān)聯(lián),使用其他容器的IP、env等信息 --lxc-conf=[] 指定容器的配置文件,只有在指定--exec-driver=lxc時使用 -m, --memory="" 指定容器的內(nèi)存上限 --name="" 指定容器名字,后續(xù)可以通過名字進(jìn)行容器管理,links特性需要使用名字 --net="bridge" 容器網(wǎng)絡(luò)設(shè)置,待詳述 -P, --publish-all=false 指定容器暴露的端口,待詳述 -p, --publish=[] 指定容器暴露的端口,待詳述 --privileged=false 指定容器是否為特權(quán)容器,特權(quán)容器擁有所有的capabilities --restart="" 指定容器停止后的重啟策略,待詳述 --rm=false 指定容器停止后自動刪除容器(不支持以docker run -d啟動的容器) --sig-proxy=true 設(shè)置由代理接受并處理信號,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理 -t, --tty=false 分配tty設(shè)備,該可以支持終端登錄 -u, --user="" 指定容器的用戶 -v, --volume=[] 給容器掛載存儲卷,掛載到容器的某個目錄 --volumes-from=[] 給容器掛載其他容器上的卷,掛載到容器的某個目錄 -w, --workdir="" 指定容器的工作目錄 >>>>>> 詳細(xì)講解 端口暴露 -P參數(shù):docker自動映射暴露端口; docker run -d -P training/webapp <span >//docker自動在host上打開49000到49900的端口,映射到容器(由鏡像指定,或者--expose參數(shù)指定)的暴露端口;</span> -p參數(shù):指定端口或IP進(jìn)行映射; docker run -d -p 5000:80 training/webapp <span >//host上5000號端口,映射到容器暴露的80端口;</span> docker run -d -p 127.0.0.1:5000:80 training/webapp <span >//host上127.0.0.1:5000號端口,映射到容器暴露的80端口;</span> docker run -d -p 127.0.0.1::5000 training/webapp <span >//host上127.0.0.1:隨機(jī)端口,映射到容器暴露的80端口;</span> docker run -d -p 127.0.0.1:5000:5000/udp training/webapp <span >//綁定udp端口;</span> 網(wǎng)絡(luò)配置 --net=bridge: <span >//使用docker daemon指定的網(wǎng)橋</span> --net=host: <span >//容器使用主機(jī)的網(wǎng)絡(luò)</span> --net=container:NAME_or_ID:<span >//使用其他容器的網(wǎng)路,共享IP和PORT等網(wǎng)絡(luò)資源</span> --net=none: <span >//容器使用自己的網(wǎng)絡(luò)(類似--net=bridge),但是不進(jìn)行配置</span>

# 關(guān)閉運(yùn)行中的容器 docker stop 容器ID

# 啟動一個已經(jīng)停止的容器 docker start 容器ID # 重啟一個容器 docker restart 容器ID

# 進(jìn)入一個運(yùn)行中的容器 docker attach 容器ID

# 顯示全部容器 docker ps -a # 顯示當(dāng)前運(yùn)行的容器 docker ps

# 查看本地鏡像 docker images

# 刪除所有鏡像 docker rmi $(docker images | grep -v RESPOSITORY | awk '{print $3}')

# 構(gòu)建容器 docker build -t 鏡像名稱 . # 后面的. 指的是當(dāng)前文件夾 (其實(shí)是Dockerfile存放的文件夾) # 建立映像文件。–rm 選項是告訴Docker,在構(gòu)建完成后刪除臨時的Container,Dockerfile的每一行指令都會創(chuàng)建一個臨時的Container,一般這些臨時生成的Container是不需要的 docker build --rm=true -t loen/lamp .

# 刪除容器 docker rm 容器ID # 刪除所有容器 docker rm $(docker ps -a)

# 查看歷史 docker history 鏡像I

# 導(dǎo)出容器 docker export 容器ID > xxx.tar

# 把 mynewimage 鏡像保存成 tar 文件 docker save myimage | bzip2 -9 -c> /home/save.tar.bz2

# 加載 myimage 鏡像 bzip2 -d -c < /home/save.tar.bz2 | docker load

七、安裝

Docker相關(guān)鏡像: ?https://hub.docker.com/_/centos ?搜索鏡像

參考官網(wǎng) http://www.docker.org.cn/book/install/supported-platform-17.html , # yum -y install docker https://www.w3cschool.cn/docker/centos-docker-install.html

八、Docker FAQ

轉(zhuǎn)載 ?: ?https://blog.lab99.org/post/docker-2016-07-14-faq.html

九、k8s

K8S,就是基于容器的集群管理平臺,它的全稱,是kubernetes。

k8s是一個編排容器的工具,其實(shí)也是管理應(yīng)用的全生命周期的一個工具,從創(chuàng)建應(yīng)用,應(yīng)用的部署,應(yīng)用提供服務(wù),擴(kuò)容縮容應(yīng)用,應(yīng)用更新,都非常的方便,而且可以做到故障自愈,例如一個服務(wù)器掛了,可以自動將這個服務(wù)器上的服務(wù)調(diào)度到另外一個主機(jī)上進(jìn)行運(yùn)行,無需進(jìn)行人工干涉。

一個K8S集群(Cluster)。

這個集群主要包括兩個部分:

一個Master節(jié)點(diǎn)(主節(jié)點(diǎn))

一群Node節(jié)點(diǎn)(計算節(jié)點(diǎn)

Master節(jié)點(diǎn)主要還是負(fù)責(zé)管理和控制。Node節(jié)點(diǎn)是工作負(fù)載節(jié)點(diǎn),里面是具體的容器。

Master節(jié)點(diǎn)包括API Server、Scheduler、Controller manager、etcd。

API Server是整個系統(tǒng)的對外接口,供客戶端和其它組件調(diào)用,相當(dāng)于“營業(yè)廳”。

Scheduler負(fù)責(zé)對集群內(nèi)部的資源進(jìn)行調(diào)度,相當(dāng)于“調(diào)度室”。

Controller manager負(fù)責(zé)管理控制器,相當(dāng)于“大總管”。

Node節(jié)點(diǎn)包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可選),還有就是Pod。

Docker,創(chuàng)建容器的。

Kubelet,主要負(fù)責(zé)監(jiān)視指派到它所在Node上的Pod,包括創(chuàng)建、修改、監(jiān)控、刪除等。

Kube-proxy,主要負(fù)責(zé)為Pod對象提供代理。

Fluentd,主要負(fù)責(zé)日志收集、存儲與查詢。

Pod是Kubernetes最基本的操作單元。一個Pod代表著集群中運(yùn)行的一個進(jìn)程,它內(nèi)部封裝了一個或多個緊密相關(guān)的容器。集群調(diào)度的最小單元就是一個pod,一個pod可以是一個容器,也可以是多個容器,例如你運(yùn)行一個程序,其中使用了nginx,使用mysql了,使用了jetty,那么可以將這三個使用在同一個pod中,對他們提供統(tǒng)一的調(diào)配能力,一個pod只能運(yùn)行在一個主機(jī)上,而一個主機(jī)上可以有多個pod。

k8s的全生命周期管理

????在k8s進(jìn)行管理應(yīng)用的時候,基本步驟是:創(chuàng)建集群,部署應(yīng)用,發(fā)布應(yīng)用,擴(kuò)展應(yīng)用,更新應(yīng)用

??k8s常用命令

?1、英文幫助信息

????1、kubectl -h 查看具體操作參數(shù) ???

??2、查看類命令

????1、獲取節(jié)點(diǎn)相應(yīng)服務(wù)的信息:kubectl get nodes

kubectl get pods

??按selector名來查找pod

kubectl get pod --selector name=redis

????2、查看集群信息

kubectl cluster-info

????3、查看各組件信息

kubectl -s http://localhost:8080 get componentstatuses

????4、查看pods所在的運(yùn)行節(jié)點(diǎn)

kubectl get pods -o wide

????5、查看pods定義的詳細(xì)信息

kubectl get pods -o yaml

????6、查看運(yùn)行的pod的環(huán)境變量

kubectl exec pod名 env

????7、查看指定pod的日志

kubectl logs -f pods/heapster-xxxxx -n kube-system

?3、操作類命令

????1、創(chuàng)建資源

kubectl create -f 文件名.yaml

????2、重建資源

kubectl replace -f 文件名 ?[--force]

?????3、刪除資源

kubectl delete -f 文件名

kubectl delete pod pod名

kubectl delete rc rc名

kubectl delete service service名

kubectl delete pod --all文章來源地址http://www.zghlxwxcb.cn/news/detail-859710.html

到了這里,關(guān)于docker在k8s容器中的作用,以及docker的底層原理,以及k8s的常用命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 如何監(jiān)控容器或K8s中的OpenSearch

    如何監(jiān)控容器或K8s中的OpenSearch

    當(dāng)前 OpenSearch 使用的越來越多, 但是 OpenSearch 生態(tài)還不盡完善. 針對如下情況: 監(jiān)控容器化或運(yùn)行在 K8s 中的 OpenSearch 我查了下, 官方還沒有提供完備的方案. 這里如何監(jiān)控 K8s 中的 OpenSearch, 包括安裝 exporter 插件、采集、展示全環(huán)節(jié)。 OpenSearch 是一款開源的分布式搜索引擎(從

    2024年04月10日
    瀏覽(28)
  • 容器技術(shù),1. Docker,2. Kubernetes(K8s):

    容器技術(shù),1. Docker,2. Kubernetes(K8s):

    目錄 容器技術(shù) 1. Docker: 2. Kubernetes(K8s): Docker和Kubernetes 容器的主要應(yīng)用場景有哪些? 有效的將單個操作系統(tǒng)的資源劃分到孤立的組中,以便更好的在孤立的組之間平衡有沖突的資源使用需求,這種技術(shù)就是容器技術(shù)。 容器技術(shù)指通過在物理主機(jī)操作系統(tǒng)上創(chuàng)建一個一個

    2024年02月11日
    瀏覽(29)
  • 容器化(Docker、K8S)部署Elasticsearch + Kibana

    ElasticSearch簡介 本次實(shí)驗(yàn)?zāi)繕?biāo) 實(shí)驗(yàn)環(huán)境 Docker部署Elasticsearch + Kibana 安裝中文分詞器插件,配置認(rèn)證 基本操作 在華為云CCE中部署 使用Logstash進(jìn)行數(shù)據(jù)遷移

    2024年01月19日
    瀏覽(32)
  • 容器的崛起——Docker與K8s的相愛相殺

    容器的崛起——Docker與K8s的相愛相殺

    對于K8s啟用docker,作為普通開發(fā)者的體感是,k8s不就是docker的集群操作嗎?k8s棄用docker就像魚反對水一樣不可思議,那么這兩個技術(shù)究竟是什么關(guān)系,Kubernetes 是如何一步步與 Docker 解耦的,請看下文。 向應(yīng)用代碼隱藏分布式架構(gòu)復(fù)雜度、讓分布式架構(gòu)得以成為一種能夠普遍

    2023年04月08日
    瀏覽(94)
  • K8S容器運(yùn)行時從Docker切換為Containerd

    K8S從1.24版本起不再支持docker容器引擎,可選的替代品有 containerd 、 cri-o 、 podman 。下面演示將單個node節(jié)點(diǎn)的容器引擎從docker切換為containerd的過程。 檢查是否已經(jīng)加載內(nèi)核模塊 overlay 和 br_netfilter 。 如果沒有,手動加載內(nèi)核模塊: 檢查系統(tǒng)內(nèi)核參數(shù): 如果沒有開啟,手動調(diào)

    2024年02月09日
    瀏覽(36)
  • 深入探討Kubernetes(K8s)在云原生架構(gòu)中的關(guān)鍵作用和應(yīng)用

    深入探討Kubernetes(K8s)在云原生架構(gòu)中的關(guān)鍵作用和應(yīng)用

    ??個人主頁:程序員 小侯 ??CSDN新晉作者 ??歡迎 ??點(diǎn)贊?評論?收藏 ?收錄專欄:云計算 ?文章內(nèi)容:Kubernetes(K8s) ??希望作者的文章能對你有所幫助,有不足的地方請在評論區(qū)留言指正,大家一起學(xué)習(xí)交流!?? 隨著云原生應(yīng)用程序的興起,Kubernetes(通常稱為K8s)

    2024年02月09日
    瀏覽(86)
  • K8S系列文章 之 容器網(wǎng)絡(luò)基礎(chǔ) Docker0

    K8S系列文章 之 容器網(wǎng)絡(luò)基礎(chǔ) Docker0

    使用 ip addr 命令看一下網(wǎng)卡: 其中l(wèi)o是本地回環(huán)地址,docker0就是docker0地址,也就是docker的地址172.17.0.1。 docker使用的是橋接模式,使用的技術(shù)是evth-pair技術(shù),后面會解釋。 比如有兩個容器,容器A要去訪問容器B,該如何訪問?使用127.0.0.1嗎?還是寫docker0地址? 我們運(yùn)行起一

    2024年02月14日
    瀏覽(22)
  • 關(guān)于java k8s容器環(huán)境中的jvm配置與優(yōu)化

    關(guān)于java k8s容器環(huán)境中的jvm配置與優(yōu)化

    環(huán)境 版本 備注 k8s v1.22+ 配置cpu/mem limit、健康/就緒檢查 openjdk 8 openjdk version \\\"1.8.0_342\\\" k8s容器化(docker)環(huán)境更好的解決了 java app 運(yùn)行環(huán)境的封裝問題。但存在著一些限制,比如 Java 并不能發(fā)現(xiàn) pod 設(shè)置的內(nèi)存限制(mem limit,java 默認(rèn)以宿主機(jī)的內(nèi)存為基準(zhǔn)),當(dāng) java 內(nèi)存占用

    2024年02月16日
    瀏覽(23)
  • K8S自動化運(yùn)維容器化(Docker)集群程序

    K8S自動化運(yùn)維容器化(Docker)集群程序

    1.什么是K8S K8S全程為Kubernetes,由于K到S直接有8個字母簡稱為K8S。 版本:目前一般是1.18~1.2.0,后續(xù)可能會到1.24-1.26,1.24版本后丟棄了docker(如需要使用需要第三方插件配合),目前最新版本是1.27 官網(wǎng):https://kubernetes.io GitHub:GitHub - kubernetes/kubernetes: Production-Grade Container Schedul

    2024年02月10日
    瀏覽(32)
  • ?k8s 1.24 1.25 集群使用docker作為容器

    背景 在新版本Kubernetes環(huán)境(1.24以及以上版本)下官方不在支持docker作為容器運(yùn)行時了,若要繼續(xù)使用docker 需要對docker進(jìn)行配置一番。需要安裝cri-docker作為Kubernetes容器 查看當(dāng)前容器運(yùn)行時 安裝docker 安裝cri-docker 為kubelet配置容器運(yùn)行時 關(guān)于 https://www.oiox.cn/ https://www.oiox.cn

    2024年02月12日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包