Docker部署的WordPress正确更新方法咨询
在Docker环境中正确更新WordPress的方案
你的问题戳中了Docker化WordPress更新的核心痛点——镜像版本与应用实际版本的一致性,这也是很多人刚接触Docker部署时容易踩的坑。我来给你梳理一套标准、可控的更新流程:
为什么不能直接后台手动更新?
官方WordPress镜像本身就打包了特定版本的WordPress核心文件。如果你直接在后台点击更新,本质是在运行中的容器内修改了核心文件,但这些修改是临时的——下次重启容器时,Docker会基于原镜像重新初始化容器,你的手动更新内容会被彻底覆盖。除非你把/var/www/html整个挂载到宿主机,但这种做法会破坏镜像的版本可控性,后续维护风险很高,官方并不推荐。
正确的更新步骤
确认目标镜像版本
先确认官方镜像仓库中你要升级的稳定版标签(比如wordpress:6.4),确保选择的版本和当前环境兼容(比如PHP版本匹配)。更新docker-compose配置
修改你的docker-compose.yml文件,把WordPress服务的image字段替换为目标版本:services: wordpress: image: wordpress:6.4 # 替换成你要的版本标签 # 其余配置(端口、环境变量、挂载卷等)保持不变重新部署容器
执行以下命令,让Docker Compose拉取新镜像并创建新容器:docker-compose up -d --force-recreate wordpress这里的
--force-recreate参数会确保强制用新镜像启动容器,避免复用旧容器的状态。数据库自动更新
首次访问WordPress后台时,系统会自动检测数据库结构是否需要更新,按照提示完成即可——这个过程是WordPress原生的,只要容器能正常连接数据库,就不需要额外操作。
关键注意事项
- 备份优先:更新前一定要备份数据库和挂载的自定义内容(主题、插件、上传文件)。导出数据库可以用这个命令:
docker exec <你的数据库容器名> mysqldump -u<数据库用户名> -p<数据库密码> <WordPress数据库名> > wp_backup.sql - 不要修改容器内核心文件:所有自定义操作(比如安装主题、插件)都应该通过挂载卷的方式持久化,避免容器重启后丢失内容。
内容的提问来源于stack exchange,提问作者Stefan




