docker compose 搭建 wordpress 并解决容器操控挂载目录权限的问题


同步发布在个人笔记docker compose 搭建 wordpress 并解决容器操控挂载目录权限的问题

docker compose 创建 wordpress 容器

docker compose 创建容器的详解包括安装等可以参考DOCKER COMPOSE部署LNMP环境
此处只记录操作方法。

挂载目录准备

挂载目录的准备方式:先run一个辅助容器,把需要挂载的文件夹复制到主机准备好的映射路径,然后删除辅助容器即可。对于 wordpress 推荐在辅助容器里就把初始化流程走完,之后再把配置好的文件复制出来,这样可以先规避后面的权限问题,先把容器正常使用起来。

wordpress:
docker run -it --name wordpress.0 --privileged=true -p your_port:80 -d wordpress
docker cp wordpress.0:/var/www/html/. your_path/wordpress
docker rm wordpress.0

compose 文件编写与容器创建

在你希望存放 compose 文件的地方新建docker-compose.yml并把下列内容编写进去

# Creat container for BLOG
version: '3'
services:
  wordpress:
    image: wordpress:6.5.2
    container_name: wordpress.1
    restart: unless-stopped
    volumes:
      - your_path/wordpress:/var/www/html
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "your_port:80"
    logging:
      driver: json-file
      options:
        max-size: "200k" # 单个文件大小为200k
        max-file: "5" # 最多5个文件

在当前目录运行下面命令即可创建容器,

docker-compose up
#或者
docker-compose up -d

当我们需要修改配置时,就把compose down掉,修改docker-compose.yml文件,然后重启up起来就好。

docker-compose down
docker-compose up -d
#或者
docker-compose up -d --force-recreate

解决 wordpress 容器没有操作外部挂载目录权限的问题

问题描述

由 docker 创建的 wordpress 容器(无论是docker rundocker compose)会遇到没有权限操作挂载在主机上的文件夹的问题,这会导致不止下列问题

  • 初始化时容器无法创建wp-config.php文件,既无法初始化账户;
  • 无法在后台操作插件,因为涉及新建和删除操作;会报错要执行请求的操作,WordPress需要访问您网页服务器的权限。 请输入您的FTP登录凭据以继续。 如果您忘记了您的登录凭据(如用户名、密码),请联系您的网站托管商。

解决方法

修改配置文件
wordpress 的配置文件在your_path/wordpress/wp-config.php,里面有个区域适合添加自己的代码 /* Add any custom values between this line and the "stop editing" line. */,找到这行注释,并在下面添加:

define("FS_METHOD", "direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);

然后重启容器。

修改挂载路径权限
我们要修改的就是 wordpress 的挂载文件夹,也就是your_path/wordpress

chown -R root your_path/wordpress
chmod -R 775 your_path/wordpress
chmod -R 777 your_path/wordpress

之后再操作插件等,都不会遇到权限不够的问题了。

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker ComposeDocker 官方推出的工具,用于定义和运行多个 Docker 容器的应用。它可以通过一个 YAML 文件来配置应用程序的服务,然后使用一个命令即可创建和启动所有配置的服务。 本文将介绍如何使用 Docker Compose 搭建 WordPress。 1. 安装 DockerDocker Compose 在开始之前,需要先安装 DockerDocker Compose。具体安装方法可以参考 DockerDocker Compose 的官方文档。 2. 创建 docker-compose.yml 文件 在本地创建一个新的目录,并创建一个名为 docker-compose.yml 的文件。在该文件中,定义 WordPress 和 MySQL 服务的配置。具体配置如下: ```yaml version: '3.3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: example wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: example WORDPRESS_DB_NAME: wordpress volumes: db_data: ``` 以上配置创建了两个服务:一个 MySQL 服务(db),一个 WordPress 服务(wordpress)。其中,MySQL 服务使用了 MySQL 5.7 镜像,并挂载了一个数据卷 db_data,用于持久化数据。WordPress 服务使用了最新的 WordPress 镜像,并将容器的 80 端口映射到本地的 8000 端口。WordPress 服务还依赖于 MySQL 服务,因此在服务定义中使用了 depends_on 字段。最后,定义了 MySQL 和 WordPress 服务的环境变量,用于配置数据库连接和认证信息。 3. 启动服务 在终端中,进入到 docker-compose.yml 文件所在的目录,并运行以下命令启动服务: ``` docker-compose up -d ``` 该命令将创建并启动 MySQL 和 WordPress 服务。其中,-d 参数用于将服务放在后台运行。 4. 访问 WordPress 在浏览器中访问 http://localhost:8000,即可看到 WordPress 的安装页面。按照页面提示,输入数据库连接信息和管理员账号信息,即可完成 WordPress 的安装。 5. 停止服务 如果需要停止服务,可以在终端中进入到 docker-compose.yml 文件所在的目录,并运行以下命令: ``` docker-compose down ``` 该命令将停止并删除所有服务容器。同时,如果之前创建了数据卷,也会将其删除。如果需要保留数据卷,可以使用以下命令: ``` docker-compose down --volumes ``` 以上就是使用 Docker Compose 搭建 WordPress 的完整步骤。通过使用 Docker Compose,我们可以非常方便地创建和管理多个 Docker 容器,并将它们组合成一个完整的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值