前言
????????最近在學(xué)習(xí)docker脑漫,然后看到了阮一峰老師的博客,其中就有docker微服務(wù)的教程校翔,剛好手上有個(gè)阿里云的服務(wù)器踱稍,就想著試試看在阿里云上搭建一個(gè)個(gè)人博客練練手曲饱,話不多說,接下來就開始我們的操作珠月。
在開始之前扩淀,我們需要粗略的了解一下Docker和WordPress
一、Docker是什么啤挎?
????????在開始操作之前驻谆,我們先來了解一下Docker是什么,我們先看看百度上對(duì)Docker的描述吧
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器或Windows 機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口胜臊。
????????簡(jiǎn)而言之勺卢,docker就是一個(gè)應(yīng)用容器引擎,就是一個(gè)引擎象对,那么黑忱,容器又是什么呢,我們來看官方對(duì)它的解釋吧
容器是一個(gè)標(biāo)準(zhǔn)化的軟件單元勒魔,它將代碼及其所有依賴關(guān)系打包甫煞,以便應(yīng)用程序從一個(gè)計(jì)算環(huán)境可靠快速地運(yùn)行到另一個(gè)計(jì)算環(huán)境。Docker容器鏡像是一個(gè)輕量的獨(dú)立的可執(zhí)行的軟件包冠绢。包含程序運(yùn)行的時(shí)候所需的一切:代碼危虱,運(yùn)行時(shí)間,系統(tǒng)工具唐全,系統(tǒng)庫(kù)和設(shè)置。
????????這樣看著是不是不太明白蕊玷?想必大家都用過虛擬機(jī)吧邮利,接下來我們來看個(gè)Docker與虛擬機(jī)的對(duì)比圖,大家就能更好的理解Docker了垃帅。
????????如上圖所示延届,在宿主機(jī)中安裝了系統(tǒng),系統(tǒng)中安裝了虛擬機(jī)贸诚,虛擬機(jī)虛擬出一臺(tái)計(jì)算機(jī)方庭,在虛擬計(jì)算機(jī)中安裝完整的系統(tǒng),再將服務(wù)部署在虛擬系統(tǒng)中酱固。部署的服務(wù)受虛擬機(jī)的內(nèi)核調(diào)度械念,虛擬機(jī)受主機(jī)的調(diào)度,多層及下主機(jī)資源產(chǎn)生了嚴(yán)重的浪費(fèi)运悲。如果要在一臺(tái)機(jī)器上部署多個(gè)服務(wù)龄减,還要環(huán)境隔離,那就需要有多個(gè)虛擬機(jī)班眯,所需要的資源也就不言而喻希停。
????????容器是在主機(jī)的操作系統(tǒng)中,隔離出單獨(dú)的用戶空間署隘,每個(gè)都是單獨(dú)的沙箱宠能,環(huán)境互不影響。需要的系統(tǒng)資源也只是服務(wù)所需要的資源磁餐,減少了虛擬主機(jī)的資源開銷违崇。
????????如果簡(jiǎn)單的來看,容器相當(dāng)于虛擬機(jī),但是容器跟虛擬機(jī)還是有很大不同的亦歉,虛擬機(jī)是硬件層面的虛擬化恤浪,而Docker容器是系統(tǒng)層面的虛擬化,每個(gè)容器化應(yīng)用都會(huì)共享相同的操作系統(tǒng)肴楷。容器可以看成一個(gè)裝好了一組特定應(yīng)用的虛擬機(jī)水由,它直接利用了宿主機(jī)的內(nèi)核,抽象層比虛擬機(jī)更少赛蔫,更加輕量化砂客,啟動(dòng)速度極快。在以前使用虛擬機(jī)的話呵恢,一臺(tái)服務(wù)器跑幾個(gè)服務(wù)就差不多了鞠值,而現(xiàn)在用了Docker,可以創(chuàng)建很多的容器渗钉,同時(shí)跑更多的服務(wù)彤恶。
????????更詳細(xì)的大家可以去看看阮一峰老師的博客docker入門教程
2、WordPress是什么鳄橘?
????????WordPress是使用PHP語(yǔ)言開發(fā)的博客平臺(tái)声离,用戶可以在支持PHP和MySQL數(shù)據(jù)庫(kù)的服務(wù)器上架設(shè)屬于自己的網(wǎng)站。也可以把 WordPress當(dāng)作一個(gè)內(nèi)容管理系統(tǒng)(CMS)來使用瘫怜。
????????WordPress是一款個(gè)人博客系統(tǒng)术徊,并逐步演化成一款內(nèi)容管理系統(tǒng)軟件,它是使用PHP語(yǔ)言和MySQL數(shù)據(jù)庫(kù)開發(fā)的,用戶可以在支持 PHP 和 MySQL數(shù)據(jù)庫(kù)的服務(wù)器上使用自己的博客鲸湃。
????????WordPress有許多第三方開發(fā)的免費(fèi)模板赠涮,安裝方式簡(jiǎn)單易用。不過要做一個(gè)自己的模板暗挑,則需要你有一定的專業(yè)知識(shí)笋除。比如你至少要懂的標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用HTML代碼、CSS炸裆、PHP等相關(guān)知識(shí)株憾。
????????WordPress官方支持中文版,同時(shí)有愛好者開發(fā)的第三方中文語(yǔ)言包晒衩,如wopus中文語(yǔ)言包嗤瞎。WordPress擁有成千上萬(wàn)個(gè)各式插件和不計(jì)其數(shù)的主題模板樣式。
介紹完docker和WordPress之后听系,我們就正式開始搭建個(gè)人博客了
1贝奇、Linux下安裝Docker
首先,我們打開Linux終端靠胜,獲取root權(quán)限掉瞳,輸入以下命令毕源,執(zhí)行,安裝Docker:
yum install docker -y
執(zhí)行完成后陕习,終端輸出如下
接下來霎褐,我們可以用以下命令查看Docker版本:
docker version
輸出如下:然后我們這個(gè)時(shí)候在終端中輸入以下命令啟動(dòng)Docker,并把Docker設(shè)為開機(jī)啟動(dòng):
service docker start #啟動(dòng)docker
chkconfig docker on #將docker設(shè)置為開機(jī)啟動(dòng)
好了该镣,現(xiàn)在我們的Docker已經(jīng)安裝成功了冻璃。
2、Docker中配置WordPress
在這一步中损合,我們需要?jiǎng)?chuàng)建一個(gè)容器省艳,用來運(yùn)行WordPress,一起來操作一波吧嫁审。
首先跋炕,由于WordPress運(yùn)行需要Mysql數(shù)據(jù)庫(kù),所以我們需要把Mysql數(shù)據(jù)庫(kù)和WordPress的鏡像獲取到我們的主機(jī)律适。
獲取mysql鏡像
在終端中輸入以下命令:
docker search mysql #搜索mysql鏡像
docker pull mysql:5.7 #獲取mysql鏡像 :后為mysql版本 若不指定版本辐烂,則默認(rèn)為最新版
獲取WordPress鏡像
docker search wordpress #搜索WordPress鏡像
docker pull wordpress #獲取WordPress鏡像,不加版本號(hào)默認(rèn)為最新
好了捂贿,我們把鏡像都獲取下來了纠修,接下來可以使用下面的命令查看我們的鏡像:
docker image ls
既然鏡像都獲取好了,我們就可以創(chuàng)建容器了
在終端中輸入以下命令創(chuàng)建MySQL容器:
docker run -d --name wordpressdb --env MYSQL_ROOT_PASSWORD=123456 --env MYSQL_DATABASE=wordpress mysql:5.7
這里的幾個(gè)參數(shù)都什么意思呢眷蜓?
-d表示容器啟動(dòng)后,在后臺(tái)運(yùn)行
--name wordpressdb:容器的名字叫做wordpressdb
--env MYSQL_ROOT_PASSWORD=123456:向容器進(jìn)程傳入一個(gè)環(huán)境變量MYSQL_ROOT_PASSWORD胎围,該變量會(huì)被用作 MySQL 的根密碼吁系。
--env MYSQL_DATABASE=wordpress:向容器進(jìn)程傳入一個(gè)環(huán)境變量MYSQL_DATABASE,容器里面的 MySQL 會(huì)根據(jù)該變量創(chuàng)建一個(gè)同名數(shù)據(jù)庫(kù)
執(zhí)行結(jié)束后會(huì)產(chǎn)生一串字符串白魂,這串字符串為容器的ID
接下來汽纤,我們繼續(xù)創(chuàng)建WordPress容器:
docker run -d -p 80:80 --name wordpress --env WORDPRESS_DB_PASSWORD=123456 --link wordpressdb:mysql wordpress
其中:
?????????-p 80:80是將容器的80端口映射到主機(jī)的80端口
?????????--env WORDPRESS_DB_PASSWORD=123456 為數(shù)據(jù)庫(kù)密碼
?????????--link wordpressdb:mysql wordpress表示 WordPress 容器要連到wordpressdb容器,冒號(hào)表示該容器的別名是mysql
現(xiàn)在我們可以使用以下命令查看正在運(yùn)行的容器:
docker container ls #可以加--all查看所有容器福荸,包括停止運(yùn)行的
好了蕴坪,大功告成,接下來我們?cè)L問主機(jī)的IP地址敬锐,就可以進(jìn)行WordPress配置啦
剩下的操作就是配置WordPress了背传,跟著流程走完即可。
參考:
http://www.reibang.com/p/477974212ba8
https://www.runoob.com/docker/docker-command-manual.html
http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html