1. 程式人生 > >Docker基礎 2.Docker安裝

Docker基礎 2.Docker安裝

Docker基礎

@Author:hanguixian
@Email:[email protected]

Docker文件:https://docs.docker.com/

Dcker中文文件:https://docs.docker-cn.com/

二.Docker安裝

1.前提條件

  • Docker.支援以下的CentOS版本:CentOS 7 (64-bit)

  • CentOS 6.5 (64-bit) 或更高的版本

  • 前提條件

    • 目前,CentOS僅發行版本中的核心支援Docker。
    • Docker執行在CentOS 7上,要求系統為64位、系統核心版本為3.10以上。
    • Docker執行在CentOS-6.5或更高的版本的CentOS上,要求系統為64位、系統核心版本為2.6.32-431或者更高版本。
  • 檢視自己的核心

    • uname命令用於列印當前系統相關資訊(核心版本號、硬體架構、主機名稱和作業系統型別等)。
     uname -r
     cat /etc/redhat-release

2.docker的基本組成

  • docker的架構圖

docker架構圖

  • 映象

    • Docker映象(lmage) 就是一個只讀的模板。映象可以用來建立Docker容器,一個映象可以建立很多容器

    • 映象和容器的關係類似類與物件的關係:

      Docker 面向物件
      容器 物件
      映象
  • 容器

    • Docker利用容器(Container) 獨立執行的一個或一組應用。容器是用映象建立的執行例項。
    • 它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。
    • 可以把容器看做是一個簡易版的Linux環境(包括root使用者許可權、程序空間、使用者空間和網路空間等)和執行在其中的應用程式。
    • 容器的定義和映象幾乎一模一樣,也是一堆層的統一視角, 唯一區別在於容器的最上面那一層是可讀可寫的。
  • 倉庫

    • 倉庫(Repository) 是集中存放映象檔案的場所。
    • 倉庫(Repository)和倉庫註冊伺服器(Registry) 是有區別的。倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中又包含了多個映象,每個映象有不同的標籤(tag)。
    • 倉庫分為公開倉庫(Public) 和私有倉庫(Private) 兩種形式。最大的公開倉庫是Docker Hub(https://hub.docker.com), 存放了數量龐大的映象供使用者下載。國內的公開倉庫包括阿里雲、網易雲等

    • 總結

      • 倉儲/映象/容器的概念:
        • Docker本身是一個容器執行載體或稱之為管理引擎。我們把應用程式和配置依賴打包好形成一個可交付的執行環境,這個打包好的執行環境就似乎image映象檔案。只有通過這個映象檔案才能生成Docker容器。image檔案可以看作是容器的模板。Docker根據image檔案生成容器的例項。同一個image檔案,可以生成多個同時執行的容器例項。
        • image檔案生成的容器例項,本身也是一個檔案,稱為映象檔案。
        • 一個容器執行一種服務,當我們需要的時候,就可以通過docker客戶端建立一個對應的執行例項,也就是我們的容器
        • 至於倉儲,就是放了一堆映象的地方,我們可以把映象釋出到倉儲中,需要的時候從倉儲中拉下來就可以了。

3.安裝步驟

  • CentOS6

    • yum install -y epel-release (Docker使用EPEL釋出, RHEL系的OS首先要確保持有EPEL倉庫,否則先檢査〇S的版本,然後安裝相應的EPEL包。)
    • yum install -y docker-io (安裝)
    • 安裝後的配置檔案: /etc/sysconfig/docker
    • 啟動Docker後臺服務: service docker start
    • docker version 驗證
  • CentOS7

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    • 2.使用以下命令設定穩定儲存庫。即使您還想從邊緣測試儲存庫安裝構建,您始終需要穩定的儲存 庫。(大坑:改成阿里雲或網易雲)
     sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 
    • 3.安裝最新版本的Docker CE
    sudo yum install docker-ce
    • 啟動 docker
     systemctl start docker
    • docker通過執行hello-world 映象驗證是否已正確安裝。
    sudo docker run hello-world

4.使用和優化

  • run: docker run xxx

  • 阿里雲加速:

  • 網易雲加速:

5.底層原理

  • Docker如何執行

    • Docker是一個Client-Server結構的系統,Docker守護 程序執行在主機上,然後通過Socket連線從客戶端訪問,守護程序從客戶端接受命令並管理執行在主機上的容器。容器,是一個執行時環境,就是我們前面說到的集裝箱。
      如何執行
  • Docker比VM塊

    • (1)docker有著比虛擬機器更少的抽象層。由亍docker不需要Hypervisor實現硬體資源虛擬化,執行在docker容器上的程式直接使用的都是實際物理機的硬體資源。因此在CPU、記憶體利用率上docker將會在效率上有明顯優勢。

    • ​(2)docker利用的是宿主機的核心,而不需要Guest OS。因此,當新建一個容器時,docker不需要和虛擬機器一樣重新載入一個作業系統核心。仍而避免引尋、載入作業系統核心返個比較費時費資源的過程,當新建一個虛擬機器時,虛擬機器軟體需要載入GuestOS,返個新建過程是分鐘級別的。而docker由於直接利用宿主機的作業系統,則省略了返個過程,因此新建一個docker容器只需要幾秒鐘。

      # Docker容器 虛擬機器(VM)
      作業系統 與宿主機共享0S 宿主機OS上執行虛擬機器OS
      儲存大小 映象小,便於儲存與傳輸 映象龐大(vmdk、vdi等)
      執行效能 幾乎無額外效能損失 作業系統額外的CPU、記憶體消耗
      移植性 輕便、靈活,適應於Linux 笨重,與虛擬化技術耦合度高
      硬體親和性 面向軟體開發者 面向硬體運維者

      docker

      虛擬機器