日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker基础篇

發布時間:2025/3/21 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker基础篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄:

  • docker介紹
  • Docker的概念
  • 容器
  • docker技術應用場景
  • docker解決的問題
  • Docker架構
  • docker與虛擬機比較
  • copy和add的區別

docker介紹

docker思想

  • Docker的思想源于集裝箱,集裝箱解決了什么問題呢?
  • 在早期運輸貨物需要不同分類的船,例如運輸水果的船,運輸生活用品的船
  • 有了集裝箱后,在大船上,可以把貨物分類到不同的集裝箱中,水果一個集裝箱,生活用品一個集裝箱
  • 它們之間互不影響,只要把貨物封裝好集裝箱里,就可以把不同類的貨物一起運走。
  • 通過Docker logo也可以看出所以然來,Docker就像大船,集裝箱就是容器
  • 一條鯨魚拖著若干個集裝箱的經典形象已經深入人心

Docker的概念

  • Docker 是應用最廣泛的開源容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中
  • docker實質就像虛擬機一樣,就好像是一個具有獨立操作系統的真實機器
  • 虛擬機是有真正的linux內核的,真實需要通過 .ios 文件安裝操作系統
  • 而我們的docker共享linux宿主機內核,只有一個linux文件系統
  • 容器

    每個容器擁有一套和宿主機完全隔離的文件系統(共用linux內核),程序在這個虛擬容器里運行,就好像在真實的物理機上運行一樣

    • 容器是一個操作系統級別下的虛擬化技術,運行一個容器就像運行一個進程一樣
    • 容器依賴linux內核特性:Namespace(資源隔離) Cgroups(資源限制)

    資源隔離:

    1)Linux Namespaces機制提供一種資源隔離方案,每個Namespace看上去就像一個單獨的Linux系統。

    2)PID,IPC(進程通信),Network等系統資源不再是全局性的,而是屬于某個特定的Namespace。

    3)每個Namespace下的資源對于其他namespace下的資源都是透明,不可見的。

    4)系統中可以同時存在兩個進程號為0,1,2的進程,由于屬于不同的Namespace,所以它們之間并不沖突。

    5)而在用戶層面上只能看到屬于用戶自己Namespace下的資源,例如使用ps命令只能列出自己Namespace下的進程。

    6)這樣每個Namespace看上去就像一個單獨的Linux系統。

    資源限制:

    1)為了讓容器中的進程更加可控,Docker 使用 Linux cgroups 來限制容器中的進程允許使用的系統資源。

    2)可以在啟動容器是指定每個容器可以使用的 網絡、磁盤、CPU以及內存 等

    docker技術應用場景

    場景一:節省項目環境部署時間
    1)單項目打包

  • 每次部署項目到測試、生產等環境,都要部署一大堆依賴的軟件、工具,時間久,出錯概率大。
  • Docker主要理念就是環境打包部署,可在任意Docker Engine運行。
  • 我們只需要將每個項目環境打包到鏡像,push到鏡像倉庫,當有需要部署這個項目時,直接pull鏡像啟動容器,這個項目就可以訪問了!一次構建多次部署,一勞永逸。
  • 2)整套項目打包

  • 比如有一個產品可以整套部署到客戶那里,以往都是派一名實施工程師到客戶那部署。
  • 如果用了Docker,我們可以前期將這套項目封裝打包起來,實現一鍵部署,分分鐘鐘搞定,就不需要再派人過去了。比如官方的Docker Compose編排工具。
  • 3)新開源技術試用
        
    有時,我們想調研一些開源項目,我們可以直接從公共鏡像倉庫pull項目官方做好鏡像啟動容器即可。

    場景二:環境一致性

  • 項目在開發電腦本地運行沒問題,到了測試或生產環境就運行不起來。
  • Docker將項目環境打包成鏡像,可以在任何Docker Engine部署。
  • 場景三:持續集成

  • 一個項目版本快速迭代的測試場景,需要一個合理的CI(持續集成)/CD(持續部署)環境支撐。
  • CI/CD是一個周期性自動化項目測試流程,包括構建、部署、測試、發布等工作,很少需要人工干預。
  • Docker通過項目鏡像構建和快速部署,打通測試環境與生產環境,高度保持多個環境之間一致性。
  • 場景四:微服務

  • 微服務指盡可能細粒度拆分業務程序架構,由多個獨立服務組成業務系統。
  • Docker容器作為這些獨立服務的部署單元,每個服務單獨部署到一個docker容器中。
  • docker解決的問題

  • 高效的利用資源
  • 單臺機器得部署多個應用;
  • 應用之間互相隔離(微服務);
  • 應用之間不能發生資源搶占,每個應用只能使用事先注冊申請的資源。
  • Docker架構

    • Docker客戶端(Client): docker 命令行工具,用戶也可以通過 REST API 與服務器通信
    • Docker服務器(Docker daemon): 服務器組件,以 Linux 后臺服務的方式運行, Docker daemon 運行在 Docker host 上,負責創建、運行、監控容器,構建、存儲鏡像
    • Docker鏡像(Image): 可將 Docker 鏡像看著只讀模板,通過它可以創建 Docker 容器
    • 鏡像倉庫(Registry):Registry 是存放 Docker 鏡像的倉庫,Registry 分私有和公有兩種
    • Docker容器(Container):Docker 容器就是 Docker 鏡像的運行實例

    docker與虛擬機比較

  • docker設計小巧,部署遷移快速,運行高效,按照應用隔離,管理人員可以看到所有容器的內容。
  • 虛擬化技術比較臃腫,需要先創建新的系統,按照系統隔離,管理員無法看到系統內部信息。
  • 舉例:

    1)Docker就是手機中的各種APP,只需要一個系統就可以下載自己所需的應用

    2)虛擬化技術相當于蘋果手機安裝一個龐大軟件,這個軟件上安裝安卓系統、魅族系統等,每個系統上還要安裝各類應用。

    copy和add的區別:

    copy一般是拷貝主機不同文件夾的數據
    add:可以拷貝宿主機文件到容器中,而且可以執行網絡命令

    來自于原址參考

    總結

    以上是生活随笔為你收集整理的Docker基础篇的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。