首页 > 其他分享 >使用docker-compose创建wordpress博客网站

使用docker-compose创建wordpress博客网站

时间:2022-09-18 16:56:44浏览次数:110  
标签:compose DB redis WORDPRESS wp wordpress docker

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

相关文章

  • docker删除镜像报image is referenced in multiple repositories
    删除镜像发现报错,报错如下:[root@test22:58:58~/docker]#dockerrmidd34e67e3371Errorresponsefromdaemon:conflict:unabletodeletedd34e67e3371(mustbe......
  • docker-compose部署clickhouse
    1、创建目录结构├──config│  ├──config.xml│  ├──docker_related_config.xml│  └──users.xml├──data├──docker-compose.yml......
  • RabbitMQ安装教程(linux与Docker)
    一.架构的演变过程  二.正确看待异步架构1.优势(1).削峰降低了服务器的压力(2).响应快加快了服务器的响应速度,优化了用户体验(3).降耦合降低了服务器之间......
  • Docker 详细
    Prerequisite很久之前写过Docker的博客,但那时也只是随意了解一下,现在打算重新学习(但我依然没有实际场景需要用到,因此以后可能还会再写一次)参考文章:廖雪峰【一文读懂Doc......
  • Docker
    Docker方式对比物理机部署部署慢、成本高、资源浪费、难扩展、难迁移、硬件兼容差虚拟机部署部署较慢、成本较高、资源较浪费容器化部署部署快,成本低,源利用......
  • Docker部署安装 windows
    Docker下载地https://www.docker.com/https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi   ......
  • 【已解决】wordpress 修改固定链接 伪静态URL出现nginx 404错误
    一、站点设置 打开站点设置,选择伪静态,选择wordpress   二、wordpress设置打开wordpress后台,选择设置---》固定链接 选择一个你喜欢的格式点击保存 之......
  • wordpress固定链接+宝塔nginx配置伪静态访问
    一、站点设置 打开站点设置,选择伪静态,选择wordpress   二、wordpress设置打开wordpress后台,选择设置---》固定链接 选择一个你喜欢的格式点击保存 之......
  • docker容器 日志迁移
    起因docker安装网心云(挂载在外置硬盘上),这两天莫名其妙把我nas中的硬盘给跑满了,通过搜索后发现,这是docker容器运行时产生的日志文件,默认保存在系统/var/lib/docker目录......
  • [安装配置] Linux docker mysql 安装
    一.docker安装MySQLLinux命令:dockerpullmysql:5.7dockerimages查看所有镜像二.创建实例并启动suroot切换到Linuxroot用户dockerrun-p3306:3306--name......