1 任务简单介绍
WordPress是什么:
- 是一个常用博客软件
- 简单易部署,只需要两个容器(业务容器 + 数据库容器)
本文借鉴博客,使用自建 WordPress 容器方法在Docker上部署Wordpress,本地环境为Mac时使用该博客会存在一些问题,因此写本博客记录一下
2 自建 WordPress 容器
2.1 获取官方PHP image
- 在本地新建工作目录,并进入
$ mkdir docker-demo && cd docker-demo
- 创建容器并启动
$ docker container run \--rm \--name wordpress \--volume "$PWD/":/var/www/html \-p 8080:80 \php:5.6-apache
四个参数的含义是:
- –rm:停止运行后,自动删除容器文件。
- –name wordpress:容器的名字叫做wordpress。
- –volume “$PWD/”:/var/www/html:将当前目录($PWD)映射到容器的/var/www/html(Apache 对外访问的默认目录)。因此,当前目录的任何修改,都会反映到容器里面,进而被外部访问到
- –p 选项来映射端口,然后通过宿主机的 IP 地址和映射的端口来访问网站
- 可以通过 http://localhost:8080来访问
会出现问题:无法访问,这是因为会默认寻找index.php文件作为首页,而我们的项目目录是空的
- 只需要在项目目录中增加index.php即可
<?php
phpinfo();
?>
- 再打开http://localhost:8080
2.2 获得Wordpress安装包
- 在docker- demo目录下,执行
#解压以后,WordPress 的安装文件会在docker-demo/wordpress目录下 $ wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz $ tar -xvf wordpress-4.9.4-zh_CN.tar.gz
- 访问http://localhost:8080/wordpress
2.3 Mysql容器
- 基于 MySQL 的 image 文件(5.7版本)新建一个容器
docker container run \-d \--rm \--name wordpressdb \--env MYSQL_ROOT_PASSWORD=123456 \--env MYSQL_DATABASE=wordpress \mysql:5.7
- –d:容器启动后,在后台运行
- –rm:容器终止运行后,自动删除容器文件。
- –name wordpressdb:容器的名字叫做wordpressdb
- –env MYSQL_ROOT_PASSWORD=123456:向容器进程传入一个环境变量MYSQL_ROOT_PASSWORD,该变量会被用作
MySQL 的根密码 - –env MYSQL_DATABASE=wordpress:向容器进程传入一个环境变量MYSQL_DATABASE,容器里面的 MySQL 会根据该变量创建一个同名数据库(本例是WordPress)
- 查看正在运行的容器
- wordpress:
$ docker container ls
- wordpressdb(wordpressdb是后台运行的):
docker container logs wordpressdb
2.4 定制PHP容器
现在 WordPress 容器和 MySQL 容器都已经有了。接下来,要把 WordPress 容器连接到 MySQL 容器。但是,PHP 的官方 image 不带有mysql扩展,必须自己新建 image 文件。1. 停掉 WordPress 容器
$ docker container stop wordpress
- 在docker-demo目录里面,新建一个Dockerfile文件。在原来 PHP 的 image 基础上,安装mysqli的扩展。然后,启动 Apache
FROM php:5.6-apache
RUN docker-php-ext-install mysqli
CMD apache2-foreground
- 基于这个 Dockerfile 文件,新建一个名为phpwithmysql的 image 文件
$ docker build -t phpwithmysql .
2.5 Wordpress 容器连接 MySQL
- 增加权限
chmod -R 777 wordpress
- 基于 phpwithmysql image,重新新建一个 WordPress 容器
docker container run --rm \
--name wordpress \
--volume "$PWD/":/var/www/html \
--link wordpressdb:mysql \
-p 8080:80 phpwithmysql
- 打开 http://localhost/wordpress
安装完毕!