Docker 部署 WordPress 与数据备份
阅读本文了解 Docker 上的 WordPress 快速部署,及其数据备份获取
大致步骤
先创建 Volume 用于备份
然后运行 MySQL 容器
最后运行 WordPress 容器
创建 Volume
创建分别用于 MySQL 和 WordPress 的 Volume
docker volume create data_mysql_wordpress
docker volume create data_wordpress
运行 MySQL 容器
先拉取 mysql
镜像(如果需要)
然后创建并运行 mysql
容器
docker pull mysql
docker run -d --name mysql_wordpress \
-v data_mysql_wordpress:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql --default-authentication-plugin=mysql_native_password
参数解释:
-d
:后台运行--name
:设置容器的 name-v
:映射数据卷-e
:设置环境变量--default-authentication-plugin=mysql_native_password
:设置 mysql 的默认加密插件
加密插件问题
因为这里使用了 MySQL 8.0,它的默认认证插件是 caching_sha2_password
,WordPress 连接比较麻烦,改回 mysql_native_password
省事一点。
或者可以直接使用 mysql:5.7
镜像
运行 WordPress 容器并链接 MySQL
先拉取 wordpress
镜像(如果需要)
然后创建并运行 wordpress
容器
docker pull wordpress
docker run -d --name wordpress \
-p 80:80 -v data_wordpress:/var/www/html \
--link mysql_wordpress:mysql wordpress
参数解释:
-d
:后台运行--name
:设置容器的 name-p
映射容器 80 端口到本机的 80 端口-v
映射数据卷--link
链接到 MySQL 容器
获取备份
使用 docker volume inspect
命令获取 mysql
和 wordpress
容器的数据存储路径
输出里的 Mountpoint
即是数据存储路径
$ docker volume inspect data_mysql_wordpress
[
{
"CreatedAt": "2019-12-10T01:21:23+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/data_mysql_wordpress/_data",
"Name": "data_mysql_wordpress",
"Options": {},
"Scope": "local"
}
]
$ docker volume inspect data_wordpress
[
{
"CreatedAt": "2019-12-10T01:24:43+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/data_wordpress/_data",
"Name": "data_wordpress",
"Options": {},
"Scope": "local"
}
]
Thanks for reading! Read other posts?