摘要:本系列教程翻譯自,系列共有九篇,本文譯自第一篇。,一種新的容器化技術(shù),因?yàn)檩p量級(jí)和便攜化而受到廣泛關(guān)注。本篇文章是系列教程的第一篇。鏡像只讀的容器模板,簡言之就是系統(tǒng)鏡像文件。首先,向發(fā)出請求創(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)稱“一次構(gòu)建,一次配置,即可到處運(yùn)行”(build once, configure once and run anywhere)。本篇文章是 Flux7 Docker 系列教程的第一篇。隨著教程的深入,我們將會(huì)在以后慢慢探討 Docker 帶來的優(yōu)勢和如何將 Docker 做到最大化的利用。
我們將在 6-7 周的時(shí)間內(nèi)學(xué)習(xí) Docker。(譯者注:其實(shí) 2-3 天就能完成這系列的教程我會(huì)亂說…)
這篇文章是 Docker 系列教程的基礎(chǔ):Docker 的概念、安裝和如何開始使用。
Docker 的特點(diǎn)所有介紹一種新語言、新技術(shù)的文章開頭都會(huì)介紹該技術(shù)的出眾之處,本篇文章也不例外。作為當(dāng)前捧得比較紅的虛擬化技術(shù),Docker 的特色包括但不僅限于:
飛快的運(yùn)行速度和優(yōu)雅的抽象框架
廉價(jià)
低 CPU 和內(nèi)存使用
啟動(dòng)、關(guān)閉速度快
可以用來作為云計(jì)算的基礎(chǔ)
Docker 應(yīng)用的實(shí)例:微博紅包:大規(guī)模 Docker 集群實(shí)踐經(jīng)驗(yàn)分享Docker 組件/元素
Docker 有基本組件和元素各三個(gè),視頻 Docker Onboarding(請自帶梯子)可以讓你快速弄清三者之間的關(guān)系。
Docker Client:用戶和 Docker 守護(hù)進(jìn)程進(jìn)行通信的接口,也就是 docker 命令。
Docker 守護(hù)進(jìn)程:宿主機(jī)上用于用戶應(yīng)答用戶請求的服務(wù)。
Docker Index:用戶進(jìn)行用戶的私有、公有 Docker 容器鏡像托管,也就是 Docker 倉庫。
Docker 容器:用于運(yùn)行應(yīng)用程序的容器,包含操作系統(tǒng)、用戶文件和元數(shù)據(jù)。
Docker 鏡像:只讀的 Docker 容器模板,簡言之就是系統(tǒng)鏡像文件。
DockerFile:進(jìn)行鏡像創(chuàng)建的指令文件。
在學(xué)習(xí) Docker 組件之前,先來看一下 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,可以參考酷殼的這兩篇文章:步驟簡述
Docker基礎(chǔ)技術(shù):Linux Namespace(上)
Docker基礎(chǔ)技術(shù):Linux Namespace(下)
Docker基礎(chǔ)技術(shù):Linux CGroup
運(yùn)行任何應(yīng)用都必須按照以下兩個(gè)步驟來:
創(chuàng)建一個(gè)鏡像文件
運(yùn)行容器
這些操作是由 Docker Client 來執(zhí)行的,Docker Client 一般指 docker 命令。首先,Docker Client 向 Docker Daemon 發(fā)出請求創(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 提供了公有庫和私有庫兩種形式,私有庫需要付費(fèi),大概 $7-$50 不等。和 GitHub 一樣,公有庫對所有人可見,私有庫只對自己可見。docker 命令可以用來搜索 Docker Index 的鏡像。
2. 運(yùn)行容器容器被運(yùn)行后,會(huì)在原有的鏡像上創(chuàng)建一個(gè)可讀寫的層,容器設(shè)置完畢網(wǎng)絡(luò)之后便可以運(yùn)行應(yīng)用了。
以上的描述可能會(huì)非常抽象:接下來的教程會(huì)使用運(yùn)行在 Ubuntu 上的 Docker 實(shí)例來進(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 倉庫的密鑰加入本地的 keychain,倉庫密鑰:hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
將 Docker 倉庫的軟件源加入本地 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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/7918.html
摘要:本系列教程翻譯自,系列共有九篇,本文譯自第一篇。,一種新的容器化技術(shù),因?yàn)檩p量級(jí)和便攜化而受到廣泛關(guān)注。本篇文章是系列教程的第一篇。鏡像只讀的容器模板,簡言之就是系統(tǒng)鏡像文件。首先,向發(fā)出請求創(chuàng)建一個(gè)鏡像并且指定容器內(nèi)要運(yùn)行的命令。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第一篇 Part 1: An Introduction。...
摘要:本系列教程翻譯自,系列共有九篇,本文譯自第二篇。總結(jié)本章知識(shí)介紹了最基本的十五個(gè)命令,接下來的教程將會(huì)陸續(xù)介紹如何在中運(yùn)行一個(gè)應(yīng)用以及其他的命令。接下來會(huì)在本系列教程結(jié)束后補(bǔ)充幾篇應(yīng)用的實(shí)例。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第二篇 Part 2: The 15 Commands。 該系列所有文章將參考其他學(xué)習(xí)...
摘要:本系列教程翻譯自,系列共有九篇,本文譯自第二篇??偨Y(jié)本章知識(shí)介紹了最基本的十五個(gè)命令,接下來的教程將會(huì)陸續(xù)介紹如何在中運(yùn)行一個(gè)應(yīng)用以及其他的命令。接下來會(huì)在本系列教程結(jié)束后補(bǔ)充幾篇應(yīng)用的實(shí)例。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自第二篇 Part 2: The 15 Commands。 該系列所有文章將參考其他學(xué)習(xí)...
摘要:本系列教程翻譯自,系列共有九篇,本文譯自原教程最后一篇。本文介紹十個(gè)專門用于操作鏡像的。用法獲取名叫的鏡像。操作中帶有的情況下,是需要非常小心的?;蛘卟粋魅?,而是用參數(shù)指定一個(gè),這種情況下不要求格式。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自原教程最后一篇 Part 9: 10 Docker Remote API Comm...
摘要:本系列教程翻譯自,系列共有九篇,本文譯自原教程最后一篇。本文介紹十個(gè)專門用于操作鏡像的。用法獲取名叫的鏡像。操作中帶有的情況下,是需要非常小心的。或者不傳入,而是用參數(shù)指定一個(gè),這種情況下不要求格式。 本系列教程翻譯自 Flux7 Docker Tutorial Series,系列共有九篇,本文譯自原教程最后一篇 Part 9: 10 Docker Remote API Comm...
閱讀 2273·2023-04-25 14:50
閱讀 1273·2021-10-13 09:50
閱讀 1874·2019-08-30 15:56
閱讀 1853·2019-08-29 15:29
閱讀 2892·2019-08-29 15:27
閱讀 3569·2019-08-29 15:14
閱讀 1205·2019-08-29 13:01
閱讀 3306·2019-08-26 14:06