【Docker项目实战】使用Docker部署blog轻量级博客系统

简介: 【2月更文挑战第16天】使用Docker部署blog轻量级博客系统

一、blog系统介绍

1.1 blog介绍

  • blog系统简介

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

1.2 个人博客系统介绍

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

1.3 个人博客使用场景

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

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

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

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

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

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

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

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

    二、本地环境介绍

    2.1 本地环境规划

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

hostname IP地址 操作系统版本 Docker版本
jeven 192.168.3.166 centos 7.6 2 20.10.17

2.2 本次实践介绍

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

三、本地环境检查

3.1 检查Docker服务状态

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

[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-12-08 19:10:36 CST; 21h ago
     Docs: https://docs.docker.com
 Main PID: 11729 (dockerd)
    Tasks: 22
   Memory: 186.1M
   CGroup: /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:latest
    restart: unless-stopped
    environment:
        TZ: Asia/Shanghai
        BLOG_TITLE: Blog
        BLOG_NAME: Max Musermann
        BLOG_NICK: blog
        BLOG_PASS: blog
        BLOG_LANG: en
    ports:
      - 8012:80
    volumes:
      - ./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感兴趣,可以尝试部署体验一下。

相关文章
|
2天前
|
监控 安全 Cloud Native
【云原生之Docker实战】使用Docker部署Ward服务器监控工具
【5月更文挑战第11天】使用Docker部署Ward服务器监控工具
17 3
|
2天前
|
Cloud Native 安全 Linux
【云原生之Docker实战】使用Docker部署mBlog微博系统
【5月更文挑战第10天】使用Docker部署mBlog微博系统
11 2
|
2天前
|
JavaScript 前端开发 测试技术
Docker环境下部署Ghost开源内容管理系统
【5月更文挑战第9天】Docker环境下部署Ghost开源内容管理系统
10 0
|
Ubuntu Shell 应用服务中间件
Docker -- 系统整洁之道 -- 1
在上文Docker – 系统整洁之道 – 0中已经对Docker是什么,安装Docker以及怎么运行一个简单的容器有了初步了解,这篇文章介绍Docker的一些命令和Docker镜像的使用及操作。
1444 0
|
Ubuntu Linux Docker
Docker -- 系统整洁之道 -- 0
在我的小 rmbp 256G的硬盘里,实在是装不下100多个G的虚拟机了,所以想把一些东西迁移到这两年很火的Docker下,Docker以前也有过一两次,只是按着别人给的用法用的,具体的一些细节并没有深入,和git一样,这么牛掰的东西怎么能不好好学一些呢? Docker和虚拟机的区别 Docker是一种容器,虚拟机是一种管理程序虚拟机化(hypervisor virtualization,HV)。
1569 0
|
2天前
|
存储 安全 数据安全/隐私保护
【Docker 专栏】Docker 容器化应用的备份与恢复策略
【5月更文挑战第9天】本文探讨了Docker容器化应用的备份与恢复策略,强调了备份在数据保护、业务连续性和合规要求中的关键作用。内容涵盖备份的重要性、内容及方法,推荐了Docker自带工具和第三方工具如Portainer、Velero。制定了备份策略,包括频率、存储位置和保留期限,并详细阐述了恢复流程及注意事项。文章还提及案例分析和未来发展趋势,强调了随着技术发展,备份与恢复策略将持续演进,以应对数字化时代的挑战。
【Docker 专栏】Docker 容器化应用的备份与恢复策略
|
2天前
|
监控 Kubernetes Docker
【Docker 专栏】Docker 容器内应用的健康检查与自动恢复
【5月更文挑战第9天】本文探讨了Docker容器中应用的健康检查与自动恢复,强调其对应用稳定性和系统性能的重要性。健康检查包括进程、端口和应用特定检查,而自动恢复则涉及重启容器和重新部署。Docker原生及第三方工具(如Kubernetes)提供了相关功能。配置检查需考虑检查频率、应用特性和监控告警。案例分析展示了实际操作,未来发展趋势将趋向更智能和高效的检查恢复机制。
【Docker 专栏】Docker 容器内应用的健康检查与自动恢复
|
1天前
|
Ubuntu Docker 容器
docker容器保存和导入
docker容器保存和导入
15 0
|
1天前
|
Ubuntu Docker 容器
清理docker容器
清理docker容器
11 0
|
2天前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第14天】 在现代微服务架构中,Docker容器作为应用部署的基本单元,其运行状态的监控对于保障系统稳定性和性能至关重要。本文将探讨如何构建一个高效且稳定的Docker容器监控体系,涵盖监控工具的选择、关键指标的采集、数据可视化以及告警机制的设计。通过对Prometheus和Grafana的整合使用,实现对容器资源利用率、网络IO以及应用健康状态的全方位监控,确保系统的高可用性和故障快速响应。