亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Docker底層技術(shù)Namespace Cgroup應(yīng)用詳解

 更新時(shí)間:2019年10月29日 08:20:00   作者:51cto  
在本篇文章里小編給大家整理的是關(guān)于Docker底層技術(shù)Namespace Cgroup應(yīng)用的相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。

Docker底層技術(shù):

docker底層的2個(gè)核心技術(shù)分別是Namespaces和Control groups

Namespace:是容器虛擬化的核心技術(shù),用來(lái)隔離各個(gè)容器,可解決容器之間的沖突。

主要通過(guò)以下六項(xiàng)隔離技術(shù)來(lái)實(shí)現(xiàn):
有兩個(gè)偽文件系統(tǒng):/proc和/sys/

  • UTS:允許每個(gè)container擁有獨(dú)立的hostname(主機(jī)名)和domainname(域名),使其在網(wǎng)絡(luò)上可以被視作一個(gè)獨(dú)立的節(jié)點(diǎn)而非Host上的一個(gè)進(jìn)程。
  • IPC:contaner中進(jìn)程交互還是采用linux常見(jiàn)的進(jìn)程間交互方法,包括常見(jiàn)的信號(hào)量,消息隊(duì)列和共享內(nèi)存。container的進(jìn)程間交互實(shí)際上還是host上具有相同pid中的進(jìn)程交互。
  • PID:不同用戶的進(jìn)程就是通過(guò)pid namesapce隔離開(kāi)的,且不同namespace中可以有相同pid。所有的LXC(linux containers)進(jìn)程在docker中的父進(jìn)程為docker進(jìn)程,每個(gè)LXC進(jìn)程具有不同的namespace。
  • NET:不同用戶的進(jìn)程就是通過(guò)pidnamespace隔離開(kāi)的,且不同namespace中可以有相同pid。所有的LXC進(jìn)程在docker中的父進(jìn)程為docker進(jìn)程,每個(gè)lxc進(jìn)程具有不同的namespace。
  • MNT:文件系統(tǒng)的掛載點(diǎn)。
  • USRE:每個(gè)container可以有不同的user和groupid,也就是說(shuō)可以在container內(nèi)部用container內(nèi)部的用戶執(zhí)行程序而非Host上的用戶。

只要解耦了這6項(xiàng),其他系統(tǒng)資源即便有共用的情況,計(jì)算機(jī)也認(rèn)為是在兩個(gè)不同的系統(tǒng)中。

cgroup(控制程序?qū)Y源的占用)

實(shí)現(xiàn)cgroup是的主要目的是為不同用戶層面的資源管理,提供一個(gè)統(tǒng)一化的接口。從單個(gè)進(jìn)程的資源控制到操作系統(tǒng)層面的虛擬化。

cgroup的作用:

1) 資源的限制:cgroup可以對(duì)進(jìn)程組使用的資源總額進(jìn)行限制。
2) 優(yōu)先級(jí)分配:通過(guò)分配的cpu時(shí)間片數(shù)量及磁盤(pán)IO帶寬大小,實(shí)際上就是相當(dāng)于控制了進(jìn)程運(yùn)行的優(yōu)先級(jí)
3) 資源統(tǒng)計(jì):Cgroup可以統(tǒng)計(jì)系統(tǒng)資源使用量。比如cpu使用時(shí)間,內(nèi)存使用量等。
可用于按量計(jì)費(fèi)。
4) 進(jìn)程控制:可以對(duì)進(jìn)程組執(zhí)行掛起,恢復(fù)等操作。

cgroup的應(yīng)用:

1)內(nèi)存和交換分區(qū)的限制:

容器內(nèi)包括兩個(gè)部分:物理內(nèi)存和swap

在docker中可以通過(guò)參數(shù)控制容器內(nèi)存的使用:

-m或--memory:設(shè)置內(nèi)存的使用限額

--memory-swap:設(shè)置swap(交換分區(qū))的使用限額

//基于centos鏡像,限制內(nèi)存為200M,交換分區(qū)的內(nèi)存為300M

[root@sqm-docker01 ~]# docker run -it -m 200M --memory-swap 300M centos

進(jìn)入容器查看限制的內(nèi)存:

[root@05a0be7b870a /]# cat /sys/fs/cgroup/memory/memory.limit_in_bytes 
209715200  #顯示的是字節(jié)

[root@05a0be7b870a /]# cat /sys/fs/cgroup/memory/memory.memsw.limit_in_bytes 
314572800

2)容器對(duì)cpu限制:

通過(guò)-c或者--cpu-shares設(shè)置容器實(shí)驗(yàn)cpu的權(quán)重。如果不設(shè)置默認(rèn)是1024.

//基于centos鏡像,運(yùn)行一個(gè)容器,名字為containerB,cpu權(quán)重限制為512:
[root@sqm-docker01 ~]# docker run -it --name containerB -c 512 centos
[root@b2cf9f28ce1d /]# cat /sys/fs/cgroup/cpu/cpu.shares 
512

3)限制容器的Block io(磁盤(pán)的讀寫(xiě)):

bps:每秒讀寫(xiě)的數(shù)據(jù)量。byte per second
iops:每秒io的次數(shù)。 io per second

--device-read-bps:設(shè)置讀取設(shè)備的bps
--device-write-bps:設(shè)置寫(xiě)入設(shè)備的bps

--device-read-iops:設(shè)置讀取設(shè)備的iops
--device-write-iops:設(shè)置寫(xiě)入設(shè)備的iops

//創(chuàng)建一個(gè)容器名為testA,并限制該磁盤(pán)每秒寫(xiě)入的數(shù)量為為30MB。
[root@sqm-docker01 ~]# docker run -it --name testA --device-write-bps /dev/sda:30MB centos

寫(xiě)入數(shù)據(jù)進(jìn)行測(cè)試:

參數(shù)解釋:
infile=從/dev/zero中提取
outfile=自定義一個(gè)名稱
bs=1M 文件大小為1M
count=800 總共寫(xiě)800次。
oflag=direct:用來(lái)指定directory IO方式寫(xiě)文件,這樣才會(huì)使--device-write-bps生效。

可以發(fā)現(xiàn)每秒寫(xiě)入的數(shù)量為80M,大概用時(shí)26s。

正常寫(xiě)入磁盤(pán)時(shí):

以上就是本次介紹的關(guān)于Docker底層技術(shù)全部知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。

相關(guān)文章

  • IDEA中進(jìn)行Docker項(xiàng)目部署的實(shí)現(xiàn)步驟

    IDEA中進(jìn)行Docker項(xiàng)目部署的實(shí)現(xiàn)步驟

    這篇文章主要介紹了IDEA中進(jìn)行Docker項(xiàng)目部署的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • docker鏡像訪問(wèn)本地elasticsearch端口操作

    docker鏡像訪問(wèn)本地elasticsearch端口操作

    這篇文章主要介紹了docker鏡像訪問(wèn)本地elasticsearch端口操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • docker安裝RabbitMQ詳細(xì)步驟

    docker安裝RabbitMQ詳細(xì)步驟

    大家好,本篇文章主要講的是docker安裝RabbitMQ詳細(xì)步驟,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • centos搭建部署docker環(huán)境的詳細(xì)步驟

    centos搭建部署docker環(huán)境的詳細(xì)步驟

    Docker 將程序與程序的運(yùn)行環(huán)境打包在一起,從而避免了復(fù)雜的環(huán)境配置,下面這篇文章主要給大家介紹了關(guān)于centos搭建部署docker環(huán)境的詳細(xì)步驟,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 清理Docker廢棄鏡像與緩存詳細(xì)圖文教程

    清理Docker廢棄鏡像與緩存詳細(xì)圖文教程

    在使用Docker進(jìn)行開(kāi)發(fā)和部署過(guò)程中,我們可能會(huì)遇到需要?jiǎng)h除舊鏡像和容器以釋放磁盤(pán)空間或清除不再需要的緩存的情況,這篇文章主要給大家介紹了關(guān)于清理Docker廢棄鏡像與緩存的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • 綁定Dokcer容器到主機(jī)指定網(wǎng)卡的方法

    綁定Dokcer容器到主機(jī)指定網(wǎng)卡的方法

    這篇文章主要介紹了綁定 Dokcer 容器到主機(jī)指定網(wǎng)卡的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • Docker搭建 Nginx+PHP+MySQL 環(huán)境并部署WordPress實(shí)踐

    Docker搭建 Nginx+PHP+MySQL 環(huán)境并部署WordPress實(shí)踐

    本文給大家分享的是作者基于Docker搭建 Nginx+PHP+MySQL 環(huán)境并部署WordPress的詳細(xì)過(guò)程,非常的全面,有需要的小伙伴可以參考下
    2017-02-02
  • Docker如何查看正在運(yùn)行的容器目錄

    Docker如何查看正在運(yùn)行的容器目錄

    這篇文章主要介紹了Docker如何查看正在運(yùn)行的容器目錄問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 一文帶你快速了解和使用Docker

    一文帶你快速了解和使用Docker

    本文對(duì) Docker 進(jìn)行全面闡述,詳細(xì)介紹 Docker 的作用、其基本使用,如常用命令、Dockerfile 的作用及使用、Docker Compose 的作用及使用,感興趣的同學(xué)跟著小編一起來(lái)學(xué)習(xí)吧
    2023-05-05
  • docker 文件存放路徑, 修改端口映射操作方式

    docker 文件存放路徑, 修改端口映射操作方式

    這篇文章主要介紹了docker 文件存放路徑, 修改端口映射操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03

最新評(píng)論