Docker的安裝使用方法是什么

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

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

簡介

Docker簡介

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

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

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

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

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

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

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

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

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

Docker 由下面這些組成:

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

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

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

Docker特性

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

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

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

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

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

Docker三個基本概念

Docker 包括三個基本概念

  • 鏡像(Image)

  • 容器(Container)

  • 倉庫(Repository)

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

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

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

Docker 倉庫

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

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

  • 1.公開倉庫

  • 2.私有倉庫

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

Docker功能特點

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

  • 輕松快捷的配置

  • 提高工作效率

  • 應用隔離

  • 云集

  • 路由網

  • 服務

  • 安全管理

  1. 輕松快捷的配置

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

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

  1. 提高工作效率

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

  1. 應用隔離

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

  1. 云集(Swarm)

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

  1. 路由網

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

  1. 服務

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

  1. 安全管理

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

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

Docker架構

Docker遵循客戶端 - 服務器架構。 其架構主要分為三個部分。

  1. 客戶端(Client):Docker提供命令行界面(CLI)工具,客戶端與Docker守護進程交互??蛻舳丝梢詷嫿?,運行和停止應用程序??蛻舳诉€可以遠程與Docker_Host進行交互。

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

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

如下圖所示:

Docker守護進程

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

Docker客戶端

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

Docker注冊管理

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

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

Docker安裝(Redhat6.5)

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

  • 依賴包已經下載好就跳過這步

  • 使用有網絡的節(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

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

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

找到對應的包名的rpm包,比如這里提示lxc-1.0.8-1.el6.x86_64.rpm包下載失敗,在上面的網址中找到lxc-1.0.9-1.el6.x86_64.rpm,復制鏈接地址,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

就可以下載對應的包了

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
#在結尾添加
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

服務方式運行docker:

service docker start

停止

service docker stop

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

Docker部署tomcat

查找服務器的tomcat信息

# docker search tomcat

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

由于網絡問題可能下載不了,可用通過國內鏡像下載,如下:

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>"

用如下命令構建鏡像:

$ sudo docker build -t craig/tomcat .

演進方向

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

Docker這幾年的架構演進方向:

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

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

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

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

背景

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

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

容器世界的標準化不斷推進

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

Containerd

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

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

Containerd 1.x的架構圖

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

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

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

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

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

  3. 度量系統(tǒng)

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

下面內容不作為containerd項目的工作范疇:

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

  2. build:鏡像的構建

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

  4. logging

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

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

Docker的演進

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

下圖介紹了在Docker 1.11--Docker 17.10之間的docker架構

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

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

需要注意的一點圖網絡部分并不在containerd中,仍然在docker engine里。

Docker架構演進大事記

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

  2. Docker 1.11 推出containerd和runc。

  3. Docker 1.12 swarm進入引擎

  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,在設置一個環(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ū)已經推薦將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里已經加入了對docker18.06的支持,且完成了ci測試。12 rc 文檔里將docker17.12,18.03,18.06之后列入支持表。但在k8s中 sig-node工作組負責底層容器接口,docker在k8s版本的兼容性測試本應由此工作組完成,但是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驅動containerd的結構更簡單明確。下圖介紹了docker,containerd在k8s上的架構圖:

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

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

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

PaaS平臺選型建議

如果你正在對基于k8s的PaaS平臺進行生產環(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的支持所以用最新的好了。而且更關鍵的一點docker 18.06.1使用containerd 1.1,它支持一個特性:上層容器控制平臺的namespace隔離,簡單點說就是docker和k8s均可以在同一個節(jié)點上操作同一個containerd,且相互隔離不可見。如此可以預留選擇傳統(tǒng)k8s+docker組合時刻,保留將來切換成k8s+containerd組合的可能性,進而為自己的框架保持演進的靈活性。

附錄

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 默認自帶的 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 ~]#

查看,無信息顯示表示已經卸載完成。

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

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

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

網頁名稱:Docker的安裝使用方法是什么
地址分享:http://www.muchs.cn/article18/ijcjdp.html

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

廣告

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

h5響應式網站建設