0%

使用Docker部署安装WordPress博客平台

使用Docker部署安装WordPress博客平台

使用Docker可以快速的创建一个WordPress容器。在快节奏的生活中,讲究的是效率、便捷、稳定。使用容器可以很方便的对WordPress平台的迁移与管理,接下来我将记录下来我搭建的过程。

前排提示

我当前的环境是Debian 10,如果你是其他的Linux发行版,那么请不要完全按照本文进行操作,请变通(比如您是RHEL系,您需要将本文中的apt包管理器换做yum/dnf包管理器进行安装软件包)!如果遇到问题可以在底部留言给我。

如果您已经安装好Docker,并且不需要配置Docker Repository镜像加速的话,直接看第0x03部分就好了

0x01安装Docker(已经安装的请略过)

配置 Docker-CE APT 源

由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。

sudo apt-get update

sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
lsb-release \
software-properties-common

由于国内的网络政策,可能使用Docker官方源下载较慢,建议使用国内镜像源,详见下方注释。

为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -

# 官方源
# curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

然后我们需要向apt source.list 中添加Docker-CE 软件源:

sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \
$(lsb_release -cs) \
stable"

# 官方源
# sudo add-apt-repository \
# "deb [arch=amd64] https://download.docker.com/linux/debian \
# $(lsb_release -cs) \
# stable"

安装 Docker-CE

更新 apt 软件包缓存,并安装 docker-ce

sudo apt-get update

sudo apt-get install docker-ce

0x02配置Docker Repository仓库镜像加速(不需要仓库加速请略过)

以下系统目前是支持的:Ubuntu 16.04+、Debian 8+、CentOS 7

使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com"
]
}

编写的daemon.json文件一定要符合JSON规范,否则Docker无法启动

之后重新载入daemon配置文件并重启Docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

Docker_daemon.png

0x03搭建 WordPress(正片、正片!)

拉取WordPress镜像

docker pull wordpress:latest

latest标签为当前最新的WordPress容器版本

拉取MariaDB 5.5版本镜像

MariaDB 5.5之前的版本完全参照Mysql版本,与Mysql语法兼容。

docker pull mariadb:5.5

启动Maria数据库容器

docker run --name=mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=输入数据库root用户的密码 -v /etc/mariadb/data:/var/lib/mysql -d --restart=always mariadb:5.5

创建WordPress使用的数据库

为了安全考量,我们需要创建一个单独的用户给WordPress使用。加下来我们需要进入到MariaDB容器中,并使用Mysql命令来创建一个数据库,并分配一个用户给这个数据库。

docker exec -it mariadb /bin/bash

进入容器后我们使用刚才在容器上指定的root密码来登录MariaDB

mysql -u root -p 输入数据库root用户的密码

之后会进入到这样的交互界面:

root@b45ff49a112a:/# mysql -u root -p 输入数据库root用户的密码 (回车)
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.64-MariaDB-1~trusty mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
  • 下面我会将交互模式返回的信息也表现出来用于大家检验命令执行的正确性。

创建WordPress数据库,数据库名为 wordpress

MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)

创建WordPress用户,用户名为 wordpress,密码为 password

MariaDB [(none)]> create user 'wordpress'@'%' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
  • 我这边仅作为示范,将用户与数据库设为的相同名称。

wordpress用户添加对数据库wordpress的所有的权限,并设置访问密码为password

MariaDB [(none)]> grant all privileges on wordpress.* to 'wordpress'@'%' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

最后我们刷新数据库用户权限,立即生效

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.01 sec)

运行WordPress容器

到这里准备工作已经做好了,请记录好刚才为WordPress数据库设置的用户名和密码,稍后将会使用。

-p 80:80 将容器的80端口映射到本机的80端口并开放,使之可以通过http://本机ip访问搭建的WordPress博客平台。

docker run --name=wordpress -p 80:80 -v /home/wordpress:/var/www/html -d --restart=always wordpress:latest

马上就好……现在你可以访问一下你的http://ip或者http://域名

我们到了这最后一步:

wordpress_ip.jpg

如果你刚才没有按照本教程配置数据库,你这里自己填写就好。如果你是按照本教程搭建到这里,那么在此处请填写你服务器本机的IP地址或域名!(当然数据库主机这里你也可以填写MariaDB容器的IP地址)

之后数据库名和用户名都为我们刚才设置好的wordpress,密码也填写好。点提交就好咯~

有机会的话我们弄个SSL证书给它挂上,然后用Nginx反向代理来访问我们的WordPress容器,不一定哪天写一份教程出来。

参考:

Docker Hub WordPress

Docker Doc


我是一名Linux初学者,如果你与我一样喜欢折腾,喜欢Linux,那么请加入我的电报群:
https://t.me/yeefire_blog(Telegram),在这里畅所欲言,共同学习进步。


  • 本文作者: YeeFire
  • 本文链接: https://blog.yeefire.com/2020_02/Docker_WordPress.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。您可以自由复制、散布、展示及演出本作品;若您改变、转变或更改本作品,仅在遵守与本作品相同的许可条款下,您才能散布由本作品产生的派生作品!由于本人水平有限,不保证作品内容准确无误,亦不承担任何由于使用此作品所导致的损失。

欢迎关注我的其它发布渠道