【云原生之Docker实战】使用Docker部署mBlog微博系统

简介: 【5月更文挑战第10天】使用Docker部署mBlog微博系统

一、mBlog介绍

1.1 mBlog简介

mBlog,全称micro blog.基于java+mysql.支持自部署的前后端分离的微博,可单用户使用,也可以支持多用户。

1.2 mBlog功能

  • 基本的文字/图片输入,支持标签
  • 支持对历史博文/标签修改
  • 支持单/多用户,支持开启/关闭注册
  • 支持博文 登录用户/所有人/只有自己 可见
  • 支持按照标签,作者等条件搜索
  • 支持标签管理(一键改标签,删除无用标签等)
  • 支持上传图片(目前支持本地文件存储和七牛云,后续继续添加阿里云/腾讯云等)
  • 支持开发者使用api token
  • 响应式设计,支持pc和手机,支持夜间模式
  • 支持RSS
  • 支持markdown语法
  • 支持emoji表情
  • 前后端分离,前端和后端域名可以不一致,可以后端部署在nas上,前端部署在cdn.

1.3 mBlog使用场景

  • 个人博客:mBlog可以作为个人博客的搭建平台,用户可以自主发布、编辑、管理自己的博客内容,并通过微博形式与读者互动和交流。

  • 社交媒体平台:mBlog可以作为一个小型的社交媒体平台,用户可以在其中发布分享自己的生活、工作、兴趣等内容,并与其他用户互动和交流。

  • 内部交流平台:mBlog可以用作内部交流平台,公司、组织或团队成员可以通过mBlog发布公告、分享项目进展、交流工作经验等,提高内部沟通效率。

  • 学术交流平台:研究人员、学生可以使用mBlog发布自己的研究成果、学术观点、科学问题等,实现学术交流和知识分享。

  • 创作者平台:mBlog可以为内容创作者提供一个展示和推广自己作品的平台,包括写作、摄影、绘画、音乐等各种创作形式。

  • 教育平台:mBlog可以作为教育平台,教师可以在其中发布课程内容、课堂笔记、学习资源等,学生可以在其中互相交流讨论、提问问题。

  • 新闻评论平台:mBlog可以作为新闻评论平台,用户可以在其中对新闻事件进行评论、发表观点,进行社会舆论交流。

二、相关名词介绍

2.1 Docker介绍

  • Docker简介

Docker是一个开源的应用容器引擎,可以轻松地将应用程序打包成一个可移植的容器,便于部署、测试和运行。Docker容器是轻量级、可移植和可重复使用的,具有良好的性能和资源利用率。
Docker利用操作系统级别的虚拟化技术,可以在同一台物理服务器上同时运行多个独立的容器,并且不会相互干扰。在构建和部署应用程序时,Docker容器提供了一个统一的开发、测试和生产环境,大大简化了整个应用程序生命周期的管理。
除了其强大的应用容器化功能之外,Docker还提供了一个强大的生态系统,包括容器仓库、镜像管理、容器编排等工具,让用户可以更加轻松地管理和扩展应用程序。同时,Docker的开放性和可扩展性也使得它可以与其他云计算和容器化技术无缝集成,成为云原生技术栈中不可或缺的一环。

  • Docker优点
  1. 简化应用部署:Docker可以将应用及其依赖项打包在一个容器中,使得应用在不同的环境中部署变得更加简单,避免了很多配置和依赖问题。

  2. 提高开发效率:Docker的容器化技术可以提高开发效率,因为开发人员可以在本地构建和测试容器,并且可以在不同的开发环境中轻松共享和重复使用这些容器。

  3. 更好的资源利用与隔离:Docker使用虚拟化技术来隔离应用及其依赖项,保证容器中的应用不会干扰其他应用并且提高资源利用率。

  4. 更快速的部署:将应用部署到Docker容器中后,部署时间可以被缩短到几秒钟的级别,避免了复杂的手动配置,提高了应用的可靠性和可移植性。

  5. 更快速的扩展:Docker容器可以快速地复制和扩展,并且可以自动负载均衡,提高了应用的可扩展性。

  6. 更加安全:Docker容器是安全的,因为它将应用隔离在一个独立的环境中,使得攻击者很难侵入应用的内部,从而保护了应用和其数据的安全。

2.2 CentOS介绍

CentOS是一种基于Linux的操作系统,它是从Red Hat Enterprise Linux(RHEL)源代码重建而来的,因此CentOS也被称为RHEL的Community版。CentOS的目标是提供一个稳定、可靠、免费的企业级操作系统,为企业和个人用户提供具有高性能和安全性能的解决方案。它具有与 RHEL 相同的软件包、库和功能,并且与 RHEL 兼容,因此可以使用 RHEL 发布的软件和工具。除了 RHEL 特性之外,CentOS还支持多种平台和架构,包括 x86、x64、ARM和PowerPC架构。CentOS具有强大的网络和服务器功能,如Web服务器、邮件服务器、DNS服务器和文件共享服务器等,因此它也是一个非常流行的服务器操作系统。

三、本地环境介绍

3.1 本地环境规划

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

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

3.2 本次实践介绍

1.本次实践部署环境为个人测试环境;
2.在Docker环境下部署mBlog微博系统。

四、本地环境检查

4.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 Mon 2023-10-09 04:28:44 CST; 1h 43min ago
     Docs: https://docs.docker.com
 Main PID: 11815 (dockerd)
    Tasks: 36
   Memory: 169.9M
   CGroup: /system.slice/docker.service

4.2 检查Docker版本

检查Docker版本,当前Docker版本为20.10.17。

[root@jeven ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:05:12 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:03:33 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

五、下载mBlog镜像

在docker hub拉取镜像 kingwrcy/mblog:latest

docker pull kingwrcy/mblog:latest

在这里插入图片描述

六、部署mBlog

6.1 创建mBlog容器

使用以下命令,快速创建mBlog容器。

docker run  -d \
-v /data/mblog/data:/opt/mblog \
-p 8633:38321  \
--restart=always --name=mblog \
--detach=true \
 --env DB_TYPE=-sqlite  \
 kingwrcy/mblog:latest

在这里插入图片描述

也可以使用docker compose方式进行部署

version: '3'

services:
  mblog:
    image: kingwrcy/mblog:latest
    container_name: mblog
    environment:
      DB_TYPE: -sqlite
    ports:
      - "8633:38321"
    volumes:
      - /data/mblog/data:/opt/mblog
    restart: always
docker compose up -d  #创建mBlog容器

6.2 查看mBlog容器容器状态

检查mBlog容器状态,确保mBlog容器正常启动

[root@jeven ~]# docker ps
CONTAINER ID   IMAGE                            COMMAND                  CREATED          STATUS                 PORTS                                         NAMES
e64a564eade6   kingwrcy/mblog:latest            "/bin/sh -c 'java $J…"   13 seconds ago   Up 12 seconds          0.0.0.0:8633->38321/tcp, :::8633->38321/tcp   mblog

6.3 检查容器日志

使用以下命令,查看容器运行日志。

docker logs mblog

在这里插入图片描述

七、访问mBlog微博系统

7.1 访问mBlog首页

访问地址:http://192.168.3.166:8633/#/,将IP替换为自己服务器IP地址。

在这里插入图片描述

7.2 登录mBlog

点击登录mBlog,默认管理员账号和密码:admin/a123456。

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

7.3 发表微博

直接在编辑框,编辑微博内容,发表即可。

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

7.4 开启评论

在设置中,开启评论。

在这里插入图片描述

测试在发表的微博下发表评论,可以正常评论。

在这里插入图片描述

八、总结

使用mBlog的感觉相当不错。作为一个基于Java和MySQL的微博平台,它的安装过程虽然需要一点技术知识,但自部署让我能完全掌控数据安全,很适合追求隐私和定制化的用户。前端界面简洁直观,无论是发微博还是浏览他人动态都十分流畅。特别喜欢它既能当私人日记本,又能轻松转换成多人互动的空间,这种单用户到多用户的灵活切换,满足了不同场景的需求。

备注:本文禁止转载,转载需要获得本人授权。

相关文章
|
2月前
|
Kubernetes Cloud Native 开发者
构建高效的云原生应用:Docker与Kubernetes的完美搭档
【5月更文挑战第29天】 在现代软件开发领域,"云原生"这一术语已经成为高效、可扩展和弹性的代名词。本文将深入探讨如何通过Docker容器化技术和Kubernetes集群管理工具实现云原生应用的构建和管理。我们将剖析Docker的核心原理,揭示其轻量级和易于部署的特点,并进一步探索Kubernetes如何为这些容器提供编排,保证应用的高可用性与自动扩缩容。文章不仅讨论了二者的技术细节,还提供了实践案例,帮助开发者理解并运用这些技术构建和维护自己的云原生应用。
|
7天前
|
Kubernetes Cloud Native 微服务
企业级容器部署实战:基于ACK与ALB灵活构建云原生应用架构
这篇内容概述了云原生架构的优势,特别是通过阿里云容器服务Kubernetes版(ACK)和应用负载均衡器(ALB)实现的解决方案。它强调了ACK相对于自建Kubernetes的便利性,包括优化的云服务集成、自动化管理和更强的生态系统支持。文章提供了部署云原生应用的步骤,包括一键部署和手动部署的流程,并指出手动部署更适合有技术背景的用户。作者建议在预算允许的情况下使用ACK,因为它能提供高效、便捷的管理体验。同时,文章也提出了对文档改进的建议,如添加更多技术细节和解释,以帮助用户更好地理解和实施解决方案。最后,展望了ACK未来在智能化、安全性与边缘计算等方面的潜在发展。水文一篇,太忙了,见谅!
|
25天前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
|
26天前
|
测试技术 Linux 数据库
【Docker项目实战】使用Docker部署Xnote轻量级笔记系统
【6月更文挑战第19天】使用Docker部署Xnote轻量级笔记系统
33 3
|
7天前
|
Ubuntu Linux 数据安全/隐私保护
Linux系统使用Docker部署Cloudreve云盘并实现远程访问
Linux系统使用Docker部署Cloudreve云盘并实现远程访问
15 0
|
1月前
|
Linux 测试技术 开发者
【Docker项目实战】使用Docker部署instantbox临时Linux系统环境搭建工具
【6月更文挑战第13天】使用Docker部署instantbox临时Linux系统环境搭建工具
45 3
|
1月前
|
运维 Cloud Native 云计算
未来云计算:构建下一代云原生生态系统
在数字化时代,云计算已成为企业和组织转型的关键驱动力。本文探讨了未来云计算发展的趋势和挑战,提出了构建下一代云原生生态系统的重要性和关键要素,以应对日益复杂的技术和业务需求。通过引入容器化、微服务架构、自动化运维等新技术,未来云原生将实现更高效、灵活和可靠的云计算应用。
|
2月前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键角色移动应用开发的未来:跨平台框架与原生系统的融合
【5月更文挑战第31天】 随着企业加速其数字化转型的步伐,云原生架构已成为推动创新和实现敏捷性的关键技术。本文将深入探讨云原生技术的核心概念、优势以及如何在组织中实施这些技术以提高效率和竞争力。通过分析微服务、容器化、持续集成和持续部署(CI/CD)以及DevOps文化等关键组成部分,我们将揭示如何利用云原生架构来优化资源使用、加快产品上市时间并确保系统的可扩展性和可靠性。
|
2月前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用构建高效云原生应用:云平台的选择与实践
【5月更文挑战第31天】 随着人工智能技术的飞速发展,深度学习已经成为推动计算机视觉进步的关键力量。特别是在图像识别领域,通过模仿人脑处理信息的方式,深度学习模型能够从大量数据中学习并识别复杂的图像模式。本文将探讨深度学习技术在自动驾驶系统中图像识别方面的应用,重点分析卷积神经网络(CNN)的结构与优化策略,以及如何通过这些技术提高自动驾驶车辆的环境感知能力。此外,文章还将讨论目前所面临的挑战和未来的研究方向。
|
26天前
|
网络协议 Linux Shell
【权限提升】Linux系统&Docker挂载&Rsync未授权&Sudo-CVE&Polkit-CVE
【权限提升】Linux系统&Docker挂载&Rsync未授权&Sudo-CVE&Polkit-CVE