前言:
使用docker搭建一个自己的博客,考虑使用wordPress。由于目前手里没有云主机,也没有实体机,所以选用虚拟机进行搭建。
搭建环境:
从已经有的虚拟机中克隆一个虚拟机,CentOS 7。
克隆到虚机后要做的几件事情:
1.首先要做的事情是修改主机名:
vim /etc/sysconfig/network
将里面的HOSTNAME修改为新的主机名
2. 其次修改ip地址:
vi /etc/sysconfig/network-scripts/ifcfg-ens //ifcfg-ens 每台机器的这个文件名可能不同
修改IPADDR为新的ip地址
service network restart 生效
Docker的安装:
1.检查Linux内核版本
因为Docker要求CentOS的内核版本高于3.10 首先验证CentOS内核的版本
uname -r
3.10.0-1127.el7.x86_64
2.对yum进行更新
yum update -y
3.安装Docker
yum install docker -y
--安装完成后进行查看
yum list | grep docker
--验证安装(查看版本号)
docker -v
4.配置Docker国内镜像,提高下载速度
vi /etc/docker/daemon.json
在这个json文件中加入:
{
"registry-mirrors": ["https://6xacs6l2.mirror.aliyuncs.com"]
}
5.启动docker服务
systemctl start docker.service
6.为Docker创建用户,避免使用root进行操作
groupadd docker
useradd -g docker docker
WordPress安装:
1.Docker拉取WordPress的镜像
docker pull wordpress:latest
2.Docker拉取MySQL镜像:
docker pull mysql:5.6
3.使用MySQL镜像运行容器:
docker run -d --privileged=true --name OLDMysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 33306:3306 mysql:5.6
参数说明:
- -p: 端口映射,33306表示宿主,3306表示容器中的端口。 这里表示将宿主机的33306映射给镜像的3306.
- -e: 环境变量, 环境变量和具体的Docker容器制作时设置有关,这里表示设置镜像中MySQL的root 密码时123456
- --name: 容器名称
- --privileged=true: CentOS系统下的安全Selinux禁止了一些安全权限,导致MySQL容器在运行时会因为权限不足而报错,所以需要增加该选项
- -v: 指定数据卷,也就是将我们MySQL容器的
/var/lib/mysql
映射到宿主机的/data/mysql
运行后使用 docker ps -a 查看运行状况,如果出现错误,使用 docker stop 容器名 停止运行,然后用 docker rm 容器名 删除容器。如图这里的容器名是 OLDMysql。
之后使用上面的命令,去掉 -d 选项重新运行排查错误。
4.配置好MySQL后,运行WordPress:
docker run -d --name OLDwp -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 -e WORDPRESS_DB_NAME=myword -p 1080:80 --link OLDMysql:mysql wordpress
参数说明:
- -e WORDPRESS_DB_HOST : 链接的docker的MySQL的IP地址和端口,一般设置成mysql表示用默认的设置
- -e WORDPRESS_DB_USER : 以什么用户使用MySQL,默认是root
- -e WORDPRESS_DB_PASSWORD : 这设置MySQL的登陆用户密码,由于上一项是默认的root,所以这一项和之前的"MYSQL_ROOT_PASSWORD“要相同。
- -e WORDPRESS_DB_NAME: 数据库的表名,如果不写这一个配置,默认为”wordpress"
- 注意 --link 链接到MySQL容器的名称
运行成功如下:
刚才-e WORDPRESS_DB_NAME 建的数据库名 myword 也可以在数据库找到:
如果重启VM,如果容器没有启动,重启容器 docker restart 容器id
docker restart 60371f5c02d1
docker restart 74b8ea9df4c0
如果重启容器仍然不能访问,需要做以下配置:
vi /etc/sysctl.conf
或者
vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
systemctl restart network
查看是否修改成功
sysctl net.ipv4.ip_forward
如果返回为“net.ipv4.ip_forward = 1”则表示成功了
备注:容器的80端口映射给主机的1080,不需要用到root权限,但CentOS默认的防火墙禁止了大于1000后的所有端口,所以要开启这个端口
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload
5.访问WordPress
打开链接 http://your_ip:1080 刚才设置的1080端口,成功了。
下一步进行WordPress设置:
配置成功:
此时去看Mysql数据库,已经有表了:
结束:
使用Docker搭建WordPress就完成了。