WordPress是一个非常著名的PHP编写的博客平台,发展到目前为止已经形成了一个庞大的网站平台系统。在WP上有规模庞大的插件和主题,可以帮助我们快速建立一个博客甚至网站,今天尝试在Linux上使用Docker来安装WordPress。
本着“容器只干一件事情”的原则,本文会将出现两个容器,一个Wordpress的网站程序的容器,另一个则是MySQL的数据库容器,从中将看到两个容器是如何协同工作的。
使用docker的好处就是尽量减少了环境部署,可靠性强,容易维护,我使用docker搭建wordpress的主要目标有下面几个
首先我重新生成数据库容器可以保证数据库数据不丢失,重新生成wordpress容器保证wordpress网站数据不丢失,尽量让两个容器处于无状态运行中,所有数据保存在docker宿主机,方便备份和恢复
安装Docker
#卸载旧版本
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
设置存储库
安装所需的包。yum-utils提供了yum-config-manager 效用,并device-mapper-persistent-data和lvm2由需要 devicemapper存储驱动程序。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
使用以下命令设置稳定存储库。
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动
$ sudo systemctl start docker
验证
$ sudo docker run hello-world
安装WordPress
获取相关镜像
[root@rainy ~]# docker pull wordpress
[root@rainy ~]# docker pull mysql:5.6
启动mysql
[root@rainy ~]# docker run -d \
--name wordpress-mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
mysql:5.6
- docker run :启动容器
- -d:后台运行容器
- –name wordpress-mysql:指定容器的名字,本文设置为wordpress-mysql
- -e MYSQL_ROOT_PASSWORD=123456:指定容器的环境参数,此处初始化MySQL的root密码
- -p 3306:3306:端口映射,这里将容器内的3306端口映射到docker宿主机的3306端口
- mysql:镜像的名字,首先从docker宿主机本地加载,其次从dockerHub上加载
启动WordPress
[root@rainy ~]# docker run -d \
--name wordpress-wordpress \
--link wordpress-mysql:mysql \
-p 80:80 \
wordpress
- docker run :启动容器
- -d:后台运行容器
- –name wordpress-wordpress:指定容器的名字,本文设置为wordpress-wordpress
- –link wordpress-mysql:mysql:容器关联,现在启动的容器内部可以通过mysql来访问wordpress-mysql数据库的功能
- -p 80:80:端口映射,这里将容器内的80端口映射到docker宿主机的80端口
- wordpress:镜像的名字,首先从docker宿主机本地加载,其次从dockerHub上加载
如果使用外部的MySQL数据库,则输入下面的命令。
docker run -d\
--name wordpress-wordpress \
-e WORDPRESS_DB_HOST=数据库Ip地址:3306 \
-e WORDPRESS_DB_USER=... \
-e WORDPRESS_DB_PASSWORD=... \
-wordpress
打开WordPress配置
浏览器访问docker宿主机地址