亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Linux運(yùn)維教程 | Docker在云家政的應(yīng)用

本文是由運(yùn)維專(zhuān)家、馬哥教育特約講師Fighter分享的Linux運(yùn)維教程《Docker在云家政的應(yīng)用》的文字整理版。

大家晚上好,我是Fighter,今晚由我給大家分享《Docker在云家政的應(yīng)用》,首先我介紹一下公司的背景,公司屬于中小型創(chuàng)業(yè)公司,服務(wù)器數(shù)量不多,但是為了解決一些問(wèn)題,我們引入了現(xiàn)在比較火的Docker技術(shù)。我們公司目前大規(guī)模使用了Docker,目前除了數(shù)據(jù)庫(kù)應(yīng)用,其他所有應(yīng)用都在Docker容器內(nèi)運(yùn)行,下面我就Docker在公司的應(yīng)用做一些分享。

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用
面臨問(wèn)題

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

上面這個(gè)報(bào)錯(cuò)大家應(yīng)該也都見(jiàn)過(guò)。程序錯(cuò)誤了,我們公司以前也會(huì)出現(xiàn)這個(gè)錯(cuò)誤。

看一下我們?cè)跊](méi)用Docker之前遇到的問(wèn)題:

  1. 線(xiàn)上環(huán)境和測(cè)試環(huán)境不完全一致,導(dǎo)致測(cè)試好的功能上線(xiàn)后會(huì)出現(xiàn)一些BUG。
  2. 部署新項(xiàng)目步驟繁瑣,批量部署運(yùn)行環(huán)境后,需要根據(jù)每個(gè)項(xiàng)目不同的情況,手動(dòng)修改配置參數(shù)。
  3. 新項(xiàng)目環(huán)境部署耗費(fèi)時(shí)間長(zhǎng)。有些項(xiàng)目部署需要幾十分鐘甚至更長(zhǎng)時(shí)間。
  4. 操作系統(tǒng)版本的差異,導(dǎo)致批量部署遇到麻煩。
  5. 不能跨平臺(tái)部署環(huán)境。

這就是我們的現(xiàn)狀,正是有了這些問(wèn)題,我們就要解決這些問(wèn)題。

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用
Docker簡(jiǎn)介

這里我再簡(jiǎn)單對(duì)Docker做一下介紹:

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

Docker是一個(gè)新的容器化開(kāi)源項(xiàng)目,誕生于 2013 年初,最初是 dotCloud 公司內(nèi)部的一個(gè)業(yè)余項(xiàng)目,項(xiàng)目后來(lái)加入了 Linux 基金會(huì),遵從了 Apache 2.0 協(xié)議,基于 Google 公司推出的 Go 語(yǔ)言實(shí)現(xiàn)。

Docker?提供了一個(gè)可以運(yùn)行你的應(yīng)用程序的容器,它可以將應(yīng)用以及依賴(lài)包到一個(gè)可移植的容器中,然后發(fā)布到任何 Linux機(jī)器上;

Docker?擴(kuò)展了 Linux 容器(Linux Containers)通過(guò)一個(gè)高層次的 API 為進(jìn)程單獨(dú)提供了一個(gè)輕量級(jí)的虛擬環(huán)境,有點(diǎn)類(lèi)似虛擬機(jī)的概念。

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用
鏡像倉(cāng)庫(kù)

了解了Docker后,接下來(lái)看我們是怎么把Docker用起來(lái)的,這里容我再介紹一下公司的背景,公司屬于中小型創(chuàng)業(yè)公司,服務(wù)器數(shù)量不多,沒(méi)有用高大上的Kubernetes、Swarm等Docker集群管理工具。

我們都知道為了方便Docker的部署,一般都需要一個(gè)Docker私有倉(cāng)庫(kù)來(lái)存放鏡像,我們也有自己的私有倉(cāng)庫(kù),看一下我們公司的私有鏡像倉(cāng)庫(kù)是什么樣子的,里面都存放了哪些鏡像。

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

我們的鏡像倉(cāng)庫(kù)里面存放了應(yīng)用服務(wù)鏡像,如Tomcat,Nginx等,API服務(wù)鏡像;

NoSQL鏡像,如Redis服務(wù),MongoDB服務(wù),ES服務(wù)等;

這些鏡像都是根據(jù)我們自己的實(shí)際需要打包好的環(huán)境鏡像,新項(xiàng)目需要什么服務(wù),直接拉取私有倉(cāng)庫(kù)的鏡像,快速的部署。

有了鏡像倉(cāng)庫(kù),看一下我們是怎么制作鏡像的?

我們使用了Dockerfile制作鏡像,每個(gè)環(huán)境都有對(duì)應(yīng)的Dockerfille文件,可以根據(jù)實(shí)際需要隨時(shí)調(diào)整鏡像。

以我們其中一個(gè)應(yīng)用服務(wù)環(huán)境鏡像為例(Nginx+php),看一下我們的鏡像制作過(guò)程:

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

1、從Docker官方鏡像倉(cāng)庫(kù)拉取PHP5.6作為基礎(chǔ)鏡像;

2、基于基礎(chǔ)鏡像安裝Nginx以及PHP需要的擴(kuò)展;

3、修改Nginx和PHP的配置;

4、生成指定服務(wù)的專(zhuān)用鏡像;

5、將生成好的鏡像提交至私有倉(cāng)庫(kù);

看一下公司的Dockerfile文件及構(gòu)建鏡像的命令:

Dockerfile文件內(nèi)容:

FROMphp:5.6.31-fpm

RUN apt-get update&& apt-get install -y \

nginx \

libfreetype6-dev \

libjpeg62-turbo-dev \

libmcrypt-dev \

libpng12-dev \

libxml2-dev \

libssl-dev \

git \

vim \

&& pecl install redis mongodb mongo\

&& docker-php-ext-enable redismongodb mongo \

COPY./nginx_vhost_conf/* /etc/nginx/sites-enabled/

docker build –t ?hub.yunjiazheng.com/front_web:v1.0 .??構(gòu)建鏡像命令。

docker pushhub.yunjiazheng.com/front_web:v1.0???提交鏡像到私有倉(cāng)庫(kù)。

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用
快速部署流程

接下來(lái)看一下我們?nèi)绾卫苗R像快速部署環(huán)境的。

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

首先,我們服務(wù)器在安裝完操作系統(tǒng),初始化系統(tǒng)的時(shí)候就會(huì)把Docker客戶(hù)端安裝好。

然后,服務(wù)器上只需要執(zhí)行docker pull 拉取一個(gè)鏡像。然后執(zhí)行docker run 啟動(dòng)鏡像,就可以快速部署好一個(gè)需要的環(huán)境的。

# docker pull hub.yunjiazheng.com/front_web:v1.0

# docker run –d –p 80:80hub.yunjiazheng.com/front_web:v1.0

執(zhí)行docker部署的命令。

我來(lái)解釋一下上述兩條命令:

docker pullhub.yunjiazheng.com/front_web:v1.0

是從hub.yunjiazheng.com這個(gè)私有鏡像倉(cāng)庫(kù)拉取front_web鏡像,鏡像版本是v1.0;

docker run –d –p80:80 hub.yunjiazheng.com/front_web:v1.0

這條命令-d是在后端運(yùn)行容器,-p是映射容器的80端口。然后啟動(dòng)容器;

這樣就部署好了一個(gè)需要的環(huán)境,大家看,是不是很easy?

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用
云家政運(yùn)維平臺(tái)

上面看了Docker部署環(huán)境的流程后,有一個(gè)問(wèn)題,同一個(gè)鏡像運(yùn)行起來(lái)的容器如何區(qū)分測(cè)試環(huán)境和線(xiàn)上環(huán)境呢?

為了區(qū)分容器運(yùn)行的環(huán)境,接下來(lái)要用到云家政的運(yùn)維平臺(tái)了。

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

云家政運(yùn)維平臺(tái)運(yùn)維是自主開(kāi)發(fā)的平臺(tái),平臺(tái)集成了環(huán)境管理、配置管理、發(fā)布管理、任務(wù)管理等功能。

在環(huán)境管理會(huì)先創(chuàng)建好需要的多套環(huán)境,例如beta、線(xiàn)上。

創(chuàng)建完環(huán)境后,會(huì)為每個(gè)環(huán)境添加不同的配置參數(shù),然后發(fā)布的時(shí)候選擇主機(jī)和鏡像及要發(fā)布的環(huán)境就可以自動(dòng)化部署一套環(huán)境。

舉個(gè)栗子指定服務(wù)器A部署A1項(xiàng)目的測(cè)試環(huán)境:

運(yùn)維平臺(tái)自動(dòng)登錄A服務(wù)器,拉取A1項(xiàng)目需要的環(huán)境鏡像,拉取A1項(xiàng)目代碼,再拉取平臺(tái)上為A1項(xiàng)目配置好的測(cè)試環(huán)境參數(shù),然后啟動(dòng)容器就可以自動(dòng)部署一套可運(yùn)行的環(huán)境。

看一下我們環(huán)境管理的界面:

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

下面是環(huán)境參數(shù)的管理界面:

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

對(duì)不同的環(huán)境 配置不同的參數(shù)。

運(yùn)維平臺(tái)里面的配置管理,可以在線(xiàn)管理線(xiàn)上、測(cè)試環(huán)境等配置信息,配置管理可以添加、刪除、修改代碼連接的數(shù)據(jù)庫(kù)信息、redis信息等配置信息。

實(shí)現(xiàn)邏輯大致如圖所示:

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

接下來(lái)看一下我們通過(guò)運(yùn)維平臺(tái)部署好的應(yīng)用的界面:

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

主機(jī)就是發(fā)布好的主機(jī),版本是容器運(yùn)行鏡像的版本,狀態(tài)是容器的運(yùn)行狀態(tài),在這里可以對(duì)容器進(jìn)行遠(yuǎn)程管理。

目前云家政所有服務(wù)除了數(shù)據(jù)庫(kù)是直接運(yùn)行在操作系統(tǒng)上,其他所有應(yīng)用服務(wù)都實(shí)現(xiàn)了容器化,每個(gè)項(xiàng)目服務(wù)都有對(duì)應(yīng)的鏡像,可以在最快幾秒內(nèi)實(shí)現(xiàn)服務(wù)的快速部署。

運(yùn)維平臺(tái)通過(guò)調(diào)用服務(wù)器上Docker? API接口實(shí)現(xiàn)對(duì)容器的啟動(dòng)、關(guān)閉、執(zhí)行命令、更新鏡像等自動(dòng)化管理。引入Docker給我們又帶來(lái)了什么好處呢?

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用
Why Docker?

收益:

  • 保證了運(yùn)行環(huán)境的一致性,線(xiàn)上環(huán)境和測(cè)試環(huán)境使用同一個(gè)鏡像,測(cè)試環(huán)境測(cè)試通過(guò)后,上線(xiàn)后不會(huì)出現(xiàn)因?yàn)榄h(huán)境差異而導(dǎo)致Bug;
  • 部署新項(xiàng)目方便快捷,不用考慮操作系統(tǒng)的差異而導(dǎo)致自動(dòng)部署失?。?/li>
  • 新項(xiàng)目部署速度快,可在秒級(jí)部署好一個(gè)項(xiàng)目環(huán)境;
  • 服務(wù)鏡像制作完成后,可以多次快速部署,方便快速橫向擴(kuò)展服務(wù);
  • 支持跨平臺(tái)部署;

以上的收益恰好解決了之前我們所說(shuō)的問(wèn)題。

目前我們公司運(yùn)維平臺(tái)因?yàn)橐恍┕δ苓€不完善,等完善后,后續(xù)會(huì)將運(yùn)維平臺(tái)開(kāi)源。以上是公司對(duì)Docker使用的一點(diǎn)分享,后續(xù)如果有機(jī)會(huì)可以分享一下我們的運(yùn)維平臺(tái)。建了一個(gè)docker應(yīng)用交流的微信群,后續(xù)有問(wèn)題的可以在群里交流。感謝大家的收看。


————廣告時(shí)間————

《馬哥Linux云計(jì)算及架構(gòu)師》課程,由知名Linux布道師馬哥創(chuàng)立,經(jīng)歷了8年的發(fā)展,聯(lián)合阿里巴巴、唯品會(huì)、大眾點(diǎn)評(píng)、騰訊、陸金所等大型互聯(lián)網(wǎng)一線(xiàn)公司的馬哥課程團(tuán)隊(duì)的工程師進(jìn)行深度定制開(kāi)發(fā),課程采用 Centos7.2系統(tǒng)教學(xué),加入了大量實(shí)戰(zhàn)案例,授課案例均來(lái)自于一線(xiàn)的技術(shù)案例。

開(kāi)課時(shí)間:11月06號(hào)

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用課程咨詢(xún)請(qǐng)長(zhǎng)按即可咨詢(xún)Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

Linux運(yùn)維教程 |  Docker在云家政的應(yīng)用

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專(zhuān)業(yè)人才培訓(xùn)機(jī)構(gòu)!