一丶先了解下,什么是?Docker?為什么會有 Docker?Docker 的優(yōu)勢?docker的組成?
?1.為什么會有 Docker??
? ? 我們知道一款產(chǎn)品從開發(fā)到上線,從開發(fā)環(huán)境到生成環(huán)境。作為開發(fā)和運維人員之間協(xié)作需要考慮很多問題,尤其是當我們的產(chǎn)品多版本迭代之后,不同環(huán)境之間的兼容就會成為一個大問題;
? ? ?這時 Docker 的出現(xiàn)就解決了這一難題,Docker 的出現(xiàn)使我們開發(fā)的軟件可以“帶環(huán)境安裝”,即安裝的時候,可以把原始環(huán)境一模一樣的的復制過來,不用在擔心環(huán)境不一致導致“開發(fā)時可以正常運行,生成環(huán)境就會出問題”,“在我的機器上可以正常運行,在別人的機器上就不能運行”的問題了。
2.什么是docker?
? (1)Docker 就像是一個輕量級的虛擬機,Docker是一個輕量級的容器,我們可以將環(huán)境交給 Docker 來管理,當我們需要移植我們的產(chǎn)品的時候,就可以將環(huán)境整個的遷移到另一臺主機上,而不向虛擬機一樣,遷移一臺虛擬機極其資源;
? (2)Docker 是一個開源的應用容器引擎,基于 Go 語言開發(fā)。
? (3)Docker 可以讓開發(fā)者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。
總之:Docker相較于虛擬機來說具有更加輕量,啟動更快,效率更高,可移植性更強等優(yōu)勢,實現(xiàn)了“一次封裝,到處運行”,不用在關心環(huán)境的不一致問題。
3.docker的優(yōu)勢
(1)運行環(huán)境的一致性:Docker 的鏡像提供了除了內(nèi)核之外完整的運行環(huán)境,確保了應用運行的一致性;
(2)更快速地啟動部署:可以做到秒級,甚至毫秒級的的啟動時間。大大節(jié)約了開發(fā)、測試、部署的時間;
(3)更好的隔離性:每個服務器都是獨立運行的、完全隔離的。避免公用的服務器,資源會容易受到其他用戶的影響;
(4)彈性伸縮、快速擴展:能夠更好的處理集中爆發(fā)式的服務器使用壓力;
(5)遷移更加方便:“帶環(huán)境安裝”;
(6)持續(xù)交付和部署:使用 Docker 可以通過定制鏡像來實現(xiàn)持續(xù)集成,交付,部署;
4.docker的組成
? ??Docker 是一個 C/S 架構(gòu)程序。Docker 客戶端只需要向 Docker 服務器或者守護進程發(fā)出請求,服務器或者守護進程將完成所有工作并返回結(jié)果。Docker 提供了一個命令行工具 Docker 以及一整套 RESTful API。你可以在同一臺宿主機上運行 Docker 守護進程和客戶端,也可以從本地的 Docker 客戶端連接到運行在另一臺宿主機上的遠程 Docker 守護進程。
名稱 | 說明 |
Docker鏡像(images) | 用于容器創(chuàng)建的模板?;诼?lián)合文件系統(tǒng)的一種層式結(jié)構(gòu),由一系列指令一步一步構(gòu)建出來。 |
Docker容器(Container) | 容器是獨立運行的一個或一組應用,鏡像相當于類,容器相當于類的實例 |
Docker客戶端(Client) | 通過命令行或其他工具使用Docker API 與Docker的守護進程通信 |
Docker主機(Host) | 一個物理或虛擬機用于執(zhí)行Docker守護進程和容器 |
Docker守護進程 | 是Docker服務器端進程。負責支撐Docker容器的運行和鏡像的管理 |
Docker倉庫 DockerHub(Registry)? | 用來保存鏡像,可以理解代碼控制中心的代碼倉庫,可以將自己的鏡像推送倉庫上供他人下載 |
5. 基本概念
Docker 包括三個基本概念:
(1)鏡像(Image):Docker 鏡像(Image),就相當于是一個 root 文件系統(tǒng)。
(2)容器(Container):鏡像(Image)和容器(Container)的關系,就像是面向?qū)ο蟪绦蛟O計? 中的類和實例一樣,鏡像是靜態(tài)的定義,容器是鏡像運行時的實體。容器可以被創(chuàng)建、啟動、停止、刪除、暫停等。容器與鏡像的關系類似于面向?qū)ο缶幊讨械膶ο笈c類。Docker 使用客戶端-服務器 (C/S) 架構(gòu)模式,使用遠程API來管理和創(chuàng)建Docker容器。Docker 容器通過 Docker 鏡像來創(chuàng)建。也可以這樣做類比,鏡像理解為靜態(tài)的程序,而容器理解為運行起來后的進程。容器使用寫時復制技術(shù),修改后容器的文件是獨立的。
(3)倉庫(Repository):倉庫可看成一個代碼控制中心,用來保存鏡像。
二、安裝前必讀
在安裝?Docker?之前,先說一下配置,我這里是Centos7
Linux 內(nèi)核:官方建議 3.10 以上,3.8以上貌似也可。
1.請用root用戶登錄虛擬機,以保證有足夠的權(quán)限進行操作。
2.可以使用第三方終端連接虛擬機,這樣會讓我們配置的效率更高。(推薦CRT)
3.了解:?Docker 分為docker SE(社區(qū)版,免費)以及docker EE(企業(yè)版,收費),因此我們這里安裝的是docker SE。
1.查看當前的內(nèi)核版本
uname -r
?
我這里是3.10 ,滿足條件。
2.使用 root 權(quán)限更新 yum 包(生產(chǎn)環(huán)境中此步操作需慎重,看自己情況,學習的話隨便搞)
yum -y update
這個命令不是必須執(zhí)行的,看個人情況,后面出現(xiàn)不兼容的情況的話就必須update了?
注意?
yum -y update:升級所有包同時也升級軟件和系統(tǒng)內(nèi)核;?
yum -y upgrade:只升級所有包,不升級軟件和系統(tǒng)內(nèi)核
也可以其他的命令,更新yum軟件包索引:yum maakecache fast
?3.卸載舊版本(如果之前安裝過的話)
yum remove docker ?docker-common docker-selinux docker-engine
?
三、安裝Docker的詳細步驟
1.安裝需要的軟件包, yum-util 提供yum-config-manager功能,另兩個是devicemapper驅(qū)動依賴
yum install -y yum-utils device-mapper-persistent-data lvm2
2.設置 yum 源
設置一個yum源,也就是docker ce軟件源(看個人習慣,我喜歡用阿里云的)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo? (阿里倉庫)
?3.選擇docker版本并安裝(安裝 docker-ce(社區(qū)版))
(1)查看可用版本有哪些
yum list docker-ce --showduplicates | sort -r
(2)選擇一個版本并安裝:yum install docker-ce-版本號
?
yum -y install docker-ce-18.03.1.ce? ? ? ? ? ? ? ? ? ? ---我是下載了這個版本好根據(jù)自己喜歡。
提醒:如果沒有指定版本號的話,系統(tǒng)是默認下載最新的版本號
命令:yum -y ?install docker-ce
? (3)查看是否安裝成功
查看鏡像:docker images
查看版本:docker version
?(4)查看Docker的運行狀態(tài)(一般剛安裝好的話都是running狀態(tài)的)
systemctl status?docker
啟動命令:systemctl start docker
停止命令:systemctl stop docker
設置開機啟動:systemctl enable docker
4.配置Docker鏡像加速器(阿里云)
???!因為docker下載鏡像是從docker hub中下載,是國外的,所以下載比較慢,可以看作maven
(1)去到阿里云官方網(wǎng)址,找到容器鏡像服務:https://www.aliyun.com
(2)進入管理控制臺(這里沒有開通服務的需要開通一下容器服務)
(3)點擊鏡像加速器,選擇CentOS
(4)(注意每個人的配置加速器的都會隨機生成的,所以根據(jù)你打開后阿里云鏡像加速器提供的代碼進行配置)(執(zhí)行文件后會自動生成daemon.json文件)
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://kskdqwg1.mirror.aliyuncs.com"]
}
EOF
啟動docker后臺線程:sudo systemctl daemon-reload
重啟docker服務 :sudo systemctl daemon-reload
5.使用hello-world鏡像測試docker??
運行命令:docker run hello-world
(1)docker run運行思維導圖?
(2)查看鏡像
? ? ? docker images
?
?可以看到剛才在執(zhí)行docker run hello-world的時候,已經(jīng)將hello-world鏡像拉去到本地鏡像中了。
四丶常用的操作命令
1.啟動與停止命令文章來源:http://www.zghlxwxcb.cn/news/detail-777525.html
命令? ?? | 解釋 |
systemctl start docker | ?啟動 Docker |
systemctl stop docker | 停止docker |
systemctl status docker | 查看docker狀態(tài) |
systemctl restart docker | 重啟docker |
systemctl enable docker? ?? | 開機啟動 |
docker info? ? | 查看docker概要信息 |
docker --help? ?? | 查看docker幫助文檔 |
?2.鏡像相關命令文章來源地址http://www.zghlxwxcb.cn/news/detail-777525.html
命令? | ? ?解釋 |
docker images | 查看本地存在的鏡像 |
docker search 鏡像名稱 | 從網(wǎng)絡中查找需要的鏡像 |
docker pull 鏡像名稱 | 將遠程鏡像拉取到本地 |
docker rmi [-f] 鏡像ID? | (強制)刪除本地鏡像 |
docker rmi -f 鏡像名1:TAG 鏡像名2:TAG? | 刪除多個鏡像 |
docker rmi -f $(docker images -qa)? | 刪除所有鏡像 |
至此centos7安裝Docker就完成了。后面將會講講如何配置私人倉庫,Docker 的應用容器部署,如何構(gòu)建鏡像,部署hadoop集群。
到了這里,關于centos7安裝docker的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!