Docker实践:使用Docker部署blog轻量级博客系统

  • 一、blog系统介绍
    • 1.1 blog介绍
    • 1.2 个人博客系统介绍
    • 1.3 个人博客使用场景
  • 二、本地环境介绍
    • 2.1 本地环境规划
    • 2.2 本次实践介绍
  • 三、本地环境检查
    • 3.1 检查Docker服务状态
    • 3.2 检查Docker版本
    • 3.3 检查docker compose 版本
  • 四、下载blog镜像
  • 五、部署blog个人博客系统
    • 5.1 使用docker-cli部署
    • 5.2 下载blog源码
    • 5.3 修改docker-compose.yml文件
    • 5.3 创建blog容器
    • 5.4 检查blog容器状态
  • 六、访问blog个人博客系统
    • 6.1 访问blog首页
    • 6.2 登录blog
    • 6.3 发布博客内容
    • 6.4 浏览博客内容
  • 七、总结

一、blog系统介绍

1.1 blog介绍

  • blog系统简介

这是一个简单的自托管、轻量级、单用户 PHP 博客,您可以在其中创建自己的类似 Facebook 的提要。向其他人授予读取权限,并且您可以共享包含照片(包括突出显示的代码或链接)的富文本。

1.2 个人博客系统介绍

开源的个人博客系统是一种允许用户创建、管理和发布自己的博客的平台。它是基于开源软件的,意味着任何用户可以自由地访问、修改和分发系统的源代码。例如比较有名的wordpress/Ghost/Hexo/halo/Hugo等博客系统,这些开源个人博客系统都有活跃的社区支持和更新,可以根据自己的需求选择合适的系统,并根据需要进行定制和扩展。

1.3 个人博客使用场景

开源的个人博客系统适用于以下场景:

  • 个人博客:适合个人或小团队创建和管理个人博客网站,记录个人的思考、经验分享、技术总结等内容。

  • 学术研究:适用于学者、研究员或学生创建学术博客,分享研究成果、学术观点和学术活动等内容。

  • 技术博客:适合开发者、程序员或技术爱好者创建技术博客,分享技术经验、开发教程、工具推荐等内容。

  • 文学创作:适用于作家、诗人或文艺爱好者创建文学博客,发布作品、分享创作心得和文学评论等内容。

  • 新闻媒体:适合新闻机构、记者或新闻爱好者创建新闻博客,发布新闻报道、时事评论和专题报道等内容。

  • 教育培训:适用于教师、教育机构或在线教育平台创建教育博客,发布教学资源、教育理念和教学经验分享等内容。

  • 社区互动:适合创建社区博客网站,鼓励用户参与互动、发布帖子、评论和分享内容。

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostnameIP地址操作系统版本Docker版本
jeven192.168.3.166centos 7.620.10.17

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署blog个人博客系统。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Fri 2023-12-08 19:10:36 CST; 21h agoDocs: https://docs.docker.comMain PID: 11729 (dockerd)Tasks: 22Memory: 186.1MCGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

四、下载blog镜像

从docker hub拉取blog镜像

[root@jeven blog]# docker pull m1k1o/blog:latest
latest: Pulling from m1k1o/blog
7d63c13d9b9b: Pull complete
24b15dfd3cfa: Pull complete
64625c2e355f: Pull complete
275a8dd8f358: Retrying in 1 second
eb1c8ccc797a: Download complete
0aaf98f0c33a: Download complete
e6e7c544c3e3: Retrying in 2 seconds
4ae870a5fb80: Retrying in 1 second
98833c4f4a49: Waiting
f1a6af6bf10a: Waiting
a56ec4dacea3: Waiting
ab49679021a9: Waiting
62d224267322: Waiting
72321144b430: Waiting
25bec77f4422: Waiting
latest: Pulling from m1k1o/blog
Digest: sha256:b3c48fed76e80de423e5a5a14a9b5070f3a4e8ae93be6b45991d3249fc74b681
Status: Image is up to date for m1k1o/blog:latest
docker.io/m1k1o/blog:latest

五、部署blog个人博客系统

5.1 使用docker-cli部署

使用docker-cli部署,执行以下命令即可。直接使用以下命令创建blog容器时,默认使用的数据库为SQLite。

docker run -d \-p 80:80 \-e "TZ=Europe/Vienna" \-e "BLOG_TITLE=Blog" \-e "BLOG_NAME=Max Musermann" \-e "BLOG_NICK=username" \-e "BLOG_PASS=password" \-e "BLOG_LANG=en" \-v $PWD/data:/var/www/html/data \m1k1o/blog:latest

5.2 下载blog源码

在github下载blog源码包

cd /data
[root@jeven data]# git clone https://github.com/m1k1o/blog.git
Cloning into 'blog'...
remote: Enumerating objects: 1492, done.
remote: Counting objects: 100% (190/190), done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 1492 (delta 163), reused 160 (delta 150), pack-reused 1302
Receiving objects: 100% (1492/1492), 4.14 MiB | 2.90 MiB/s, done.
Resolving deltas: 100% (923/923), done.

设置目录权限

chmod -R 777 /data/blog/

5.3 修改docker-compose.yml文件

进入blog源码目录

[root@jeven blog]# ls
ajax.php  common.php  data                Dockerfile   index.php  README.md   static
app       config.ini  docker-compose.yml  favicon.ico  LICENSE    robots.txt

修改docker-compose.yml文件,内容如下:

version: "3"services:blog:image: m1k1o/blog:latestrestart: unless-stoppedenvironment:TZ: Asia/ShanghaiBLOG_TITLE: BlogBLOG_NAME: Max MusermannBLOG_NICK: blogBLOG_PASS: blogBLOG_LANG: enports:- 8012:80volumes:- ./data:/var/www/html/data

5.3 创建blog容器

使用docker compose 快速创建blog容器

[root@jeven blog]# docker compose up -d
[+] Running 1/1⠿ Container blog-blog-1  Started                                                                                       0.3s

5.4 检查blog容器状态

检查blog容器运行状态,确保blog容器正常启动。

[root@jeven blog]#  docker compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
blog-blog-1         "docker-php-entrypoi…"   blog                running             0.0.0.0:8012->80/tcp, :::8012->80/tcp

六、访问blog个人博客系统

6.1 访问blog首页

访问地址:http://192.168.3.166:8012,将IP替换为自己服务器IP地址,进入blog首页。

在这里插入图片描述

6.2 登录blog

我们在docker-compose.yml文件中设置的登录用户名和密码为blog/blog

在这里插入图片描述
在这里插入图片描述

6.3 发布博客内容

在编辑框内编辑博客内容,点击公开,保存发布。

在这里插入图片描述

6.4 浏览博客内容

在其他浏览器访问http://192.168.3.166:8012,可以看到博客内容。

在这里插入图片描述

七、总结

Blog轻量级博客系统是一款开源的博客系统,它简单易用、系统资源占用少。它有简洁漂亮的界面,可以方便地分享文章、图片等内容。如果对Blog感兴趣,可以尝试部署体验一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/90421.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/90421.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/90421.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

专题:2025电商增长新势力洞察报告:区域裂变、平台垄断与银发平权|附260+报告PDF、原数据表汇总下载

原文链接:https://tecdat.cn/?p43416 当茂名果农对着镜头用方言喊出“荔枝现摘现发”,2小时卖出83万元;当65岁的上海阿姨通过“子女代付”买到人生第一台智能冰箱——2025年的电商战场,正在上演三重革命:新兴市场的增…

数字化转型-AI落地金字塔法则

前言 人工智能必须要跟传统产业结合,融入传统产业,才能落地,才能产生巨大的倍增个几何级效果!! AI不应该停留在工具层面,AI不仅仅是工具,不仅仅是硬件和软件,而是软硬结合。人工智能…

SQL Server 字段类型选型指南:什么数据用什么字段

目录 一、数值型数据 二、日期与时间数据 三、字符串与文本数据 四、布尔值与状态码 五、二进制与文件数据 六、唯一标识符(GUID) 七、枚举与代码表设计 八、存储优化小结 九、总结 在数据库设计中,字段类型(数据类型&am…

酷暑来袭,科技如何让城市清凉又洁净?

烈日下的身影,不该被“炙烤”的担当又是一年盛夏,城市的血管在高温下脉动,柏油马路仿佛要融化,空气中弥漫着灼热的气息。此刻,你是否曾留意过那些身影?在烈日下,他们依旧坚守岗位,用…

传统框架与减震楼盖框架地震动力响应分析与有限元模拟

传统框架与减震楼盖框架地震动力响应分析与有限元模拟 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,觉得好请收藏。点击跳转到网站。 摘要 本文针对传统钢框架和减震楼盖钢框架两种结构体系,建立了水平地震作用下的动力学模型,推…

Java集合去重

✅ 方式一&#xff1a;TreeSet Comparator最优雅的一种&#xff0c;适用于对象中某个字段唯一的去重&#xff08;如 partyAId&#xff09;List<PartyACompanyVO> result contractDOS.stream().map(contract -> {PartyACompanyVO vo new PartyACompanyVO();vo.setPa…

Qt字符串处理与正则表达式应用

一、Qt字符串处理基础 在Qt应用程序开发中&#xff0c;字符串处理是一项常见且重要的任务。Qt提供了强大而灵活的字符串处理功能&#xff0c;能够满足各种复杂的文本处理需求。 1.1 QString类概述 QString是Qt中处理字符串的核心类&#xff0c;它基于Unicode编码&#xff0c…

qt5静态版本对应的pcre编译

下载 https://sourceforge.net/projects/pcre/files/pcre/8.45/ 不同版本qt对应不同pcre 编译 启动vs2013的开发人员命令&#xff0c;可以找到cl程序 nmake环境设置到系统path中 cd C:\pcre-8.45 mkdir build_static cd build_static cmake .. -G "NMake Makefiles" …

JimuReport 积木报表 v2.1.1 版本发布,免费开源的报表和大屏

项目介绍 积木报表&#xff0c;是一款免费的数据可视化报表&#xff0c;含报表、打印、大屏和仪表盘&#xff0c;像搭建积木一样完全在线设计&#xff01;功能涵盖&#xff1a;复杂报表、打印设计、图表报表、门户设计、大屏设计等&#xff01; 分两大模块&#xff1a;JimuRepo…

基于python django的农业可视化系统,以奶牛牧场为例

摘 要 本文课题围绕畜牧业高质量发展中牧场管理的现状&#xff0c;现代牧场饲养模式上存在的数据比较零碎、饲养过程中容易经验主义、生产产量不稳、产出效益低、奶牛体况的不合理等现状&#xff0c;设计了多参数大数据智能牧场生产管理决策支撑体系。以牧场信息系统的建设为背…

无人机吊舱与遥控器匹配技术解析

一、 无人机吊舱如何与遥控器“对上暗号”&#xff1f;在无人机执行物资投送、电力巡检、灾害搜救等任务时&#xff0c;吊舱&#xff08;即悬挂于机身下方的任务设备&#xff09;常成为核心作业单元。但要让遥控器“指挥”吊舱&#xff0c;两者必须实现双向通信协议互通、电气接…

C#模拟pacs系统接收并解析影像设备数据(DICOM文件解析)

上篇文件介绍了什么dicomhttps://blog.csdn.net/qq_39569480/article/details/149641920?spm=1001.2014.3001.5502 本篇文章我们来使用fo_dicom接收并解析dicom文件。 文章结尾附源码。 1.开发环境 visual studio 2019 .netframwork 4.8 2.关键知识点 dicom三要素为 AE t…

在 IntelliJ IDEA 中打开这个用于设置 Git 用户名(Name)和邮箱(Email)的特定弹窗

要在 IntelliJ IDEA 中打开这个用于设置 Git 用户名&#xff08;Name&#xff09;和邮箱&#xff08;Email&#xff09;的特定弹窗&#xff08;如下图&#xff09;&#xff0c;可以通过以下几种常见方法触发&#xff1a;https://i.im.ge/2024/07/16/Kt6r1i.IDE-Git-UserName-Co…

redis 源码阅读

官网下载zip&#xff1a; 本文即是文件创建时间时候的版本~ 文章目录目录结构/srcint main()服务端 server足够的熵值 entropyumask掩码系统初始化*重启机制&#xff1a;保存执行数据 以便后续重启服务哨兵模式 sentinelrdb aof解析命令行参数声明实现的位置目录结构 目录/文…

《C++》面向对象编程--类(下)

文章目录一、赋值运算符重载1.1定义1.2基本规则1.3为什么需要运算符重载&#xff1f;1.4示例&#xff1a;二、前置和后置区别2.1前置的实现与特点2.2后置的实现与特点2.3核心区别三、const四、取地址及const取地址操作符重载4.1定义4.2语法4.3注意事项一、赋值运算符重载 1.1定…

EasyExcel 模板导出数据 + 自定义策略(合并单元格)

需求&#xff1a;数据库里的主表明细表&#xff0c;联查出数据并导出Excel&#xff0c;合并主表数据的单元格。代码&#xff1a;controllerPostMapping("export")ApiOperation(value "导出数据")protected void export(ApiParam Valid RequestBody NewWms…

股指期权可以随时平仓吗?

本文主要介绍股指期权可以随时平仓吗&#xff1f;股指期权是否可以随时平仓&#xff0c;需结合交易规则、合约状态及市场流动性综合判断&#xff0c;具体如下。股指期权可以随时平仓吗&#xff1f;一、正常交易时间内的平仓规则在交易日的交易时段内&#xff08;如国内上证50ET…

成品电池综合测试仪:保障电池品质与安全的核心工具|深圳鑫达能

随着新能源汽车、储能系统、消费电子等领域的快速发展&#xff0c;电池作为核心能源组件&#xff0c;其性能与安全性直接关系到产品的整体质量与用户体验。成品电池综合测试仪作为电池生产与质检环节的关键设备&#xff0c;通过模拟真实使用场景&#xff0c;对电池的电气性能、…

智慧工厂网络升级:新型 SD-WAN 技术架构与应用解析

1. 智慧工厂对网络的核心需求智慧工厂的网络需求高度复杂&#xff0c;主要体现在以下几个方面&#xff1a;高可靠性与低延迟工厂中的生产执行系统&#xff08;MES&#xff09;、设备监控系统&#xff08;如 PLC/SCADA&#xff09;、产品生命周期管理系统&#xff08;PLM&#x…

在 Windows 使用 Nginx/HAProxy 实现负载均衡

在本实验中&#xff0c;我们将在 Windows 系统 上使用 Python 编写一个 TCP 服务器&#xff0c;并启动两个服务实例。然后使用 Nginx 或 HAProxy 作为负载均衡器&#xff0c;将来自多个客户端的请求分发到这两个服务实例上&#xff0c;验证负载均衡效果。 &#x1f9e9; 环境准…