天天看點

Docker小白入門(一)三/ Docker架構 (圖取自 網易雲課堂Java微專業課堂),請仔細了解每個單詞作用,在後面的輸出中,都會使用到

導讀: 參加網易雲微專業5個月有餘,發現現在自己開始疲憊了,雖然課程進度沒落下,但是也沒深入學透徹,寫部落格是為了鞏固知識,具體會從微專業第一堂課持續輸出.

Docker網址: https://docs.docker.com/get-started/

這次輸出内容為 Docker專題,都是從課堂上總結下來的知識點,自己有XMind的輸入,主要分成

  1. docker簡介
  2. Linux上的Docker安裝

一/ Docker是什麼?

    Docker 是一個開源的引擎,可以輕松的為任何應用建立一個輕量級的,可移植的,自給自足的容器,開發者在筆記本上編譯測試通過的容器可以批量地在生産環境中部署,包括 VMs(虛拟機) / bare metal / OpenStack叢集和其他的基礎應用平台.

    Docker通常使用于如下場景:

  • web應用的自動化打包和釋出;
  • 自動化測試和持續繼承 釋出;
  • 在服務型環境中部署和調整資料庫或其他的背景應用;
  • 從頭編譯或者擴充現有的OpenShift或Cloud Foundry平台來搭建自己的PaaS環境

二/ Docker的優勢

  1. 更高效的利用系統資源
  2. 更快速的啟動時間
  3. 一緻的運作環境
  4. 持續傳遞和部署
  5. 更輕松的遷移
  6. 更輕松的維護和擴充
  7. Docker小白入門(一)三/ Docker架構 (圖取自 網易雲課堂Java微專業課堂),請仔細了解每個單詞作用,在後面的輸出中,都會使用到

三/ Docker架構 (圖取自 網易雲課堂Java微專業課堂),請仔細了解每個單詞作用,在後面的輸出中,都會使用到

Docker小白入門(一)三/ Docker架構 (圖取自 網易雲課堂Java微專業課堂),請仔細了解每個單詞作用,在後面的輸出中,都會使用到
  • 圖中  image表示 docker鏡像

    作業系統分為核心和使用者空間,對弈Linxu而言,核心啟動後,會挂載root檔案系統為其提供使用者控件支援,而Docker鏡像(Image),就相當于是一個root檔案系統,比如官方鏡像 centos:7.6 就包含了完整的一套centos 7.6最小系統的root檔案系統

    Docker鏡像是一個特殊的檔案系統,除了提供容器運作時所需的程式/ 庫/ 資源/ 配置等檔案外,還包含了一些為運作時準備的一些配置參數(如匿名卷/ 環境變量/ 使用者等),鏡像不包含任何動态資料,其内容在建構之後也不會被改變.

  •   Docker鏡像分層存儲

    因為鏡像包含作業系統完整的root檔案系統,其體積往往是龐大的,是以在Docker設計時将其設計為分層存儲的架構,鏡像隻是一個虛拟的概念,其實際提現并非由一個檔案組成,而是一組檔案系統組成,或者說,由多層檔案系統聯合組成.

    鏡像建構時,會一層層建構,前一層是後一層的基礎,每一層建構完就不會再發生改變,後一層上的任何改變隻發生在自己這一層,在建構鏡像的時候,需要額外的小心,每一層盡量隻包含該層需要添加的東西,任何額外的東西應該在該層建構結束前清理掉.

    分層存儲的特征還是的鏡像的複用/ 定制變得更為容易,甚至可以用之前建構好的鏡像作為基礎層,然後進一步添加新的層,以定制自己所需的内容,建構新的鏡像.

  • Docker容器(Container)

    鏡像(Image)和容器(Container)的關系,就像是Java中的類和執行個體一樣,鏡像是靜态的定義,容器是鏡像運作時的實體,容器可以被建立/ 啟動/ 停止/ 删除/ 暫停等.

    容器也是采用分層存儲,每一個容器運作時,是以鏡像為基礎層,在其上建立一個目前容器的存儲層,可以成為這個容器運作時讀寫而準備的存儲層為容器存儲層,

   容器存儲層的生命周期和容器一樣,容器消亡時,容器存儲層也随之消亡,是以,任何儲存于容器存儲層的資訊都會随容器删除而丢失.

  • Volume資料卷介紹

    按照Docker最佳實踐的要求,容器不應該向其存儲層内寫入任何資料,容器存儲層要保持無狀态化,所有的檔案寫入操作,都應該使用 Volume資料卷/ 或者綁定宿主目錄,在這些位置的讀寫會跳過容器存儲層,直接對宿主(或網絡存儲)發生讀寫,其性能和穩定性更高.

    資料卷的生存周期獨立于容器,容器消亡,資料卷不會消亡,是以,使用資料卷後,容器删除或者重新運作之後,資料也不會丢失.

  • Docker 倉庫 (registries)

    鏡像建構完成後,可以很容易的在目前主控端上運作,但是,如果需要在其他伺服器上使用這個鏡像,就需要一個集中的存儲/ 分發鏡像的服務, Docker Registry 就是這樣的服務,

    一個Docker Registry 中可以包含多個倉庫 (Repository);每個倉庫可以包含多個标簽(Tag); 每個标簽對應一個鏡像.

    通常,一個倉庫會包含同一個軟體不同版本的鏡像,而标簽就是常用于對應用軟體的各個版本,可用通過 <倉庫名>:<标簽>的格式來指定具體是這個軟體那個版本的鏡像,如果不給出标簽,将以 latest 作為預設标簽,

    以centos 鏡像為例,centos是倉庫的名字,其内容包含有不同的版本标簽,如: 6.9/ 7.5, 我們可以通過 centos:6.9 或者 centos:7.5來具體指定所需那個版本的鏡像,如果忽略了标簽,比如centos, 那将視為centos:latest

    倉庫名經常以 兩段式路徑 形式出現,比如 study/nginx, 前者往往意味着Docker Registry 多使用者環境下的使用者名,後者則往往是對應的軟體名,但這并非絕對,取決于所使用的具體Docker Registry的軟體或服務.

  • Docker 倉庫 私有鏡像 private registry
Docker小白入門(一)三/ Docker架構 (圖取自 網易雲課堂Java微專業課堂),請仔細了解每個單詞作用,在後面的輸出中,都會使用到

Docker    -Linux上的安裝

官方安裝指南位址: https://docs.docker.com/engine/installation/

  1. 系統要求
    1. Docker CE 支援64位版本CentOS 7,并且要求核心辦惡補不低于3.10.
  2. 解除安裝舊版本
    1. sudo yum remove docker docker-common docker-selinux docker-engine
  3. 方式一: 使用 yum安裝
    1.  sudo yum install docker-ce
  4. 方式二: 使用腳本安裝
    1. 在測試或開發環境中 Docker官方為了簡化安裝流程,提供了一套便捷的腳本安裝,CentOS系統上可以使用這套監本安裝
    2.  curl -fsSL https://get.docker.com -o get-docker.sh
    3.  sudo sh get-docker.sh --mirror Aliyun
    4. 執行這個指令後,監本就會自動的将一切準備工作做好,并且把Docker CE的 Edge版本安裝在系統中
  5. 啟動Docker CE
    1. sudo systemctl enable docker   #設定開機啟動
    2. sudo systemctl start docker
  6. 建立docker使用者組
    1. 預設情況下,docker指令會使用 Unix socket 與Docker 引擎通訊,而隻有root使用者和docker組的使用者才可以通路Docker引擎的Unix socket, 一版Linux 系統上不會直接使用 root 使用者進行操作, 是以,需要将使用 docker 的使用者加入docker使用者組,
    2. sudo groupadd docker #建立docker組
    3. sudo uermod -aG docker $USER    #将目前使用者加入docker組
  7. 測試docker是否安裝正确
    1. docker run hello-world   #啟動一個基于 hello-world 鏡像的容器
    2. 若能正常輸出資訊,則說明安裝成功

---------------------------------------------------------------------------------

    因為第一次微專業課并沒有對于 Docker有多少深入的了解, 在這裡輸入部落格也是為了加深自己的了解, 今天輸出到 安裝

繼續閱讀