• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      系統(tǒng)管理員必讀的容器入門指南

      2019-09-10 00:20:40李榮
      計算機與網絡 2019年17期
      關鍵詞:鏡像調用引擎

      李榮

      “容器”無疑是近年IT業(yè)界的buzzword,不過,在不同語境下,它對不同的人有不同的含義。在本文中,將從Linux容器、容器鏡像和寫時復制等方面來闡釋容器的具體含義。

      Linux容器

      傳統(tǒng)意義上的Linux容器實際上只是Linux系統(tǒng)上的普通進程。這些進程組使用資源約束(cgroups)、Linux安全約束(Unix權限、功能、SELinux、AppArmor和seccomp等)和命名空間(PID、網絡和掛載等)與其他進程組隔離開來。

      如果啟動一個Linux系統(tǒng)并且查看使用cat /proc/PID/ cgroup的任意進程,將看到在cgroup中的某一進程。如果查看/proc/PID/status,則會看到其功能。如果查看/ proc / self / attr / current,將會獲取SELinux標簽們。如果查看/proc/PID/ns,會在其中看到一系列命名空間的進程。

      所以,如果將容器定義為具有資源限制、Linux安全約束以及命名空間的進程,那么根據(jù)這一定義,Linux系統(tǒng)上的每個進程都運行在容器中。這就是為什么有人說“Linux即容器,容器即Linux”。而容器運行時則是修改這些資源限制、安全約束以及命名空間,并且可以啟動容器的程序。

      容器鏡像

      Docker引入了容器鏡像的概念,這是一個標準的TAR文件,它包含了:

      容器根文件系統(tǒng)(rootfs):在操作系統(tǒng)上帶有根目錄(/)標識的目錄,例如:/usr,/var,/home等。

      JSON文件(容器配置):JSON文件會規(guī)定如何運行rootfs,例如:當容器啟動時應該在rootfs中運行什么指令或entrypoint,應該為容器設置什么樣的環(huán)境變量,容器的工作目錄是什么等。

      Docker基礎鏡像由根文件系統(tǒng)和JSON文件組成,可以通過在基礎鏡像的根文件系統(tǒng)中安裝所需的內容,以更新JSON文件,并且新建一個鏡像層,通過這種方式可以制作一個新的鏡像。

      容器鏡像的定義最終由Open Container Initiative(OCI)標準化為OCI鏡像規(guī)范。

      用于構建容器鏡像的工具被稱為容器鏡像構建器(如Dockerfile),有時容器引擎也能夠完成構建容器鏡像的工作,當然也可以使用一些可以構建容器鏡像的獨立工具。

      Docker獲取了這些容器鏡像(tarballs)然后將他們上傳到一個Web服務中,可以從中拉取他們。然后Docker會開發(fā)一個協(xié)議以便順利拉取這些鏡像,而這一Web服務便被稱為容器鏡像倉庫。

      容器引擎可以從容器鏡像倉庫中拉取鏡像,然后將其重組到容器存儲上。此外,容器引擎也能啟動容器運行。

      Copy On Write

      容器存儲通常是一個寫時復制(COW)分層文件系統(tǒng)。當從鏡像倉庫中拉取一個鏡像時,首先,要從鏡像中提取rootfs并且將其放到磁盤上。如果鏡像由多層組成,那么在COW文件系統(tǒng)中需要將下載的每一層鏡像文件儲存在不同的層中。COW文件系統(tǒng)允許每一層分開存儲,這將分層鏡像的共享最大化。容器引擎通常支持不同類型的容器存儲,如overlay,devicemapper,btrfs,aufs,zfs等。

      容器運行時

      容器引擎將容器鏡像下載到容器存儲中后,它需要創(chuàng)建一個容器運行的配置文件。這一配置文件結合了調用程序/用戶的輸入以及容器鏡像規(guī)范的內容。舉個例子,調用程序可能想對正在運行的容器進行指定的安全性修改、添加環(huán)境變量或者將volumes掛載到容器上,這都是調用程序輸入的內容。

      容器運行時配置和分解的rootfs同樣也被OCI標準化為OCI運行時規(guī)范。

      最后,容器引擎啟動讀取運行時規(guī)范的容器運行時,修改Linux cgroup、Linux安全約束以及命名空間,并且啟動容器命令以創(chuàng)建PID1(Process ID1)。此時,容器引擎可以將stdin / stdout傳回調用程序并控制容器(如,停止、啟動和附加等)。

      請注意,許多新的容器運行時在讓Linux的不同部分來隔離容器。人們先可以使用KVM分離(如迷你虛擬機)運行容器,或者可以使用其他hypervisor策略(例如,攔截容器進程中的所有系統(tǒng)調用)。既然我們已經擁有一個標準的運行時規(guī)范,那么就能夠通過相同的容器引擎啟動這些工具。甚至Windows也可以使用OCI運行時規(guī)范來啟動Windows容器。

      容器編排引擎

      容器編排引擎,相比其他容器工具而言,則處于更高的級別。容器編排是用于協(xié)調多個不同節(jié)點上的容器執(zhí)行工具。容器編排引擎可以通過與容器引擎通信以管理容器,如啟動容器并且將其網絡連接在一起。它還能夠監(jiān)控容器以及在負載增加時啟動其他容器。

      Kubernetes是目前使用最為廣泛的容器編排引擎,被大量的中小型企業(yè)用戶用于開發(fā)或生產環(huán)境,并且已經成為業(yè)界公認的容器編排管理的標準框架。但是原生的Kubernetes因其學習曲線陡峭對于大多數(shù)開發(fā)人員而言很難直接上手使用。Rancher作為一個開源的企業(yè)級Kubernetes容器管理平臺,其簡潔直觀的界面風格和操作體驗可以極大程度地解決這一問題。并且Rancher實現(xiàn)了Kubernetes集群在混合云+本地數(shù)據(jù)中心的集中部署與管理,能統(tǒng)一納管位于不同基礎架構上的Kubernetes集群。此外,Rancher也將用戶的安全問題放在首位。Kubernetes于8月6日發(fā)布新的補丁版本之后,Rancher反應迅速,在1天之后發(fā)布了全新版本Rancher 2.2.7,修復了CVE并支持Kubernetes新版本。

      猜你喜歡
      鏡像調用引擎
      鏡像
      當代黨員(2020年20期)2020-11-06 04:17:52
      核電項目物項調用管理的應用研究
      LabWindows/CVI下基于ActiveX技術的Excel調用
      測控技術(2018年5期)2018-12-09 09:04:46
      鏡像
      小康(2018年23期)2018-08-23 06:18:52
      藍谷: “涉藍”新引擎
      商周刊(2017年22期)2017-11-09 05:08:31
      基于系統(tǒng)調用的惡意軟件檢測技術研究
      無形的引擎
      河南電力(2015年5期)2015-06-08 06:01:46
      鏡像
      小康(2015年4期)2015-03-31 14:57:40
      鏡像
      小康(2015年6期)2015-03-26 14:44:27
      基于Cocos2d引擎的PuzzleGame開發(fā)
      馆陶县| 安阳市| 共和县| 宜宾市| 泽州县| 西安市| 邯郸县| 吉安县| 镇安县| 博白县| 云梦县| 卢氏县| 方山县| 花莲市| 千阳县| 曲靖市| 含山县| 临安市| 永年县| 孟津县| 长治市| 珲春市| 桃江县| 克东县| 朝阳区| 新巴尔虎右旗| 同德县| 铅山县| 阆中市| 华安县| 伽师县| 陆川县| 新泰市| 信宜市| 旺苍县| 友谊县| 祁连县| 陇川县| 昆明市| 馆陶县| 定日县|