docker學習之介紹

docker是什麼?

​docker是linux容器的一種封裝,提供簡單易用的容器使用接口,是最流行的linux容器解決方案。docker的接口至關簡單,用戶能夠方便地建立和銷燬容器。docker將應用程序與程序的依賴,打包在一個文件裏面,運行這個文件就會生成一個虛擬容器。程序運行在虛擬容器裏面,如同在真實物理機上運行同樣,能夠解決環境配置的難題。python

​linux容器不是模擬一個完整的操做系統,而是對進程進行隔離,在正常的進程外面套一個保護層,對於容器裏面的進程來講,它接觸到的資源都是虛擬的,從而實現和底層系統的隔離。linux

  1. 啓動快

容器裏面的應用,直接就是底層系統的一個進程,而不是虛擬機內部的進程。因此,啓動容器至關於啓動本機的一個進程,而不是啓動一個操做系統,速度快不少。docker

  1. 資源佔用少

容器只佔用須要的資源,不佔用那些沒有用的資源;而虛擬機是完整的操做系統,不可避免要佔用全部資源。此外,多個容器能夠共享資源,虛擬機都是獨享資源。json

  1. 體積小

容器只要包含用到的組件便可,而虛擬機是整個操做系統的打包,因此容器文件比虛擬機文件小不少。安全

綜上所說,容器能夠理解爲輕量級的虛擬機,可以提供虛擬化的環境,成本開銷小得多。bash

docker的優點

  • 更高效的利用系統資源

容器 不須要進行硬件虛擬以及運行完整的操做系統等額外開銷,因此不管是應用執行速度、內存損耗或者文件存儲速度,都比傳統虛擬技術更高效。架構

  • 更快速的啓動時間

傳統的虛擬機技術啓動應用服務每每須要數分鐘,而docker容器應用直接運行於宿主機內核,不須要啓動完整的操做系統,能夠作到秒級、甚至毫秒級的啓動時間,大大節約了開發、測試和部署的時間。運維

  • 一致的運行環境

開發過程當中一個常見的問題是環境一致性問題。docker鏡像提供了除內核外完整的運行環境,確保了應用運行環境的一致性。curl

  • 持續交付和部署

使用docker能夠經過定製應用鏡像來實現持續繼承、持續交付、部署。開發人員能夠經過dockerfile來進行鏡像構建,並結合、持續繼承系統進行繼承測試;而運維人員能夠直接在生產環境中快速部署該鏡像,甚至結合持續部署系統進行自動部署。測試

  • 更輕鬆的遷移

docker確保了執行環境的一致性,故應用的遷移更加容易。不管是在物理機、虛擬機、公有云、私有云,甚至是筆記本,運行結果都是一致的。所以,用戶能夠很輕易的在一個平臺上運行應用,遷移到另外一個平臺上,不用擔憂運行環境的變化致使應用沒法正常運行。

docker的三大概念

  • 鏡像(image):賣的鏡像光盤,能夠理解爲python的類。docker鏡像就是一個只讀的模板,用來建立docker容器。鏡像是一個虛擬的概念,不是一個完整的打包文件,鏡像採用分層儲存的架構,由一組文件組成,或者多組文件系統聯合組成。
  • 容器(container):基於鏡像運行出的容器實例,能夠理解爲python類的實例化。鏡像是靜態的定義,容器是鏡像運行時的實體,能夠被啓動、開始、中止、刪除。每一個容器都是相互隔離的,保證安全的平臺。容器能夠看作是一個簡易版的Linux環境和運行在其中的應用程序。
  • 倉庫(repository):集中存放鏡像文件的場所。每一個倉庫包含多個鏡像,每一個鏡像有不一樣的標籤。倉庫分爲公開倉庫和私有倉庫兩種形式,最大的公開倉庫是docker hub,存放了數量龐大的鏡像。國內公開倉庫包含docker pool等,能夠提供大陸用戶穩定快速的訪問。建立了本身的鏡像以後可使用push命令上傳到倉庫,在另一臺機器上使用這個鏡像時,只須要 從倉庫上pull下來。docker倉庫的概念跟Git相似。

docker的整個生命週期就是這三個概念。

下載安裝docker

  1. 下載docker

    yum install docker -y
  2. 配置docker鏡像加速器

    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

    加速器修改的是 /etc/docker/daemon.json文件。

  3. 重啓docker服務

    systemctl restart docker

    注意:重啓以前須要修改一個配置文件。

    cat /etc/docker/daemon.json
    # 去掉{}裏面的逗號就行
     {"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}
相關文章
相關標籤/搜索