【Docker】進階之路:(二)Docker簡介

【Docker】進階之路:(二)Docker簡介

  • 什么是 Docker
  • Docker 由來與發展歷程
  • Docker的架構與組成
  • Docker容器生態
    • 容器核心技術
      • 容器規范
      • 容器平臺技術
  • 為什么使用Docker
    • Docker的應用場景

什么是 Docker

簡單地講,Docker就是一個應用容器引擎,通過Docker,管理員可以非常方便地對容器進行管理。Docker基于Go語言開發,并且遵從Apache 2.0開源協議。
Docker提供了對容器鏡像的打包封裝功能。利用Docker,開發者可以將他們開發的應用系統以及依賴打包起來,放到一個輕量級的、可移植的容器中,然后發布到任何的Linux或者Windows上面。這樣的話,Docker就統一了整個開發、測試和部署的環境和流程,極大地減少運維成本。
Docker完全使用沙箱機制,容器之間不會有任何的接口。

Docker 由來與發展歷程

2010年,幾個大胡子年輕人在美國舊金山成立了一家做PaaS(Platform-as-a-Service,平臺即服務)平臺的公司,并且起名為dotCloud。雖然dotCloud公司曾經獲得過一些融資,但隨著大廠商,包括微軟、谷歌以及亞馬遜等殺入云計算領域,dotCloud公司舉步維艱。
幸運的是,上帝每關上一扇門,就會打開一扇窗。2013年初,dotCloud公司的工程師們決定將他們的核心技術Docker開源,這項技術能夠將Linux容器中的應用代碼打包,輕松地在服務器之間遷移。
令所有人意想不到的是,開源之后Docker技術風靡全球,于是,dotCloud公司決定改名為Docker,全身心投入到Docker的開發中。2014年8月,Docker公司宣布把PaaS業務dotCloud出售給位于德國柏林的PaaS服務提供商cloudControl,自此,dotCloud和Docker分道揚鑣。

Docker的架構與組成

Docker采用C/S架構,即客戶端/服務器架構。管理員通過Docker客戶端與Docker服務器進行交互。Docker服務器端負責構建、運行和分發Docker鏡像。用戶可以把Docker的客戶端和服務器部署在同一臺機器上面,也可以分別部署在不同的機器上面,兩者之間通過各種接口進行通信。
Docker的典型體系架構如圖所示。
在這里插入圖片描述

Docker容器生態

容器核心技術

容器核心技術是指能夠讓 container 在 host 上運行起來的那些技術。 這些技術包括容器規范、容器 runtime、容器管理工具、容器定義工具、Registry以及容器OS,下面分別介紹。

容器規范

容器不僅有 Docker,還有如 CoreOS 的 rkt等其他容器。為了保證容器生態的健康發展,保證不同容器之間能夠兼容,包括Docker、CoreOS、Google等在內的若干公司共同成立了 Open Container Initiative(OCI) 的組織,其目是制定開放的容器規范。OCI已發布了兩個規范:runtime spec 和 image format spec。 有了這兩個規范,不同組織和廠商開發的容器能夠在不同的 runtime 上運行,保證了容器的可移植性和互操作性。

容器平臺技術

容器核心技術使得容器能夠在單個 host 上運行,而容器平臺技術能夠讓容器作為集群在分布式環境中運行。容器平臺技術包括容器編排引擎、容器管理平臺和基于容器的 PaaS。下面將介紹這幾塊內容。

容器編排引擎

基于容器的應用一般會采用微服務架構。在這種架構下,應用被劃分為不同的組件,并以服務的形式運行在各自的容器中,通過 API 對外提供服務。為了保證應用的高可用,每個組件都可能會運行多個相同的容器。這些容器會組成集群,集群中的容器會根據業務需要被動態地創建、遷移和銷毀。
這樣一個基于微服務架構的應用系統實際上是一個動態的可伸縮的系統。這對我們的部署環境提出了新的要求,我們需要有一種高效的方法來管理容器集群,這就是容器編排引擎要負責的工作。
所謂編排(orchestration),通常包括容器管理、調度、集群定義和服務發現等。通過容器編排引擎,容器被有機地組合成微服務應用,以實現業務需求。

為什么使用Docker

Docker的應用場景

Docker提供輕量級的虛擬化服務。每個Docker容器都可以運行一個獨立的應用。例如,用戶可以將Java應用服務器Apache Tomcat運行在一個容器中,而MySQL數據庫服務器運行在另外一個容器中。
目前,Docker的應用場景非常廣泛,主要有以下幾種。

  1. 簡化配置
    這是Docker的初始目的。Docker將應用程序代碼、運行環境以及配置進行打包。用戶在部署時,只要以該鏡像為模板創建容器即可。實際上,這實現了應用環境和底層環境的解耦。
  2. 簡化部署過程
    Docker讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的Linux機器上,即可實現虛擬化。
    Docker改變了傳統的虛擬化方式,使得開發者可以直接將自己開發的應用放入Docker中進行管理。方便快捷已經是Docker的最大優勢,過去需要用數天乃至數周的任務,在Docker容器的處理下,只需要數分鐘就能完成。
  3. 節省開支
    另一方面,云計算時代到來,使開發者不必為了追求效果而配置高額的硬件,Docker改變了高性能必然高價格的思維定勢。Docker與云計算機的結合,不僅解決了硬件管理的問題,也改變了虛擬化的方式。

Docker的廣泛應用極大地降低了IT設施的運維成本。具體來說,主要體現在以下方面。

  • 輕量級的虛擬化。與傳統的服務器或者主機虛擬化相比,Docker實現了更加輕量級的虛擬化。這對于應用部署來說,可以減少部署的時間成本和人力成本。
  • 標準化應用發布。Docker容器包含了運行環境和可執行程序,可以跨平臺和主機使用。
  • 節約啟動時間。傳統的虛擬主機的啟動一般是分鐘級,而Docker容器啟動是秒級。
  • 節約存儲成本。以前一個虛擬機至少需要幾個GB的磁盤空間,而Docker容器可以減少到MB級。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211252.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211252.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211252.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

正則表達式(9):擴展正則表達式

正則表達式(9):擴展正則表達式 小結 本博文轉載自 前文中一直在說,在Linux中,正則表達式可以分為”基本正則表達式”和”擴展正則表達式”。 我們已經認識了”基本正則表達式”,現在,我們來認…

T天池SQL訓練營(五)-窗口函數等

–天池龍珠計劃SQL訓練營 5.1窗口函數 5.1.1窗口函數概念及基本的使用方法 窗口函數也稱為OLAP函數。OLAP 是OnLine AnalyticalProcessing 的簡稱,意思是對數據庫數據進行實時分析處理。 為了便于理解,稱之為窗口函數。常規的SELECT語句都是對整張表進…

Unity由“鼠標點不準物體”引發的Camera的相關思考

問題 前段一個同事在使用Unity開發時遇到一個奇怪的問題,使用左鍵點擊發射射線的方式選擇物體,總是選不準,尤其是小的物體,鼠標點擊到物體上,有時能選上,有時選不上,偶爾點擊到物體旁邊…

Tensorflow.js 入門學習指南

Tensorflow.js 入門學習指南 官方地址TensorFlow.js (google.cn) Tensorflowjs是一個機器學習框架,使用 TensorFlowJS 可以創建生產級機器學習模型 安裝包 瀏覽器設置 您可以通過兩種主要方式在瀏覽器項目中獲取 TensorFlow.js: 使用腳本代碼。從 NPM…

基于MATLAB車輛防碰撞系統仿真

摘要 近年來,汽車行業的飛速發展使得我國的汽車保有量快速增長,但由此引發的交通事故導致的人員傷亡數量仍居高不下。從保護人身安全和降低交通事故發生的可能性的角度出發,車輛防碰撞系統能夠使駕駛員在沒注意到與前方車輛有碰撞危險的情況下…

Python:核心知識點整理大全11-筆記

目錄 ?編輯 6.2.4 修改字典中的值 6.2.5 刪除鍵—值對 注意 刪除的鍵—值對永遠消失了。 6.2.6 由類似對象組成的字典 6.3 遍歷字典 6.3.1 遍歷所有的鍵—值對 6.3.2 遍歷字典中的所有鍵 往期快速傳送門👆(在文章最后): 6.…

風力發電對講 IP語音對講終端IP安防一鍵呼叫對講 醫院對講終端SV-6005網絡音頻終端

風力發電對講 IP語音對講終端IP安防一鍵呼叫對講 醫院對講終端SV-6005網絡音頻終端 目 錄 1、產品規格 2、接口使用 2.1、側面接口功能 2.2、背面接口功能 2.3、面板接口功能 3、功能使用 1、產品規格 輸入電源: 12V~24V的直流電源 網絡接口&am…

前端知識庫Html5和CSS3

1、常見的水平垂直居中實現方案 最簡單的方案是flex布局 .container{display: flex;align-items: center;justify-content: center; }絕對定位配合margin:auto(一定要給.son寬高) .father {position: relative;height: 300px; } .son {position: absolute;top: 0;right: 0;b…

PID控制參數整定(調節方法)原理+圖示+MATLAB調試

PID控制參數整定(調節方法)原理圖示MATLAB調試 Chapter1 PID控制參數整定(調節方法)原理圖示MATLAB調試序一、P參數選取二、I的調節三、D的調節四、總結 Chapter2 PID參數調整,個人經驗(配輸出曲線圖&#…

【51單片機系列】獨立按鍵介紹

本文是關于獨立按鍵的介紹及使用。首先介紹了按鍵,包括什么是按鍵及使用按鍵時如何實現軟件消抖。然后使用proteus仿真實現獨立按鍵控制LED指示燈的操作。 之前的LED、蜂鳴器、數碼管中IO口都是作為輸出使用,這里通過獨立按鍵實驗介紹IO口作為輸入的使用…

Edge 中的msedgewebview2總想聯網

目錄預覽 一、問題描述二、原因分析三、解決方案四、參考鏈接 一、問題描述 使用Edge瀏覽器的時候,右下角火絨總會彈出“msedgewebview2”想要聯網的彈窗,如下 點擊發起程序,找到路徑如下: C:\Program Files (x86)\Microsoft\…

zabbix 進階

zabbix的字段發現機制: zabbix客戶端主動和服務端聯系,將自己的地址和端口發送服務端實現字段添加監控主機。 客戶端是主動一方。 缺點:自定義網段中主機數量太多,登記耗時會很久,而且這個自動發現機制不是很穩定。…

centos6.8下載地址

Index of /centos-store/6.8/isos/x86_64/ (liu.se) archive.kernel.org : http - rsynclinuxsoft.cern.ch : http - rsyncmirror.nsc.liu : http - rsync

被遺忘的書籍

C-被遺忘的書籍_牛客小白月賽82 (nowcoder.com) #include <iostream> #include <queue> #include <string> #include <stack> #include <vector> #include <set> #include <map> #include <unordered_map> #include <unor…

計組中各種透明性總結

虛擬存儲器&#xff0c;對應用程序員不可見。主存- cache層由硬件自動完成&#xff0c;對程序員不可見。cache純硬件&#xff0c;程序員不可見。內存&#xff0c;對程序員可見。知識點來源&#xff1a;王道模擬第六套主存-輔存層由硬件和操作系統共同完成&#xff0c;對應用程序…

【Docker一】Docker架構、鏡像操作和容器操作

一、docker基本管理和概念 1、概念 docker&#xff1a;開源的應用容器引擎。基于go語言開發的。運行在Linux系統中的開源的輕量級的“虛擬機” docker的容器技術可用在一臺主機上輕松到達為任何應用創建一個輕量級到的&#xff0c;可移植的&#xff0c;自給自足的容器 dock…

免費的數據采集軟件,最新免費的幾款數據采集軟件【2024】

在當今數字化時代&#xff0c;數據是企業決策和業務發展的關鍵。而如何高效獲取數據成為許多企業和研究機構的關注焦點。本文將深入探討數據采集軟件的種類。幫助大家選擇最適合自己需求的數據采集工具。 數據采集軟件種類 在眾多數據采集軟件中&#xff0c;有一類強大而多樣…

postgresql自帶指令命令系列二

簡介 在安裝postgresql數據庫的時候會需要設置一個關于postgresql數據庫的PATH變量 export PATH/home/postgres/pg/bin:$PATH&#xff0c;該變量會指向postgresql安裝路徑下的bin目錄。這個安裝目錄和我們在進行編譯的時候./configure --prefix [指定安裝目錄] 中的prefix參…

跨境電商運營常用的ChatGPT通用提示詞模板

市場分析&#xff1a;如何分析目標市場&#xff1f; 選品策略&#xff1a;如何選擇要銷售的商品&#xff1f; 供應鏈管理&#xff1a;如何管理供應鏈&#xff1f; 物流解決方案&#xff1a;如何選擇合適的物流解決方案&#xff1f; 跨國支付&#xff1a;如何處理跨國支付&a…

labelimg遇到的標簽修改問題:修改一張圖像的標簽時,保存后導致classes.txt改變

問題描述&#xff1a;修改一張圖像的標簽時候&#xff0c; classes.txt 會同步更新&#xff0c;導致重新生成了 classes.txt 但是這個 classes.txt 只有你現在寫的那個類別名&#xff0c;以前的沒有了。 解決&#xff1a;設置一個 predefined_classes.txt&#xff0c;內容和模…