摘要:本系列教程翻譯自,系列共有九篇,本文譯自第一篇。,一種新的容器化技術(shù),因?yàn)檩p量級(jí)和便攜化而受到廣泛關(guān)注。本篇文章是系列教程的第一篇。鏡像只讀的容器模板,簡(jiǎn)言之就是系統(tǒng)鏡像文件。首先,向發(fā)出請(qǐng)求創(chuàng)建一個(gè)鏡像并且指定容器內(nèi)要運(yùn)行的命令。
本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第一篇 Part 1: An Introduction。
該系列所有文章將參考其他學(xué)習(xí)資料翻譯,也會(huì)加入自己的學(xué)習(xí)作為部分注解。如有錯(cuò)誤,歡迎指正。
Docker,一種新的容器化技術(shù),因?yàn)檩p量級(jí)和便攜化而受到廣泛關(guān)注。Docker 和 Java 一樣,號(hào)稱(chēng)“一次構(gòu)建,一次配置,即可到處運(yùn)行”(build once, configure once and run anywhere)。本篇文章是 Flux7 Docker 系列教程的第一篇。隨著教程的深入,我們將會(huì)在以后慢慢探討 Docker 帶來(lái)的優(yōu)勢(shì)和如何將 Docker 做到最大化的利用。
我們將在 6-7 周的時(shí)間內(nèi)學(xué)習(xí) Docker。(譯者注:其實(shí) 2-3 天就能完成這系列的教程我會(huì)亂說(shuō)…)
這篇文章是 Docker 系列教程的基礎(chǔ):Docker 的概念、安裝和如何開(kāi)始使用。
Docker 的特點(diǎn)所有介紹一種新語(yǔ)言、新技術(shù)的文章開(kāi)頭都會(huì)介紹該技術(shù)的出眾之處,本篇文章也不例外。作為當(dāng)前捧得比較紅的虛擬化技術(shù),Docker 的特色包括但不僅限于:
飛快的運(yùn)行速度和優(yōu)雅的抽象框架
廉價(jià)
低 CPU 和內(nèi)存使用
啟動(dòng)、關(guān)閉速度快
可以用來(lái)作為云計(jì)算的基礎(chǔ)
Docker 應(yīng)用的實(shí)例:微博紅包:大規(guī)模 Docker 集群實(shí)踐經(jīng)驗(yàn)分享Docker 組件/元素
Docker 有基本組件和元素各三個(gè),視頻 Docker Onboarding(請(qǐng)自帶梯子)可以讓你快速弄清三者之間的關(guān)系。
Docker Client:用戶(hù)和 Docker 守護(hù)進(jìn)程進(jìn)行通信的接口,也就是 docker 命令。
Docker 守護(hù)進(jìn)程:宿主機(jī)上用于用戶(hù)應(yīng)答用戶(hù)請(qǐng)求的服務(wù)。
Docker Index:用戶(hù)進(jìn)行用戶(hù)的私有、公有 Docker 容器鏡像托管,也就是 Docker 倉(cāng)庫(kù)。
Docker 容器:用于運(yùn)行應(yīng)用程序的容器,包含操作系統(tǒng)、用戶(hù)文件和元數(shù)據(jù)。
Docker 鏡像:只讀的 Docker 容器模板,簡(jiǎn)言之就是系統(tǒng)鏡像文件。
DockerFile:進(jìn)行鏡像創(chuàng)建的指令文件。
在學(xué)習(xí) Docker 組件之前,先來(lái)看一下 Docker 底層到底是由什么組成的:
Namespace:隔離技術(shù)的第一層,確保 Docker 容器內(nèi)的進(jìn)程看不到也影響不到 Docker 外部的進(jìn)程。
Control Groups:LXC 技術(shù)的關(guān)鍵組件,用于進(jìn)行運(yùn)行時(shí)的資源限制。
UnionFS(文件系統(tǒng)):容器的構(gòu)件塊,創(chuàng)建抽象層,從而實(shí)現(xiàn) Docker 的輕量級(jí)和運(yùn)行快速的特性。
關(guān)于 CGroup 和 namespace,可以參考酷殼的這兩篇文章:步驟簡(jiǎn)述
Docker基礎(chǔ)技術(shù):Linux Namespace(上)
Docker基礎(chǔ)技術(shù):Linux Namespace(下)
Docker基礎(chǔ)技術(shù):Linux CGroup
運(yùn)行任何應(yīng)用都必須按照以下兩個(gè)步驟來(lái):
創(chuàng)建一個(gè)鏡像文件
運(yùn)行容器
這些操作是由 Docker Client 來(lái)執(zhí)行的,Docker Client 一般指 docker 命令。首先,Docker Client 向 Docker Daemon 發(fā)出請(qǐng)求創(chuàng)建一個(gè)鏡像、并且指定容器內(nèi)要運(yùn)行的命令。當(dāng) Daemon 接收到到信號(hào)后,便會(huì)執(zhí)行以下操作:
1. 創(chuàng)建一個(gè)鏡像文件Docker 鏡像相當(dāng)于一個(gè)只讀的模板文件,保存著運(yùn)行容器所需要的所有的配置、文件;每次啟動(dòng),都會(huì)以基礎(chǔ)的 Docker 鏡像為模板,按照 Dockerfile 的指令,建立一個(gè)新的適用于你自己的 Dokcer 鏡像:實(shí)際上是在這個(gè)基礎(chǔ)鏡像上建立了一個(gè)新的應(yīng)用層。
自己創(chuàng)建的 Docker 鏡像可以推送到 Docker Index 中心,然后提供給他人使用。Docker Index 提供了公有庫(kù)和私有庫(kù)兩種形式,私有庫(kù)需要付費(fèi),大概 $7-$50 不等。和 GitHub 一樣,公有庫(kù)對(duì)所有人可見(jiàn),私有庫(kù)只對(duì)自己可見(jiàn)。docker 命令可以用來(lái)搜索 Docker Index 的鏡像。
2. 運(yùn)行容器容器被運(yùn)行后,會(huì)在原有的鏡像上創(chuàng)建一個(gè)可讀寫(xiě)的層,容器設(shè)置完畢網(wǎng)絡(luò)之后便可以運(yùn)行應(yīng)用了。
以上的描述可能會(huì)非常抽象:接下來(lái)的教程會(huì)使用運(yùn)行在 Ubuntu 上的 Docker 實(shí)例來(lái)進(jìn)行深入了解。
安裝 DockerFlux7 原文采用穩(wěn)定的 Linux 服務(wù)器版本 Ubuntu 12.04 LTS 作為示例環(huán)境,安裝 Docker 的方法如下:
檢查 apt 系統(tǒng)的是否有 https 模塊:檢查文件 /usr/lib//apt/methods/https,如果不存在這個(gè)文件,就需要安裝 apt-transport-https 軟件包。
將 Docker 倉(cāng)庫(kù)的密鑰加入本地的 keychain,倉(cāng)庫(kù)密鑰:hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
將 Docker 倉(cāng)庫(kù)的軟件源加入本地 apt 的軟件源列表中
安裝 lxc-docker 軟件包
驗(yàn)證安裝:執(zhí)行 sudo docker run hello-world,輸出 Hello from Docker. 即為成功安裝 Docker。
以上是原文安裝方法,譯者推薦使用 Ubuntu 14.04 LTS 作為示例,安裝方法如下:
Ubuntu 上的 Docker 分為 Ubuntu 官方維護(hù)的版本和 Docker 官方維護(hù)的版本:
Ubuntu 版 Docker一條命令安裝 Docker:
sudo apt-get install docker.ioDocker 版 Docker
也是一條命令:
wget -qO- https://get.docker.com/ | sh
Ubuntu 版 Docker 和 Docker 版 Docker 的區(qū)別在于,一個(gè)收納 Ubuntu 團(tuán)隊(duì)認(rèn)為穩(wěn)定的版本,一個(gè)收納 Docker 團(tuán)隊(duì)認(rèn)為穩(wěn)定的版本。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/26397.html
摘要:本系列教程翻譯自,系列共有九篇,本文譯自第一篇。,一種新的容器化技術(shù),因?yàn)檩p量級(jí)和便攜化而受到廣泛關(guān)注。本篇文章是系列教程的第一篇。鏡像只讀的容器模板,簡(jiǎn)言之就是系統(tǒng)鏡像文件。首先,向發(fā)出請(qǐng)求創(chuàng)建一個(gè)鏡像并且指定容器內(nèi)要運(yùn)行的命令。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第一篇 Part 1: An Introduction。...
摘要:本系列教程翻譯自,系列共有九篇,本文譯自第二篇。總結(jié)本章知識(shí)介紹了最基本的十五個(gè)命令,接下來(lái)的教程將會(huì)陸續(xù)介紹如何在中運(yùn)行一個(gè)應(yīng)用以及其他的命令。接下來(lái)會(huì)在本系列教程結(jié)束后補(bǔ)充幾篇應(yīng)用的實(shí)例。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第二篇 Part 2: The 15 Commands。 該系列所有文章將參考其他學(xué)習(xí)...
摘要:本系列教程翻譯自,系列共有九篇,本文譯自第二篇。總結(jié)本章知識(shí)介紹了最基本的十五個(gè)命令,接下來(lái)的教程將會(huì)陸續(xù)介紹如何在中運(yùn)行一個(gè)應(yīng)用以及其他的命令。接下來(lái)會(huì)在本系列教程結(jié)束后補(bǔ)充幾篇應(yīng)用的實(shí)例。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第二篇 Part 2: The 15 Commands。 該系列所有文章將參考其他學(xué)習(xí)...
摘要:本系列教程翻譯自,系列共有九篇,本文譯自原教程最后一篇。本文介紹十個(gè)專(zhuān)門(mén)用于操作鏡像的。用法獲取名叫的鏡像。操作中帶有的情況下,是需要非常小心的。或者不傳入,而是用參數(shù)指定一個(gè),這種情況下不要求格式。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自原教程最后一篇 Part 9: 10 Docker Remote API Comm...
摘要:本系列教程翻譯自,系列共有九篇,本文譯自原教程最后一篇。本文介紹十個(gè)專(zhuān)門(mén)用于操作鏡像的。用法獲取名叫的鏡像。操作中帶有的情況下,是需要非常小心的。或者不傳入,而是用參數(shù)指定一個(gè),這種情況下不要求格式。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自原教程最后一篇 Part 9: 10 Docker Remote API Comm...
閱讀 2061·2023-04-25 21:11
閱讀 2963·2021-09-30 09:47
閱讀 2271·2021-09-24 09:48
閱讀 4427·2021-08-23 09:43
閱讀 895·2019-08-30 15:54
閱讀 559·2019-08-28 18:01
閱讀 1397·2019-08-27 10:55
閱讀 588·2019-08-27 10:55