運(yùn)維標(biāo)準(zhǔn)化----Docker入門與實(shí)戰(zhàn)講解


簡述

Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。

容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機(jī)器和數(shù)據(jù)中心中運(yùn)行。最重要的是,他們不依賴于任何語言、框架包括系統(tǒng)。


Docker是什么?

Docker是基于Go語言實(shí)現(xiàn)的云開源項(xiàng)目,誕生于2013年初,最初是dotCloud公司發(fā)起。

Docker通過對(duì)應(yīng)用組件的封裝、分發(fā)、部署、運(yùn)行等生命周期的管理,達(dá)到應(yīng)用組件級(jí)別的“一次封裝,到處運(yùn)行”。這里的 應(yīng)用組件,即可以是Web應(yīng)用,也可以是一套數(shù)據(jù)庫服務(wù),甚至是一個(gè)操作系統(tǒng)或編譯器。

Docker由鏡像(Image)、容器(Container)、倉庫(Repository) 三大核心組成。


為什么要用Docker?

  • 更快速的交付和部署(使用docker,開發(fā)人員可以用鏡像來快速構(gòu)建一套標(biāo)準(zhǔn)的開發(fā)環(huán)境;開發(fā)完成之后,測(cè)試和運(yùn)維人員可以直接使用相同環(huán)境來部署代碼。)

  • 更輕松的遷移和擴(kuò)展(docker容器幾乎可以在任意平臺(tái)上運(yùn)行,包括物理機(jī)、虛擬機(jī)、公有云、私有云、個(gè)人電腦、服務(wù)器等??梢栽诓煌钠脚_(tái)輕松地遷移應(yīng)用)

  • 更簡單的更新管理(使用Dockerfile,只需要修改小小的配置,就可以替代以往大量的更新工作)


與傳統(tǒng)虛擬機(jī)對(duì)比


場(chǎng)景示例-傳統(tǒng)開發(fā)流程


場(chǎng)景示例-docker環(huán)境開發(fā)流程


Docker 的優(yōu)點(diǎn)

  • 1、簡化程序:
    Docker 讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,便可以實(shí)現(xiàn)虛擬化。Docker改變了虛擬化的方式,使開發(fā)者可以直接將自己的成果放入Docker中進(jìn)行管理。方便快捷已經(jīng)是 Docker的最大優(yōu)勢(shì),過去需要用數(shù)天乃至數(shù)周的 任務(wù),在Docker容器的處理下,只需要數(shù)秒就能完成。
  • 2、避免選擇恐懼癥:
    如果你有選擇恐懼癥,還是資深患者。Docker 幫你 打包你的糾結(jié)!比如 Docker 鏡像;Docker 鏡像中包含了運(yùn)行環(huán)境和配置,所以 Docker 可以簡化部署多種應(yīng)用實(shí)例工作。比如 Web 應(yīng)用、后臺(tái)應(yīng)用、數(shù)據(jù)庫應(yīng)用、大數(shù)據(jù)應(yīng)用比如 Hadoop 集群、消息隊(duì)列等等都可以打包成一個(gè)鏡像部署。
  • 3、節(jié)省開支:
    一方面,云計(jì)算時(shí)代到來,使開發(fā)者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價(jià)格的思維定勢(shì)。Docker 與云的結(jié)合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。

Docker 架構(gòu)

Docker 使用客戶端-服務(wù)器 (C/S) 架構(gòu)模式,使用遠(yuǎn)程API來管理和創(chuàng)建Docker容器。
Docker 容器通過 Docker 鏡像來創(chuàng)建。
容器與鏡像的關(guān)系類似于面向?qū)ο缶幊讨械膶?duì)象與類。

Docker 面向?qū)ο?/th>
容器 對(duì)象
鏡像
Docker 鏡像(Images) Docker 鏡像是用于創(chuàng)建 Docker 容器的模板。
Docker 容器(Container) 容器是獨(dú)立運(yùn)行的一個(gè)或一組應(yīng)用。
Docker 客戶端(Client) Docker 客戶端通過命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 與 Docker 的守護(hù)進(jìn)程通信。
Docker 主機(jī)(Host) 一個(gè)物理或者虛擬的機(jī)器用于執(zhí)行 Docker 守護(hù)進(jìn)程和容器。
Docker 倉庫(Registry) Docker 倉庫用來保存鏡像,可以理解為代碼控制中的代碼倉庫。Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。
Docker Machine Docker Machine是一個(gè)簡化Docker安裝的命令行工具,通過一個(gè)簡單的命令行即可在相應(yīng)的平臺(tái)上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

Centos 下docker安裝

  • Docker支持以下的CentOS版本:
CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本
  • 前提條件
    目前,CentOS 僅發(fā)行版本中的內(nèi)核支持 Docker。
    Docker 運(yùn)行在 CentOS 7 上,要求系統(tǒng)為64位、系統(tǒng)內(nèi)核版本為 3.10 以上。
    Docker 運(yùn)行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系統(tǒng)為64位、系統(tǒng)內(nèi)核版本為 2.6.32-431 或者更高版本。

  • 現(xiàn)運(yùn)行的Linux系統(tǒng)環(huán)境
    1、Centos 6.8版本
    2、內(nèi)核2.6.32
    3、64位操作系統(tǒng)

[root@OzanZone ~]# uname -a
Linux OzanZone 2.6.32-696.6.3.el6.x86_64 #1 SMP Wed Jul 12 14:17:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

[root@OzanZone ~]# cat /etc/issue
CentOS release 6.8 (Final)
  • 安裝EPEL
    因?yàn)橄到y(tǒng)自帶的repo中不帶docker需要安裝epel

Extra Packages for Enterprise Linux(企業(yè)版 Linux 附加軟件包),簡稱 EPEL。
具體請(qǐng)查看文末 附錄1

附錄1 EPEL的簡述

EPEL是一個(gè)由特別興趣小組創(chuàng)建、維護(hù)并管理的,針對(duì) 紅帽企業(yè)版 Linux(RHEL)及其衍生發(fā)行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一個(gè)高質(zhì)量附加軟件包項(xiàng)目。

官方網(wǎng)址為:https://fedoraproject.org/wiki/EPEL

  • EPEL 的軟件包通常不會(huì)與企業(yè)版 Linux 官方源中的軟件包發(fā)生沖突,或者互相替換文件。
  • EPEL 項(xiàng)目與 Fedora 基本一致,包含完整的構(gòu)建系統(tǒng)、升級(jí)管理器、鏡像管理器等等。
  • EPEL 是yum的一個(gè)軟件源,里面包含了許多基本源里沒有的軟件。安裝上EPEL的源后,就可以直接用yum來安裝軟件,而且EPEL不會(huì)替換原有的源,安裝后會(huì)產(chǎn)生新repo,省去了不少麻煩。

下載EPEL軟件包
可以到官網(wǎng)去下載。

安裝EPEL源

EPEL 包含一個(gè)叫做epel-release的包,這個(gè)包 包含了EPEL源的gpg密鑰和軟件源信息。您可以通過yum安裝到您的企業(yè)版Linux發(fā)行版上。

最后編輯于
?著作權(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)容

  • Docker概覽 Docker是一個(gè)用于開發(fā)、交付和運(yùn)行應(yīng)用的開放平臺(tái),Docker被設(shè)計(jì)用于更快地交付應(yīng)用。Do...
    i_cyy閱讀 1,360評(píng)論 0 7
  • 1.Docker簡介 1.1 什么是虛擬化 在計(jì)算機(jī)中,虛擬化(英語:Virtualization)是一種資源管理...
    EdwinGates閱讀 1,905評(píng)論 0 0
  • 基本概念 鏡像Docker 鏡像就是一個(gè)只讀的模板,鏡像可以用來創(chuàng)建 Docker 容器 容器容器是從鏡像創(chuàng)建的運(yùn)...
    巨子聯(lián)盟閱讀 7,791評(píng)論 0 3
  • *雜詞*(4 闕) 1、 【一剪梅】*寒梅傲雪*----天之嬌子 剪壯寒梅念萬嬌,斜步冬枝,傲雪春妖。 獨(dú)吟輕笑舞...
    栩園閱讀 505評(píng)論 0 1
  • 文|MI小姐 兒子已經(jīng)一歲零三個(gè)月了,我多次向老陳提議,是時(shí)候該好好奮斗了,孩子吃的用的穿的以后的教育,都需要大...
    米狗二閱讀 12,406評(píng)論 1 11

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