站長資訊網
        最全最豐富的資訊網站

        揭開Docker的面紗 – 基礎理論梳理和安裝流程演示

        前言

        ? 本文將圍繞以下幾個方面來揭開docker的面紗:

        • 什么是docker?
        • 為什么需要docker?
        • docker的核心概念

        什么是docker?

        ?基于Linux而言,docker是在其中運行應用的一款開源工具,可以認為是一種輕量級的虛擬機。docker的logo是一條載著集裝箱的鯨魚(舊版的logo),新版的logo則是直接簡化了細節,更改了顏色,如下圖。

        揭開Docker的面紗 - 基礎理論梳理和安裝流程演示

        從圖片中就可以看出來,docker的創建和開發者們的意圖。鯨魚——宿主機,塊狀箱——隔離的容器(后面介紹什么是docker容器)。而docker的宗旨:Build、Ship and Run Any APP,Anywhere。具體而言,就是通過對應應用組件的封裝、發布、部署、運行等生命周期的管理,從而達到應用組件級別的“一次封裝、處處運行”的目的。

        ? 舉個例子就好比自己開發了一款應用軟件,希望它在任何地點,任何時間、任何操作系統中都可以使用的時候,就可以將它基于docker來實現。當然,對于docker而言,這個組件可以是一個應用,也可以是一個配置,甚至可以是一個完整的操作系統。

        為什么需要docker?

        ?其實docker的出現對于開發人員是莫大的福音。設想目前或未來基于云平臺的應用或軟件的開發,脫離了底層的硬件,而使用者需要在任何時間、任何地點都可以獲取相關的資源,那么docker便可以提供這樣的訴求。

        下面直接給出docker容器與傳統虛擬機的比較

        特性 Docker容器 虛擬機
        啟動速度 秒級 分鐘級
        計算機性能損耗 幾乎不損耗 損耗一半左右
        性能 接近原生 弱之
        系統支持量 上千個 幾十個
        隔離性 資源限制 完全隔離

        ? docker核心解決的問題是利用容器實現類似VM的功能,從而以更加節省的硬件資源給用戶提供更多的計算資源,并且docker操作方便,還可以通過Dockerfile配置文件支持靈活的自動化創建和部署。

        ?接下來看一下Docker與傳統虛擬機架構的對比:

        揭開Docker的面紗 - 基礎理論梳理和安裝流程演示

        ? 通過上圖發現,虛擬機是在物理資源層面實現的隔離,相對于虛擬機,Docker是基于APP層面實現的隔離,并且省去了虛擬機操作系統,從而節省了一部分的系統資源。

        ? Docker守護進程可以直接與主操作系統進行通信,為各個Docker容器分配資源;它還可以將容器與主操作系統隔離(為了安全),并將各個容器互相隔離。虛擬機啟動需要數分鐘,而Docker容器可以在數毫秒內啟動。由于沒有臃腫的從操作系統,Docker可以節省大量的磁盤空間以及其他系統資源。

        ? 簡單來說,虛擬機和docker的區別就在于虛擬機需要通過Hypervisor對硬件資源也進行虛擬化,而docker是直接使用宿主機的硬件資源的,因此虛擬機的隔離性更加徹底,而docker的隔離性次之。

        Docker的核心概念

        1、鏡像——image

        ? 可以理解為類似我們虛擬機中的快照,是創建容器的基礎,可以說無鏡像,不容器。

        2、容器——container

        ? 基于鏡像創建的運行實例,可以被啟動、停止和刪除。每個容器之間都是相互隔離、互不可見的。

        3、倉庫——repository

        ? 保存鏡像的地方,可以理解為鏡像囤積地。可以將自己創建的進行推送到倉庫中,方便隨時隨地拉取使用。

        ? 倉庫注冊服務器(registry)是存放倉庫的地方,其中包含了多個倉庫,每個倉庫中存放一類鏡像,并且使用不同的標簽(tag)來區分。目前最大的公共倉庫就是Docker Hub,其中存放了數量龐大的鏡像給用戶下載使用。

        這邊補充說明一下docker架構:

        ? Docker使用客戶端-服務器架構。Docker 客戶端與Docker 守護進程進行對話,該守護進程完成了構建,運行和分發Docker容器的繁重工作。Docker客戶端和守護程序可以 在同一系統上運行,或者您可以將Docker客戶端連接到遠程Docker守護程序。Docker客戶端和守護程序在UNIX套接字或網絡接口上使用REST API進行通信。

        架構圖示:

        揭開Docker的面紗 - 基礎理論梳理和安裝流程演示

        Docker的安裝流程

        基于Linux/CentOS7的安裝部署流程如下:

        操作系統版本:centos7.7

        1、環境部署

        [root@localhost ~]# hostnamectl  set-hostname docker  [root@localhost ~]# su  [root@docker ~]# cat /etc/RedHat-release   CentOS Linux release 7.7.1908 (Core)    [root@docker ~]# systemctl stop firewalld && systemctl disable firewalld  Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.  Removed symlink /etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service.  [root@docker ~]# setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config  [root@docker ~]# echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf #開啟路由轉發  [root@docker ~]# sysctl -p #加載路由轉發功能  net.ipv4.ip_forward = 1  [root@docker ~]# systemctl restart network

        2、安裝依賴包

        [root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2  ...  更新完畢:    lvm2.x86_64 7:2.02.185-2.el7_7.2                                                                           作為依賴被升級:    device-mapper.x86_64 7:1.02.158-2.el7_7.2             device-mapper-event.x86_64 7:1.02.158-2.el7_7.2     device-mapper-event-libs.x86_64 7:1.02.158-2.el7_7.2  device-mapper-libs.x86_64 7:1.02.158-2.el7_7.2      lvm2-libs.x86_64 7:2.02.185-2.el7_7.2                    完畢!  

        說明:

        安裝yum-utils軟件包是為了提供一個yum-config-manager單元,同時安裝的device-mapper-persistent-data和lvm2用于存儲設備映射必須的兩個軟件包。

        3、設置穩定的存儲庫

        [root@docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  已加載插件:fastestmirror, langpacks  adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  grabbing file https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo  repo saved to /etc/yum.repos.d/docker-ce.repo  [root@docker ~]# ls /etc/yum.repos.d/ #查看是否加入了一個docker源  CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo  CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  docker-ce.repo  

        4、安裝docker引擎

        [root@docker ~]# yum install -y docker-ce   ...  已安裝:    docker-ce.x86_64 3:19.03.8-3.el7                                                                           作為依賴被安裝:    container-selinux.noarch 2:2.107-3.el7              containerd.io.x86_64 0:1.2.13-3.1.el7                 docker-ce-cli.x86_64 1:19.03.8-3.el7                   完畢!

        5、創建docker目錄,配置鏡像加速服務

        [root@docker ~]# mkdir /etc/docker -p  [root@docker ~]# tee /etc/docker/daemon.json <<-'EOF'  > { > "registry-mirrors": ["https://5m9y9qbl.mirror.aliyuncs.com"] > } > EOF  {    "registry-mirrors": ["https://5m9y9qbl.mirror.aliyuncs.com"]  }  

        說明:tee命令——從標準輸入寫往文件和標準輸出,即把標準輸入的數據復制到每一個文件FILE, 同時送往標準輸出。

        6、開啟服務,查看版本

        [root@docker ~]# systemctl daemon-reload   [root@docker ~]# systemctl restart docker.service   [root@docker ~]# docker -v  Docker version 19.03.8, build afacb8b    [root@docker ~]# docker version  Client: Docker Engine - Community   Version:           19.03.8   API version:       1.40   Go version:        go1.12.17   Git commit:        afacb8b   Built:             Wed Mar 11 01:27:04 2020   OS/Arch:           linux/amd64   Experimental:      false    Server: Docker Engine - Community   Engine:    Version:          19.03.8    API version:      1.40 (minimum version 1.12)    Go version:       go1.12.17    Git commit:       afacb8b    Built:            Wed Mar 11 01:25:42 2020    OS/Arch:          linux/amd64    Experimental:     false   containerd:    Version:          1.2.13    GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429   runc:    Version:          1.0.0-rc10    GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd   docker-init:    Version:          0.18.0    GitCommit:        fec3683  

        總結

        ? 本文主要介紹了docker的作用,將之與傳統虛擬機進行特性對比,以及架構層面的對比,接著講述有關docker的核心三大組成,最終給出基于Linux下Centos7操作系統中docker的安裝流程。

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久精品夜色噜噜亚洲A∨| 老子影院午夜精品无码| 国产精品久久久天天影视香蕉| 免费精品视频在线| 精品视频一区二区三区免费| 亚洲国产av无码精品| 国产精品部在线观看| 2021久久国自产拍精品| 亚洲精品国产精品乱码不99| 国产精品美女WWW爽爽爽视频| 国产精品日本一区二区在线播放 | 亚洲中文字幕无码久久精品1| 国产精品嫩草影院久久| 国产亚洲精品va在线| 国内精品久久久久伊人av| 97精品国产手机| 青青久久精品国产免费看| 亚洲精品欧美综合| 99精品国产丝袜在线拍国语| 四虎精品免费永久免费视频| 国产精品亚洲美女久久久| 精品国产欧美一区二区| 国产精品无码无片在线观看| 日韩一区精品视频一区二区| 亚洲精品宾馆在线精品酒店| 国语自产精品视频| 国产精品欧美久久久久无广告 | 精品亚洲综合在线第一区| 欧美精品/日韩精品/国产精品 | 久久精品国产亚洲77777| 久久久久亚洲精品无码网址 | 999久久久免费国产精品播放| 久久99精品国产自在现线小黄鸭| 久久精品夜色噜噜亚洲A∨| 黑巨人与欧美精品一区| 国产精品尹人在线观看| 国产欧美日韩综合精品二区| 大胸国产精品视频| 99久久99久久精品国产片| 免费欧美精品a在线| 欧美一区二区精品系列在线观看 |