1. 程式人生 > >Docker學習——介紹,安裝

Docker學習——介紹,安裝

Docker概述

  • Docker

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙盒機制,相互之間不會有任何介面(類似 iPhone 的 app)。幾乎沒有效能開銷,可以很容易地在機器和資料中心中執行。最重要的是,他們不依賴於任何語言、框架或包裝系統。通俗來說,Docker可以讓開發者打包他們的應用以及所需的依賴包到container中,然後釋出到所有的linux機器上。

  • 沙盒機制(sandbox)

沙盒也叫沙箱,在計算機領域中指的是一種虛擬技術,為執行中的程式提供隔離環境,通常是作為一些來源不可信、具破壞力或無法判定程式意圖的程式提供實驗之用。例如:對於一種安全軟體,可以先讓他在沙盒中執行,如果含有惡意行為,則禁止程式的進一步執行,同時不會對系統造成危害。

  • Docker來源與作用

Docker 是 PaaS 提供商 dotCloud 開源的一個基於 LXC 的高階容器引擎,原始碼託管在 Github 上, 基於go語言並遵從Apache2.0協議開源。它的主要作用就是可以實現程式的一次編譯,到處執行。使得通過docker編譯後的軟體或專案,可以無需修改的執行在各種作業系統中。

LXC: Linux Container容器是一種核心虛擬化技術,可以提供輕量級的虛擬化,以便隔離程序和資源。

  • docker官網:

官網logo

  • containers與vm虛擬機器的比較
    虛擬機器需要安裝作業系統(安裝Guest OS)才能執行應用程式,而Container內不需要安裝作業系統就能執行應用程式

使用虛擬機器來安裝作業系統,首先會模擬出來一個硬體裝置,從而在這個硬體裝置上模擬出來所需的作業系統。使用containers則是直接模擬下載映象並安裝所需的作業系統映象。

  • docker的工作步驟(使用Docker Engine的C/S架構)
  • 1伺服器執行docker Engine服務,docker上啟動許多container
  • 2下載docker映象
  • 3啟動docker例項
  • 4使用docker client對於docker進行控制
  • docker安裝(利用rpm包進行安裝)
    1開啟docker的rpm包
    選擇docker-ce-18.03.0.ce-1.el7.centos.x86_64.rpm 在這裡插入圖片描述

    2#yum install docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm
    命令顯示缺少依賴包
    3開啟連結
    安裝以下的依賴包
    container-selinux-2.68-1.el7.noarch.rpm
    pigz-2.3.3-1.el7.centos.x86_64.rpm

在這裡插入圖片描述
在這裡插入圖片描述
4#yum install container-selinux-2.68-1.el7.noarch.rpm
5#yum install pigz-2.3.3-1.el7.centos.x86_64.rpm
6#yum install docker-ce-18.03.0.ce-1.el7.centos.x86_64.rpm
7#systemctl start docker (開啟docker)
8#systemctl enable docker (設定為開機自啟動)
9#docker version (檢視docker的版本)
#docker info(檢視docker的詳細引數)
在這裡插入圖片描述
在這裡插入圖片描述
至此,完成了單臺docker的安裝

  • docker特點
隔離 介紹
檔案系統隔離 每個程序容器執行在一個完全獨立的根檔案系統裡。
資源隔離 系統資源,像CPU和記憶體等可以分配到不同的容器中,使用cgroup
網路隔離 每個程序容器執行在自己的網路空間,虛擬介面和IP地址
日誌記錄 Docker將會收集和記錄每個程序容器的標準流(stdout/stderr/stdin),用於實時檢索或批量檢索。
變更管理 容器檔案系統的變更可以提交到新的映象中,並可重複使用以建立更多的容器。無需使用模板或手動配置
互動式 Docker可以分配一個虛擬終端並關聯到任何容器的標準輸入上,例如執行一個一次性互動shell。