1. 简述
wordpress是一款开源的博客CMS, dockerhub上有着官方的容器镜像,使用docker能够很简单的创建一个wordpress站点,本文简要介绍了如何使用docker-compose来创建。
2. 简单的版本
如果已经安装好数据库环境,则可以直接只运行dockerhub上的官方镜像即可
2.1 创建文件夹,并编写docker-compose.yml
文件
-
mkdir ~/my_wordpress
-
cd ~/my_wordpress
-
vim docker-compose.yml
version: '3.3' services: wordpress: image: wordpress:6.0.2-php7.4-apache # 镜像名称,可以从hub.docker.com网站中找到 container_name: my-wp-site # 容器名称,可自定义 restart: always # 总是重启 ports: - 8080:80 # 端口映射,格式是“宿主机端口号:容器内端口号” environment: WORDPRESS_DB_HOST: 127.0.0.1:3306 # 数据库IP地址和端口号 WORDPRESS_DB_USER: wordpress # 数据库用户 WORDPRESS_DB_PASSWORD: wp_password # 数据库密码 WORDPRESS_DB_NAME: wordpress # 数据库库名 volumes: - $PWD/html:/var/www/html # 容器数据映射,格式是“宿主机路径:容器内路径”,$PWD是类unix中的当前路径的变量,跟执行pwd的结果是一样的
2.2 启动docker-compose up
, 当运行没有报错后可以直接加上-d
参数进行后台运行
3. 含有数据库的版本
3.1 修改docker-compose.yml文件
version: '3.3'
services:
wordpress:
image: wordpress:6.0.2-php7.4-apache
container_name: my-wp-site
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db:3306 # 这个db指的是下面数据库服务的服务名称
WORDPRESS_DB_USER: wordpress # 数据库账号密码要与下面的数据库服务对应起来
WORDPRESS_DB_PASSWORD: wp_password
WORDPRESS_DB_NAME: wordpress
volumes:
- $PWD/html:/var/www/html
depends_on: # 依赖于db服务,在启动wordpress之前会先启动db
- db
db:
image: mariadb:10.9.2 # 使用了mariadb,也可以换成mysql
container_name: mariadb-wordpress
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wp_password
MARIADB_ROOT_PASSWORD: wp_root_password
volumes:
- $PWD/data:/var/lib/mysql
注意:数据库的volumes最好是能够映射到一个专门的数据盘中,这样是所谓的计算和存储分离,降低了程序崩溃的造成的危害
4. 含redis的版本
redis
是一个开源(BSD许可),内存存储的数据结构服务器,这里将redis
作为缓存中间件应用到系统中可以大大降低数据库的访问次数,由于wordpress
官方的镜像中并不含php-redis组件
,所以我们要编写自己的dockerfile文件来生成专门的wordpress
镜像
4.1 编写Dockerfile
文件
- vim Dockerfile
FROM wordpress:6.0.2-php7.4-apache
# 安装redis扩展
RUN pecl install https://pecl.php.net/get/redis-5.3.7.tgz && \
set -eux; \
docker-php-ext-enable redis;
4.2 编写docker-compose.yml
文件
version: '3.3'
services:
wordpress:
build: . # 此处是我们的Dockerfile文件的路径,“.”代表当前路径
container_name: my-wp-site
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wp_password
WORDPRESS_DB_NAME: wordpress
WORDPRESS_CONFIG_EXTRA: | # WORDPRESS_CONFIG_EXTRA可以为wordpress增加其他配置
define('WP_REDIS_CLIENT', 'credis');
define('WP_REDIS_SCHEME', 'tcp');
define('WP_REDIS_HOST', 'redis');
define('WP_REDIS_DATABASE', '0');
define('WP_CACHE_KEY_SALT', 'wp_');
define('WP_REDIS_MAXTTL', '86400');
volumes:
- $PWD/html:/var/www/html
depends_on:
- db
- redis
db:
image: mariadb:10.9.2
container_name: mariadb-wordpress
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wp_password
MARIADB_ROOT_PASSWORD: wp_root_password
volumes:
- $PWD/data:/var/lib/mysql
redis:
image: redis:7.0.4
restart: always
container_name: redis-wordpress
4.3 在wordprss
中安装Redis Object Cache
插件
安装并启动这个即可使用redis作为缓存
标签:compose,DB,redis,WORDPRESS,wp,wordpress,docker From: https://www.cnblogs.com/huangyuechujiu/p/16705202.html