阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

前言

最近在学习docker,然后看到了阮一峰老师的博客,其中就有docker微服务的教程,刚好手上有个阿里云的服务器,就想着试试看在阿里云上搭建一个个人博客练练手,话不多说,接8 b r下来就开始我们的操作。

在开始之前,我们需要粗略的了解一下DoU ) m : G : Lcker和WordPress

一、Docker是什么?

在开始操作之前,我们先来了解一下Docker是什么,我们先看看百度上对Docker的描述吧

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到^ 2 e一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有= * *任何接口。

H V T ( O而言之,docker就是一个应用容器引擎,就是一个引擎/ G j g : L B p b,那么,容器又是什么呢,我们来看官方对它的解释吧

容器是一个标准化的软件单元,它9 = / ( ,将代码及其所有依赖关系打包,以便应用程序从一个计算环境可靠快速地运行到另一个计算环境。Docker容器镜像是一个x # B v p K g &轻量的独立的可执行的软件包。包含程序运行的时候所需的一切:代码,运行时间,系统工具,系统库和设置。

这样看着是不是不太明白?想必大家都用过虚拟机吧,接下} ~ =来我们来看个Dos Y F N rckN y =er与虚拟机的对比图,大家就能更好的理解Docker了。

阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)
阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

如上图所示,在宿主机中安装了系4 s D n统,系统中安装了虚拟机,虚拟机虚拟出一台计算机,在虚拟计算机中安装完整的系统,再将服务部署在虚拟系统中。部署的服务受虚拟机的内核调度,虚拟机受主机的调度,多层及下主机资源产生了严重的浪费。如果要在一台机器上部署多个服务,还要环境隔离,那就需要有多个虚拟机,所需要的资源也就不言而喻。
容器是在主机的操作系f G 4 9 7 f 2 )统中,隔离出单独的用户空间,每个都是单独的沙箱,环境互不影响。需要的系统资源也只是服务所需要的资源,减少了虚拟主机的资源开销。
如果简单的来看,容器相当于虚拟机,但是容器跟虚拟机还是有很大不同的,虚拟机是b B & { [ c t z硬件层面的虚拟化,而Docker容器是系统层面的虚拟化,每个容器化应用都会共享相同的操作系统。容器可以看成] d P 2 M % ) 3一个装好了一组特定应用的虚拟机,它直接利用了宿主机的内核,抽象层比虚拟M i 3 o i # % h机更少,D ^ i e i !更加轻量化,启动速度极快。在以前使用虚拟机的话,一台服务器跑几个服务就差不多了,而现在用了Docker,可以创建f A n 8很多的容器,同时跑更多的服务。
更详细的大家可以去看看阮一峰老师的博客dD M g -ocker入门教程

2、WordPress是什么?

WordPrL g 2 m Cess是使用PHP语言开发的博客d C K 8 r F R ~ :平台,用户可以在支持PHP和MySQL数据库的服务器上架设属B Y ( z |于自己的网站。也可以把 WordPress当2 7 W P p # 4作一个内容管W X K } n D V p )理系统(CMS)来使用。
WordPress是一款个人博客系统@ 7 D 8 X 1 f . B,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在D K J支持 PHP 和 MyS| 0 W 4 {QL) K D数据库的服务器上使用自己的博客。
WordPress有许多第三方开发的免费模板m l ~ ] 1 5,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的& / . K y X r _ 专业知识。比如你至少要懂的标准@ 8 J通用标记语言( 5 ~ c ^ w o a下的一个应用HTML代码、CSS、PHP等相关知识。
WordPress官方支持中文版,同时有爱好者开发的第三方中文语言包,如wopus中文语言h T # 3 B &包。WordPress拥有成千上万个各式插件和不计其数的主题模板样式。

介绍完docker和WordPress之后,我们就正式开始搭建个人博客了

1、Linux下安装Docker

首先,我们打开Linux终端,获取root权限,输入以下命令,执行,安装Docker:

yum install docker -y
阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

执行完成后,终端输出如下

阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

接下来,我们可以用以下G 2 i . B a &命令查看Docker版本) - 5 K O f | _

docker version

输出如下:

阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

然后我们这个时候在终端中输入以下命令启动Docker,并p U i Z ] Z把Docker设为开机启动:

service docker start  #启动docker
cc Y i p T y ] l yhkconfig docker on  #将docker设置为开机启动
阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

好了,现在我们的Docker已经安装成功了。

2、Docker中配置WordPress

在这一步中,我们需要创建一个容器,用来运行WordPress,一起来操作一波吧。
首先,由于WordPress运行需要Mysql数据库,所以我们需要把Mysql数据库和WordPress的镜像获取到我们的主机。

获取mysql3 & 5 e {镜像

在终端中输入以下命令:

docker search mysql #搜索mysql镜像
docker pull mysql:5.7X ) N D M C ^ $  #获取mysql镜像 :后为mysql版本 若不指定版本,则默认为最新版
阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

获取WordPress镜像

docker search wordpress #搜索Word[ F rPress镜像
docker pull wordpr- & _ U v k gess #获取WordPress镜像,不加版本+ : ? _ g U L号默认为最新
阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

好了,我们把镜像都获取下来了,接下来可以使 u 7 I I Q #I ~ 下面的命令查看我们的镜像:

docker image ls
阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

既然镜像都获取好了,我们就可以创建容器了

k i & Y . p终端中输入以下命令创建MySQL容器:

docker run -d --name wordpressdb --L O A + , ~ Lenv MYSQL_ROOT_P[ s Y Q bASSWF ) U Q ~ { 4 ^ORD=123456 --env MYSQL_DATABASE=wordpress mysql:5.` , 1 [ q / u U7

这里的几个参数都什么意思呢?
-d表示容器启动后,在后台运行
--name wordpressdb:容器的名字叫做wordpressdb
--env MYSQL_ROOT_PASSWORD=123456:向容器进程传入一个环境变量MYSQL_ROOT_PASSWORD,该变量会被用作 MySQL 的根密码B R p w 3 0 y
--env MYSQLt F + b m 3 I h k_DATABASE=wordpress:向容器进程传入一个环境变量MYSQL_DATABASE,容器里面的 MySS D P :QL 会根据该变量创建一个同名数据库

执行结束后会产生一串z 0 Y O I L q字符串,这串字符串为容器的ID

阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

接下来,我们继续创建W` ] N q ~ UordPress容器:

docker run -d -p 80:8v | v H 6 ~ h z L0 --name wordpZ  1 , p Fress --env WORDPREC f b a H M %SS_DB_PASSWORD=123456 --( m 3 | s Wlink wordpressdb:mysql wordpress

其中:
-p 80:80是将容器的80端口映射到主机的80端口
--env WORDPRESS_DB_PASSWORD=123456 为数据库密码
--linkV U D + c wordpressdb:mysql wordpress表示 WordPress 容器要连到wordpressdb容器,冒号表示该容器的别名是mysql

阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

现在我们可以使用以下命令查看正在运行B $ ? = : 8 = k的容器:

docker container ls #可以加--all查看所有容t % g 9 F器,包括停止运行的
阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

好了,大K } _ n _ k L q功告成,接下来我们访问主机的IP地址,就可以进行WordPress配置啦

阿里云linux+docker+WordPress搭建个人博客(docker微服务学习)

剩下的操作就是$ E r 6 j #X G b . | C % q置WordPq } u !ress了,跟着流程走完即可。

参考
https://www@ # b Q G ^ = C Z.jianshu.com/p/477974212ba8
https://www.runoob.com/docker/docker-command-manual.html
http://www.ruanyifeng.com/blog/2018/02/docker-tutS j = Iorial.htmlh c & E