成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Docker的安裝使用方法是什么

本篇內(nèi)容介紹了“Docker的安裝使用方法是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站主要為客戶提供服務(wù)項目涵蓋了網(wǎng)頁視覺設(shè)計、VI標(biāo)志設(shè)計、網(wǎng)絡(luò)營銷推廣、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式成都網(wǎng)站建設(shè)公司、手機網(wǎng)站開發(fā)、微商城、網(wǎng)站托管及成都網(wǎng)站維護、WEB系統(tǒng)開發(fā)、域名注冊、國內(nèi)外服務(wù)器租用、視頻、平面設(shè)計、SEO優(yōu)化排名。設(shè)計、前端、后端三個建站步驟的完善服務(wù)體系。一人跟蹤測試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為成都不銹鋼雕塑行業(yè)客戶提供了網(wǎng)站營銷推廣服務(wù)。

簡介

Docker簡介

Docker 提供了一個可以運行你的應(yīng)用程序的封套(envelope),或者說容器。它原本是 dotCloud 啟動的一個業(yè)余項目,并在前些時候開源了。它吸引了大量的關(guān)注和討論,導(dǎo)致 dotCloud 把它重命名到 Docker Inc。它最初是用 Go 語言編寫的,它就相當(dāng)于是加在 LXC(LinuX Containers,linux 容器)上的管道,允許開發(fā)者在更高層次的概念上工作。

Docker 擴展了 Linux 容器(Linux Containers),或著說 LXC,通過一個高層次的 API 為進(jìn)程單獨提供了一個輕量級的虛擬環(huán)境。Docker 利用了 LXC, cgroups 和 Linux 自己的內(nèi)核。和傳統(tǒng)的虛擬機不同的是,一個 Docker 容器并不包含一個單獨的操作系統(tǒng),而是基于已有的基礎(chǔ)設(shè)施中操作系統(tǒng)提供的功能來運行的。

Docker類似虛擬機的概念,但是與虛擬化技術(shù)的不同點在于下面幾點:

  1. 虛擬化技術(shù)依賴物理CPU和內(nèi)存,是硬件級別的;而docker構(gòu)建在操作系統(tǒng)上,利用操作系統(tǒng)的containerization技術(shù),所以docker甚至可以在虛擬機上運行。虛擬化系統(tǒng)一般都是指操作系統(tǒng)鏡像,比較復(fù)雜,稱為“系統(tǒng)”;而docker開源而且輕量,稱為“容器”,單個容器適合部署少量應(yīng)用,比如部署一個redis、一個memcached。

  2. 傳統(tǒng)的虛擬化技術(shù)使用快照來保存狀態(tài);而docker在保存狀態(tài)上不僅更為輕便和低成本,而且引入了類似源代碼管理機制,將容器的快照歷史版本一一記錄,切換成本很低。

  3. 傳統(tǒng)的虛擬化技術(shù)在構(gòu)建系統(tǒng)的時候較為復(fù)雜,需要大量的人力;而docker可以通過Dockfile來構(gòu)建整個容器,重啟和構(gòu)建速度很快。更重要的是Dockfile可以手動編寫,這樣應(yīng)用程序開發(fā)人員可以通過發(fā)布Dockfile來指導(dǎo)系統(tǒng)環(huán)境和依賴,這樣對于持續(xù)交付十分有利。

  4. Dockerfile可以基于已經(jīng)構(gòu)建好的容器鏡像,創(chuàng)建新容器。Dockerfile可以通過社區(qū)分享和下載,有利于該技術(shù)的推廣。

Docker 會像一個可移植的容器引擎那樣工作。它把應(yīng)用程序及所有程序的依賴環(huán)境打包到一個虛擬容器中,這個虛擬容器可以運行在任何一種 Linux 服務(wù)器上。這大大地提高了程序運行的靈活性和可移植性,無論需不需要許可、是在公共云還是私密云、是不是裸機環(huán)境等等。

Docker也是一個云計算平臺,它利用Linux的LXC、AUFU、Go語言、cgroup實現(xiàn)了資源的獨立,可以很輕松的實現(xiàn)文件、資源、網(wǎng)絡(luò)等隔離,其最終的目標(biāo)是實現(xiàn)類似PaaS平臺的應(yīng)用隔離。

Docker 由下面這些組成:

  1. Docker服務(wù)器守護程序(server daemon),用于管理所有的容器。

  2. Docker命令行客戶端,用于控制服務(wù)器守護程序。

  3. Docker鏡像:查找和瀏覽 docker 容器鏡像。

Docker特性

一次封裝到處運行,很好的說明了Docker的跨平臺和強移植性。

Docker容器與傳統(tǒng)虛擬機技術(shù)的特性對比

特 性 Docker容器 傳統(tǒng)虛擬機 啟動速度 秒級 分鐘級
硬盤使用 一般為MB 一般為GB 性能 接近原生系統(tǒng) 相對弱于 系統(tǒng)支持量 單機支持上千個容器 一般幾十個

Docker容器與傳統(tǒng)虛擬機技術(shù)的不同之處

Docker容器是在操作系統(tǒng)層面上實現(xiàn)虛擬化,直接復(fù)用本機本地的操作系統(tǒng),因此更加輕量級,性能方面也更加高效。

Docker三個基本概念

Docker 包括三個基本概念

  • 鏡像(Image)

  • 容器(Container)

  • 倉庫(Repository)

理解了這三個概念,就理解了 Docker 的整個生命周期。

Docker 鏡像 Docker 鏡像就是一個只讀的模板。 例如:一個鏡像可以包含一個完整的 ubuntu 操作系統(tǒng)環(huán)境,里面僅安裝了 Apache 或用戶需要的其它應(yīng)用程序。 鏡像可以用來創(chuàng)建 Docker 容器。 Docker 提供了一個很簡單的機制來創(chuàng)建鏡像或者更新現(xiàn)有的鏡像,用戶甚至可以直接從其他人那里下載一個已經(jīng)做好的鏡像來直接使用。

Docker 容器 Docker 利用容器來運行應(yīng)用。 容器是從鏡像創(chuàng)建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。 可以把容器看做是一個簡易版的 Linux 環(huán)境(包括root用戶權(quán)限、進(jìn)程空間、用戶空間和網(wǎng)絡(luò)空間等)和運行在其中的應(yīng)用程序。

Docker 倉庫

Docker倉庫(Repostory)類似于代碼的倉庫(與svn、git、maven等概念類似)是Docker用來集中存放鏡像文件的場所。

根據(jù)所存儲的鏡像是否公開分享,Docker倉庫又分為:

  • 1.公開倉庫

  • 2.私有倉庫

顧名思義,公開倉庫就是公共開放的鏡像存儲的地方,目前最大的公開倉庫是Dokcer Hub (registry.hub.docker.com),存放了大量的鏡像可供下載使用,國內(nèi)的公開倉庫有aliyun(acs-public-mirror.oss-cn-hangzhou.aliyuncs.com)。私有倉庫是內(nèi)部使用的私有不對外開放的倉庫,用戶可以內(nèi)部自行搭建,內(nèi)部分享鏡像,方便快捷的分享專屬環(huán)境的鏡像文件。

Docker功能特點

雖然Docker提供了很多功能,但這里只列出了一些主要功能,如下所示:

  • 輕松快捷的配置

  • 提高工作效率

  • 應(yīng)用隔離

  • 云集

  • 路由網(wǎng)

  • 服務(wù)

  • 安全管理

  1. 輕松快捷的配置

這是Docker的一個主要功能,可幫助我們輕松快速地配置系統(tǒng)。

可以在更少的時間和精力的情況下部署代碼。 由于Docker可以在各種各樣的環(huán)境中使用,基礎(chǔ)架構(gòu)不再要求與應(yīng)用程序的環(huán)境相關(guān)聯(lián)。

  1. 提高工作效率

通過放寬技術(shù)配置和應(yīng)用的快速部署。 毫無疑問,它節(jié)約了時間提高了生產(chǎn)率。 Docker不僅有助于在孤立環(huán)境中執(zhí)行應(yīng)用程序,而且還減少了資源。

  1. 應(yīng)用隔離

Docker提供用于在隔離環(huán)境中運行應(yīng)用程序的容器。 每個容器獨立于另一個容器,并允許執(zhí)行任何類型的應(yīng)用程序。

  1. 云集(Swarm)

它是Docker容器的集群和調(diào)度工具。 Swarm使用Docker API作為其前端,這有助于我們使用各種工具來控制它。 它還可以將Docker主機集群控制為一個虛擬主機。 這是一個用于啟用可插拔后端的自組織引擎組。

  1. 路由網(wǎng)

它將可用節(jié)點上已發(fā)布端口的傳入請求路由到活動容器。 即使節(jié)點上沒有任務(wù)正在運行,此功能也可以實現(xiàn)連接。

  1. 服務(wù)

服務(wù)是允許指定集群內(nèi)的容器狀態(tài)的任務(wù)列表。 每個任務(wù)表示一個應(yīng)該運行的容器的一個實例,并且Swarm在節(jié)點之間調(diào)度它們。

  1. 安全管理

它允許將保密數(shù)據(jù)保存到云群(swarm)中,然后選擇給予服務(wù)訪問某些保密數(shù)據(jù)。

它包括一些重要的命令給引擎,如保密數(shù)據(jù)檢查,保密數(shù)據(jù)創(chuàng)建等。

Docker架構(gòu)

Docker遵循客戶端 - 服務(wù)器架構(gòu)。 其架構(gòu)主要分為三個部分。

  1. 客戶端(Client):Docker提供命令行界面(CLI)工具,客戶端與Docker守護進(jìn)程交互??蛻舳丝梢詷?gòu)建,運行和停止應(yīng)用程序??蛻舳诉€可以遠(yuǎn)程與Docker_Host進(jìn)行交互。

  2. Docker_Host:它包含容器,映像和Docker守護程序。它提供完整的環(huán)境來執(zhí)行和運行應(yīng)用程序。

  3. 注冊表(Registry):它是全局映像庫??梢栽L問并使用這些映像在Docker環(huán)境中運行應(yīng)用程序。

如下圖所示:

Docker守護進(jìn)程

這是一個用于監(jiān)聽Docker API請求的進(jìn)程。 它還管理Docker對象,如:映像,容器,網(wǎng)絡(luò)等。守護進(jìn)程還可以與其他守護進(jìn)程通信以管理Docker服務(wù)。

Docker客戶端

Docker客戶端是許多Docker用戶與Docker進(jìn)行交互的主要方式。當(dāng)使用docker run這樣的命令時,客戶端將這些命令發(fā)送到docker d,然后將其運行。docker命令使用Docker API。

Docker注冊管理

Docker注冊表用于存儲Docker映像。Docker提供Docker Hub和Docker Cloud,這是任何人都可以使用的公共注冊表。Docker配置為默認(rèn)在Docker Hub上查找映像。

當(dāng)我們使用docker pull或docker run命令時,從配置的注冊表中提取所需的映像。 當(dāng)使用docker push命令時,映像被推送到配置的注冊表中。

Docker安裝(Redhat6.5)

一、下載依賴包(使用能聯(lián)網(wǎng)的節(jié)點)

  • 依賴包已經(jīng)下載好就跳過這步

  • 使用有網(wǎng)絡(luò)的節(jié)點

1.安裝downloadonly插件使用yum下載rpm包

# yum install yum-plugin-downloadonly

使用方法:

yum install --downloadonly(只下載不安裝) --downloaddir=rpm包下載的目錄 安裝的組件名

2.下載docker需要的依賴包

2.1配置Fedora EPEL源

# yum install http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

2.2 添加hop5.repo源

# cd /etc/yum.repos.d 
# wget http://www.hop5.in/yum/el6/hop5.repo

2.3下載依賴包

# mkdir /usr/local/docker
# yum install --downloadonly --downloaddir=/usr/local/docker docker-io

這一步會報錯找不到對應(yīng)的rpm包;原因是對應(yīng)的rpm包的版本號改變了,復(fù)制沒有下載的rpm包的包名(不帶版本號),進(jìn)入下面的網(wǎng)址:

http://mirrors.aliyun.com/epel/6/x86_64/

找到對應(yīng)的包名的rpm包,比如這里提示lxc-1.0.8-1.el6.x86_64.rpm包下載失敗,在上面的網(wǎng)址中找到lxc-1.0.9-1.el6.x86_64.rpm,復(fù)制鏈接地址,http://mirrors.aliyun.com/epel/6/x86_64/lxc-1.0.9-1.el6.x86_64.rpm

# cd /usr/local/docker
# wget http://mirrors.aliyun.com/epel/6/x86_64/lxc-1.0.9-1.el6.x86_64.rpm

就可以下載對應(yīng)的包了

2.4下載device-mapper-libs,不下載后面啟動docker會報錯

# mkdir /usr/local/docker/device-mapper-libs
# yum install --downloadonly --downloaddir=/usr/local/docker/device-mapper-libs device-mapper-libs

2.5 將整個docker目錄拷貝到需要安裝docker的離線的節(jié)點上的/usr/local/src目錄下

二、安裝docker(離線節(jié)點)

1.安裝docker

# cd /usr/local/docker
# rpm -ivh lxc-libs-1.0.11-1.el6.x86_64.rpm
# rpm -ivh lua-alt-getopt-0.7.0-1.el6.noarch.rpm
# rpm -ivh lua-filesystem-1.4.2-1.el6.x86_64.rpm
# rpm -ivh  lua-lxc-1.0.11-1.el6.x86_64.rpm    
# rpm -ivh lxc-1.0.11-1.el6.x86_64.rpm    
# rpm -ivh docker-io-1.7.1-2.el6.x86_64.rpm

2.運行docker -d命令報錯如下:

docker: relocation error: docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference

2.1解決如下

# cd /usr/local/docker/device-mapper-libs
# yum -y install device-mapper*

3.再次運行docker -d命令,報錯如下:

FATA[0000] Error mounting devices cgroup: mountpoint for devices not found

3.1解決如下:

# vi /etc/fstab
#在結(jié)尾添加
none        /sys/fs/cgroup        cgroup        defaults    0    0

#重啟
# reboot

4.再次運行docker -d;放到后臺運行

# mkidr /usr/local/docker
# cd /usr/local/docker
# nohup docker -d >null & 
# tail -f nohup.out

服務(wù)方式運行docker:

service docker start

停止

service docker stop

如果沒有報錯信息,就說明安裝成功!

Docker部署tomcat

查找服務(wù)器的tomcat信息

# docker search tomcat

載下來官方的鏡像Starts最高的那個

由于網(wǎng)絡(luò)問題可能下載不了,可用通過國內(nèi)鏡像下載,如下:

docker pull registry.docker-cn.com/library/tomcat

查看docker所有的鏡像

docker images

在docker中啟動tomcat

如下命令會運行Tomcat,并將容器的8080端口暴露到宿主機器的8080端口:

docker run -p 8080:8080 registry.docker-cn.com/library/tomcat

訪問tomcat:http://172.16.16.212:8080/

擴展Dockerfile

本文示例中,創(chuàng)建了一個簡單的Dockerfile,如下:

FROM tomcat:7-jre7
MAINTAINER "Craig Trim <craigtrim@gmail.com>"

用如下命令構(gòu)建鏡像:

$ sudo docker build -t craig/tomcat .

演進(jìn)方向

Docker已經(jīng)推出了5年,在這5年中它極大的改變了互聯(lián)網(wǎng)產(chǎn)品的架構(gòu),推進(jìn)了新的產(chǎn)品開發(fā)、測試和運維方法。但是它自身也在激烈變化中。特別是最近2年隨著Docker開源項目的不斷演化,Docker內(nèi)部結(jié)構(gòu)發(fā)生了翻天覆地的變化。作為一個容器平臺的使用者,可以不用關(guān)注具體的Docker演進(jìn)細(xì)則,但是必須明白Docker的衍化會對自己的PaaS平臺帶來什么樣的影響(如果您對Docker技術(shù)細(xì)節(jié)不關(guān)注,你可以直接看第2章和最后兩章)。本文材料來自于Docker社區(qū),對Docker最近幾年的變化趨勢做出了總結(jié)。同時在結(jié)尾處給出了基于k8s PaaS平臺在底層容器上選型建議。

Docker這幾年的架構(gòu)演進(jìn)方向:

1、原有引擎功能下沉入containerd,containerd向著獨立于Docker 作為通用容器運行時工具方向演進(jìn)

2、swarm功能整合入引擎,swarmkit模塊不斷弱化,最終將被引擎吸收

3、引擎內(nèi)部功能不斷解藕出新模塊,同時新功能不斷加入Docker 引擎。

一言以蔽之:containerd核心化,引擎集群化。

背景

Docker公司在集群管理服務(wù)編排工具競爭上落敗

Docker公司在2015年Docker 1.9推出了自己的集群管理服務(wù)編排工具swarm,剛開始swarm作為一個獨立的工具,在Docker 引擎之外。但是從Docker 1.12開始Docker公司將swarm整合入了Docker引擎。至此Docker swarm作為一個完整的服務(wù)編排工具和谷歌主導(dǎo)、紅帽支持的kubernetes社區(qū)直接沖突。于此同時Docker公司在2015開啟了自己的商業(yè)化之路,開源社區(qū)為了避免Docker公司商業(yè)化過程中將Docker淪為綁架社區(qū)的工具,所以順勢推出了多個Docker替代方案例如rkt。kubernetes社區(qū)推出了CRI-O標(biāo)準(zhǔn),只要是遵從此標(biāo)準(zhǔn)的容器運行時都可以被K8s支持。一時間Docker大有被主流社區(qū)拋棄之勢!經(jīng)過2年和K8s的競爭時間來到2017年,Docker swarm已經(jīng)在事實上徹底落敗,Kubernetes社區(qū)已經(jīng)成為開源項目中熱度最高的項目。為了應(yīng)對如此多的不利因素,Docker公司在2017年將自己主導(dǎo)的containerd捐獻(xiàn)給CNCF基金會(k8s是旗下的子項目);并且將更多的Docker引擎的功能下沉到Containerd中。借此避免自己在開源社區(qū)中被邊緣化。

容器世界的標(biāo)準(zhǔn)化不斷推進(jìn)

Docker公司在2013念推出Docker后,極大的顛覆了這個行業(yè),也推進(jìn)了業(yè)務(wù)容器化過程。2015 Docker公司主導(dǎo)之下社區(qū)推出了容器的第一個行業(yè)標(biāo)準(zhǔn)OCI標(biāo)準(zhǔn)(開放容器協(xié)議)。彼時Docker公司推出了第一個OCI標(biāo)準(zhǔn)的容器運行時runc。runc作為第一個oci標(biāo)準(zhǔn)運行時(runtime),只是一個參考實現(xiàn),僅僅承擔(dān)容器與主機之間的交互。容器運行狀態(tài)檢查、監(jiān)控,容器生命期管理,io管理、信號傳遞等一些列容器運行必不可少的功能卻“無處安放”。所以Docker公司將Containerd定位為一個生產(chǎn)環(huán)境下的OCI 標(biāo)準(zhǔn)運行時。它承擔(dān)了runc所缺少的大部分容器運行必要功能:生命期管理,io管理,信號管理。在2017年的時候OCI v1標(biāo)準(zhǔn)發(fā)布,Docker公司將Docker鏡像格式捐獻(xiàn)給了OCI協(xié)議。所以在2017年發(fā)布的Containerd1.0中存儲管理這些原來由引擎承擔(dān)的功能也進(jìn)入了Containerd(網(wǎng)絡(luò)管理功能,在https://containerd.io路線圖中被列為roadmap,但是在2016年12月份Containerd的主要維護者投票中,網(wǎng)絡(luò)功能不被列入containerd的功能范疇 而繼續(xù)交給上層完成,在github containerd的readme中2017 1月12日正式將網(wǎng)絡(luò)部分功能從containerd 維護范疇中刪除**)。

Containerd

Containerd在Docker 1.11中才正式出現(xiàn),剛開始時0.x版本;2017年才推出了1.x標(biāo)準(zhǔn)。如上文所說,Container?d作為一個生產(chǎn)環(huán)境可用的Oci 實現(xiàn),它利用了OCI 運行時和鏡像格式.下圖展現(xiàn)了Containerd對自己在社區(qū)中地位作出了詮釋

可以看到Containerd作為PaaS工具的通用容器運行時適配層,它利用已有的oci運行時(Containerd使用runc作為運行時,在windows上則是hcsshim),屏蔽底層操作系統(tǒng)的差異;為Paas提供通用的容器支撐。從這個圖可以看到Containerd計劃支持所有現(xiàn)有應(yīng)用廣泛的Paas平臺工具?,F(xiàn)在可以確認(rèn)的是AWS ECS,k8s,Docker上使用containerd。Mesos和cloud foundry今天(2018年9月)尚未確定。

Containerd 1.x的架構(gòu)圖

從此架構(gòu)圖可以清楚的看到Containerd對上提供grpc接口方式的api,而Metric api是度量功能使用的。所有的編排工具容器適配層都可以使用grpc api作為containerd的客戶端,使用containerd操作容器。

Distribution用于容器鏡像的pull和push動作(這部分出現(xiàn)在Containerd中完全是因為oci v1標(biāo)準(zhǔn)推出Docker公司將自己鏡像格式貢獻(xiàn)了出去,所以containerd理所當(dāng)然需要對鏡像進(jìn)行管理了)。Bundle(在docker的語景里是容器運行的目錄集)子系統(tǒng)用于容器存儲管理它的作用就是原來的graphdriver,它提供將容器鏡像拆解成容器運行時刻需要的Bundle。Runtime子系統(tǒng)用于容器執(zhí)行和監(jiān)控,就是它直接操作runtime,傳遞和接收信號(signal),中轉(zhuǎn)fifo,記錄日志。Content、Metadata和Snapshots是存儲管理組建,Excutor和Supervisor是執(zhí)行體組建。整個系統(tǒng)通過Event事件驅(qū)動。

根據(jù)github上containerd的介紹containerd項目工作內(nèi)容集中在如下幾個領(lǐng)域上:

  1. 執(zhí)行:容器創(chuàng)建、運行、停止、暫停、恢復(fù),exec,信號傳遞、和刪除。

  2. cow 文件系統(tǒng)支持:在overlay,aufs和其他cow文件系統(tǒng)上內(nèi)置了存儲功能

  3. 度量系統(tǒng)

  4. 發(fā)布:容器鏡像的pull和push,鏡像的管理和獲取

下面內(nèi)容不作為containerd項目的工作范疇:

  1. 網(wǎng)絡(luò):網(wǎng)絡(luò)的創(chuàng)建和管理由高層來完成

  2. build:鏡像的構(gòu)建

  3. volumes:volume管理:mounts,bind等針對volume的功能應(yīng)該有高層來完成

  4. logging

此處需要說明一下網(wǎng)絡(luò)曾經(jīng)作為containerd社區(qū)爭論的焦點。但是在16年年底的社區(qū)維護者投票中多數(shù)人支持網(wǎng)絡(luò)不留在containerd中,因為按照大多數(shù)維護者的認(rèn)識網(wǎng)絡(luò)過于復(fù)雜,而且網(wǎng)絡(luò)設(shè)置常常需要跨越節(jié)點。這部分功能由containerd的客戶端(Docker Engine 或K8s)做更合適。

這里順便介紹一下Containerd版本兼容規(guī)則:Containerd同一個大版本下的連續(xù)兩個小版本是兼容的。例Containerd1.1.0和1.2.0卻是兼容的,1.0.0和1.2.0卻不保證兼容。

Docker的演進(jìn)

可以看到在Docker1.11之前,沒有containerd模塊,由libcontainer直接操作主機os接口。

下圖介紹了在Docker 1.11--Docker 17.10之間的docker架構(gòu)

從圖3-2看到這一時期的Docker架構(gòu)變化就是引入了Containerd和runc,由Containerd完成容器生命期管理。

下圖列出了Docker 17.11(Docker 17.12為真正的stable版)開始的架構(gòu)

需要注意的一點圖網(wǎng)絡(luò)部分并不在containerd中,仍然在docker engine里。

Docker架構(gòu)演進(jìn)大事記

  1. Docker 1.9 推出swarm,作為獨立工具,用于集群管理和服務(wù)編排

  2. Docker 1.11 推出containerd和runc。

  3. Docker 1.12 swarm進(jìn)入引擎

  4. Docker 17.06 引擎社區(qū)更名為moby,docke?r社區(qū)版本更名為docker-ce(類似于紅帽的fedora和rhel)

  5. Docker 17.12 Docker正式引入containerd 1.0

  6. Docker 18.06 正式在engine里加入了buildkit,在設(shè)置一個環(huán)境變量后可以使用buildkit完成docker build過程。

Docker 18.06.1正式將containerd 1.1引入docker。

k8s社區(qū)對Docker 17.03之后版本態(tài)度

在Docker 17.03后Docker因為moby和containerd等原因版本變動比較大,我們可以看到k8s r11發(fā)布后的2018年9月仍然沒有將Docker 17.03以后(不含)版本作為k8s的兼容Docker版本。從社區(qū)的討論來看社區(qū)已經(jīng)推薦將containerd直接對接cri,完成k8s的集成。見https://github.com/kubernetes/kubernetes/issues/42926,其中cpuguy83(此人為moby社區(qū)的主要維護者)推薦直接使用containerd替代docker 17.03以后的版本對接k8s。本來docker在k8s社區(qū)中的兼容性測試由k8s sig-node 工作組完成,但是通過k8s討論可以看到sig-node并沒有計劃做docker 17.03以后docker的兼容性測試。

最新消息是2018年9月27日k8s出r12 rc的時候,kubeadm里已經(jīng)加入了對docker18.06的支持,且完成了ci測試。12 rc 文檔里將docker17.12,18.03,18.06之后列入支持表。但在k8s中 sig-node工作組負(fù)責(zé)底層容器接口,docker在k8s版本的兼容性測試本應(yīng)由此工作組完成,但是sig-node對于docker 17.03版本以后docker版本的態(tài)度依然冷淡,一直未列入明確的工作計劃中。sig-node工作組兩位主席是谷歌和紅帽的,它們對于cri更感興趣。在2018年5月,sig-node和containerd社區(qū)共同完成了cri-containerd合入containerd1.1的工作,并發(fā)布了containerd 整合到kubenetes的GA。完成此部分工作后,k8s驅(qū)動containerd的結(jié)構(gòu)更簡單明確。下圖介紹了docker,containerd在k8s上的架構(gòu)圖:

從上面兩幅圖我們可以看到containerd1.1在k8s上擁有更簡單的結(jié)構(gòu)圖,驅(qū)動更為簡單。而且根據(jù)k8s社區(qū)的測試,直接使用containerd替代docker可以獲得容器啟動時間、內(nèi)存消耗和cpu消耗減少的紅利。上述結(jié)論來自于:

https://kubernetes.io/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/

docker-manager是老的kubelet介入docker的方式。 cri從k8s 1.6開始正式進(jìn)入k8s cri直接介入containerd是從18年4月,containerd1.1開始

PaaS平臺選型建議

如果你正在對基于k8s的PaaS平臺進(jìn)行生產(chǎn)環(huán)境選型,我建議你使用Docker17.03,因為它成熟穩(wěn)定且k8s r9,r10和r11做過穩(wěn)定、兼容性測試。如果你喜歡嘗試新事物,我建議你跳過Docker17.03之后,直接在kublet上使用containerd1.1。如果你喜歡docker新版本,那么你可以嘗試docker18.06,因為Docker17.12是Docker變化最劇烈的一個版本穩(wěn)定性不好說,且kuberadm中r12 rc里加入了對18.06的支持所以用最新的好了。而且更關(guān)鍵的一點docker 18.06.1使用containerd 1.1,它支持一個特性:上層容器控制平臺的namespace隔離,簡單點說就是docker和k8s均可以在同一個節(jié)點上操作同一個containerd,且相互隔離不可見。如此可以預(yù)留選擇傳統(tǒng)k8s+docker組合時刻,保留將來切換成k8s+containerd組合的可能性,進(jìn)而為自己的框架保持演進(jìn)的靈活性。

附錄

FAQ

替換Redhat的yum源

yum install pam-devel

#This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Setting up Install Process Nothing to do

使redhat 默認(rèn)自帶的 yum 源需要注冊,才能更新。因此,需要替換掉redhat的yum源。

1.檢查是否安裝yum包

查看RHEL是否安裝了yum,若是安裝了,那么又有哪些yum包:

[root@localhost ~]# rpm -qa |grep yum

yum-metadata-parser-1.0-8.fc6

yum-3.0.1-5.el5

yum-rhn-plugin-0.4.3-1.el5

yum-updatesd-3.0.1-5.el5

2 刪除redhat自帶的yum包

卸載上面顯示的所有yum包:

[root@localhost ~]# rpm -qa|grep yum|xargs rpm -e --nodeps(不檢查依賴,直接刪除rpm包)

再用

[root@localhost ~]# rpm -qa |grep yum

[root@localhost ~]#

查看,無信息顯示表示已經(jīng)卸載完成。

3.下載新的yum包。使用Centos6.5(64位)的yum包

wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm

安裝yum軟件包

注意:單個的安裝包可能會依賴其它包(例如yum和yum-fastestmirror會相互依賴),所以我們可以把所有這些包放在一起,用一行命令將它們同時安裝即可:

# rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm yum-3.2.29-81.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm

4.更換yum源。使用163的源

# cd /etc/yum.repos.d/
# wget  http://mirrors.163.com/.help/CentOS6-Base-163.repo
# vi CentOS6-Base-163.repo

編輯文件,把文件里面的$releasever全部替換為版本號,即6.5 最后保存!

可以使用命令 :%s/$releasever/6/g

5.清理yum緩存

yum clean all  #清除原有緩存
yum makecache  #重建緩存,以提高搜索安裝軟件的速度

6.測試

sudo yum seach git

7.更新系統(tǒng)

sudo yum update

注:這一步可能需要很久,如果不愿意等,可以先不進(jìn)行。

“Docker的安裝使用方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)頁名稱:Docker的安裝使用方法是什么
地址分享:http://jinyejixie.com/article18/ijcjdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站排名、網(wǎng)頁設(shè)計公司Google、外貿(mào)建站、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
剑河县| 耒阳市| 金坛市| 鄂州市| 珲春市| 昭苏县| 新平| 青岛市| 大渡口区| 尼玛县| 曲松县| 丹棱县| 华容县| 上饶市| 富锦市| 承德市| 定日县| 肇源县| 张家川| 梧州市| 梧州市| 巍山| 诸城市| 通州区| 石渠县| 东乌珠穆沁旗| 连云港市| 西安市| 江西省| 沈丘县| 合作市| 承德县| 漠河县| 营口市| 巴中市| 阳西县| 金阳县| 文昌市| 田林县| 滕州市| 金寨县|