使用docker在CentOS7上搭建WordPress

自己課題組的網(wǎng)頁掛了,老板一句話讓我們自己寫一個。結(jié)果被我拖了半年,結(jié)果丟給師弟,師弟決定用WordPress, 于是我就去給他配置服務(wù)器環(huán)境。

首先你得知道什么叫做WordPress, 它是一個基于PHP和MySQL的開源的博客管理工具,用于管理你的寫作內(nèi)容。由于它十分容易部署,而且有很多好看的主題可以供你選擇,因此被許多人使用。

一般的安裝方法是,你得有一個服務(wù)器,然后在服務(wù)器上按照PHP,MySQL, Apache/NGINX, 之后下載WordPress的安裝包,進行編譯安裝。

只從有了docker,環(huán)境配置部分就得到了簡化,并且你不用擔心在準備環(huán)境的時候,要去調(diào)整原來的PHP版本,去修改MySQL的版本,還要專門折騰Apache或者NGINX。

后續(xù)的步驟都要求你對服務(wù)器有絕對的控制權(quán),也就是說后續(xù)沒有特別說明,我們都是以root用戶運行命令

安裝Docker

Docker

Docker是目前服務(wù)器部署屆的佼佼者,無論是部署網(wǎng)頁,還是部署你的生信分析平臺,只要你寫好dockfile(一種描述部署規(guī)則的文件), 在任意的服務(wù)器上,安裝好Docker,就可以構(gòu)建出一個完全一樣的運行環(huán)境。

我用的的是CentOS7, 版本信息如下

uname -r 
3.10.0-862.el7.x86_64

然后用YUM工具進行安裝,

yum update -y
yum install docker -y

由于國情,我們需要對配置一下docker的下載鏡像,提高一下后續(xù)的加載速度。 使用vim編輯 /etc/docker/daemon.json, 增加如下內(nèi)容。

{
  "registry-mirrors": ["https://6xacs6l2.mirror.aliyuncs.com"]
}

啟動我們的docker服務(wù)

systemctl start docker.service

默認情況下,只有root用戶和docker組的用戶才能訪問Docker引擎的Unix socket。當然直接用root權(quán)限使用docker太過危險,建議新建一個docker用戶,然后加入docker用戶組

groupadd docker
useradd -g docker docker

后續(xù)的操作用su docker切換到docker用戶進行。

安裝WordPress

首先讓我們拉取WordPress的鏡像

docker pull wordpress:latest

WordPress的詳細使用方法見https://hub.docker.com/_/wordpress/, 運行命令是

docker run --name some-wordpress --link some-mysql:mysql -d wordpress

先做一波參數(shù)說明:

  • --name 容器的的名字
  • --link 和其他容器做連接
  • ·-d/--detach` 后臺運行

但是直接這樣運行是絕對會報錯的,你需要再拉取一個MySQL容器,

docker pull mysql:5.6

從MySQL鏡像中運行單獨的容器

docker run -d --privileged=true --name myMysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 33306:3306 mysql:5.6

再來一波參數(shù)解釋:

  • -p: 端口映射,33306表示宿主,3306表示容器中的端口。 這里表示將宿主機的33306映射給鏡像的3306.
  • -e: 環(huán)境變量, 環(huán)境變量和具體的Docker容器制作時設(shè)置有關(guān),這里表示設(shè)置鏡像中MySQL的root 密碼時123456
  • -v: 指定數(shù)據(jù)卷,也就是將我們MySQL容器的/var/lib/mysql映射到宿主機的/data/mysql
  • --privileged=true: CentOS系統(tǒng)下的安全Selinux禁止了一些安全權(quán)限,導(dǎo)致MySQL容器在運行時會因為權(quán)限不足而報錯,所以需要增加該選項

docker ps -a 查看MySQL是否正常運行,出現(xiàn)錯誤的話,需要用docker stop 容器名停止運行,然后用docker rm 容器名刪除容器,之后去掉-d選項重新運行排查錯誤。

當我們配置好MySQL后,下一步才是運行WordPress

docker run -d --name mwp -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_PASSWORD=123456 -p 1080:80 --link myMysql:mysql wordpress

這里我們設(shè)置了兩個環(huán)境變量,"WORDPRESS_DB_HOST"和"WORDPRESS_DB_PASSWORD", 但比較重要的有下面幾個

  • "WORDPRESS_DB_HOST": 鏈接的docker的MySQL的IP地址和端口,一般設(shè)置成mysql表示用默認的設(shè)置
  • "WORDPRESS_DB_USER": 以什么用戶使用MySQL,默認是root
  • "WORDPRESS_DB_PASSWORD" 這設(shè)置MySQL的登陸用戶密碼,由于上一項是默認的root,所以這一項和之前的"MYSQL_ROOT_PASSWORD“要相同。
  • "WORDPRESS_DB_NAME": 數(shù)據(jù)庫的表名,不需要修改,用默認的”wordpress"就行

之后在瀏覽器上用你服務(wù)器的IP,和映射出的端口號(我的是1080),就會得到配置界面

注意:盡管將容器的80端口映射給主機的1080,不需要用到root權(quán)限,但CentOS默認的防火墻禁止了大于1000后的所有端口,所以我們要開啟這個端口

firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload #重載
安裝界面1
安裝界面2

后面就是你自己挑選主題的時刻了。

參考資料:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,828評論 15 147
  • 《Docker從入門到實踐》閱讀筆記 原書地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo閱讀 11,619評論 1 39
  • 打了個盹, 睜開眼時,天已黑, 一種饑餓感和孤獨感襲來, 我以為是放浪形骸混跡于人群中, 到頭來卻是形單影只與眾人...
    叔丙仄閱讀 264評論 0 2
  • 題目:給定由大寫,小寫字母和空格組成的字符串,返回最后一個單詞的長度。如果輸入中不存在單詞,返回00。注意:“單詞...
    Knowledgeisinfi閱讀 393評論 0 0

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