Docker之基本原理介紹


Docker 環境搭建請移步:https://i.cnblogs.com/posts/edit;postId=14090026

First:docker能做什么?

  傳統的環境部署:

    1、環境和項目分開搭建部署,環境離散,不方便遷移
    2、環境未隔離
    3、部署相對來說比較復雜/困難(tomcat+jdk+...),需要手動封裝
    4、研發提交代碼-CICD-打包war推送至目標服務器,運行sh

  ***  在 Dokcer 橫空出世之前,應用打包一直是大部分研發團隊的痛點。

  ***  在工作中,面對多種服務,多個服務器,以及多種環境,如果還繼續用傳統的方式打包部署,會浪費大量時間精力

  ***  在 Docker 出現后,它以更高效的利用系統資源、更高效的利用系統資源、一致的運行環境、持續交付和部署、更輕松的遷移、更輕松的維護和拓展,6大優點迅速火了起來

   docker能解決什么問題

    1、高效有序利用資源
    2、機器資源有限;
    3、單台機器得部署多個應用;
    4、應用之間互相隔離;
    5、應用之間不能發生資源搶占,每個應用只能使用事先注冊申請的資源。

  一次編譯,到處運行
    類似於java代碼,應用及依賴的環境構建一次,可以到處運行。

  – 左邊為虛擬機,右邊為docker環境 –

    Server :物理機服務器
    Host OS :構建的操作系統
    Hypervisor :一種虛擬機軟件,裝了之后才能虛擬化操作系統
    Guest OS :虛擬化的操作系統
    Bins/Libs :執行命令、工具
    App A :構建的軟件
    Docker Engine :跳過虛擬化內核的步驟,直接使用宿主機內核

    從圖片中我們可以清楚的了解到,相比於 Docker,虛擬機更加的臃腫。

    虛擬機和容器都需要物理機以及操作系統,但是虛擬機有 Hypervisor 層以及 Guest OS 層。但是 Docker 是沒有這兩個部分的,只有一層 Docker Engine。

    並且每個容器都和宿主機共享計算機的硬件資源以及操作系統。那么由Hypervisor帶來的資源耗損,在容器這邊是不存在的。

    所以Docker與虛擬機對比,是有很強大的優勢的,當然,也會有一定的缺點

   虛擬機 與 docker 優劣勢對比:

    優勢(省去了虛擬化內核的步驟):

      1. 節省資源(CPU、內存)

      2. 秒級啟動

      3. 輕量級方案(同樣一台服務器可以啟動幾百個docker,但是不能啟動幾百個虛擬機)

    劣勢

      1. 隔離性、安全性相比虛擬機更弱(比如,如果其中一個容器將內核給"搞壞了",那所有的容器就都無法正常工作了)

      2. 某些情況下服務器會挑內核(eg.編譯c++)

 

  Docker的作用(相對於測試童鞋)

    1. 搭建測試環境

    2. 搭建各類基礎服務

    3. 搭建測試執行環境(自動化測試腳本執行環境)

 

Second:docker核心概念(鏡像 / 容器 / 倉庫)

  鏡像

    鏡像:

    只讀文件和文件夾組合,是docker容器啟動的先決條件--靜態的
    --自己搭建(eg:基於centos,安裝nginx,部署應用,自定義配置)
    --拉取別人已經做好的鏡像

    鏡像加載的原理:

       docker鏡像是由一層一層的文件系統組成,就是聯合文件系統。

      例如:tomcat鏡像

  容器

    1、容器是鏡像的運行實體
    2、容器運行的是真正的應用程序
    3、容器有5種狀態:初建、查看、運行、停止、暫停、刪除
    4、雖然容器是宿主機運行的進程,但容器有自己的運行控件和資源限制,所以,在容器內部是看不到宿主機的進程、環境變量、網絡等信息
    5、容器是基於鏡像創建的實例,可單獨存在。一個鏡像可以創建多個容器。

  倉庫
    1、倉庫是用於存儲和分發docker鏡像
    2、--公共鏡像倉庫-docker hub(官方、個人)
    3、--私有鏡像倉庫

 

  鏡像、容器和倉庫之間的關系

  

  整體質量流程

 

# 后續將持續更新docker在實際工作中的使用,感興趣的童鞋,歡迎關注留言討論哦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM