1. 程式人生 > 其它 >02-Docker安裝

02-Docker安裝

Docker安裝

Docker的架構圖

映象(image):

Docker 映象(Image)就是一個只讀的模板。映象可以用來建立 Docker 容器,一個映象可以建立很
多容器。 就好似 Java 中的 類和物件,類就是映象,容器就是物件!

容器(container):

  1. Docker 利用容器(Container)獨立執行的一個或一組應用。容器是用映象建立的執行例項。

  2. 它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的,保證安全的平臺。

  3. 可以把容器看做是一個簡易版的 Linux 環境(包括root使用者許可權、程序空間、使用者空間和網路空間等)和執行在其中的應用程式。

  4. 容器的定義和映象幾乎一模一樣,也是一堆層的統一視角,唯一區別在於容器的最上面那一層是可讀可寫的。

倉庫(repository):

  1. 倉庫(Repository)是集中存放映象檔案的場所。

  2. 倉庫(Repository)和倉庫註冊伺服器(Registry)是有區別的。倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中又包含了多個映象,每個映象有不同的標籤(tag)。

  3. 倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。

  4. 最大的公開倉庫是 Docker Hub(https://hub.docker.com/),存放了數量龐大的映象供使用者下載。

  5. 國內的公開倉庫包括阿里雲 、網易雲 等

小結

需要正確的理解倉儲/映象/容器這幾個概念 :

  • Docker 本身是一個容器執行載體或稱之為管理引擎。我們把應用程式和配置依賴打包好形成一個可交付的執行環境,這個打包好的執行環境就是image映象檔案。只有通過這個映象檔案才能生成 Docker 容器。image 檔案可以看作是容器的模板。Docker 根據 image 檔案生成容器的例項。同一個 image 檔案,可以生成多個同時執行的容器例項。

  • image 檔案生成的容器例項,本身也是一個檔案,稱為映象檔案。

  • 一個容器執行一種服務,當我們需要的時候,就可以通過docker客戶端建立一個對應的執行例項,也就是我們的容器

  • 至於倉庫,就是放了一堆映象的地方,我們可以把映象釋出到倉庫中,需要的時候從倉庫中拉下來就可以了。

環境說明

我們使用的是 CentOS 7 (64-bit)

目前,CentOS 僅發行版本中的核心支援 Docker。

Docker 執行在 CentOS 7 上,要求系統為64位、系統核心版本為 3.10 以上。

檢視自己的核心:

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

[root@master ~]# uname -r
3.10.0-1160.el7.x86_64

檢視版本資訊:

cat /etc/os-release

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

安裝步驟

1、官網安裝參考手冊:https://docs.docker.com/engine/install/centos/

2、確定你是CentOS7及以上版本,我們已經做過了

3、yum安裝gcc相關環境(需要確保 虛擬機器可以上外網 )

yum -y install gcc
yum -y install gcc-c++

4、解除安裝舊版本

沒有安裝過的話無需執行此操作

yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

5、安裝需要的軟體包

yum install -y yum-utils 

6、設定映象倉庫

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

注意:執行上面的語句可能出現如下的報錯

這可能是讀者升級了python3,並且修改了python的連結,解決辦法,vim /usr/bin/yum-config-manager,第一行改為#!/usr/bin/python2 -tt

7、更新yum軟體包索引

yum makecache fast 

8、安裝 Docker CE

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

9、啟動 Docker

systemctl start docker 

10、測試命令

docker version
docker run hello-world
docker images

11、解除安裝

systemctl stop docker
yum -y remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker

底層原理

1、啟動hello-world

docker run hello-world

2、run幹了什麼?

Docker是怎麼工作的

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

為什麼Docker比較 VM 快

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

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