久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      揭開(kāi)Docker的面紗 – 基礎(chǔ)理論梳理和安裝流程演示

      前言

      ? 本文將圍繞以下幾個(gè)方面來(lái)揭開(kāi)docker的面紗:

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

      什么是docker?

      ?基于Linux而言,docker是在其中運(yùn)行應(yīng)用的一款開(kāi)源工具,可以認(rèn)為是一種輕量級(jí)的虛擬機(jī)。docker的logo是一條載著集裝箱的鯨魚(yú)(舊版的logo),新版的logo則是直接簡(jiǎn)化了細(xì)節(jié),更改了顏色,如下圖。

      揭開(kāi)Docker的面紗 - 基礎(chǔ)理論梳理和安裝流程演示

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

      ? 舉個(gè)例子就好比自己開(kāi)發(fā)了一款應(yīng)用軟件,希望它在任何地點(diǎn),任何時(shí)間、任何操作系統(tǒng)中都可以使用的時(shí)候,就可以將它基于docker來(lái)實(shí)現(xiàn)。當(dāng)然,對(duì)于docker而言,這個(gè)組件可以是一個(gè)應(yīng)用,也可以是一個(gè)配置,甚至可以是一個(gè)完整的操作系統(tǒng)。

      為什么需要docker?

      ?其實(shí)docker的出現(xiàn)對(duì)于開(kāi)發(fā)人員是莫大的福音。設(shè)想目前或未來(lái)基于云平臺(tái)的應(yīng)用或軟件的開(kāi)發(fā),脫離了底層的硬件,而使用者需要在任何時(shí)間、任何地點(diǎn)都可以獲取相關(guān)的資源,那么docker便可以提供這樣的訴求。

      下面直接給出docker容器與傳統(tǒng)虛擬機(jī)的比較

      特性 Docker容器 虛擬機(jī)
      啟動(dòng)速度 秒級(jí) 分鐘級(jí)
      計(jì)算機(jī)性能損耗 幾乎不損耗 損耗一半左右
      性能 接近原生 弱之
      系統(tǒng)支持量 上千個(gè) 幾十個(gè)
      隔離性 資源限制 完全隔離

      ? docker核心解決的問(wèn)題是利用容器實(shí)現(xiàn)類似VM的功能,從而以更加節(jié)省的硬件資源給用戶提供更多的計(jì)算資源,并且docker操作方便,還可以通過(guò)Dockerfile配置文件支持靈活的自動(dòng)化創(chuàng)建和部署。

      ?接下來(lái)看一下Docker與傳統(tǒng)虛擬機(jī)架構(gòu)的對(duì)比:

      揭開(kāi)Docker的面紗 - 基礎(chǔ)理論梳理和安裝流程演示

      ? 通過(guò)上圖發(fā)現(xiàn),虛擬機(jī)是在物理資源層面實(shí)現(xiàn)的隔離,相對(duì)于虛擬機(jī),Docker是基于APP層面實(shí)現(xiàn)的隔離,并且省去了虛擬機(jī)操作系統(tǒng),從而節(jié)省了一部分的系統(tǒng)資源。

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

      ? 簡(jiǎn)單來(lái)說(shuō),虛擬機(jī)和docker的區(qū)別就在于虛擬機(jī)需要通過(guò)Hypervisor對(duì)硬件資源也進(jìn)行虛擬化,而docker是直接使用宿主機(jī)的硬件資源的,因此虛擬機(jī)的隔離性更加徹底,而docker的隔離性次之。

      Docker的核心概念

      1、鏡像——image

      ? 可以理解為類似我們虛擬機(jī)中的快照,是創(chuàng)建容器的基礎(chǔ),可以說(shuō)無(wú)鏡像,不容器。

      2、容器——container

      ? 基于鏡像創(chuàng)建的運(yùn)行實(shí)例,可以被啟動(dòng)、停止和刪除。每個(gè)容器之間都是相互隔離、互不可見(jiàn)的。

      3、倉(cāng)庫(kù)——repository

      ? 保存鏡像的地方,可以理解為鏡像囤積地??梢詫⒆约簞?chuàng)建的進(jìn)行推送到倉(cāng)庫(kù)中,方便隨時(shí)隨地拉取使用。

      ? 倉(cāng)庫(kù)注冊(cè)服務(wù)器(registry)是存放倉(cāng)庫(kù)的地方,其中包含了多個(gè)倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)中存放一類鏡像,并且使用不同的標(biāo)簽(tag)來(lái)區(qū)分。目前最大的公共倉(cāng)庫(kù)就是Docker Hub,其中存放了數(shù)量龐大的鏡像給用戶下載使用。

      這邊補(bǔ)充說(shuō)明一下docker架構(gòu):

      ? Docker使用客戶端-服務(wù)器架構(gòu)。Docker 客戶端與Docker 守護(hù)進(jìn)程進(jìn)行對(duì)話,該守護(hù)進(jìn)程完成了構(gòu)建,運(yùn)行和分發(fā)Docker容器的繁重工作。Docker客戶端和守護(hù)程序可以 在同一系統(tǒng)上運(yùn)行,或者您可以將Docker客戶端連接到遠(yuǎn)程Docker守護(hù)程序。Docker客戶端和守護(hù)程序在UNIX套接字或網(wǎng)絡(luò)接口上使用REST API進(jìn)行通信。

      架構(gòu)圖示:

      揭開(kāi)Docker的面紗 - 基礎(chǔ)理論梳理和安裝流程演示

      Docker的安裝流程

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

      操作系統(tǒng)版本:centos7.7

      1、環(huán)境部署

      [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 #開(kāi)啟路由轉(zhuǎn)發(fā)  [root@docker ~]# sysctl -p #加載路由轉(zhuǎn)發(fā)功能  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                                                                           作為依賴被升級(jí):    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                    完畢!  

      說(shuō)明:

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

      3、設(shè)置穩(wěn)定的存儲(chǔ)庫(kù)

      [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/ #查看是否加入了一個(gè)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、創(chuàng)建docker目錄,配置鏡像加速服務(wù)

      [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"]  }  

      說(shuō)明:tee命令——從標(biāo)準(zhǔn)輸入寫往文件和標(biāo)準(zhǔn)輸出,即把標(biāo)準(zhǔn)輸入的數(shù)據(jù)復(fù)制到每一個(gè)文件FILE, 同時(shí)送往標(biāo)準(zhǔn)輸出。

      6、開(kāi)啟服務(wù),查看版本

      [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  

      總結(jié)

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

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)