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

一、mBlog介绍

1.1 mBlog简介

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

2.2 mBlog功能

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

二、相关名词介绍

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。

hostnameIP地址操作系统版本Docker版本
jeven192.168.3.166centos 7.620.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 开启评论

在设置中,开启评论。

在这里插入图片描述

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

在这里插入图片描述

备注:本文禁止转载,转载需要获得本人授权。
现本人CSDN-id:jks212454授权在微信公众号:运维江湖客,id:gh_2eaa06b92a76发表该博文

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Docker是目前比较流行的容器化技术,其优点在于方便管理和部署应用程序。而Halo博客系统是一款基于Java开发的博客系统,其部署过程比较复杂,需要安装JDK、MySQL等依赖。本文将介绍如何使用Docker部署Halo博客系统。 1. 安装Docker 首先需要在服务器上安装Docker,可以参考官方文档进行安装。 2. 创建Docker镜像 将Halo博客系统打包成Docker镜像,可以通过Dockerfile或者docker-compose.yml文件进行创建。在这里我们以Dockerfile为例。 先创建一个空目录,将Halo博客系统的jar包和配置文件拷贝到该目录下: ``` mkdir -p /opt/halo cp -r halo.jar /opt/halo/ cp -r application.properties /opt/halo/ ``` 然后创建Dockerfile: ``` FROM openjdk:8-jre-alpine MAINTAINER yourname <[email protected]> ADD halo.jar /opt/halo/halo.jar ADD application.properties /opt/halo/application.properties WORKDIR /opt/halo CMD ["java", "-jar", "halo.jar", "--spring.config.location=application.properties"] EXPOSE 8888 ``` 其中FROM指定了基础镜像,ADD将jar包和配置文件拷贝到镜像中,WORKDIR指定工作目录,CMD指定应用启动命令,EXPOSE指定容器监听的端口。 使用docker build命令创建镜像: ``` docker build -t halo . ``` 其中halo为镜像名称,可以根据需要自行修改。 3. 启动容器 使用docker run命令启动容器: ``` docker run -d -p 8080:8888 --name halo-demo halo ``` 其中-d表示启动守护进程,-p将容器的8888端口映射到主机的8080端口,--name指定容器名称,halo为镜像名称。 启动成功后,在浏览器中输入http://localhost:8080访问Halo博客系统即可。 以上就是使用Docker部署Halo博客系统的步骤,相信通过这个实战,大家可以更好地了解云原生Docker使用部署

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖有缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值