Docker Compose 快速部署 WordPress:compose 配置详解与完整实战流程
示例工程【免费下载链接】awesome-composeAwesome Docker Compose samples项目地址https://gitcode.com/gh_mirrors/aw/awesome-compose点击查看免费下载本篇技术指南基于 awesome-compose 仓库的官方文档示例official-documentation-samples/wordpress/README.md完整讲解如何用 Docker Compose 在隔离的容器环境中一键拉起 WordPress 博客与独立数据库实例。你将掌握docker-compose.yml的逐项配置含义、数据持久化卷的用法、docker compose up -d/down的完整生命周期操作以及部署后如何完成 WordPress 著名的五分钟安装最终得到一个可复用、可运行的 WordPress 起步项目。前置条件开始之前请确认本机已经安装好 Docker Compose。本指南假定 Compose 已可用后续所有命令均在项目目录内执行。定义项目目录结构与 compose 文件1. 创建空的项目目录首先创建一个空的目录作为项目根目录例如my_wordpress。该目录同时是应用镜像的构建上下文目录内只应放置与该镜像构建相关的资源。$ mkdir my_wordpress $ cd my_wordpress/提示Compose 文件名使用.yml或.yaml扩展名均可正常工作。官方文档示例使用docker-compose.yml本仓库内的示例则统一采用compose.yaml两种命名都是 Compose 规范认可的。2. 编写docker-compose.yml在项目目录中创建docker-compose.yml内容定义了WordPress博客服务与一个独立的MySQL/MariaDB数据库服务并通过命名卷named volume实现数据持久化。官方文档给出的完整起步配置如下services: db: # We use a mariadb image which supports both amd64 arm64 architecture image: mariadb:10.6.4-focal # If you really want to use MySQL, uncomment the following line #image: mysql:8.0.27 command: --default-authentication-pluginmysql_native_password volumes: - db_data:/var/lib/mysql restart: always environment: - MYSQL_ROOT_PASSWORDsomewordpress - MYSQL_DATABASEwordpress - MYSQL_USERwordpress - MYSQL_PASSWORDwordpress expose: - 3306 - 33060 wordpress: image: wordpress:latest volumes: - wp_data:/var/www/html ports: - 80:80 restart: always environment: - WORDPRESS_DB_HOSTdb - WORDPRESS_DB_USERwordpress - WORDPRESS_DB_PASSWORDwordpress - WORDPRESS_DB_NAMEwordpress volumes: db_data: wp_data:这份文件是自包含的起步项目不依赖外部构建上下文直接拉取镜像即可运行。下面逐段拆解每一部分的作用。compose 配置逐项拆解db 服务数据库容器db: image: mariadb:10.6.4-focal command: --default-authentication-pluginmysql_native_password volumes: - db_data:/var/lib/mysql restart: always environment: - MYSQL_ROOT_PASSWORDsomewordpress - MYSQL_DATABASEwordpress - MYSQL_USERwordpress - MYSQL_PASSWORDwordpress expose: - 3306 - 33060配置项说明image: mariadb:10.6.4-focal使用 MariaDB 镜像而非 MySQL原因是该镜像同时支持 amd64 与 arm64 两种 CPU 架构能保证在 Apple Silicon 等 ARM 主机上顺利运行。如果你确实想用 MySQL可取消#image: mysql:8.0.27一行的注释切换command: --default-authentication-pluginmysql_native_password指定默认认证插件为mysql_native_password用于兼容 WordPress 客户端与数据库之间的认证握手旧版认证协议volumes: - db_data:/var/lib/mysql将命名卷db_data挂载到容器内数据库数据目录/var/lib/mysql实现数据库文件的持久化restart: always容器异常退出或 Docker 守护进程重启后自动拉起保证服务可用性environment:容器首次启动时自动完成数据库初始化创建名为wordpress的数据库以及用户wordpress密码wordpress同时设置 root 密码somewordpressexpose: - 3306 - 33060仅将端口暴露给 Compose 内部网络不映射到宿主机端口外部无法直接访问数据库wordpress 服务博客容器wordpress: image: wordpress:latest volumes: - wp_data:/var/www/html ports: - 80:80 restart: always environment: - WORDPRESS_DB_HOSTdb - WORDPRESS_DB_USERwordpress - WORDPRESS_DB_PASSWORDwordpress - WORDPRESS_DB_NAMEwordpress配置项说明image: wordpress:latest使用官方 WordPress 镜像的最新标签volumes: - wp_data:/var/www/html将命名卷wp_data挂载到 WordPress 的 Web 根目录/var/www/html。该卷持久化 WordPress 对数据库的更新、已安装的主题与插件以及上传的媒体文件ports: - 80:80将容器内 80 端口映射到宿主机 80 端口浏览器通过宿主机地址直接访问站点environment:通过WORDPRESS_DB_*系列环境变量向 WordPress 告知数据库连接信息WORDPRESS_DB_HOSTdb指向同一 Compose 网络内的db服务名Compose 内置 DNS 会解析该服务名用户名、密码、库名均与db服务中MYSQL_*创建的值一一对应命名卷声明volumes: db_data: wp_data:两个命名卷db_data与wp_data在顶层显式声明。docker compose down默认会保留它们从而在容器重建后依然保留数据库与站点文件只有显式删除卷--volumes/-v才会清空数据。注意WordPress Multisite多站点仅在端口80和443上工作。如果你把ports中的宿主机端口改成其他值多站点功能将无法正常工作。构建并启动项目在项目目录中执行以下命令启动整套环境$ docker compose up -d-ddetached表示后台运行。该命令会完成三件事拉取所需的 Docker 镜像、创建默认网络与命名卷、启动 wordpress 与数据库两个容器。实际执行时输出大致如下$ docker compose up -d Creating network my_wordpress_default with the default driver Pulling db (mysql:5.7)... 5.7: Pulling from library/mysql efd26ecc9548: Pull complete a3ed95caeb02: Pull complete ... Digest: sha256:34a0aca88e85f2efa5edff1cea77cf5d3147ad93545dbec99cfe705b03c520de Status: Downloaded newer image for mysql:5.7 Pulling wordpress (wordpress:latest)... latest: Pulling from library/wordpress efd26ecc9548: Already exists a3ed95caeb02: Pull complete 589a9d9a7c64: Pull complete ... Digest: sha256:ed28506ae44d5def89075fd5c01456610cd6c64006addfe5210b8c675881aff6 Status: Downloaded newer image for wordpress:latest Creating my_wordpress_db_1 Creating my_wordpress_wordpress_1注意如果报错信息显示无法绑定0.0.0.0到端口80或443通常说明该端口已被其他服务占用。Multisite 只能在 80/443 端口运行因此遇到端口冲突时需要先释放相应端口而不是随意修改映射。验证容器与端口映射启动完成后可用docker ps核对容器状态与端口映射。本仓库的 wordpress-mysql/README.md 给出了对应的验证示例$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5fbb4181a069 wordpress:latest docker-entrypoint.s… 35 seconds ago Up 34 seconds 0.0.0.0:80-80/tcp wordpress-mysql_wordpress_1 e0884a8d444d mysql:8.0.19 docker-entrypoint.s… 35 seconds ago Up 34 seconds 3306/tcp, 33060/tcp wordpress-mysql_db_1可以看到 WordPress 容器将宿主机 80 端口映射到容器内 80 端口而数据库容器仅以内部端口形式暴露3306/tcp, 33060/tcp无0.0.0.0:...-映射外部网络无法直接触达数据库——这正是expose与ports两种声明方式的效果差异。在浏览器中完成 WordPress 安装启动后WordPress 会运行在 Docker 主机的80端口上。若使用 Docker Desktop for Mac / Windows可直接访问http://localhost:80打开站点。注意容器刚启动时站点并非立即可用首次初始化可能需等待一两分钟请耐心等待第一个页面加载完成。首次访问会进入 WordPress 自带的五分钟安装向导。第一步是选择安装语言选定语言并点击 Continue 后进入站点信息设置页面需要填写站点标题、管理员用户名、密码与邮箱并可选择是否允许搜索引擎索引站点填写完毕后点击 Install WordPress即可完成安装并以管理员身份登录后台。此时数据库连接信息已由WORDPRESS_DB_*环境变量自动配置好安装过程无需手动填写数据库参数。关闭与清理停止并保留数据$ docker compose downdocker compose down会移除容器与默认网络但保留db_data与wp_data两个命名卷因此你的 WordPress 数据库、主题与插件数据依然存在下次up -d后站点数据完整恢复。停止并删除全部数据$ docker compose down --volumesdocker compose down --volumes除移除容器与默认网络外还会删除 WordPress 数据库即删除命名卷中的数据。本仓库的 wordpress-mysql/README.md 使用等价的-v参数$ docker compose down -v需要彻底重置环境时使用该命令。深入参考仓库内的 WordPress 生产化示例官方文档示例末尾指向了本仓库中更完整的实战样本 wordpress-mysql/README.md其对应的 compose.yaml 与本文配置在核心思路上完全一致可作为继续深入的参照架构兼容性为兼容 AMD64 与 ARM64 两种架构仓库示例默认使用mariadb:10.6.4-focal如需使用 MySQL取消注释#image: mysql:8.0.27即可与官方文档示例的策略完全相同数据持久化db_data卷挂载于/var/lib/mysql持久化数据库文件保证down后数据不丢失生命周期docker compose up -d部署、docker compose down停止、docker compose down -v连带删除全部 WordPress 数据。仓库中还包含其他 Compose 快速上手样本可作横向参考官方文档示例目录 official-documentation-samples/README.md 收录了 Djangodjango/README.md与 Railsrails/README.md两个同系列快速入门分别演示 Compose 编排 PostgreSQL 后端应用的完整套路有助于理解应用服务 数据服务这一 Compose 通用编排模式。小结通过本文的docker-compose.yml你已能用一条docker compose up -d命令获得一套完整的 WordPress 站点mariadb容器承载数据库并借助命名卷持久化数据wordpress容器承载站点文件并映射 80 端口对外服务down保留数据、down --volumes彻底清理。这套配置既是官方文档推荐的起步模板也与仓库内 wordpress-mysql/compose.yaml 的生产化样本保持一致可直接复制到自己的项目中使用。赞分享示例工程【免费下载链接】awesome-composeAwesome Docker Compose samples项目地址https://gitcode.com/gh_mirrors/aw/awesome-compose点击查看免费下载相关推荐gpt-researcher Docker 快速部署指南docker-compose 与 Docker CLI 完整实战gpt researcher Docker 快速部署指南docker compose 与 Docker CLI 完整实战 本文围绕 gpt researche人工智能AI 应用深度研究AI Agent自主智能体RAG多智能体后端biliTickerBuy Docker 部署实战从 docker run 到 docker compose 的完整配置指南biliTickerBuy Docker 部署实战从 docker run 到 docker compose 的完整配置指南 本文围绕 biliTickerB电商RPAPicoClaw Docker 部署与快速上手指南Compose 三种模式与配置详解PicoClaw Docker 部署与快速上手指南Compose 三种模式与配置详解 本文基于仓库文档 docs/guides/docker.pt br.md人工智能AI 应用AI Agent交互助手工具调用MCP ClientsAgent 记忆上一篇IoT-For-Beginners 实战用继电器与 MQTT 构建响应土壤湿度的自动植物浇水系统下一篇Polar 前端性能优化规避 Barrel 文件导入砍掉 React/Next.js 数百毫秒模块加载与冷启动开销创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

一套能写文档、管权限、做AI问答的私有化知识库:zyplayer-doc

一套能写文档、管权限、做AI问答的私有化知识库:zyplayer-doc

一套能写文档、管权限、做AI问答的私有化知识库:zyplayer-doc对于更关注数据安全、有私有化部署知识库需求的企业,zyplayer-doc可以部署在自己的服务器或内网,让资料始终留在企业自己的环境中。系统同时提供文档管理、在线协作、权限控制、全…

2026/9/30 14:31:25 阅读更多 →
健身选补剂别盲目跟风,蛋白科研实力才是企业硬实力

健身选补剂别盲目跟风,蛋白科研实力才是企业硬实力

随着全民健身热潮持续升温,健身营养产品市场规模不断扩张,蛋白粉、肌酸、运动恢复类补剂层出不穷。不少健身爱好者挑选产品时,很容易陷入选购误区:只盯着包装上的蛋白含量数字,轻信营销宣传,忽略品牌背后的…

2026/9/30 14:31:25 阅读更多 →
在 Kubernetes 里跑对象存储的三个方案:Helm、Operator、以及什么时候别用 K8s

在 Kubernetes 里跑对象存储的三个方案:Helm、Operator、以及什么时候别用 K8s

把对象存储搬进 K8s 的动机通常是"顺便",反正集群已经在跑,再加一套存储也不差一个 StatefulSet。但存储和 Web 应用在 K8s 里的相处方式完全不同:Web 应用挂了重启没事,存储的 StatefulSet 挂了要考虑 PVC 会不会丢、分…

2026/9/30 14:30:25 阅读更多 →

最新新闻

EPLAN实战指南:从模板配置、线号生成到部件库管理

EPLAN实战指南:从模板配置、线号生成到部件库管理

干了这么多年电气设计,我发现一个很有意思的现象:同一个办公室,有人用EPLAN画一套柜子要一周,有人只要两天,而且改图、出报表、做BOM都干净利落。差别不在于软件版本高低,也不在于谁手速快,而在…

2026/9/30 15:13:23 阅读更多 →
ClawPanel 技术架构解析:Vanilla JS + Rust Tauri 多引擎零框架设计为何胜出

ClawPanel 技术架构解析:Vanilla JS + Rust Tauri 多引擎零框架设计为何胜出

ClawPanel 技术架构解析:Vanilla JS Rust Tauri 多引擎零框架设计为何胜出 【免费下载链接】clawpanel 🦞 OpenClaw & Hermes Agent 多引擎 AI 管理面板 — 内置 AI 助手(工具调用 图片识别 多模态),一键安装 |…

2026/9/30 15:13:23 阅读更多 →
诚实完成的秘密:mercury-agent v1.2.3 完成契约与防卡死恢复架构深度解析

诚实完成的秘密:mercury-agent v1.2.3 完成契约与防卡死恢复架构深度解析

诚实完成的秘密:mercury-agent v1.2.3 完成契约与防卡死恢复架构深度解析 【免费下载链接】mercury-agent Soul-driven AI agent with permission-hardened tools, token budgets, and multi-channel access. Runs 24/7 from CLI, Telegram or More. 项目地址: ht…

2026/9/30 15:13:23 阅读更多 →
pdoom-video 4K 渲染实战:无头 Chrome + ffmpeg 输出真 3840×2160 视频的完整部署

pdoom-video 4K 渲染实战:无头 Chrome + ffmpeg 输出真 3840×2160 视频的完整部署

pdoom-video 4K 渲染实战:无头 Chrome ffmpeg 输出真 38402160 视频的完整部署 【免费下载链接】pdoom-video Code-rendered music video for "Im Upping My P(doom)" 项目地址: https://gitcode.com/gh_mirrors/pd/pdoom-video pdoom-video 是一…

2026/9/30 15:13:23 阅读更多 →
小U 使用说明  功能说明(PASM Studio 内置 AI 伙伴 · v0.31.11)

小U 使用说明 功能说明(PASM Studio 内置 AI 伙伴 · v0.31.11)

小U 是 PASM Studio 内置的桌面 AI 伙伴:能对话、会思考、记得住你、有情绪, 本地运行保护隐私,还能在专业领域(开店 / 跨境电商 / 食品经营)给出"先核验再开口"的建议。 本文面向首次接触小U 的用户,5 分钟完成安装到第一句对话。 一、小U 是什么 小U 不是&q…

2026/9/30 15:13:23 阅读更多 →
2026年品牌出海GEO服务商盘点解析:海外AI获客选哪家出海GEO优化公司?看广拓时代SEO与GEO的执行配合

2026年品牌出海GEO服务商盘点解析:海外AI获客选哪家出海GEO优化公司?看广拓时代SEO与GEO的执行配合

一份完整的产品介绍,不一定能在AI回答里得到完整呈现。海外买家借助助手了解品牌、对照产品、挑选供应商时,看到的是模型重新组织的信息。出海团队因此需要核查品牌和产品有没有被准确识别、引用依据是否可靠,以及文字是否符合当地语言和行业…

2026/9/30 15:12:23 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →