【Docker】 使用Docker-Compose 搭建基于 WordPress 的博客网站
引
本文将使用流行的博客搭建工具 WordPress 搭建一个私人博客站点。部署过程中使用到了 Docker 、MySQL 。站点搭建完成后经行了发布文章的体验。
WordPress
WordPress 是一个广泛使用的开源内容管理系统(CMS),用于构建和管理网站、博客和其他在线应用。它提供了一个用户友好的界面和丰富的功能,使得创建和管理网站变得简单且灵活。 WordPress 有如下特点和功能:
-
简单易用: WordPress 提供直观的用户界面,使得创建、编辑和发布内容变得非常简单。无需编写代码,用户可以使用可视化编辑器创建页面和文章,并通过简单的操作进行内容管理。
-
可扩展性: WordPress 具有强大的插件和主题系统,允许用户根据自己的需求扩展和定制网站。有数千个免费和付费的插件和主题可供选择,用于添加新功能、改变外观和样式,以及增强网站的性能和安全性。
-
博客功能: WordPress 最初是一个专注于博客的平台,因此在博客功能方面表现出色。它提供了强大的文章管理、分类、标签、评论和 RSS 订阅等功能,使得创建和管理博客变得轻松。
-
多用户支持: WordPress 支持多用户功能,允许多个用户在同一个网站上创建和管理内容。这使得 WordPress 成为团队协作和多作者博客的理想选择。
-
SEO 优化: WordPress 通过优化网站结构、提供友好的 URL、自定义元标签和集成 SEO 插件等功能,有助于提升网站在搜索引擎中的排名。
-
活跃的社区: WordPress 拥有庞大且活跃的社区支持,提供了丰富的文档、论坛、博客和教程等资源。用户可以从社区中获取帮助、学习新技术和与其他 WordPress 用户交流。
WordPress 是一个功能强大且灵活的内容管理系统,适用于各种类型的网站和在线应用。它的用户友好性、可扩展性和丰富的插件生态系统,使得创建和管理网站变得更加简单和便捷。
Docker-Compose
在自己喜欢的目录下创建 wordpress
目录,在其中创建 docker-compose.yml
文件,内容如下:
# docker-compose.yml
version: '3'services:wordpress:image: wordpresscontainer_name: wordpressports:- "8080:80"environment:WORDPRESS_DB_HOST: mysql # 因为 docker-compose 会自动把 mysql 的名字用做网络标识,所以在连接数据库的时候该字段就不需要手动指定 IP 地址了,直接用“service”的名字 mysql 就行了。WORDPRESS_DB_USER: wpWORDPRESS_DB_PASSWORD: 123456WORDPRESS_DB_NAME: wp_dbTZ: Asia/Shanghairestart: alwaysdepends_on:- mysqlmysql:image: mysql:5.7container_name: mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: wp_dbMYSQL_USER: wpMYSQL_PASSWORD: 123456TZ: Asia/Shanghai
目录结构如下:
启动服务
打开命令行工具,进去 wordpress
目录,运行启动命令: docker-compose up
。
效果如下:
注意:此过程执行前以提前拉取了 wordpress:latest 和 mysql:5.7 镜像,命令如下:
docker pull wordpress
docker pull mysql:5.7
是否启动正常
使用 docker ps
查看镜像是否启动
PS D:\apps-data\docker\wordpress> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
668c4a2c6690 wordpress "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 0.0.0.0:8080->80/tcp wordpress
b40a0f8e4a6f mysql:5.7 "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 3306/tcp, 33060/tcp mysql
PS D:\apps-data\docker\wordpress>
如果是在 win 上,使用了docker-desktop ,也可以在 docker-desktop 中查看服务状态:
最直接的方式是访问 http://localhost:8080/ ,看服务是否能使用。如果启动正常,将看到如下页面:
WordPress 后台试用
wordpress 启动正常后,第一次使用,需要进行初始化配置。
配置
-
选择语言
-
录入基本信息
录入完成后,点击 安装wordpress,等待安装完成 -
安装完成
登录
点击安装完成页面中的 登录 按钮,进入登录页面。
录入信息,进行登录。
进入后的页面
初次进入后台页面,效果如下
发布文章
在页面左侧找到文章编辑菜单
点击进入编辑,写一篇文章
点击右上角的蓝色【发布】按钮即可进行发布,发布时会进行二次信息确认。
博客预览体验
退出登录
访问 http://localhost:8080/ 效果如下:
可以看到,博客中共有两篇文章,其中《世界,您好!》是wordpress初始化成功后,自动生成的,另一篇《我的第一篇博客》则是刚刚创建的。
点击《我的第一篇博客》标题,即可进入博客详情页面。
参考资料
- wordpress docker
- wordpress 官网
相关文章:

【Docker】 使用Docker-Compose 搭建基于 WordPress 的博客网站
引 本文将使用流行的博客搭建工具 WordPress 搭建一个私人博客站点。部署过程中使用到了 Docker 、MySQL 。站点搭建完成后经行了发布文章的体验。 WordPress WordPress 是一个广泛使用的开源内容管理系统(CMS),用于构建和管理网站、博客和…...

Hlang社区-前端社区宣传首页实现
文章目录 前言页面结构固定钉头部轮播JS特效完整代码总结前言 这里的话,博主其实也是今年参与考研的大军之一,所以的话,是抽空去完成这个项目的,当然这个项目的肯定是可以在较短的时间内完成的。 那么废话不多说,昨天也是干到1点多,把这个首页写出来了。先看看看效果吧:…...
【LeetCode-Medium】833. 字符串中的查找与替换
题目链接 833. 字符串中的查找与替换 标签 字符串 步骤 Step1. 初始化 ans[]: for (int i 0; i < s.length(); i) { // 初始化ansans[i] s[i]; }Step2. 根据 index, source, target 查找;如果找到,那么将 ans[i] 更改为 target&am…...

数据结构中公式前中后缀表达式-二叉树应用
目录 数据结构中公式前中后缀表达式-二叉树应用 数据结构中公式前中后缀表达式-二叉树应用 什么是前缀表达式、中缀表达式、后缀表达式 前缀表达式、中缀表达式、后缀表达式,是通过树来存储和计算表达式的三种不同方式 以如下公式为例 通过树来存储该公式&#x…...

Visual Studio 2022连接远程系统进行C/C++开发
Visual Studio被称为是宇宙最强IDE,以前开发Linux C/C服务器程序,基本上都是在Windows上使用VS编写跨平台的C/C代码,然后先在VS中编译、链接、调试,然后在Linux下编译、链接,再针对Linux下的特定代码进行调试。后面Vis…...
TiDB数据库从入门到精通系列之二:TiDB数据库的简介
TiDB数据库从入门到精通系列之二:TiDB数据库的简介 一、TiDB数据库的简介二、五大核心特性三、四大核心应用场景四、TiDB数据库与MySQL数据库的兼容性 一、TiDB数据库的简介 TiDB是开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (H…...
opencv视频截取每一帧并保存为图片python代码CV2实现练习
当涉及到视频处理时,Python中的OpenCV库提供了强大的功能,可以方便地从视频中截取每一帧并将其保存为图片。这是一个很有趣的练习,可以让你更深入地了解图像处理和多媒体操作。 使用OpenCV库,你可以轻松地读取视频文件࿰…...

虹科方案 | 汽车总线协议转换解决方案(二)
上期说到,虹科的PCAN-LIN网关在CAN、LIN总线转换方面有显著的作用,尤其是为BMS电池通信的测试提供了优秀的解决方案。假如您感兴趣,可以点击文末相关链接进行回顾! 而今天,虹科将继续给大家带来Router系列在各个领域的…...
[Android] 通过JNI 让 JAVA 调用 android native 接口
前言: JNI (java native interface) 是一个库,可以让 java 代码和其他语言互动,比如 java 通过 JNI 调用融合了 jni库的 c/c 代码,注意,这里要求 c/c代码中必须通过链接 jni 库并按照 JNI 规范定义一套可供 JAVA 调用…...

MySQL高可用MHA
目录 前言 一、概述 二、配置免密、组从复制 三、MHA配置 四、测试 总结 前言 MySQL高可用管理工具(MHA,Master High Availability)是一个用于自动管理MySQL主从复制的工具,它可以提供高可用性和自动故障转移。MHA由原版的MHA工具…...

DoIP学习笔记系列:(五)“安全认证”的.dll从何而来?
文章目录 1. “安全认证”的.dll从何而来?1.1 .dll文件base1.2 增加客户需求算法传送门 DoIP学习笔记系列:导航篇 1. “安全认证”的.dll从何而来? 无论是用CANoe还是VFlash,亦或是编辑cdd文件,都需要加载一个与$27服务相关的.dll(Windows的动态库文件),这个文件是从哪…...

205、仿真-51单片机直流数字电流表多档位切换Proteus仿真设计(程序+Proteus仿真+原理图+流程图+元器件清单+配套资料等)
毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、原理图 五、程序源码 资料包括: 方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源…...

服务器如何防止cc攻击
对于搭载网站运行的服务器来说,cc攻击应该并不陌生,特别是cc攻击的攻击门槛非常低,有个代理IP工具,有个cc攻击软件就可以轻易对任何网站发起攻击,那么服务器如何防止cc攻击?请看下面的介绍。 服务器如何防止cc攻击&a…...

解读注解@Value占位符替换过程
之前写过一篇关于介绍Spring占位符替换原理的博客,传送门 :Spring的占位符是怎么工作的 在这篇文章基础上,再介绍一下Value替换原理,两篇文章有一定的相关性。 继续以上一篇的工程为例,项目结构一样,这里就…...

浅谈5G技术会给视频监控行业带来的一些变革情况
5G是第五代移动通信技术,能够提供更高的带宽和更快的传输速度,这将为视频技术的发展带来大量机会。随着5G技术的逐步普及与商用,人们将能够享受到更加流畅的高清视频体验,并且5G技术还拥有更低的延迟和更高的网络容量。这些优势不…...
Java常用API---快速达到Java工作水准系列(1)
目录 1.集合 2.包装类 3.日期处理以及格式化 4.字符串处理类 5.数组 5.BigDecimal 6.Math 1.集合 毋庸置疑,集合在实际项目的使用概率几乎是百分之百。无论是用于数据存储和管理、去重和查找亦或是数据检索和遍历,都离不开集合的使用。任何一个项…...

Python中使用隧道爬虫ip提升数据爬取效率
作为专业爬虫程序员,我们经常面临需要爬取大量数据的任务。然而,有些网站可能会对频繁的请求进行限制,这就需要我们使用隧道爬虫ip来绕过这些限制,提高数据爬取效率。本文将分享如何在Python中使用隧道爬虫ip实现API请求与响应的技…...

深入源码分析kubernetes informer机制(四)DeltaFIFO
[阅读指南] 这是该系列第四篇 基于kubernetes 1.27 stage版本 为了方便阅读,后续所有代码均省略了错误处理及与关注逻辑无关的部分。 文章目录 client-go中的存储结构DeltaFIFOdelta索引 keyqueue push操作delta push 去重 queue pop操作 总结 client-go中的存储结构…...

UI设计师个人工作总结范文
UI设计师个人工作总结范文篇一 感受到了领导们“海纳百川”的胸襟,感受到了作为广告人“不经历风雨,怎能见彩虹”的豪气,也体会到了重庆广告从业人员作为拓荒者的艰难和坚定(就目前国内广告业而言,我认为重庆广告业尚在发展阶段并…...
explicit关键字 和 static成员
explicit关键字 和 static成员 1、explicit 关键字2、static成员(静态成员变量属于类的(只有所属这个类的对象才能修改),不同于全局变量(任何对象都能修改))2.1 定义和性质2.2 静态成员的使用场…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...