<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Docker 學(xué)習(xí)篇(三)

          共 2262字,需瀏覽 5分鐘

           ·

          2021-09-22 01:04

          1、為什么 Docker 運行起來比虛擬機(jī) VM 快?

          在上篇文章,我們用 Docker 運行了 hello-world 程序,其實可以看出,Docker 和虛擬機(jī)類似,都是另一種形式的計算機(jī)。

          但是當(dāng)我們使用 service docker restart 命令重啟 Docker 時,運行起來的速度明顯比 VM 虛擬機(jī)快的多(Docker 秒級別,虛擬機(jī)分鐘級別),這是什么原因呢?

          首先 po 一張圖,這是我查了一些資料,看了一些視頻之后的理解。

          圖1 Docker和虛擬機(jī)對比

          傳統(tǒng)的虛擬機(jī),需要先根據(jù)物理機(jī)(宿主機(jī))虛擬出一個操作系統(tǒng),然后在操作系統(tǒng)上完成各種各樣的配置,這樣并不能充分的利用物理機(jī)的性能。

          Docker 則是一種操作系統(tǒng)級別的虛擬技術(shù),它運行在操作系統(tǒng)之上的用戶空間,Docker 中的所有的容器和物理機(jī)共用一個系統(tǒng)內(nèi)核,容器引擎提供了進(jìn)程級別的隔離,讓每個容器都像運行在單獨的系統(tǒng)之上,但是又能夠共享很多底層資源。

          綜上所述, Docker 更為輕量、快速和易于管理。

          2、Docker 是如何工作的?

          Docker 是一個 Client-Server 結(jié)構(gòu)的系統(tǒng),當(dāng)我們執(zhí)行一條 Docker 命令時,內(nèi)部的執(zhí)行流程如下所示(需要配合圖2一起看哈):

          (1)客戶端通過 Socket 與 Docker 內(nèi)部的后臺守護(hù)進(jìn)程建立連接。
          (2)客戶端將 Docker 命令發(fā)送給守護(hù)進(jìn)程。
          (3)守護(hù)進(jìn)程接受命令并管理運行在 Docker 中的容器。當(dāng)我們要運行某個容器時,首先會判斷本地是否已經(jīng)存在這個容器,如果已經(jīng)存在則直接運行,否則找到鏡像,根據(jù)鏡像生成容器再運行,找鏡像會先在本地找,如果本地不存在,才去倉庫pull。

          圖2 Docker 運行原理
          3、Docker 常用命令
          (1)、幫助命令

          1、docker version:驗證docker是否安裝成功。

          2、docker info:顯示Docker系統(tǒng)信息,包括鏡像數(shù)、容器數(shù)、使用的倉庫hub、可用的內(nèi)存、宿主機(jī)的域名等等。


          3、docker --help:當(dāng)docker命令記不住了,可以使用這個命令打印出docker的所有命令,Commands展示的就是docker的所有命令。

          (2)、鏡像命令

          1、docker images:列出本地的所有鏡像。REPOSITORY:鏡像名稱。
          TAG:鏡像的版本號,一個鏡像可以有多個版本,好比如 redis 有多個版本一樣,圖中的 latest 表示是最新版本。當(dāng)我們自己制作鏡像時,如果不指定 TAG 的話,Docker 將默認(rèn)其 TAG 等于 latest。
          IMAGE ID:鏡像ID。
          CREATED:鏡像創(chuàng)建時間。
          SIZE:鏡像大小。

          2、docker images -a:列出本地所有的鏡像,包含中間鏡像層,鏡像是分層的,可以把它想象成一個千層餅,一層裹著一層,加上 -a 參數(shù),里層的鏡像也能展示出來。

          3、docker images -q:只顯示鏡像ID。docker images -a 和 docker images -q 可以組合成一條命令 docker images -qa,顯示所有鏡像的鏡像ID,后續(xù)當(dāng)我們想要刪除多個鏡像,可以把 docker images -qa 查出的結(jié)果,傳給 docker 的 rm 刪除命令,就可以實現(xiàn)鏡像的批量刪除。

          4、docker images --digests:顯示鏡像的摘要信息,我們發(fā)現(xiàn)返回結(jié)果中多了一個DIGEST,表示鏡像的摘要信息。

          5、docker images --no-trunc:顯示完整的鏡像信息,我們發(fā)現(xiàn)返回的IMAGE ID不再是截取的。

          6、docker search 某個XXX鏡像名字:從鏡像倉庫(http://hub.docker.com或者阿里云)查找某個XXX鏡像。

          7、docker pull 某個XXX鏡像名字:從鏡像倉庫下載鏡像,如果沒有指定鏡像版本號,默認(rèn)pull的是latest版本的鏡像。

          8、docker rmi 某個XXX鏡像名字:刪除本地一個或多個鏡像。

          (3)、容器命令

          1、docker run -it 鏡像ID:新建并啟動容器。

          2、docker ps:列出所有容器,通過這個命令,我們可以看到容器的狀態(tài),UP:表示容器正在運行,DOWN:表示容器啟動失敗。

          3、docker logs 容器ID:查看容器日志。

          4、docker inspect 容器ID:查看容器內(nèi)部細(xì)節(jié),結(jié)果會返回一大堆json 串,因為我們之前說過容器和鏡像都是分層的,類似一個千層餅,一層套一層,而 json 串也是一層套一層,所以返回的是 json 串格式。在講解數(shù)據(jù)卷和容器的時候,會更加詳細(xì)地講解這個命令。

          5、docker stop 容器ID:停止容器運行。

          6、docker cp:將容器中的數(shù)據(jù)拷貝到宿主機(jī)上。在下面這種情況下,就我們要把容器停掉,但是它里面產(chǎn)生的數(shù)據(jù)我們想保留下來,此時就可以用這條命令將重要的數(shù)據(jù)持久化到宿主機(jī)上。

          docker cp 10b9a3588:/tmp/yum.log /root,將10b9a3588這個容器tmp目錄下的yum.log文件拷貝到主機(jī)的root目錄下。


          瀏覽 67
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉伊人干 | 不用AI搜索日韩无码 | 天天综合网天天色 | 精品久久电影 | 国产内射久久 |