使用Docker搭建WordPress博客

最近新搞了一台腾讯云服务器

把阿里云的博客迁移到腾讯云上,整个过程比较麻烦

为了以后节省迁移的时间:想把博客搭在Docker上,迁移时,直接把容器导出拿走就好啦,简单方便

前文介绍过wordpress的搭建:阿里云搭建WordPress博客,有感兴趣的同学去看看

不熟悉Docker的同学,可以趁着这个机会学一学,很好上手。


注意:

腾讯云服务器特价:云服务器: 1核2G,1M带宽,系统盘(Linux 50G/Windows 50G) 一个月10元,一年才120,还可以续费2次,很实惠。

还没有云服务器的同学可以入手一个:购买地址

用云服务器搭建个人网站啦,平时学习用都可以!!!


环境:

腾讯云服务器Centos 7系统

需要两个Docker容器,一个Wordpress容器,用于运行wordpress博客,一个Mysql容器,用于存储wordpress的数据

首先安装Docker

yum install docker-io

安装后,修改其开机自启,并开启docker

systemctl enable docker
systemctl start docker

开启docker后,下载两个镜像Centos,Mysql

docker pull centos
docker pull mysql

等待下载完成,下载后可以查看镜像

[root@louisvv ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              2d194b392dd1        7 days ago          195.4 MB
docker.io/mysql     latest              5d4d51c57ea8        2 weeks ago         373.6 MB


Mysql容器配置

先来创建mysql镜像

使用DockerFile创建Mysql镜像

Dockerfile内容如下:

FROM mysql
MAINTAINER yanwei <www.louisvv.com>
拷贝脚本执行文件
COPY init.sh /init.sh
#设置密码
ENV MYSQL_ROOT_PASSWORD=密码
#暴露3306端口
EXPOSE 3306
CMD ["sh","/init.sh"]

init脚本内容如下:

/etc/init.d/mysql start    #开启mysql
mysql -u root -e "grant all privileges on *.* to 'root'@'%' identified by '密码';"   #授权
mysql -u root -e "grant all privileges on *.* to 'root'@'localhost' identified by '密码';" #授权
mysql -u root -p密码 -e "create database wordpress;"    #创建wordpress数据库
/bin/bash

构建myql镜像

docker build -t mysql-wp .

构建成功后,查看该镜像

[root@louisvv /]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql-wp            latest              5410b49b0751        5 days ago          397.4 MB

使用该镜像创建并运行一个容器

mysql的容器需要固定IP地址,所以,创建自定义网络

docker network create --subnet=172.18.0.0/24 wp-network

启动mysql容器:

docker run -itd -p 3306:3306 --network=wp-network --ip 172.18.0.10  mysql-wp


WordPress容器配置

下载WordPress简体中文版:wordpress-4.9.4-zh_CN.zip

解压wordpress-4.9.4-zh_CN.zip

unzip wordpress-4.9.4-zh_CN.zip

解压后,生成一个名为wordpress的文件夹,将该文件夹下所有的东西拷贝到 /var/www/html下,若没有该目录,则创建。

cp -r wordpress/* /var/www/html/

修改WordPress配置文件

cd /var/www/html/
cp wp-config-sample.php wp-conig.php #复制配置文件

修改wp-config.php文件内容,填写刚才配置的mysql信息。

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');

/** MySQL数据库用户名 */
define('DB_USER', 'root');

/** MySQL数据库密码 */
define('DB_PASSWORD', '密码');

/** MySQL主机 */
define('DB_HOST', '172.18.0.10:3306');

/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');

使用DockerFile构建WordPress镜像

DockerFile内容如下:

FROM centos
MAINTAINER louisvv <www.louisvv.com>
#设置容器启动时执行的命令
RUN yum -y install httpd mysql mysql-server php php-mysql php-gd php-xml  && /usr/sbin/httpd -d /etc/httpd/ 
#暴露80端口
EXPOSE 80
CMD ["/bin/bash"]

构建镜像

docker build -t wordpress .

构建成功后,查看该镜像

[root@louisvv wordpress_docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wordpress           latest              192988a086af        17 seconds ago      445.4 MB

基于wordpress镜像创建一个新的容器,并运行

docker run -itd -p 80:80 --net=host -v /var/www/:/var/www/ -v /etc/localtime:/etc/localtime:ro wordpress  /bin/bash 

解释个别参数:

–net=host    选择网络模式为host模式,ip地址同宿主机,不用做过多网络连接配置

-v /var/www/:/var/www    将本地wordpress文件夹挂载到容器目录,wordpress在本地,安全可靠

-v /etc/localtime:/etc/localtime:ro  (可不用添加此参数) 与主机时间同步

运行后,输入公网IP地址:80 即可进行博客初始化,这里就不上图了

VV是博客迁移,所以访问到的是我的主页


好了,我们下篇文章见~

赫墨拉

我是一个喜爱大数据的小菜鸡,这里是我分享我的成长和经历的博客

1 Response

  1. 2021年12月5日

    […] 使用Docker搭建WordPress博客 […]

发表评论

邮箱地址不会被公开。