溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker的優勢有哪些

發布時間:2021-11-17 13:50:02 來源:億速云 閱讀:221 作者:小新 欄目:大數據

這篇文章給大家分享的是有關Docker的優勢有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

Docker是什么

Docker最初是dotCloud公司的創始人Solomon Hyks在法國期間發起的一個公司內部項目,它是基于dotCloud公司多年云服務技術的一次革新,并于2013年3月以Apache 2.0授權協議開源,主要項目代碼在GitHub上進行維護。Docker后來還加入了Linux基金會,并成立推動開放容器聯盟(OCI)。

Docker是使用Google公司推出的Go語言進行開發實現,基于Linux內核的cgroup,namespace,以及AUFS類的Union FS等技術,對進程進行封裝隔離,屬于操作系統層面的虛擬化技術。由于隔離的進程獨立于宿主和其它隔離的進程,因此也稱其為容器。

Docker在容器的基礎上,進行了進一步的封裝,從文件系統,網絡互聯到進程隔離等等,極大簡化了容器的創建和維護,使得Docker技術比虛擬化技術更輕便快捷。

Docker和傳統虛擬機

容器內的應用進程直接運行于宿主的內核,容器內沒有自己的內核,與其他容器共享主機內核,而且也沒有進行硬件虛擬,不占用比其他可執行文件更多的內存,從而使其更輕便。
相比之下,傳統虛擬機技術是虛擬一套硬件后,在其上運行一個完整操作系統,并通過虛擬機管理程序對主機資源進行虛擬訪問。通常,虛擬機會產生大量開銷,超出了應用程序邏輯所消耗的開銷。

Docker的優勢有哪些

Docker的優勢:

  • 更高效的利用系統資源

  • 更快速的啟動時間

  • 一致的運行環境

  • 持續的交付和部署

  • 更輕松的遷移

  • 更輕松的維護和擴展

對比傳統虛擬機:

特性容器虛擬機
啟動妙級分鐘級
硬盤使用一般為MB一般為GB
性能接近原生較弱
系統支持量單機支持上千容器一般幾十個

Docker架構

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

Docker的優勢有哪些

Docker的基本概念

Docker中最核心最基本的概念有三個鏡像(Image),容器(Container),以及倉庫(Repository)。

Docker鏡像

我們知道,操作系統分為內核和用戶空間,對于Linux而言,內核啟動后會掛載root文件系統為其提供用戶空間支持。而Docker鏡像,就相當于一個root文件系統。比如官方鏡像centos:7.6就包含了完整的一套centos7.6最小的root文件系統。

Docker鏡像(Image)是一個特殊的文件系統,除了提供容器運行時所需的程序,庫,資源,配置等文件外,還包含了一些為運行時準備的一些配置參數(如匿名卷,環境變量,用戶等)。鏡像不包含任何動態數據,其內容在構建后也不會被改變。

包含操作系統完整的root文件系統,其體積往往比較龐大,因此Docker設計時將其設計為分層存儲的架構。鏡像只是一個虛擬的概念,其實際體現并非由一個文件組成,而是由一組文件組成,或者說由多層文件系統聯合組成。

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

分層存儲的特征還使得鏡像的復用,定制變得更為容易。甚至可以用之前構建好的鏡像作為基礎層,然后進一步添加新的層,以定制自己需要的內容,構建新的鏡像。

Docker容器

Docker容器(Container)其實就是Docker鏡像運行時的實體。鏡像和容器的關系,就像Java中的類和實例的關系。鏡像是靜態的定義,容器是動態的實例,可以被創建,啟動,停止,刪除等。

前面說過鏡像是分層存儲,容器也是如此。每一個容器運行時,是以鏡像為基礎,在其上創建一個當前容器的存儲層,我們可以稱這個為容器運行時讀寫而準備的存儲層為容器存儲層。

容器存儲層的生命周期和容器一樣,隨容器的消亡而消亡,因此任何保存在存儲層的信息都會隨容器的刪除而丟失。

按照Docker最佳實踐的要求,容器不應該向其存儲層寫入任何數據,容器存儲層要保持無狀態化。所有的文件寫入操作,都應該使用volume數據卷或者綁定宿主目錄,在這些位置的讀寫會跳過容器存儲層,直接對宿主進行讀寫,其性能和穩定性更高。

數據卷的生命周期獨立于容器,容器消亡,數據卷不會消亡,因此使用數據卷后容器刪除,數據不會丟失。

Docker倉庫

Docker倉庫(Registry)其實就是一個集中存儲,分發鏡像的服務。鏡像構建完成后,可以很容易的在當前宿主機上運行,但是如果需要在其他服務器上使用這個鏡像,我們就需要Docker Registry這樣的服務。

一個倉庫會包含同一個軟件不同版本的鏡像,而標簽就常用于對應該軟件的各個版本 。我們可以通過<倉庫名>:<標簽>的格式來指定具體是這個軟件哪個版本的鏡像。如果不給出標簽,將以latest作為默認標簽。

Docker默認的倉庫為Docker官方的倉庫Docker Hub,擁有大量的高質量的官方鏡像。國內一些云服務商也提供了類似的服務如阿里云,網易云等。

除了使用公開的倉庫服務外,用戶還可以在本地搭建私有Docker倉庫 。Docker官方提供了Docker Registry鏡像,可以直接使用。開源的Docker Registry鏡像只提供了Docker Registry API的服務端實現,足以支持Docker命令,不影響使用。但不包含圖形界面,以及鏡像維護、用戶管理、訪問控制等高級功能,但在商業化版本中可以使用這些高級功能。

Docker版本的命名

Docker在1.13版本之后,從2017年的3月1號開始,版本命名規則如下:

項目說明
版本格式YY.MM
Stable版本每個季度發行
Edge版本每個月發行

Docker分為CE社區版和EE企業版。

CentOS安裝Docker

系統要求:DockerCE支持64位版本的CentOS 7,并且要求內核版本不低于3.10。
卸載舊版本:較舊的 Docker 版本稱為 docker 或 docker-engine 。如果已安裝這些程序,請卸載它們以及相關的依賴項

$ sudo yum remove docker \
                 docker-client \
                 docker-client-latest \
                 docker-common \
                 docker-latest \
                 docker-latest-logrotate \
                 docker-logrotate \
                 docker-engine

安裝所需的軟件包:

$ sudo yum install -y yum-utils \
 device-mapper-persistent-data \
 lvm2

設置穩定的倉庫:

$ sudo yum-config-manager \
   --add-repo \
   https://download.docker.com/linux/centos/docker-ce.repo

安裝Docker CE:

$ sudo yum install docker-ce

使用腳本安裝:在開發和測試環境中Docker官方為了簡化安裝的流程,提供了一套便捷的安裝腳本,CentOS上可以直接使用這個腳本安裝

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun

執行這個命令后,腳本就會自動的將一切準備工作做好,并且把Docker CE的Edge版本安裝到系統中

啟動Docker:

$ sudo systemctl enable docker  #設置開機啟動
$ sudo systemctl start docker

建立docker用戶組:默認情況下,docker命令會使用Unix Socket與Docker引擎通訊,而只有root用戶和docker組用戶才可以訪問Docker引擎的Unix Socket。一般Linux系統上不會直接使用root用戶進行操作,因此需要將使用docker的用戶加入docker組。

$ sudo groudadd docker  # 建立docker組
$ sudo usermod -aG docker $USER  # 將當前用戶加入docker組

測試Docker安裝是否正確:

$ sudo docker run hello-word #啟動一個基于hello-word鏡像的容器

Docker的優勢有哪些

CentOS卸載Docker

刪除docker安裝包:

$ sudo yum remove docker-ce

刪除Docker鏡像:

$ sudo rm -rf /var/lib/docker

鏡像加速

國內從Docker Hub拉取鏡像時有時會遇到困難,此時可以配置鏡像加速器。Docker官方和國內許多云服務商都提供了國內加速器服務,如:

  • Docker官方提供的中國registry mirror

  • 阿里云加速器

  • DaoCloud加速器

  • 163加速器

CentOS配置鏡像加速

對于使用systemd的系統,可以在/etc/docker/daemon.json中寫入以下內容(如果文件不存在可以直接創建)

{
 "registry-mirrors": [
   "http://hub-mirror.c.163.com"
 ]
}

重新啟動服務生效:

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

感謝各位的閱讀!關于“Docker的優勢有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女