Docker下安装WordPress
前言
之前购买的腾讯云轻量服务器,直接使用了服务器运行了WordPress站点,在学习Docker后决定进行一次重建,使用Docker容器来运行多个服务,提高服务器可用率。
本篇文章将会总结本次安装中遇到的问题和解决方案。
本地实验环境
刚敲定完计划后就兴致冲冲进行了重构,但是因为技术不够导致一直不能够运行,最终决定先在本地进行模拟,不断试错,知道成功运行后再部署到云端。
本地环境配置
我是用的是Windows系统,在云端运行的是CentOS系统,基础的环境不一样,可以使用虚拟机安装CentOS来进行配置和测试。同时我是用的Docker容器来运行服务器,Docker的特性就是能够省略底层的差异,打包完镜像之后就可以在任何地方运行(拥有合适的runtime),所以本次使用了Docker Desktop工具,借助Windows 10的WSL技术来搭建Docker runtime。
在Docker Desktop的安装和使用中也会有一些其他的问题,我将放在其他的文章内进行记录,本文仅以Wordpress为目标进行记录。
安装与配置
使用镜像
使用Wordpress,我们需要提供一个完整的运行环境:Linux+Apache+MySQL+PHP,本次我们使用Docker容器的方式进行搭建,经过查找,需要容器如下:
容器名 | 功能 |
---|---|
wordpress:lastest | WordPress基础环境 包含Apache/Nginx运行环境和PHP |
mysql:5.7 | MySQL 5.7容器 |
在运行环境这一块,使用这两个容器就可以。
命令解析:
Docker容器安装完本地是没有镜像的,可以使用Docker Hub查找镜像,然后用下面命令进行下载:
docker pull 镜像名:tag
网络配置
为了区分开Wordpress站点的服务和其他服务,创建一个新的网络出来,只为WordPress站点服务。
从网络信息中可以看到,新创建的网络名为'network-bridge_0',属于'bridge'类型的网络,子网为'172.18.0.0/16',在当前网络下活动的容器有两个"wordpress-mysql"和"wordpress"。
当前网络拓扑如下:
命令解析:
docker network create 网络名
命令可以简单创建一个bridge网络。因为只是测试环境,所以使用的收拾默认的子网。
存储卷规划
为了保证站点的稳定性,需要将存储数据保留在本地以方便备份,将在本地和容器进行存储卷配置。
数据库
为了方便测试,数据库采用默认的数据库进行使用,不做展示。
启动容器
mysql:
docker run -d --privileged=true --name wordpress-mysql -v D:\Docker-Desktop\file\wordpress\mysql\:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=****** --network network-bridge_0 -p 3306:3306 mysql:5.7
wordpress
docker run -d --name wordpress -e WORDPRESS_DB_HOST=wordpress-mysql -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_NAME=wordpress -e WORDPRESS_DB_PASSWORD=****** --network network-bridge_0 -p 8080:80 -v D:\Docker-Desktop\file\wordpress\wordpress\:/var/www/html/:Z wordpress
wordpress配置
在启动完毕容器之后在浏览器访问:http://localhost:8080/wp-admin/install.php
总结
到此在本地的实验环境已经成功了,接下来就是开始规划云端部署方案,在服务器上安装。
版权声明:
作者:EzioTAuditore
链接:http://blog.acdts.top/eziotauditore/docker-wordpress-install/
来源:ETA's Blog
文章版权归作者所有,未经允许请勿转载。
EzioTAuditore
网络部署几乎一致,就不再开文章描写了,现在站点就已经运行在docker上了。