前言
WordPress 作为动态博客的代表,免费开源,至今已经有十几年历史,而且一直在更新发展中,功能强大,插件和主题丰富,WordPress搭建使用也很方便。作为个人站长和博主,很多都是从 WordPress 入门的。
WordPress (简称 WP)可以说是全球最流行的博客系统了,没有之一,世界上约 30% 的网站都是基于 WordPress 搭建的。
一、拉取WordPress镜像
首先,您需要从Docker Hub拉取最新的WordPress镜像。这可以通过执行以下命令完成:
docker pull wordpress
如果在拉取过程中遇到任何问题,可能是因为网络连接到Docker Hub的问题,您可以尝试再次拉取镜像。
二、启动WordPress容器
接下来,您需要启动一个WordPress容器,并将其端口映射到宿主机的端口。例如,您可以将容器的80端口映射到宿主机的9999端口:
docker run -it --name mywordpress2 -p 9999:80 -d wordpress
如果您想要持久化WordPress数据,可以使用-v参数来挂载宿主机的目录到容器内的特定位置:
docker run -it --name mywordpress2 -p 9999:80 -v /宿主机/目录:/var/www/html -d wordpress
请确保将/宿主机/目录替换为您实际想要挂载的宿主机目录。
三、查看容器状态
要检查WordPress容器是否成功启动,可以使用以下命令:
docker ps
如果容器状态显示为Up,那么表示WordPress容器已经成功运行。
四、安装WordPress博客程序
现在,您可以通过浏览器访问http://localhost:9999来开始WordPress的安装过程。由于您还没有配置数据库,所以接下来需要安装MySQL数据库。
五、拉取MySQL镜像并启动容器
首先,拉取MySQL 5.7镜像:
docker pull mysql:5.7
然后,启动MySQL容器,并映射宿主机的3306端口到容器的3306端口。同时,设置环境变量来定义MySQL的root用户密码和时区:
docker run -it --name mysql5.7 -p 3305:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --lower_case_table_names=1
如果您需要持久化MySQL数据,也可以使用-v参数来挂载宿主机的目录到容器内的/var/lib/mysql目录。
六、配置MySQL容器
为了使MySQL容器允许外部访问,您需要进入MySQL容器并设置权限。首先,使用以下命令进入容器:
docker exec -it mysql5.7 bash
然后,登录到MySQL数据库:
mysql -u root -p
输入密码123456进入MySQL命令行界面,执行以下命令来允许任何主机连接到MySQL服务器:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
这样,您就可以从任何主机(包括WordPress容器)连接到MySQL服务器了。
创建wordpress数据库
create database wordpress;
七、连接WordPress到MySQL
现在,您需要将WordPress连接到MySQL数据库。首先,找到MySQL容器的IP地址:
docker inspect mysql5.7 | grep IPAddress
请将mysql5.7替换为您实际使用的MySQL容器名称。
再次进入配置页面(http://ip:9999) 这里的mysql地址不能为回送地址(127.0.0.1),而是应该为宿主机地址,配置如下
- docker链接本地的数据库主机用host.docker.internal
- 用docker下载的mysql则用数据库ip进行连接
八、运行WordPress安装程序
完成上述步骤后,您应该能够通过访问http://localhost:9999/wp-admin/setup-config.php来运行WordPress安装程序,并根据提示完成安装。
按照这些步骤,您应该能够在Docker环境中成功安装和配置WordPress及其数据库MySQL。如果在执行过程中遇到任何问题,请检查您的网络连接,并确保您的Docker环境已正确配置。