使用docker在CentOS7上搭建WordPress

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

自己课题组的网页挂了,老板一句话让我们自己写一个。结果被我拖了半年,结果丢给师弟,师弟决定用WordPress, 于是我就去给他配置服务器环境。

首先你得知道什么叫做WordPress, 它是一个基于PHP和MySQL的开源的博客管理工具,用于管理你的写作内容。由于它十分容易部署,而且有很多好看的主题可以供你选择,因此被许多人使用。

一般的安装方法是,你得有一个服务器,然后在服务器上按照PHP,MySQL, Apache/NGINX, 之后下载WordPress的安装包,进行编译安装。

只从有了docker,环境配置部分就得到了简化,并且你不用担心在准备环境的时候,要去调整原来的PHP版本,去修改MySQL的版本,还要专门折腾Apache或者NGINX。

后续的步骤都要求你对服务器有绝对的控制权,也就是说后续没有特别说明,我们都是以root用户运行命令

安装Docker

Docker

Docker是目前服务器部署届的佼佼者,无论是部署网页,还是部署你的生信分析平台,只要你写好dockfile(一种描述部署规则的文件), 在任意的服务器上,安装好Docker,就可以构建出一个完全一样的运行环境。

我用的的是CentOS7, 版本信息如下

uname -r 
3.10.0-862.el7.x86_64

然后用YUM工具进行安装,

yum update -y
yum install docker -y

由于国情,我们需要对配置一下docker的下载镜像,提高一下后续的加载速度。 使用vim编辑 /etc/docker/daemon.json, 增加如下内容。

{
  "registry-mirrors": ["https://6xacs6l2.mirror.aliyuncs.com"]
}

启动我们的docker服务

systemctl start docker.service

默认情况下,只有root用户和docker组的用户才能访问Docker引擎的Unix socket。当然直接用root权限使用docker太过危险,建议新建一个docker用户,然后加入docker用户组

groupadd docker
useradd -g docker docker

后续的操作用su docker切换到docker用户进行。

安装WordPress

首先让我们拉取WordPress的镜像

docker pull wordpress:latest

WordPress的详细使用方法见https://hub.docker.com/_/wordpress/, 运行命令是

docker run --name some-wordpress --link some-mysql:mysql -d wordpress

先做一波参数说明:

  • --name 容器的的名字
  • --link 和其他容器做连接
  • ·-d/--detach` 后台运行

但是直接这样运行是绝对会报错的,你需要再拉取一个MySQL容器,

docker pull mysql:5.6

从MySQL镜像中运行单独的容器

docker run -d --privileged=true --name myMysql -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
  • -v: 指定数据卷,也就是将我们MySQL容器的/var/lib/mysql映射到宿主机的/data/mysql
  • --privileged=true: CentOS系统下的安全Selinux禁止了一些安全权限,导致MySQL容器在运行时会因为权限不足而报错,所以需要增加该选项

docker ps -a 查看MySQL是否正常运行,出现错误的话,需要用docker stop 容器名停止运行,然后用docker rm 容器名删除容器,之后去掉-d选项重新运行排查错误。

当我们配置好MySQL后,下一步才是运行WordPress

docker run -d --name mwp -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_PASSWORD=123456 -p 1080:80 --link myMysql:mysql wordpress

这里我们设置了两个环境变量,"WORDPRESS_DB_HOST"和"WORDPRESS_DB_PASSWORD", 但比较重要的有下面几个

  • "WORDPRESS_DB_HOST": 链接的docker的MySQL的IP地址和端口,一般设置成mysql表示用默认的设置
  • "WORDPRESS_DB_USER": 以什么用户使用MySQL,默认是root
  • "WORDPRESS_DB_PASSWORD" 这设置MySQL的登陆用户密码,由于上一项是默认的root,所以这一项和之前的"MYSQL_ROOT_PASSWORD“要相同。
  • "WORDPRESS_DB_NAME": 数据库的表名,不需要修改,用默认的”wordpress"就行

之后在浏览器上用你服务器的IP,和映射出的端口号(我的是1080),就会得到配置界面

注意:尽管将容器的80端口映射给主机的1080,不需要用到root权限,但CentOS默认的防火墙禁止了大于1000后的所有端口,所以我们要开启这个端口

firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload #重载

安装界面1

安装界面2

后面就是你自己挑选主题的时刻了。

参考资料:

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
应用服务中间件 PHP nginx
Docker-compose 编排lnmp(dockerfile) 完成Wordpress
通过使用Docker Compose,我们可以轻松编排LNMP环境并部署WordPress。本文详细介绍了各组件的Dockerfile和配置文件编写,并通过docker-compose.yml文件实现了整个环境的自动化部署。这种方法不仅简化了部署过程,还提高了环境的可移植性和一致性。希望本文能帮助你更好地理解和使用Docker Compose来管理和部署复杂的应用程序。
20 3
|
10天前
|
安全 Linux Shell
docker运行centos提示Operation not permitted
通过上述步骤,可以有效排查和解决在Docker中运行CentOS容器时遇到的"Operation not permitted"错误。这些措施涵盖了从权限配置、安全策略到容器运行参数的各个方面,确保在不同环境和使用场景下都能顺利运行容器。如果你需要进一步优化和管理你的Docker环境
14 3
|
23天前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
73 1
|
25天前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
175 3
|
23天前
|
弹性计算 关系型数据库 MySQL
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
|
2月前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
135 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
3月前
|
存储 关系型数据库 Linux
在CentOS 7上安装和使用Docker的方法
在CentOS 7上安装和使用Docker的方法
458 1
|
3月前
|
Java Linux Docker
CentOS7 Docker 安装,配置国内镜像
CentOS7 Docker 安装,配置国内镜像
777 2
|
3月前
|
Linux 测试技术 Docker
Docker CE for CentOS 安装教程
Docker CE for CentOS 安装教程
125 1
|
4月前
|
存储 Linux 网络安全
Centos安装Docker的详细安装步骤,Docker相关组件:docker-ce-cli、docker-ce和containerd.io的区别
Centos安装Docker的详细安装步骤,Docker相关组件:docker-ce-cli、docker-ce和containerd.io的区别;CentOS7安装DockerCompose;Docker镜像仓库
683 11