首语
最近由于疫情原因, 阿里云出了在家实践活动免费送主机, 早起两天就抢到啦. 有了服务器当然第一件事就是建站!
为什么使用 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 否则主题等之类的还是不能正常更新.
来源: http://www.jianshu.com/p/5f7ece02c40b