1.Docker 簡介

Docker 是一個(gè)劃時(shí)代的開源項(xiàng)目,降低了云計(jì)算資源供應(yīng)的成本,同時(shí)讓應(yīng)用的部署、測試和分發(fā)都變得前所未有的高效和輕松!

Docker Overview

Docker 的組件構(gòu)成

Docker 組件圖

Docker的主要概念

了解 Docker 的主要構(gòu)成、概念及其作用:

  • Docker Engine
  • Docker Image(鏡像)
  • Docker Container(容器)
  • Docker Registry(倉庫)

Docker Engine

Docker Engine 是 Docker 主程序,主要包含Docker Client 和 Docker Server,可以創(chuàng)建 Docker 鏡像并運(yùn)行 Docker 容器 。Docker Engine里最主要的命令是 Docker Cli(docker)Docker Daemon(dockerd)

[root@spark3 ~]# docker version
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:
 OS/Arch:      linux/amd64

Docker 鏡像

Docker 鏡像(Image), 就是一個(gè)只讀的模板,例如:一個(gè)鏡像可以包含一個(gè)完整的 ubuntu 操作系統(tǒng)環(huán)境,里面僅安裝了 Apache 或用戶需要的其它應(yīng)用程序。鏡像文件支持標(biāo)簽(tag),用戶可以指定鏡像的標(biāo)簽。不帶標(biāo)簽的鏡像,默認(rèn)是 latest 標(biāo)簽。
當(dāng)用戶創(chuàng)建了自己的鏡像之后就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺(tái)機(jī)器上使用這個(gè)鏡像時(shí)候,只需要從倉庫上 pull 下來就可以了。
鏡像可以用來創(chuàng)建 Docker 容器。
運(yùn)行命令 docker run hello-world,執(zhí)行結(jié)果是生成了一個(gè)容器,我們可以理解這個(gè)容器是鏡像hello-world 的一個(gè)實(shí)例。我們理解這行命令,可以分成三部分:

docker 運(yùn)行機(jī)制簡析
docker 運(yùn)行機(jī)制簡析

Docker 容器

Docker 容器(Container),是Docker從鏡像創(chuàng)建的運(yùn)行實(shí)例。它可以被啟動(dòng)、開始、停止、刪除(docker run, docker start, docker stop, docker rm)。Docker 利用容器(Container)來運(yùn)行應(yīng)用,每個(gè)容器都是相互隔離的、保證安全的平臺(tái)。
我們可以把容器看做是一個(gè)簡易版的 Linux 環(huán)境(包括root用戶權(quán)限、進(jìn)程空間、用戶空間和網(wǎng)絡(luò)空間等)和運(yùn)行在其中的應(yīng)用程序,和虛擬機(jī)有點(diǎn)相似。

Docker Registry(注冊(cè)服務(wù)器)

  • 倉庫(Repository)是集中存放鏡像文件的場所
  • 倉庫注冊(cè)服務(wù)器(Registry),有時(shí)候會(huì)和倉庫混為一談,并不嚴(yán)格區(qū)分。實(shí)際上,倉庫注冊(cè)服務(wù)器上往往存放著多個(gè)倉庫,每個(gè)倉庫中又包含了多個(gè)鏡像,每個(gè)鏡像有不同的標(biāo)簽(tag)
  • 倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式,最大的公開倉庫是 Docker Hub,存放了數(shù)量龐大的鏡像供用戶下載
  • 國內(nèi)的公開倉庫包括 時(shí)速云 、網(wǎng)易云 等,可以提供大陸用戶更穩(wěn)定快速的訪問
  • 用戶也可以在本地網(wǎng)絡(luò)內(nèi)創(chuàng)建一個(gè)私有倉庫(參考“私有倉庫”部分)

帶著問題學(xué)習(xí)Docker的基本應(yīng)用

  • 啟動(dòng) Docker 服務(wù)
    • Docker默認(rèn)的數(shù)據(jù)容量是多大?
    • 如何使用 lvm-direct?
    • 如何讓Docker 支持更大的數(shù)據(jù)容量?
  • Docker 的鏡像文件來自哪里?
    • 官方的鏡像文件來自哪里?
    • 注冊(cè) Docker Hub 的賬號(hào)有什么作用?
    • 如何使用第三方Registry 服務(wù)器的鏡像?
    • 如何把官方的鏡像文件變成我的鏡像文件?
    • 如何使用 DockerFile 來構(gòu)建我的鏡像文件?
  • 運(yùn)行某鏡像文件的容器的需求
    • 如何以后臺(tái)進(jìn)程方式運(yùn)行?
    • 如何以控制臺(tái)交互方式運(yùn)行?
    • 如何指定主機(jī)某個(gè)目錄和容器某個(gè)目錄的掛載關(guān)系
    • 如何指定主機(jī)端口和容器端口的映射關(guān)系,比如創(chuàng)建MySQL鏡像的一個(gè)容器時(shí),如何指定端口,root密碼
    • 如何指定容器的IP地址
    • 如何整合多個(gè)容器的組合。比如說,MediaWiki 容器+MySQL容器,才是一個(gè)完整的 MediaWiki 應(yīng)用。如何把這兩個(gè)容器整合并方便的異地部署
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容