记得之前建站还得先在服务器准备LAMP环境, 安装步骤细碎繁琐. 现在有docker搭建站点可就方便多了. 虚拟化容器技术大行其道是有原因的, 因为真的很好用!
1.准备工作 寻找一个云服务提供商. : 阿里云优惠链接: 3年228起
初始化一个ECS实例, 选用操作系统centOS某个稳定版本(比如7 x64)
2.安装 yum-utils
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3.切换成清华大学的 Docker 安装源, 规避墙的影响
$ sudo yum-config-manager \
--add-repo \
https://mydream.ink/utils/container/docker-ce.repo
4.安装 docker CE
$ sudo yum install docker-ce docker-ce-cli containerd.io
如果弹出导入key的问题, 选择接受
5.配置镜像加速器
国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务。完整的加速器列表请见:https://y0ngb1n.github.io/a/docker-registry-mirrors.html?js
新建或修改/etc/docker/daemon.json, 加入
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com"
]
}
一定要确保JSON文件的格式没有问题,否则 docker 无法启动,修改完成后执行以下命令:
$ sudo systemctl daemon-reload
启动 Docker, 设置开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
第二部分,, 准备容器
$ docker pull mariadb ###拉取MariaDB镜像
$ docker run -d -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=在这里输入你要设置的数据库密码 $(docker images | grep mariadb| awk '{print $1}') ###创建mariadb容器
备注:
- docker run :启动容器
- -d:后台运行容器
- -e MYSQL_ROOT_PASSWORD=123456:指定容器的环境参数,此处初始化MariaDB的root密码
- -p 3306:3306:端口映射,这里将容器内的3306端口映射到本机的3306端口
- --name $(docker images | grep mariadb| awk '{print $1}'):使用变量获取MariaDB的镜像名称。可直接写mariadb
创建之后对其改名
$ docker rename 原容器名称 mariadb ##将mariadb容器改名为mariadb
拉一个 wordpress 镜像
$ docker pull wordpress
现在我们来运行镜像,并使之与MariaDB镜像互相连接,也就是直接采用数据库镜像的数据库服务:
$ docker run -itd -p 80:80 --link mariadb:db $(docker images | grep wordpress | awk '{print $1}')
然后使用docker ps -a命令就可以看到,此时容器已经启动成功
$ docker ps -a
name那一列不能直接看出容器的作用, 不是很直观, 所以再给容器重命名, 方便之后引用
$ docker reaname 原容器名 想要的容器名
第三部分, wordpress配置.
此时访问服务器的80端口, 是可以访问到wordpress服务了. 但是需要进一步的配置. 在wordpress配置页面, 需要填写数据库相关的配置, 我们需要在服务器做一些自定义的配置, 之后把对应的信息填在wp的配置页.
a.查看MySQL容器的IP地址
$ docker inspect db |grep "IPAddress"|awk 'NR==2{print}'|awk '{print $2}' ##查询db容器的IP地址
b.创建一个数据表给wordpress使用
$ docker exec -it mariadb /bin/bash ##进入数据库容器
mysql -uroot -p
输入之前在启动容器时设定的密码, 登录数据库.
进入之后,我们需要创建一个数据库给wordpress使用,所以这时候输入
create database wordpress;
(注意: 不要忘记分号!!!)
然后新建一个数据库用户用于专属使用wordpress
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
创建完成之后给予该用户相关操作权限,下面这个命令就是给该用户对wordpress数据库所有的操作权限
grant all on wordpress.* to 'username'@'%' with grant option;
最后还需要刷新一下权限
flush privileges;
这时候就可以回到网页那里了,输入刚才那些信息就可以了