此篇为Docker部署方式,另有Tomcat部署方式,请参考文章《Tomcat 方式部署 Solo 博客系统总结

  最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻,学习收获等内容,正如你所看到的这个网站。再搭建过程中遇见了不少的困难和问题,再此做下记录和总结。想了解Solo开源博客系统的可以去Solo官网了解下!

  开始正题:

一、搭建方式概述

  基于阿里云服务器通过Docker方式部署,操作系统使用CentOS,数据库使用MySQL(也正是Solo默认推荐的数据库)。为了方便部署和提高效率,我还使用了Xshell和Xftp工具,基本所有的操作任务在这两个工具中都可以完成。

二、步骤概述

1、购买阿里云服务器;

2、本地安装XshellXftp工具;

3、服务器安装配置MySQL数据库;

4、服务器安装Docker;

5、通过Docker获取Solo镜像;

6、创建容器并运行。

三、具体内容

1、购买阿里云服务器并配置

  本人选择的是阿里云主机作为服务器,相对来说便于维护,若有条件也可用个人物理主机作为服务器。不过从便捷性上了来说推荐使用云服务器,代表有阿里云,腾讯云,华为云等等。具体不同云服务商的购买步骤不尽相同,不细展开,具体参考服务商官网。假如你现在已经有了自己的服务器了,其中系统为纯净CentOS7,那么看下一步。

2、本地电脑上安装XShell和XFtp软件

  安装过程略。

  这里只简单说下这两个工具连接CentOS的过程中的注意事项:CentOS的22端口需要打开,默认是打开的,如果没打开的话,需要操作两方面,一.CentOS系统本身的防火墙中打开22端口,二.阿里云对应该主机的安全组需要添加22端口的访问策略。

  首次连接时,建议记住密码,否则后期使用时,会经常让输入密码,很麻烦。

3、安装配置MySQL 8

  这里用过yum方式安装,需要用到MySQL官方提供的 mysql80-community-release-el7-1.noarch.rpm 文件。下载到本地后,通过XFtp工具上传到CentOS系统中,习惯于在CentOS系统/usr/local/目录下新建一个tmp文件夹,用于存放上传文件,这样便于管理自己的文件。

  现在已经将文件mysql80-community-release-el7-1.noarch.rpm放于/usr/local/tmp下,

然后,使用Xshell工具连接CentOS执行命令:

$ yum -y install mysql80-community-release-el7-1.noarch.rpm

  这时候就已经在安装MySQL了,其中 yum 命令是Linux中一种安装软件的方式,-y 表示在安装过程中遇到的所有询问,自动选择“是”。install表示安装动作。

等待自动过程安装完毕,执行下面命令安装和注册MySQL服务:

$ yum -y install mysql-community-server

  服务注册完成后,执行下面命令启动服务:

$ systemctl start  mysqld.service

  这边提示下centOS7以下的版本用的是service命令,centOS7开始需要使用systemctl命令。

此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

$ grep "password" /var/log/mysqld.log
2019-05-02T03:50:17.570037Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Dn!URfyNl6HP

  根据ROOT 用户名和密码登录服务:

$ mysql -u root -p

  接着让输入密码,就是刚才找到的密码,正确输入后登录成功。登录成功后就可以输入MySQL相关的命令来操作MySQL数据库了。这时候,第一件事,就是修改密码,执行如下和命令进行初始密码的修改:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

  注意:MySQL的命令全是以分号结尾,不要丢掉分号。且新密码要满足:同时含有大小写字母、数字、符号,并牢记。

  下面,需要新建一个数据库用户:

#创建用户:
mysql> CREATE USER 'username'@'host' IDENTIFIED BY 'password';
#默认新建用户的加密规则是caching_sha2_password方式,有些客户端不支持,所以修改为mysql_native_password方式:
mysql> alter user 'username'@'host' identified with mysql_native_password by 'password';

  username: 你将创建的用户名

  host: 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%

  password: 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

  到这里,退出MySQL,执行:

#退出MySQL命令模式
mysql> \q

  重启MySQL服务:

$ service mysqld restart

  用新用户登录MySQL并手动建库(库名 solo,字符集使用 utf8mb4,排序规则 utf8mb4_general_ci)。

CREATE DATABASE  `name` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

  到此,数据库部分已完成。

4、服务器安装Docker

  Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

  通过 uname -r 命令查看你当前的内核版本

root 权限登录 CentOS。若内核版本过低,执行命令 yum update 确保 yum 包更新到最新。

  安装需要的软件包

#yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum源
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安装最新稳定版docker
$ yum install docker-ce
#启动
$ systemctl start docker
#加入开机启动
$ systemctl enable docker
#验证安装是否成功
$ docker version

5、通过Docker获取Solo镜像

$ docker pull b3log/solo

6、创建容器并运行

  提前在CentOS中新建两个文件夹:/usr/local/tmp/solo/skins /usr/local/tmp/solo/images 用于下面将这两个文件挂载到要创建的容器中。

创建容器:

$ docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="username" \
--env JDBC_PASSWORD="password" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
--volume /usr/local/tmp/solo/skins:/opt/solo/skins \
--volume /usr/local/tmp/solo/images:/opt/solo/images \
b3log/solo --listen_port=80 --server_scheme=http --server_host=域名

  此时,容器被创建并开始运行。

Docker 方式部署 Solo 博客系统总结的更多相关文章

  1. Tomcat 方式部署 Solo 博客系统总结

      此篇为Tomcat部署方式,另有Docker部署方式,请参考文章<Docker 方式部署 Solo 博客系统总结> 一.环境和文件准备 服务器:购买的阿里云服务器,系统为Linux(C ...

  2. war包方式部署solo博客

    solo,一款小而美的博客系统,GitHub:https://github.com/b3log/solo 环境和文件准备 服务器:用的阿里云服务器,系统是 CentOS 7.3 64 位. JDK:1 ...

  3. 使用docker部署WordPress博客系统(win10企业版)

    docker介绍: docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相 ...

  4. Solo 博客系统 1.7.0 发布 - 新版 MD 编辑器

    本次发布主要是更新了 Markdown 编辑器,加入了全屏.Emoji 自动完成.粘贴时自动转换为 MD 格式的特性.(1.7.0 版本变更记录请看这里) 目前的 Markdown 编辑器有多好用呢? ...

  5. 使用阿里云 ECS 快速部署 WordPress 博客系统

    今天在 阿里云 ECS上 部署了一套 Lamp 系统,建了一个WordPress的网站,把操作过程记录下来,文中所列脚本可以直接应用. 废话不多说直接开动,ECS云服务购买可以点击 阿里云ECS 云主 ...

  6. docker 搭建一个wordpress 博客系统(4)

    安装lnmp ()下载镜像 [root@server ~]# docker pull mysql:latest #下载mysql镜像 [root@server ~]# docker pull rich ...

  7. 基于开源博客系统(mblog)搭建网站

    基于开源博客系统(mblog)搭建网站 上一章讲了基于jpress部署的博客系统,这一章了解一下 mblog这个开源的基于springboot的博客系统,相比与jpress 的热度fork数量要少一些 ...

  8. Centos 7使用docker部署LAMP搭建wordpress博客系统

    0.简要概述 LAMP是目前比较流行的web框架,即Linux+Apache+Mysql+PHP的网站架构方案.docker是目前非常流行的虚拟化应用容器,可以为任何应用创建一个轻量级.可移植的容器. ...

  9. 使用Docker部署Spring-Boot+Vue博客系统

    在今年年初的时候,完成了自己的个Fame博客系统的实现,当时也做了一篇博文Spring-boot+Vue = Fame 写blog的一次小结作为记录和介绍.从完成实现到现在,也断断续续的根据实际的使用 ...

随机推荐

  1. 深入学习Spring框架(四)- 事务管理

    1.什么是事务? 事务(Transaction)是一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的逻辑工作单位.事务是为了保证数据库的完整性.例如:A给B转账,需 ...

  2. CDQZ集训DAY10 日记

    又一次跪了,跪在了神奇的数据范围上. T1上来打完暴力之后觉得是数据结构题,像三维偏序,于是开始往各种数据结构上想,主席树,线段树+calc,平衡树,树套树,CDQ……最终在经过一番思考之后选择去打C ...

  3. 在 Microsoft.VisualStudio.Setup.Engine.Install(Product product, String destination, CancellationToken token)无法在相同位置或现有实例“20cc4971”的子目录上安装指定实例“ebc82a8e”的解决方案

    在所在的安装目录根目录下搜索实例 如 20cc4971 将文件夹全部删除. 一般默认安装在C盘,所以在C盘搜索实例文件夹,将其全部删除.

  4. RabbitMQ(一):RabbitMQ快速入门

    RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用.作为一名合格的开发者,有必要对RabbitMQ有所了解,本文是RabbitMQ快速入门文章. RabbitMQ ...

  5. Button事件的三种实现方法

    onclick事件的定义方法,分为三种,分别为在xml中进行指定方法:在Actitivy中new出一个OnClickListenner():实现OnClickListener接口三种方式. 1.在xm ...

  6. [蓝桥杯] Fibonacci数列 入门

    原题链接 import java.util.Scanner;//导入Scanner类 public class Main { public static void main(String[] args ...

  7. IP地址/掩码/网关/DNS的设置与工作原理(转)

    现在互联网飞速发展,工作中生活中上不了网的计算机是不可想象的,而电脑系统网络设置中的IP地址.子网掩码.默认网关及DNS服务器,怎么理解,它们是如何工作的,下面做个简单介绍. 通常的上网方式,是打开I ...

  8. php 排序和置顶功能实现

    (1)排序操作思路 一般来说都是按照发布时间排序.时间戳大的靠前,所以用倒序desc,而不是asc (2)置顶操作思路: 点击置顶时,修改数据库addtime字段值为当前时间即可.因为排序是按照时间戳 ...

  9. Java Web项目案例之---登录和注册(精华版)

    登录和注册(精华版) (一)实现功能 1.使用cookie记录登录成功的用户名,用户选择记住用户名,则用户再次登录时用户名自动显示 2.实现文件上传功能(上传文件的表单上传于普通的表单上传不同,必须是 ...

  10. windows下用easybcd引导ubuntu出现grub的解决方案

    linux安装时吧boot挂在到单独的分区 如果grub覆盖了mbr的话可以用pe工具箱修复windows的mbr linux引导项选grub 驱动器选安装时挂载了/boot的分区 添加条目 启动即可 ...