001.Docker簡介概述

来源:https://www.cnblogs.com/itzgr/archive/2018/12/29/10196507.html
-Advertisement-
Play Games

一 簡介 Docker最初是dotCloud公司的一個內部項目,誕生於 2013 年初,由google公司開源的Go語言開發。 Docker是一個開源的引擎,可以輕鬆的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬 ...


一 簡介

Docker最初是dotCloud公司的一個內部項目,誕生於 2013 年初,由google公司開源的Go語言開發。 Docker是一個開源的引擎,可以輕鬆的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎應用平臺。

二 特性

2.1 docker特性

  • 標準化
    • 保證一致的運行環境
    • 彈性伸縮,快速擴容
    • 方便遷移
    • 持續集成、持續交付與持續部署
  • 高性能
    • 不需要進行硬體虛擬以及運行完整的操作系統
  • 輕量級
    • 快速啟動
    • 隔離性
    • 進程隔離

2.2 容器的組成

容器=cgroup+namespace+rootfs+容器引擎(用戶態工具)
  • Cgroup:資源控制
  • Namespace:訪問隔離
  • rootfs:文件系統隔離
  • 容器引擎:生命周期控制

2.2 docker與KVM

虛擬化技術依賴物理CPU和記憶體,是硬體級別的; 而docker構建在操作系統上,利用操作系統的containerization技術,所以docker甚至可以在虛擬機上運行。 虛擬化系統一般都是指操作系統鏡像,比較複雜,稱為“系統”; 而docker開源而且輕量,稱為“容器”,單個容器適合部署少量應用,比如部署一個redis、一個memcached。 傳統的虛擬化技術使用快照來保存狀態; 而docker在保存狀態上不僅更為輕便和低成本,而且引入了類似源代碼管理機制,將容器的快照歷史版本一一記錄,切換成本很低。 傳統的虛擬化技術在構建系統的時候較為複雜,需要大量的人力; 而docker可以通過Dockfile來構建整個容器,重啟和構建速度很快。更重要的是Dockfile可以手動編寫,這樣應用程式開發人員可以通過發佈Dockfile來指導系統環境和依賴,這樣對於持續交付十分有利。  
特性 容器 虛擬機
部署難度 簡單 部署相對複雜
啟動 秒級 分鐘級
硬碟使用 一般為MB 一般為GB
性能 原生 弱於
系統支持量 單機支持上千個容器 一般幾十個
管理效率 管理簡單 管理複雜

三 場景

Docker通常用於如下場景:
  • web應用的自動化打包和發佈;
  • 自動化測試和持續集成、發佈;
  • 在服務型環境中部署和調整資料庫或其他的後臺應用;
  • 從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。

四 架構

  • Docker客戶端 – Docker
docker客戶端則扮演著docker服務端的遠程式控制制器,可以用來控制docker的服務端進程。
  • Docker服務端 – Docker Daemon
docker服務端是一個服務進程,管理著所有的容器。 提示:大部分情況下,docker服務端和客戶端運行在一臺機器上。
  • Docker鏡像 – Image
docker鏡像,一個能夠運行在docker容器上的一組程式文件,是一個只讀的模板。
  • Docker容器 – Docker Container
docker容器,就是運行程式的載體。鏡像(Image)是靜態的定義,容器是鏡像運行時的實體。docker容器是從鏡像創建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。
  • Docker鏡像倉庫 -- Registry
Docker倉庫是集中存放鏡像文件的場所,Docker倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。Docker鏡像是一個特殊的文件系統,除了提供容器運行時所需的程式、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(如匿名捲、環境變數、用戶等),鏡像不包含任何動態數據。 04_thumb1 參考:https://docs.docker.com
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 對象引擎,以路徑形式訪問對象屬性,例data.Product[1].Name。 在做excel模板引擎的時候,為了能方便的調用對象屬性,找了一些模板引擎,不是太大就是不太適用於excel, 因為excel模板中不太適用寫一些語法,所以要簡化,現把對象引擎這一塊簡化抽出來分享 開源地址:https:/ ...
  • 接觸Linux已經有一段時間了,由於實際需要,三三兩兩地掌握了一些基本語法和實用語句,主要都是在日常開發中用得比較多的,條理不是特別清晰,請見諒!下麵開始上硬貨!! 基本操作: 關閉Linux系統的命令:init 0 切換虛擬終端的命令:Ctrl + Alt + F[1~6] 釋:Linux共有6個 ...
  • 有關Linux ipv6模塊載入失敗的問題 同事一個SUSE11sp3環境配置ipv6地址失敗,提示不支持IPv6,請求幫助,第一反應是應該ipv6相關內核模塊沒有載入。 主要檢查內容: ipv6地址是否存在 ifconfig |grep inet6 沒有預設inet6地址 ipv6模塊是否存在 # ...
  • 小編最近想學習一下小程式的開發,然後發現小程式的開發需要功能變數名稱為Https協議,所以就特地去配置了一下,配置成功了就放出來和大家一起分享 ...
  • 網路上有很多關於優秀的關於Paxos 演算法的文章,我下麵進行整理搜集一下: 分散式理論之一:Paxos演算法的通俗理解 維基的簡介:Paxos演算法是萊斯利·蘭伯特(Leslie Lamport,就是 LaTeX 中的"La",此人現在在微軟研究院)於1990年提出的一種基於消息傳遞且具有高度容錯特性的 ...
  • 綜述 Page cache是通過將磁碟中的數據緩存到記憶體中,從而減少磁碟I/O操作,從而提高性能。此外,還要確保在page cache中的數據更改時能夠被同步到磁碟上,後者被稱為page回寫(page writeback)。一個inode對應一個page cache對象,一個page cache對象 ...
  • 一、獲取root許可權 輸入root密碼 二、檢查是否安裝 如果安裝,會顯示安裝版本號,沒有就什麼都不顯示 三、若已安裝過vsftpd,先卸載。卸載前,先停止服務 ,然後再卸載。 停止服務: 卸載: 四、安裝vsftpd **此時可能遇見的錯誤** 這是由於 yum 進程被占用了,執行一下命令,關閉y ...
  • Page cache和buffer cache一直以來是兩個比較容易混淆的概念,在網上也有很多人在爭辯和猜想這兩個cache到底有什麼區別,討論到最後也一直沒有一個統一和正確的結論,在我工作的這一段時間,page cache和buffer cache的概念曾經困擾過我,但是仔細分析一下,這兩個概念實 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...