wordpress - 创建新的 docker 镜像时 Docker WordPress 镜像不保留 wp-content
问题描述
让我澄清一下情况:
使用以下命令运行 wordpress docker 容器:
docker run --name wp -d -p 80:80 wordpress
使用 bash 登录到正在运行的容器:
docker exec -it wp /bin/bash
创建 2 个虚拟文件:
根中的一个:
触摸/xxx
wp-content/themes 中的一个
触摸 /var/www/html/wp-content/themes/xxx
创建一个新的 wordpress 图像:
码头工人提交 wp new_wp
杀死原始容器:
码头工人杀死WP
运行新的 docker 镜像:
docker run --name new_wp -d -p 80:80 new_wp
检查在步骤 3 中创建的虚拟文件:
根目录中的虚拟文件存在
wp-content/themes 中的虚拟文件不再存在!!!
问题:
- 任何人都可以在第 7 步中解释这种奇怪的行为吗?
- 我应该怎么做才能持久化 wp-content 数据?
PS 我正在部署到 AWS ECS Fargate 实例,因此使用卷对我来说不是很实用。理想情况下-我希望将所有内容都放在一个图像下,而不会从wp-content目录中消失文件。
非常感谢您的回答。
解决方案
Docket 本质上是非持久的。
如果您想将 docker 用于 WP,我强烈建议您将图像资产管理卸载到 S3 和 Cloudfront。
推荐阅读
- android - 在 AndroidManifest 中使用 requestLegacyExternalStorage = true 在 Android API 29 和 30 上删除文件时获取 RecoverableSecurityException
- angular - 如何在没有互联网连接的情况下使用传单地图(离线模式),最好在 Angular 中使用
- r - stat_compare_means 比较不在 x 轴上的组
- swift - 可变 3 列 NavigationView SwiftUI
- javascript - Vue.js axios 方法挂载未定义;v-for 不起作用 - Wordpress 页面
- class - SwiftUI 使用 Core Data 在类中进行计算
- python - Python BLE 发现所有 UUID 特征
- image - 在 Flutter 中本地缓存 base64 图像
- javascript - 有人能告诉我为什么这段代码不叫我那个函数吗?
- mysql - Docker 卷数据被存储两次?