2

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

 4 months ago
source link: https://blog.51cto.com/u_14664141/10681325
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

一、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 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首页。

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

6.2 登录blog

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

【Docker项目实战】使用Docker部署blog轻量级博客系统_服务器_02
【Docker项目实战】使用Docker部署blog轻量级博客系统_博客系统_03

6.3 发布博客内容

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

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

6.4 浏览博客内容

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK