docker快速搭建wordpress
首语
最近由于疫情原因,阿里云出了在家实践活动免费送主机,早起两天就抢到啦。有了服务器当然第一件事就是建站!
为什么使用docker
-
资源隔离,环境破环重新运行一个容器即可
-
服务运行在容器中, 减少一般黑客的攻击
-
考虑到一年免费时间过后博客网站必定迁移,使用docker只需将容器复制即可轻松迁移。
由此利用docker搭建wordpress。
-
安装docker
系统安装的方式不一样,以下环境均在Ubuntu16.04上运行。下面上代码
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
很简单,一行命令搞定,这是官方的脚本,后面跟的是阿里云镜像。等待安装完成之后将用户添加至docker组,否则可能没有权限执行某些操作,当然如果你是root用户就当我没说吧。
sudo usermod -aG docker your-user
配置镜像docker镜像源
如果不配置docker的镜像源,从官方下载可能速度会太慢,因为dockerhub站点在国外。
vim /etc/docker/daemon.json
#添加如下内容,如果没有此文件新建一个即可
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com",
"https://registry.docker-cn.com"
]
}
拉取镜像
docker pull wordpress
docker pull mysql:5.7
创建容器之间的小型局域网
docker network create wpmysql
## 运行MySQL数据库容器
docker run -d -i -t --name mysql --network wpmysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD='root' mysql:5.7
参数解释:- -d 使容器后台运行 -i -t 起到能与容器经行交互式的作用 --name 给你的容器起个名字 --network 将此容器添加至哪个网络 -p 容器与宿主机之间的端口映射(宿主机端口 :容器端口) -e 此容器自定义参数 MSQL_ROOT_PASSWORD设置此容器MySQL数据库的root初始密码
进入MySQL容器
docker exec -it mysql bash
#连接容器之后连接容器的mysql数据库
mysql -u root -p
#执行已下命令创建用户、数据库、给用户赋权
create database if not exists wordpress;
create user 'username'@'%' identified by 'password';
grant all on wordpress.* to 'username'@'%';
运行wordpress容器
docker run -d -i -t --name wordpress --network wpmysql -p 8080:80 --link mysql wordpress
登入wordpress
用浏览器地址栏输入:http:yourip:8080
即可登入wordpress的设置界面数据库主机那一栏输入 mysql其余看提示应该没有问题
可能出现的意外情况
-
端口未开放,使得输入
http:yourip:8080
显示无法连接,此时请找百度查看本机端口8080、3306是否开放 -
wordpress站点只能为英文,不能下载主题,不能更换语言,显示too many requests,具体原因百度搜索。
解决方法:
-
插件中心搜索
WP-China-Yes
这是国人开发的插件,插件里有介绍不在此赘述。此时可更新主题、博客语言 -
走到
运行wordpress容器
这一步运行完之后,进入此搭载wordpress的容器docker exec -it wordpress bash
此容器删除/var/www/html
目录下的所有文件rm -rf *
。移步至本地用迅雷(或其他下载软件)下载https://cn.wordpress.org/wordpress-5.3.2-zh_CN.tar.gz
然后上传至服务器(不会请百度,用scp,或filezilla),解压此文件tar -zxvf wordpress-5.3.2-zh_CN.tar.gz
然后将文件夹传送搭载wordpress的容器docker cp wordpress wordpress:/var/www/html
修改文件夹的所属组chown -R www-data:www-data wordpress
此时浏览器访问http://your-ip:8080/wordpress
即可进入wordpress安装界面,不过同样最好下载WP-China-Yes
否则主题等之类的还是不能正常更新。
-