wordpress - 创建新的Docker镜像时,Docker WordPress镜像不会保留wp-content

标签 wordpress docker

让我澄清一下情况:

  • 使用以下命令运行wordpress docker容器:

    docker run --name wp -d -p 80:80 wordpress


  • 使用bash登录到正在运行的容器:

    docker exec -it wp / bin / bash


  • 创建2个虚拟文件:

    一个根:

    触摸/ xxx

    WP内容/主题之一

    触摸/ var / www / html / wp-content / themes / xxx


  • 创建一个新的wordpress图片:

    docker 提交wp new_wp


  • 杀死原始容器:

    docker杀死wp


  • 运行新的docker镜像:

    docker run --name new_wp -d -p 80:80 new_wp


  • 检查在步骤3中创建的虚拟文件:

    根目录中的虚拟文件存在

    wp-content / theme中的虚拟文件不再存在!


  • 问题:
  • 谁能在步骤7中解释这种商务行为?
  • 我应该怎么做才能保留wp内容数据?

  • 附言我正在部署到AWS ECS Fargate实例,因此使用卷对我而言不是很实际。理想情况下-我希望将所有内容都放在一张图片下,而文件不会从wp-content目录中消失。

    非常感谢您的回答。

    最佳答案

    wordpress includes a VOLUME statement的docker镜像:

    VOLUME /var/www/html
    

    即使您未在docker run命令中指定一个卷,这也会强制在任何结果容器上创建一个卷。没有规范,您将获得一个匿名卷,该卷具有唯一的长id,可以在docker volume ls中看到。
    docker commit命令(强烈建议您不要在想要重复性的任何工作流程中使用)仅捕获对容器文件系统的更改(您可以使用docker container diff查看这些内容)。卷的更改不属于容器文件系统,因此不会包含在此提交中。

    要保留数据,您应该定义并使用一个卷,例如:
    docker run --name wp -v wpdata:/var/www/html -d -p 80:80 wordpress
    

    关于wordpress - 创建新的Docker镜像时,Docker WordPress镜像不会保留wp-content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58580175/

    相关文章:

    css - wordpress style.css 加载但不使用

    postgresql - 如何连接到 OpenMapTiles Docker Postgres DB

    wordpress - Docker 将 wordpress 从 HTTP 更改为 HTTPS

    css - 标题样式 CSS

    docker - 镜像和存储库有什么区别?

    curl - 获取 docker API 引擎 exec 输出

    docker - 订购者能力 V1_4_4 是必需的,但不支持

    docker - 从volumes_from中的另一个docker-compose文件引用服务

    php - 它不会给出错误,但不会插入数据库

    WordPress 重定向问题