在使用 Docker 部署 WordPress 时,选择合适的镜像是关键。以下是关于 WordPress 镜像选择的建议和推荐:
✅ 官方推荐镜像:wordpress:latest 或指定版本
镜像名称:
wordpress:latest
或更推荐使用具体版本(如):
wordpress:php8.2-apache
这是由 Docker 官方维护的 WordPress 镜像,托管在 Docker Hub 上,地址为:
👉 https://hub.docker.com/_/wordpress
✅ 为什么推荐官方镜像?
-
官方维护,安全可靠
- 由 WordPress 团队和 Docker 官方共同维护。
- 定期更新,修复安全漏洞。
-
支持多种 PHP 版本和 Web 服务器
- 默认是 Apache + PHP(例如
wordpress:php8.2-apache) - 也支持 FPM + Nginx 组合(如
wordpress:php8.2-fpm),适合高性能部署。
- 默认是 Apache + PHP(例如
-
环境变量支持良好
- 支持通过环境变量配置数据库连接(
WORDPRESS_DB_HOST,WORDPRESS_DB_USER等),便于与 MySQL 容器联动。
- 支持通过环境变量配置数据库连接(
-
易于与 MySQL/数据库容器集成
- 可轻松配合
mysql:8.0或mariadb:10.6等数据库镜像使用。
- 可轻松配合
📌 推荐的镜像标签(tag)选择
| 需求 | 推荐镜像标签 |
|---|---|
| 最新稳定版(开发测试) | wordpress:latest |
| 生产环境(稳定可控) | wordpress:6.5-php8.2-apache(指定版本) |
| 高性能 + Nginx | wordpress:php8.2-fpm + 自配 Nginx |
| 轻量级(Alpine) | ❌ 不推荐,官方已弃用 Alpine 版本 |
⚠️ 注意:官方镜像不再提供 Alpine Linux 版本(从 2023 年起移除),因为兼容性问题较多。
🛠 示例:Docker Compose 部署
version: '3.8'
services:
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: wppass
volumes:
- db_data:/var/lib/mysql
restart: always
wordpress:
image: wordpress:php8.2-apache
depends_on:
- db
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppass
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
restart: always
volumes:
db_data:
wp_data:
❌ 不推荐的镜像类型
- 第三方构建的 WordPress 镜像(如
someuser/wordpress):可能存在安全风险或更新不及时。 - 已废弃的
wordpress:alpine:缺少扩展支持,易出错。 - 包含 PHPMyAdmin 或 Nginx 的“一体化”镜像:不利于维护和扩展。
✅ 最佳实践建议
- 使用具体版本标签(如
wordpress:6.5-php8.2-apache),避免latest在生产中带来的不确定性。 - 结合反向X_X Nginx / Traefik,用于 SSL、负载均衡。
- 持久化数据:将
/var/www/html和数据库挂载到卷(volume)或宿主机。 - 定期备份:数据库 + wp-content 目录。
总结
✅ 推荐镜像:
wordpress:php8.2-apache
或
wordpress:6.5-php8.2-apache
这是目前最稳定、安全、易用的选择,适合大多数 WordPress 部署场景。
如需更高性能,可选 wordpress:php8.2-fpm + 自建 Nginx。
如有特定需求(如中文优化、缓存集成、HTTPS),可进一步定制镜像或使用 Docker Compose 扩展。需要我提供完整部署方案吗?
轻量云Cloud