1. 程式人生 > 其它 >Docker 引擎的安裝 -->>儲存庫安裝

Docker 引擎的安裝 -->>儲存庫安裝

Docker理論知識

Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從 Apache2.0 協議開源。Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面(類似 iPhone 的 app),更重要的是容器效能開銷極低。   

Docker 從 17.03 版本之後分為 CE(Community Edition: 社群版) 和 EE(Enterprise Edition: 企業版)   

Docker EE專為企業的發展和IT團隊建立,為企業提供最安全的容器平臺,以應用為中心的平臺,有專門的團隊支援,可在經過認證的作業系統和雲提供商中使用,並可執行來自DockerStore的經過認證的容器和外掛。   

Docker CE是免費的Docker產品的新名稱,Docker CE包含了完整的Docker平臺,非常適合開發人員和運維團隊構建容器APP。

Docker的三個基本概念

映象(Image):Docker 映象(Image),就相當於是一個 root 檔案系統。比如官方映象 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統的 root 檔案系統。

容器(Container):映象(Image)和容器(Container)的關係,就像是面向物件程式設計中的類和例項一樣,映象是靜態的定義,容器是映象執行時的實體。容器可以被建立、啟動、停止、刪除、暫停等。

倉庫(Repository):倉庫可看著一個程式碼控制中心,用來儲存映象。

Docker架構

Docker 映象(Images):Docker 映象是用於建立 Docker 容器的模板,比如 Ubuntu 系統。

Docker 容器(Container):容器是獨立執行的一個或一組應用,是映象執行時的實體。

Docker 客戶端(Client):Docker 客戶端通過命令列或者其他工具使用 Docker SDK與 Docker 的守護程序通訊。

Docker 主機(Host):一個物理或者虛擬的機器用於執行 Docker 守護程序和容器。

Docker Registry:Docker 倉庫用來儲存映象,可以理解為程式碼控制中的程式碼倉庫。

Docker Hub提供了龐大的映象集合供使用。一個 Docker Registry 中可以包含多個倉庫(Repository);每個倉庫可以包含多個標籤(Tag);每個標籤對應一個映象。通常,一個倉庫會包含同一個軟體不同版本的映象,而標籤就常用於對應該軟體的各個版本。我們可以通過 <倉庫名>:<標籤> 的格式來指定具體是這個軟體哪個版本的映象。如果不給出標籤,將以 latest 作為預設標籤。

Docker Machine:Docker Machine是一個簡化Docker安裝的命令列工具,通過一個簡單的命令列即可在相應的平臺上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

Docker的優點

靈活:即使是最複雜的應用也可以集裝箱化。
輕量級:容器利用並共享主機核心。
可互換:可以即時部署更新和升級。
行動式:可以在本地構建,部署到雲,並在任何地方執行。
可擴充套件:可以增加並自動分發容器副本。
可堆疊:可以垂直和即時堆疊服務。
在同一硬體上執行更多工作負載。
允許高度可移植的工作負載

Docker私有倉庫

Docker倉庫分為公有倉庫和私有倉庫,然而公有倉庫在某些情況下並不適用於公司內部傳輸。通過對比兩種倉庫的特點,大致可以得出私有倉庫有以下優點:

① 節省頻寬;

② 傳輸速度快;

③ 方便儲存。

Docker映象及容器的使用

Image(映象)是一個只讀模板,由Dockerfile檔案描述映象內容,映象定義類似面對物件的類。

構建一個映象實際就是安裝、配置、執行的過程。映象可以用來建立Docker容器,一個映象可以建立很多容器。

容器是一個映象執行的例項,容器由映象建立,執行使用者指定的指令或者Dockerfile定義的執行指令。

容器之間都是互不可見的。

容器編排

容器編排是指對單獨元件和應用層的工作進行組織的流程。

應用一般由單獨容器化的元件(通常稱為微服務)組成,且必須按照順序在網路級別進行組織,使其能夠按照計劃執行。

所有的容器編排引擎均可讓使用者控制器啟動和停止的時間,將其分組合到叢集中,以及協調應用組合的流程。

Docker引擎的安裝

使用儲存庫安裝

在新主機上首次安裝 Docker Engine 之前,您需要設定 Docker 儲存庫。之後,您可以從儲存庫安裝和更新 Docker。

設定儲存庫 安裝yum-utils包(提供yum-config-manager 實用程式)並設定穩定儲存庫。

$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

可選:啟用夜間或測試儲存庫。 這些儲存庫包含在docker.repo上面的檔案中,但預設情況下是禁用的。您可以在穩定儲存庫旁邊啟用它們。以下命令啟用夜間儲存庫。

$  sudo yum-config-manager --enable docker-ce-nightly

要啟用測試通道,請執行以下命令:

$ sudo yum-config-manager --enable docker-ce-test

您可以通過執行帶有標誌的命令來禁用夜間或測試儲存庫。要重新啟用它,請使用該標誌。以下命令禁用夜間儲存庫。yum-config-manager--disable--enable

$ sudo yum-config-manager --disable docker-ce-nightly

安裝Docker引擎

安裝最新版本的 Docker Engine 和 containerd,或者進入下一步安裝特定版本:

$ sudo yum install docker-ce docker-ce-cli containerd.io

如果提示接受 GPG 金鑰,請驗證指紋是否匹配060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配,請接受。

Docker 已安裝但未啟動。該docker組被建立,但沒有使用者新增到組。

要安裝特定版本的 Docker Engine,請在 repo 中列出可用版本,然後選擇並安裝一種。列出並排序您的倉庫中可用的版本。此示例按版本號對結果進行排序,從高到低,並被截斷。

$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:20.10.7-3.el7 docker-ce-test docker-ce.x86_64 3:20.10.7-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.7-3.el7 @docker-ce-stable docker-ce.x86_64 3:20.10.6-3.el7 docker-ce-test docker-ce.x86_64 3:20.10.6-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.5-3.el7 docker-ce-test docker-ce.x86_64 3:20.10.5-3.el7 docker-ce-stable
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

Docker 已安裝但未啟動。該docker組被建立,但沒有使用者新增到組。

啟動 Docker。

$  sudo systemctl start docker

通過執行hello-world映像驗證 Docker Engine 是否已正確安裝。

$ sudo docker run hello-world

此命令下載測試映像並在容器中執行它。當容器執行時,它會列印一條資訊性訊息並退出。

至此Docker引擎安裝完畢