容器現(xiàn)在風(fēng)行于 IT 界 —— 這很好了解。容器是輕量級(jí)的,包含運(yùn)用運(yùn)轉(zhuǎn)所需一切東西(代碼、庫(kù)、運(yùn)轉(zhuǎn)時(shí)環(huán)境、體系設(shè)置,以及依賴聯(lián)系)的獨(dú)立的包。每個(gè)容器都布置于它自己的 CPU、內(nèi)存、塊 I/O,以及網(wǎng)絡(luò)資源上,一切這些都不依賴于某個(gè)內(nèi)核和操作體系。這也是容器與
虛擬機(jī)之間最大的不同;相比之下,虛擬機(jī)是一個(gè)運(yùn)轉(zhuǎn)于宿
主機(jī)操作體系上的完好的操作體系渠道,而容器不是。
容器允許你以一種前所未有的方法擴(kuò)展交付才能(不管內(nèi)部還是外部的)。例如,你能夠快速布置多個(gè) NGINX 實(shí)例(甚至能夠運(yùn)用于多個(gè)不同的階段 —— 比方開(kāi)發(fā)和出產(chǎn)階段)。跟虛擬機(jī)不同,容器不會(huì)耗費(fèi)太多體系資源。
Docker 使得創(chuàng)立、布置,和辦理容器變得特別簡(jiǎn)略。更好的是,裝置和運(yùn)用 Docker 在 Linux 渠道上特別的便利。
我將會(huì)向你演示在 Linux 上裝置 Docker 是多么便利,同時(shí)帶你入門 Docker。我的演示渠道是 Ubuntu 16.04 Server,但流程在大多數(shù)其它 Linux 渠道都差不多。
我這兒假設(shè)你現(xiàn)已啟動(dòng)了 Ubuntu Server 16.04。
裝置
因?yàn)?Ubuntu Server 16.04 缺少圖形界面,我會(huì)完全經(jīng)過(guò)指令行來(lái)裝置和運(yùn)用 Docker。在你裝置前,你需求更新 apt 然后進(jìn)行必要的晉級(jí)。必定要留意,若體系內(nèi)核晉級(jí)了,你會(huì)需求重啟體系。因此最好挑個(gè)
服務(wù)器能重啟的時(shí)刻進(jìn)行。
運(yùn)轉(zhuǎn)下面指令更新 apt:
1.sudo apt update
完結(jié)后,運(yùn)用指令晉級(jí)體系:
1.sudo apt upgrade
若內(nèi)核晉級(jí)了,你需求用下面指令重啟服務(wù)器:
1.sudoreboot
若內(nèi)核沒(méi)有晉級(jí),你就能夠裝置 Docker 了(無(wú)需重啟)。裝置 Docker 的指令為:
1.sudo apt install docker.io
若你運(yùn)用的是其它 Linux 發(fā)行版,當(dāng)嘗試用相應(yīng)的包辦理器來(lái)裝置時(shí)卻發(fā)現(xiàn)沒(méi)有 docker.io 包,則你應(yīng)該裝置 docker 包。例如,在 Fedora 上裝置應(yīng)該用指令:
1.sudo dnf install docker
若你運(yùn)用的是 CentOS 7,那么最好運(yùn)用裝置腳本來(lái)裝置 docker。首先運(yùn)用指令 sudo yum check-update 更新體系。晉級(jí)完后,輸入下面指令來(lái)
下載并運(yùn)轉(zhuǎn)所需的腳本:
1.curl -fsSL https://get.docker.com/ / sh
默許情況下,只有辦理員權(quán)限能夠運(yùn)轉(zhuǎn) docker 指令。考慮到安全問(wèn)題,你不會(huì)想用 root 用戶或運(yùn)用 sudo 來(lái)運(yùn)轉(zhuǎn) Docker 的。要處理這個(gè)問(wèn)題,你需求將自己的用戶加入到 docker 組中。指令如下:
1.sudousermod-a -G docker $USER
完結(jié)操作后,登出體系然后再?gòu)念^登錄,應(yīng)該就搞定了。不過(guò)若你的渠道是 Fedora,則添加用戶到 docker 組時(shí)會(huì)發(fā)現(xiàn)這個(gè)組是不存在的。那該怎么辦呢?你需求首先創(chuàng)立這個(gè)組。指令如下:
1.sudogroupadd docker &&sudo gpasswd -a ${USER} docker &&sudosystemctl restart docker
2.newgrp docker
登出后再登錄。就能夠開(kāi)端用 Docker 了。
啟動(dòng),暫停以及啟用 Docker
裝置好 Docker 后,你能夠讓體系在啟動(dòng)時(shí)自動(dòng)啟動(dòng) Docker 守護(hù)進(jìn)程。運(yùn)用下面兩個(gè)指令來(lái)完成這一點(diǎn):
1.sudosystemctl start docker
2.sudosystemctl enable docker
若需求暫;蛑貑 Docker 守護(hù)進(jìn)程,則指令為:
1.sudosystemctl stop docker
2.sudosystemctl restart docker
現(xiàn)在能夠用 Docker 來(lái)布置容器了。
拉取鏡像
對(duì) Docker 來(lái)說(shuō),鏡像是構(gòu)建容器的基石。你能夠拉下一個(gè)鏡像(比方 NGINX)然后依據(jù)這個(gè)鏡像布置恣意多個(gè)容器出來(lái)。運(yùn)用鏡像前,你首先需求把鏡像拉取到體系中。鏡像從注冊(cè)倉(cāng)庫(kù)中拉取,默許情況下裝置好的 Docker 包含了一個(gè)默許的注冊(cè)倉(cāng)庫(kù) Docker Hub —— 這個(gè)注冊(cè)倉(cāng)庫(kù)包含了大量別人所奉獻(xiàn)的鏡像(既包含官方的鏡像,也包含用戶自己奉獻(xiàn)的鏡像)。
假設(shè)你想要拉取一個(gè) Nginx Web 服務(wù)器相關(guān)的鏡像。在開(kāi)端拉取前,先檢查一下體系中現(xiàn)已有了哪些鏡像。輸入 docker images 指令你會(huì)發(fā)現(xiàn)現(xiàn)在還沒(méi)有鏡像存在(圖 1)。
在 Linux 上如何安裝和使用 Docker?圖1
讓咱們來(lái)拉取一個(gè)鏡像。運(yùn)用下面指令能夠從 Docker Hub 中下載 Nginx 鏡像:
1.docker pull nginx
12下一頁(yè)>