【Docker】新手教程的第一个demo:Wordpress

发布于:2024-05-10 ⋅ 阅读:(30) ⋅ 点赞:(0)

1 任务简单介绍

WordPress是什么:

  • 是一个常用博客软件
  • 简单易部署,只需要两个容器(业务容器 + 数据库容器)

本文借鉴博客,使用自建 WordPress 容器方法在Docker上部署Wordpress,本地环境为Mac时使用该博客会存在一些问题,因此写本博客记录一下

2 自建 WordPress 容器

2.1 获取官方PHP image

  1. 在本地新建工作目录,并进入
$ mkdir docker-demo && cd docker-demo
  1. 创建容器并启动
$ 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 地址和映射的端口来访问网站
  1. 可以通过 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容器

  1. 基于 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)
  1. 查看正在运行的容器
  • 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
  1. 在docker-demo目录里面,新建一个Dockerfile文件。在原来 PHP 的 image 基础上,安装mysqli的扩展。然后,启动 Apache
FROM php:5.6-apache
RUN docker-php-ext-install mysqli
CMD apache2-foreground
  1. 基于这个 Dockerfile 文件,新建一个名为phpwithmysql的 image 文件
$ docker build -t phpwithmysql .

2.5 Wordpress 容器连接 MySQL

  1. 增加权限
chmod -R 777 wordpress
  1. 基于 phpwithmysql image,重新新建一个 WordPress 容器
docker container run   --rm \
--name wordpress   \
--volume "$PWD/":/var/www/html  \
--link wordpressdb:mysql  \
-p 8080:80 phpwithmysql
  1. 打开 http://localhost/wordpress
    在这里插入图片描述
    安装完毕!
    在这里插入图片描述

网站公告

今日签到

点亮在社区的每一天
去签到