0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Docker入門指南之Docker介紹

jf_78858299 ? 來源:CSDN ? 作者:一只楠喃 ? 2023-02-06 15:36 ? 次閱讀

**二、**Docker介紹

2.1 什么是虛擬化

在計算機(jī)中,虛擬化是一種資源管理技術(shù),是將計算機(jī)的各種實體資源,如:服務(wù)器、網(wǎng)絡(luò)、內(nèi)存、存儲等等,予以抽象、轉(zhuǎn)換后呈現(xiàn)出來,打破實體結(jié)構(gòu)間的不可切割的障礙,使用戶可以比原來的組態(tài)更好的方式來應(yīng)用這些資源,這些資源的核心虛擬部分是不受現(xiàn)有資源的架設(shè)方式,低于或者物理組態(tài)所限制,一般所指的虛擬化資源包括計算能力和資料存儲。

在實際的生產(chǎn)過程中,虛擬化技術(shù)主要是用來解決高性能的物理硬件產(chǎn)能過剩和老的硬件產(chǎn)能過低的重用重組,透明化底層物理硬件,從而最大化的利用物理硬件,對資源充分利用。

虛擬化技術(shù)種類很多,例如:軟件虛擬化、硬件虛擬化、內(nèi)存虛擬化、網(wǎng)絡(luò)虛擬化(vip),桌面虛擬化、服務(wù)虛擬化、虛擬機(jī)等等。

虛擬化簡單講,就是把一臺物理計算機(jī)虛擬成多臺邏輯計算機(jī),每個邏輯計算機(jī)里面可以運(yùn)行不同的操作系統(tǒng),相互不受影響,這樣就可以充分利用硬件資源。

2.2 認(rèn)識Docker

圖片

  • Docker是一個開源的應(yīng)用容器引擎
  • 誕生于2013年初,基于Go語言實現(xiàn),dotCloud公司出品(后改名為Docker Inc)Docker可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級,可移植的容器中,然后發(fā)布到任何流行的linux服務(wù)器上
  • 容器是完全使用沙箱機(jī)制,相互隔離
  • 容器性能開銷極低
  • Docker從17.3版本之后分為CE(Community Edition社區(qū)版)和EE(Enterprise Edition企業(yè)版)

小結(jié):Docker是一種容器技術(shù),解決軟件跨環(huán)境遷移的問題

2.3 容器與虛擬機(jī)比較

2.3.1 什么是虛擬機(jī)

虛擬機(jī)是一個計算機(jī)系統(tǒng)的仿真,簡單來說,虛擬機(jī)可以實現(xiàn)在一臺物理計算機(jī)上模擬多臺計算機(jī)運(yùn)行任務(wù)。

  • 操作系統(tǒng)和應(yīng)用共享一臺或多臺主機(jī)(集群)的硬件資源,每臺VM有自己的OS,硬件資源是虛擬化的。

  • 管理程序(hypervisor)負(fù)責(zé)創(chuàng)建和運(yùn)行VM,它連接了硬件資源和虛擬機(jī),完成server的虛擬化。

    由于虛擬化技術(shù)和云服務(wù)的出現(xiàn),IT部門通過部署VM可以可減少cost提高效率

圖片

VMs也消耗大量系統(tǒng)資源,每個VM不僅運(yùn)行一個OS的完整copy并且需要所有硬件的虛擬化copy,這消耗大量RAMCPU

相比單獨計算機(jī),VM是比較經(jīng)濟(jì)的,但對于一些應(yīng)用VM是過度浪費的,需要容器。

2.3.2 什么是容器

  • 容器是將操作系統(tǒng)虛擬化,這與VM虛擬化一個完整的計算機(jī)有所不同。
  • 容器是在操作系統(tǒng)之上,每個容器共享OS內(nèi)核,執(zhí)行文件和庫等。共享的組件是只讀的,通過共享OS資源能夠減少復(fù)現(xiàn)OS的代碼,意味著一臺server僅安裝一個OS可以運(yùn)行多個任務(wù)。
  • 容器是非常輕量的,僅僅MB水平并且?guī)酌爰纯蓡?。相比容器,VM需要幾分鐘啟動,并且大小也大很多。

圖片

圖片

2.4、 Docker與虛擬機(jī)形象比喻

2.4.1 什么是物理機(jī)

圖片

2.4.2 什么是虛擬機(jī)

圖片

2.4.3 什么是docker

圖片

三、Docker 組件

3.1 Docker 服務(wù)端和客戶端

Docker是一個客戶端-服務(wù)端(C/S)架構(gòu)程序 ,Docker客戶端只需要向Docker服務(wù)端或者守護(hù)進(jìn)程發(fā)出請求,服務(wù)端或者守護(hù)進(jìn)程完成所有工作返回結(jié)果。

圖片

Docker提供了一個命令行工具Docker以及一整套的Restful API,可以在同一臺宿主機(jī)器上運(yùn)行Docker守護(hù)進(jìn)程或者客戶端,也可以從本地的Docker客戶端連接到運(yùn)行在另一臺宿主機(jī)上的遠(yuǎn)程Docker守護(hù)進(jìn)程。

圖片

docker引擎是一個c/s結(jié)構(gòu)的應(yīng)用,主要組件見下圖:

圖片

  • Server是一個常駐進(jìn)程
  • REST API 實現(xiàn)了client和server間的交互協(xié)議
  • CLI 實現(xiàn)容器和鏡像的管理,為用戶提供統(tǒng)一的操作界面

3.2 Docker 構(gòu)架

Docker使用C/S架構(gòu), Client 通過接口與Server進(jìn)程通信實現(xiàn)容器的構(gòu)建,運(yùn)行和發(fā)布 .client和server可以運(yùn)行在同一臺集群,也可以通過跨主機(jī)實現(xiàn)遠(yuǎn)程通信。

圖片

3.2.1 Docker 鏡像

Docker 鏡像(Image)就是一個只讀的模板。例如:一個鏡像可以包含一個完整的操作系統(tǒng)

環(huán)境,里面僅安裝了 Apache 或用戶需要的其它應(yīng)用程序

  • 鏡像可以用來創(chuàng)建 Docker 容器,一個鏡像可以創(chuàng)建很多容器。Docker 提供了一個很簡單的機(jī)制來創(chuàng)建鏡像或者更新現(xiàn)有的鏡像,用戶甚至可以直接從其他人那里下載一個已經(jīng)做好的鏡像來直接使用。
  • 鏡像(Image)就是一堆只讀層(read-only layer)的統(tǒng)一視角,也許這個定義有些難以理解。

看看下面這張圖:

圖片

右邊可以看到多個只讀層,它們重疊在一起,除了最下面一層,其它層都會有一個指針指向下一層。這些層是Docker內(nèi)部的實現(xiàn)細(xì)節(jié),并且能夠在docker宿主機(jī)的文件系統(tǒng)上訪問到。

統(tǒng)一文件系統(tǒng)(Union File System)技術(shù)能夠?qū)⒉煌膶诱铣梢粋€文件系統(tǒng),為這些層提供了一個統(tǒng)一的視角,這樣就隱藏了多層的存在,在用戶的角度看來,只存在一個文件系統(tǒng)。

圖片

3.2.2 Docker 容器

Docker 利用容器(Container)來運(yùn)行應(yīng)用。容器是從鏡像創(chuàng)建的運(yùn)行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。

  • 可以把容器看做是一個簡易版的 Linux 環(huán)境(包括root用戶權(quán)限、進(jìn)程空間、用戶空間和網(wǎng) 絡(luò)空間等)和運(yùn)行在其中的應(yīng)用程序。

  • 創(chuàng)建Container首先要有Image,也就是說Container是通過image創(chuàng)建的。

  • Container是在原先的Image之上新加的一層,稱作Container layer,這一層是可讀可寫的(Image是只讀的)。

    在面向?qū)ο蟮?a href="http://www.ttokpm.com/v/tag/1315/" target="_blank">編程語言中,有類跟對象的概念。類是抽象的,對象是類的具體實現(xiàn)。Image跟

    Container可以類比面向?qū)ο笾械念惛鷮ο?,Image就相當(dāng)于抽象的類,Container就相當(dāng)于具體實例化的對象。

    Image跟Container的職責(zé)區(qū)別:Image負(fù)責(zé)APP的存儲和分發(fā),Container負(fù)責(zé)運(yùn)行APP

    圖片

3.2.3 Registy(注冊中心

倉庫(Repository)是集中存放鏡像文件的場所。 有時候會把倉庫和倉庫注冊服務(wù)(Registry)混為一談,并不嚴(yán)格區(qū)分。

圖片實際上,倉庫注冊服務(wù)器上往往存放多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標(biāo)簽(tag)。

倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。

  • 最大的公開倉庫是Docker Hub,存放了數(shù)量龐大的鏡像供用戶下載。
  • 國內(nèi)的公開倉庫包括時速云 、網(wǎng)易云等,可以提供大陸用戶更穩(wěn)定快速的訪問。
  • 當(dāng)然,用戶也可以在本地網(wǎng)絡(luò)內(nèi)創(chuàng)建一個私有倉庫,當(dāng)用戶創(chuàng)建了自己的鏡像之后就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機(jī)器上使用這個鏡像時候,只需要從倉庫上 pull 下來就可以了。

Docker 倉庫的概念跟 Git 類似,注冊服務(wù)器可以理解為 GitHub 這樣的托管服務(wù)。

**

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8701

    瀏覽量

    84562
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    446

    瀏覽量

    11738
收藏 人收藏

    評論

    相關(guān)推薦

    Docker是什么?

    docker1-原理介紹
    發(fā)表于 08-22 11:02

    Docker是什么?

    為什么是Docker?盡管現(xiàn)在的Docker已經(jīng)風(fēng)靡全球,但還是有很多開發(fā)者(特別是嵌入式開發(fā)者)對Docker認(rèn)識還是僅僅停留在它的服務(wù)器應(yīng)用上面。殊不知,Docker已經(jīng)是微軟Az
    發(fā)表于 10-28 07:11

    Docker入門指南

    指南介紹了如何使用Docker簡化嵌入式設(shè)備和服務(wù)器上的多體系結(jié)構(gòu)應(yīng)用程序部署。 快速擴(kuò)展軟件環(huán)境可能是一項既困難又耗時的任務(wù)。在本指南中,我們將向您展示
    發(fā)表于 08-02 06:09

    docker基礎(chǔ)知識和使用bmnnsdk時的docker常用命令

    本文旨在介紹docker基礎(chǔ)知識和使用bmnnsdk時的docker常用命令,幫助沒有接觸過docker的開發(fā)者快速上手。 一、docker
    發(fā)表于 09-18 07:59

    學(xué)習(xí) Docker 容器的 8 個命令分享

    利用這 8 個命令可以學(xué)習(xí) Docker 容器的基本管理方式。這是一個為 Docker 初學(xué)者準(zhǔn)備的,帶有示范命令輸出的指南。
    發(fā)表于 06-22 12:03 ?1315次閱讀
    學(xué)習(xí) <b class='flag-5'>Docker</b> 容器的 8 個命令分享

    docker存儲驅(qū)動的工作原理

    Docker的存儲驅(qū)動官方有介紹其工作原理,這里只是簡單概括一下。Docker使用了層的概念,docker在構(gòu)建鏡像的時候,會逐行執(zhí)行我們的Dockerfile中的每一行,每執(zhí)行一行的
    的頭像 發(fā)表于 06-26 11:49 ?4488次閱讀

    應(yīng)用于Docker的安全工具介紹

    環(huán)境。本文介紹的應(yīng)用于Docker的安全工具,其中既包含既來自Docker本身工具,也包括第三方安全工具。 電子書Continuous Integration and Deployment
    的頭像 發(fā)表于 03-12 14:05 ?1669次閱讀

    Docker——從入門到實踐

    docker_practice.zip
    發(fā)表于 04-19 10:44 ?0次下載
    <b class='flag-5'>Docker</b>——從<b class='flag-5'>入門</b>到實踐

    Docker中文指南

    chinese_docker.zip
    發(fā)表于 04-19 10:15 ?2次下載
    <b class='flag-5'>Docker</b>中文<b class='flag-5'>指南</b>

    docker技術(shù)入門與實戰(zhàn)

    入門docker的首本書,系統(tǒng)化掌握容器技術(shù)棧
    發(fā)表于 06-09 14:38 ?0次下載

    Docker鏡像的詳細(xì)講解

    本文是對 Docker 鏡像的詳細(xì)講解,講解了如何安裝 Docker、配置 Docker 鏡像加速以及操作 Docker 鏡像。希望對大家有所幫助~
    的頭像 發(fā)表于 08-02 10:00 ?2026次閱讀

    docker 搜索鏡像,docker查看鏡像詳細(xì)信息(docker下載鏡像命令)

    Docker Hub是集中管理的Docker鏡像注冊中心。通過Docker 用戶可以在注冊中心搜索、下載和使用CLI命令行工具中的鏡像。以下是常用的Docker命令搜索鏡像:
    的頭像 發(fā)表于 07-19 09:46 ?1624次閱讀

    如何啟動本機(jī)docker服務(wù)

    Docker是一個開源項目,可以幫助開發(fā)者打包應(yīng)用程序及其依賴,并且能夠?qū)⑵渥鳛楠毩⒌娜萜鱽磉\(yùn)行。本文將詳細(xì)介紹如何在本機(jī)上啟動Docker服務(wù)。 第一步:安裝Docker 在開始之前
    的頭像 發(fā)表于 11-23 09:43 ?1501次閱讀

    docker進(jìn)入容器的方法有哪些

    Docker是一種流行的容器化平臺,它能夠快速構(gòu)建、交付和運(yùn)行應(yīng)用程序。在使用Docker時,我們經(jīng)常需要進(jìn)入容器進(jìn)行調(diào)試、管理和運(yùn)行命令等操作。本文將詳細(xì)介紹Docker進(jìn)入容器的各
    的頭像 發(fā)表于 11-23 09:45 ?8963次閱讀

    docker核心組件有哪些

    Docker Image、Docker Container、Docker Registry 和 Docker Compose。以下將詳細(xì)介紹
    的頭像 發(fā)表于 11-23 09:47 ?1489次閱讀