通过docker搭建一个自己的wordpress博客
准备docker环境
首先需要准备docker环境,如果需要进一步了解docker的安装以及常用命令,可以查看另一篇博客http://blog.codereader.cn/?p=17
这边我简单安装一下docker(基于centos7)
# 安装docker
curl -sSL https://get.daocloud.io/docker | sh
# 启动docker
systemctl start docker
# 查看docker状态
systemctl status docker
# 查看docker版本
docker version
Client: Docker Engine - Community
Version: 20.10.5
API version: 1.41
Go version: go1.13.15
Git commit: 55c4c88
Built: Tue Mar 2 20:33:55 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.5
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: 363e9a8
Built: Tue Mar 2 20:32:17 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.4
GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc:
Version: 1.0.0-rc93
GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
docker-init:
Version: 0.19.0
GitCommit: de40ad0
显示如上图所示,则说明你的docker环境已经被成功运行起来了
因为dokcer的镜像源默认是在国外,为了后续安装速度,这边需要切换到国内的镜像源,这边我选择的是阿里云的镜像源
# 通过daemon.json指定docker的镜像源
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"],
}
EOF
# 如果是已经安装过docker环境,并且创建过daemon.json文件,则这里推荐编辑,避免覆盖掉原来的配置
安装mysql
wordpress的数据库使用的是mysql,所以我们这边还要安装mysql环境,这边也是使用docker安装一个mysql5.7
# 拉取mysql镜像,这里我使用的是mysql的5.7.33的版本
docker pull mysql:5.7.33
# 为了保证mysql数据的持久化,所以这边需要创建个目录来存放mysql的数据,路径可自行选择
mkdir /home/mysql/data
# 启动mysql
docker run -d --name mysql5.7 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=qwer123456# \
-v /home/mysql/data:/var/lib/mysql \
--restart=always \
mysql:5.7.33
上面的启动命令的介绍
-d 后台运行
--name mysql5.7 命名这个容器为mysql5.7
-p 3306:3306 把容器的3306端口映射到宿主机上的3306端口上
-e MYSQL_ROOT_PASSWORD=qwer123456# 设置mysql的root密码为qwer123456#
-v /home/mysql/data:/var/lib/mysql 把宿主机的/home/mysql/data挂载到容器里的/var/lib/mysql目录,这个目录存放的是mysql的数据库
--restart=always 防止机器重启,自动启动mysql
至此我们的mysql已经成功启动了
创建完mysql之后,需要给后续wordpress创建对应的用户,进行以下操作
# 进入到mysql容器中
docker exec -it mysql5.7 /bin/bash
# 登录到mysql中
mysql -uroot -pqwer123456#
# 创建一个mysql用户
create user 'wordpress'@'%' identified by 'qwer123456#';
# 给用户授权,这里我是赋予了所有权限给wordpress用户
grant all privileges on *.* to 'wordpress'@'%' with grant option;
# 刷新权限
flush privileges;
# 创建数据库
create database wordpress;
# 退出mysql控制台
quit;
# 退出容器
exit
这个时候mysql的wordpress已经创建完了,您可通过mysql连接工具测试是否能够连接
安装wordpress
前期的准备工作已经完成,现在可以进入我们的正题
# 拉取wordpress镜像
docker pull wordpress
# 创建wordpress的目录
mkdir /home/wordpress/html
# 启动wordpress容器
docker run --name wordpress -d \
-p 80:80 \
-e WORDPRESS_DB_HOST=172.18.0.2 \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=qwer123456# \
-e WORDPRESS_DB_NAME=wordpress \
-v /home/wordpress/html:/var/www/html \
--restart=always wordpress
启动命令介绍
--name wordpress 命名当前容器为wordpress
-d 后台运行
-p 80:80 将容器的80端口映射到宿主机的80端口上,wordpress默认对外暴露的端口是80,如果您不想让wordpress占用您的80端口,可将前一个80改成您希望的任意一个端口,例如-p 8090:80
-e WORDPRESS_DB_HOST=172.18.0.2 设置wordpress使用的数据库地址为172.18.0.2,这个地址为刚才创建的mysql地址,如果需要获取mysql的ip地址,可通过dokcer inspect mysql5.7 里找到Networks,找到对应的IPAddress即为对应的mysql对应的ip地址
-e WORDPRESS_DB_USER=root 设置数据库用户名为root,您也自行进入到mysql容器中创建自己的用户名
-e WORDPRESS_DB_PASSWORD=qwer123456# 设置数据库密码为qwer123456#
-e WORDPRESS_DB_NAME=wordpress 设置数据库名为wordpress
-v /home/wordpress/html:/var/www/html 将当前宿主机的/home/wordpress/html挂载到容器的/var/www/html下,此目录为wordpress的文件目录
--restart=always 重启策略
这个时候您的wordpress容器已经启动成功了,可以通过ip直接访问到对应的wordpress容器中了