使用 Docker 部署 WordPress 个人博客

Docker 安装

这个可以直接参考以下文章:

Docker 安装及镜像加速器配置
前言 本次实验使用的操作系统镜像为 ubuntu-18.04.2-desktop 第一章 安装操作系统 1.1 软件下载 使用官方提供的Ubuntu 18.04.2 Desktop 镜像,下载地址:http……

拉取 Docker 镜像

从镜像仓库,下载镜像到本地,我们需要下载两个镜像,一个是 WordPress 的镜像,一个是 MySql 的镜像

docker pull wordpress
docker pull mysql

查看下载的镜像

docker images

image-20220806194615313

运行容器

在本地,创建一个文件夹,用于存放 WordPress 的主题和插件等需要自定义的文件

mkdir /var/wordpress_custom

运行 MySql 容器

docker run -d --name wordpress-mysql -e MYSQL_USER=wordpress \
-e MYSQL_PASSWORD=wordpress@123 -e MYSQL_DATABASE=wordpress \
-e MYSQL_ROOT_PASSWORD=wordpress@123!  -p 3306:3306 mysql

选项解释:

run # 使用镜像运行一个容器,如果没有提前 pull 镜像到本地,则会去仓库 pull 镜像后再运行

-d # 后台运行容器

--name # 指定容器名称

-e # 引入环境变量

  MYSQL_USER=...  # 创建数据库用户,用户名自定义

  MYSQL_PASSWORD=...   # 创建数据库用户密码

  MYSQL_DATABASE=...   # 创建一个数据库,库名自定义

  MYSQL_ROOT_PASSWORD=...  # 设置MySql数据库root用户的密码

-p extport:inport # 容器内部端口绑定到指定的主机端口,MySql 容器的内部端口为 3306,外部端口可以自定义

运行 WordPress 容器

docker run -d --name wordpress1 -p 8081:80 -v \
/var/wordpress_custom:/var/www/html/wp-content/ \
-e WORDPRESS_DB_HOST=172.17.0.2 -e WORDPRESS_DB_NAME=wordpress \
-e WORDPRESS_DB_USER=wordpress -e WORDPRESS_DB_PASSWORD=wordpress@123 wordpress

选项解释:

-e # 引入环境变量

  WORDPRESS_DB_HOST=...  # 数据库的IP地址,这里可以填写主机的IP地址,也可以填写数据库容器的IP地址

  WORDPRESS_DB_NAME=...   # 数据库名,这里填写创建数据容器时设置的库名

  WORDPRESS_DB_USER=...   # 数据库的用户名,这里填写创建数据库容器的时候设置的用户名

  WORDPRESS_DB_PASSWORD=...  # 数据库用户的密码,这里写创建数据库容器的时候设置的用户名

-p extport:inport # 容器内部端口绑定到指定的主机端口,WordPress 容器的内部端口为 80,外部端口可以自定义

-v # 绑定一个卷,将主机的 /var/wordpress_custom 目录绑定到容器的 /var/www/html/wp-content/ 目录, /var/www/html/wp-content/ 目录用于存放 WordPress 的主题插件以及上传的文件,后续我们只需要修改 /var/wordpress_custom 目录内的文件即可对 WordPress 的主题以及插件修改

查看正在运行的镜像

docker container list

image-20220806194835848

为避免主机重启后,站点无法访问,将 WordPress 和 MySql 容器设置为开机自启

docker update --restart=always wordpress
docker update --restart=always wordpress-mysql

安装 WordPress

打开浏览器,在地址栏输入主机IP:8080即可打开 WordPress 的安装向导,选择【简体中文】,点击【继续】

image-20220806205634177

设置【站点标题】【用户名】【密码】,然后点击【安装WordPress】

image-20220806205802670

WoredPress 安装成功,点击【登录】即可跳转到 WordPress 后台登录界面

image-20220806205914125

输入刚刚创建的【用户名】和【密码】即可以管理员身份登录 WordPress 后台,点击【返回到<站点标题>】即可访问到主页

image-20220806210034610

此时我们访问站点,使用的还是自定义的8080端口,接下来通过配置反向代理,让 WordPress 可以通过 主机IP:80 端口或者域名访问。

image-20220806210220338

反向代理

安装 Nginx

yum install nginx -y

编辑 Nginx 配置文件,进入 /etc/nginx/conf.d 目录,新建 wordpress.conf

cd /etc/nginx/conf.d
vim wordpress.conf

写入以下内容

server
{
    listen 80;
    server_name 100.65.66.225; # 主机IP地址,或者域名,域名需要先在域名服务商处完成解析
    location / {
    proxy_pass http://127.0.0.1:8080; # WordPress 容器的端口为 8080
    proxy_redirect default;
    client_max_body_size 20000m; # 允许上传的最大文件尺寸
    }
}

重启 Nginx,并将 Nginx 设置为开机自启

systemctl restart nginx.service
systemctl enable nginx.service 

image-20220806202351914

然后再在浏览器中输入主机IP,或者域名即可访问

image-20220806210505270

最后

至此使用 Docker 部署 WordPress 个人博客就完成了。


THE END