docker簡介

虛擬化的歷史

早期部署服務的過程緩慢且痛苦。 首先,開發人員編寫代碼; 然後,運營團隊將把它部署在裸機上,在那裏他們必須尋找庫版本,補丁和語言編譯器才能使代碼工作。 如果存在一些錯誤或錯誤,開發人員將修復它,然後重新開始,再由運營團隊進行部署。

Hypervisors的創建有所改進。 管理程序在同一主機上有多個虛擬機或VM,可能正在運行或關閉。 虛擬機大大減少了部署代碼和修復錯誤的等待時間,但真正的革命者是Docker容器。

什麼是Docker?

Docker是用於虛擬化的計算機軟件,以便在同一主機上運行多個操作系統。 與用於創建VM(虛擬機)的Hypervisor不同,Docker中的虛擬化的Docker容器中在系統級執行, 這有助於提高效率,因此我們可以在與運行虛擬機相同的基礎架構上運行更多容器,因爲容器使用的資源更少。

與可以與主機硬件通信的VM(例如:以太網適配器以創建更多虛擬適配器)不同,Docker容器在主機操作系統之上的隔離環境中運行。 即使您的主機運行Windows操作系統,您也可以藉助Hyper-V在容器運行Linux映像,Hyper-V會自動創建小型虛擬機來虛擬化系統的基本映像,在本例中爲Linux。

Docker架構

我們來談談Docker架構中的Docker主要組件

Docker引擎

Docker是客戶端 - 服務器類型的應用程序,dockerd是服務器的Docker引擎。 docker守護程序和客戶端可以在相同或遠程主機上運行,​​它們通過命令行二進制文件進行通信,另外dockerd交互的有完整的RESTful API。

Docker image

Dockerimage是我們容器的“源代碼”; 我們用它們來構建容器。 他們可以預裝軟件,加快部署速度。 它們是便攜式的,我們可以使用現有的image或構建我們自己的圖像。

註冊

Docker存儲我們在註冊表中構建的映像。 有公共和私人註冊管理機構。 Docker公司有一個名爲 Docker hub,公共註冊,您也可以私下存儲image。 Docker hub擁有數百萬個image。

Docker容器

容器是Docker的組織單元。 當我們構建image並開始運行它時; 我們在容器中運行。 容器中運行的軟件具有可移植性。

簡單來說,image是模板,容器是image的Docker架構圖

我們有幾個docker命令docker pull,docker run ..我們稍後會詳細討論。副本。 您可以擁有同一image的多個容器(副本)。

Docker架構圖

我們有幾個docker命令docker pull,docker run ..我們稍後會詳細討論。

在Linux上安裝Docker。

準備

 $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
$  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$  sudo add-apt-repository  "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
sudo apt-get install docker-ce

在Docker 1.8.0之前,軟件包名稱是lxc-docker,在Docker 1.8和1.13之間,軟件包名稱是docker-engine。

注意 :Docker for Windows需要運行Windows 10 Pro或Enterprise版本14393或Windows Server 2016 RTM

參考資料

基本的Docker命令

安裝Docker之後我們必須運行的最基本命令是$ docker info,如前所述。

我們可以看到有關於docker容器的信息,有多少正在運行,暫停或停止,以及我們下載了多少image。 讓我們來看看我們的第一個image。

$ sudo docker pull alpine

使用此命令,我們告訴docker下載圖像alpine,從公共註冊中提取它,默認情況下設置w爲最新版本。

  • alpine是基於Alpine Linux的最小Docker鏡像,具有完整的包索引,大小僅爲5 MB。

把image作爲容器運行。

$ sudo docker run -i -t alpine /bin/sh

i標誌使容器STDIN中保持打開狀態,即使您未連接。 這種持久的標準輸入是交互式shell所需的一半。 -t標誌指示Docker將僞tty分配給容器。 這爲我們提供了一個新容器中的交互式shell。 我們使用簡單的exit命令退出容器。

現在我們可以嘗試運行Ubuntu映像。

$ sudo docker run -it ubuntu / bin / bash

您可以在本地注意到Docker檢查圖像,如果不存在,則會自動從image庫中提取。

$ sudo docker run --name our_container -it ubuntu / bin / bash

然後我們再次退出

我們還可以運行我們之前創建的容器,而無需交互式shell。

$ sudo docker start container_name

停止容器寫

$ sudo docker stope container_name

查看所有正在運行的容器

$  docker ps

查看所有容器,docker ps -a。

此命令顯示Container的ID,該映像在創建時使用,運行狀態,公開端口和隨機生成的容器名稱,以便於管理。

當我們運行容器時,我們還想知道他們使用了多少資源,爲此我們可以使用該命令。

$  docker stats

您還可以查看我們在本地下載的image以及有關它們的信息。

$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              1d9c17228a9e        13 days ago         86.7MB
alpine              latest              3f53bb00af94        3 weeks ago         4.41MB
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章