用Docker再CentOS7上搭建WordPress以及遇到的坑

搭建需求

一直想有个属于自己的博客,来记录自己在技术上的不足和成长,最后决定使用安装简单的WordPress,直接用Docker直接拉取镜像运行就可以了,可以省下不少功夫。

Docker安装

安装所需的软件包

$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2

设置稳定的仓库

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

安装 Docker Engine-Community

$ sudo yum install docker-ce docker-ce-cli containerd.io

启动 Docker

$ sudo systemctl start docker

使用Docker安装Mysql数据库

首先用docker拉取一个Mysql容器

docker pdocker pull mysql:5.6

在docker中运行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

参数解读:

-d:后台运行

--privileged=true :使容器内获取Root权限

--name :给要运行的容器起名

-v : A:B 将容器内B路径映射到宿主主机的A路径

-e : 传入环境变量,这里表示设置MySQL的ROOT账户密码为123456

-p :端口映射, A:B,将容器内的B端口映射到宿主主机的A端口;这里表示将容器内连接MySQL的3306端口映射到宿主主机的33306端口

mysql:5.6 : 要运行的容器名称

成功运行容器后可以使用:

docker ps -a

查看Docker内所有运行的容器,相关的命令:

停止容器:

docker stop 容器名

删除容器:

docker rm 容器名

使用Docker安装WordPress

此时我们在Docker内已经有了本地的数据库了,拉取WordPress容器并运行,连接MySQL数据库后便大功告成了。

使用Docker拉取WordPress镜像

docker pull wordpress:latest

运行WordPress容器并连接MySQL数据库

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

参数解释:

WORDPRESS_DB_HOST : 数据库地址,这里mysql代表默认设置

WORDPRESS_DB_USER : 数据库的用户名,这里没有写出来,代表默认使用root账户

WORDPRESS_DB_PASSWORD :数据库密码

WORDPRESS_DB_NAME : 使用的数据库名称,这里没有写出来,代表默认使用wordpress

--link : 链接两个容器,使之互相通信

到这里,如果运行成功的话,WordPress的搭建基本上就算是成功了,剩下只要访问

宿主主机地址:映射的端口号

便可以看到WordPress的向导界面了


最近发现几天没有上博客,重新访问会出现

error establishing a database connection

导致博客无法正常访问

在使用 docker ps -a 命令查看全部容器状态,发现Mysql容器状态为:

Exited (137) 2 hours ago

在查询百度后得出结论:

是Docker内的Mysql容器消耗内存资源过多,遭到Linux系统的OOM Killer机制限制,结束内存消耗过多的进程来释放内存。

这里解决办法有三个:

1.升级服务器配置

2.修改Mysql配置,降低内存消耗

3.设置Mysql容器为自动重启

这里采用了不花钱最简单的方案3:

docker update --restart=always mysql

之后如果Mysql容器再被OOM Killer机制结束后便会自动重启

本文系作者 @ 原创发布在 Luninousail ' Blog。未经许可,禁止转载。

喜欢()
评论 (0)
183 文章
4 评论
25 喜欢
Top