Docker 方式部署 Solo 博客系统总结
此篇为Docker部署方式,另有Tomcat部署方式,请参考文章《Tomcat 方式部署 Solo 博客系统总结》
最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻,学习收获等内容,正如你所看到的这个网站。再搭建过程中遇见了不少的困难和问题,再此做下记录和总结。想了解Solo开源博客系统的可以去Solo官网了解下!
开始正题:
一、搭建方式概述
基于阿里云服务器通过Docker方式部署,操作系统使用CentOS,数据库使用MySQL(也正是Solo默认推荐的数据库)。为了方便部署和提高效率,我还使用了Xshell和Xftp工具,基本所有的操作任务在这两个工具中都可以完成。
二、步骤概述
1、购买阿里云服务器;
2、本地安装Xshell和Xftp工具;
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 博客系统总结的更多相关文章
- Tomcat 方式部署 Solo 博客系统总结
此篇为Tomcat部署方式,另有Docker部署方式,请参考文章<Docker 方式部署 Solo 博客系统总结> 一.环境和文件准备 服务器:购买的阿里云服务器,系统为Linux(C ...
- war包方式部署solo博客
solo,一款小而美的博客系统,GitHub:https://github.com/b3log/solo 环境和文件准备 服务器:用的阿里云服务器,系统是 CentOS 7.3 64 位. JDK:1 ...
- 使用docker部署WordPress博客系统(win10企业版)
docker介绍: docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相 ...
- Solo 博客系统 1.7.0 发布 - 新版 MD 编辑器
本次发布主要是更新了 Markdown 编辑器,加入了全屏.Emoji 自动完成.粘贴时自动转换为 MD 格式的特性.(1.7.0 版本变更记录请看这里) 目前的 Markdown 编辑器有多好用呢? ...
- 使用阿里云 ECS 快速部署 WordPress 博客系统
今天在 阿里云 ECS上 部署了一套 Lamp 系统,建了一个WordPress的网站,把操作过程记录下来,文中所列脚本可以直接应用. 废话不多说直接开动,ECS云服务购买可以点击 阿里云ECS 云主 ...
- docker 搭建一个wordpress 博客系统(4)
安装lnmp ()下载镜像 [root@server ~]# docker pull mysql:latest #下载mysql镜像 [root@server ~]# docker pull rich ...
- 基于开源博客系统(mblog)搭建网站
基于开源博客系统(mblog)搭建网站 上一章讲了基于jpress部署的博客系统,这一章了解一下 mblog这个开源的基于springboot的博客系统,相比与jpress 的热度fork数量要少一些 ...
- Centos 7使用docker部署LAMP搭建wordpress博客系统
0.简要概述 LAMP是目前比较流行的web框架,即Linux+Apache+Mysql+PHP的网站架构方案.docker是目前非常流行的虚拟化应用容器,可以为任何应用创建一个轻量级.可移植的容器. ...
- 使用Docker部署Spring-Boot+Vue博客系统
在今年年初的时候,完成了自己的个Fame博客系统的实现,当时也做了一篇博文Spring-boot+Vue = Fame 写blog的一次小结作为记录和介绍.从完成实现到现在,也断断续续的根据实际的使用 ...
随机推荐
- 深入学习Spring框架(四)- 事务管理
1.什么是事务? 事务(Transaction)是一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的逻辑工作单位.事务是为了保证数据库的完整性.例如:A给B转账,需 ...
- CDQZ集训DAY10 日记
又一次跪了,跪在了神奇的数据范围上. T1上来打完暴力之后觉得是数据结构题,像三维偏序,于是开始往各种数据结构上想,主席树,线段树+calc,平衡树,树套树,CDQ……最终在经过一番思考之后选择去打C ...
- 在 Microsoft.VisualStudio.Setup.Engine.Install(Product product, String destination, CancellationToken token)无法在相同位置或现有实例“20cc4971”的子目录上安装指定实例“ebc82a8e”的解决方案
在所在的安装目录根目录下搜索实例 如 20cc4971 将文件夹全部删除. 一般默认安装在C盘,所以在C盘搜索实例文件夹,将其全部删除.
- RabbitMQ(一):RabbitMQ快速入门
RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用.作为一名合格的开发者,有必要对RabbitMQ有所了解,本文是RabbitMQ快速入门文章. RabbitMQ ...
- Button事件的三种实现方法
onclick事件的定义方法,分为三种,分别为在xml中进行指定方法:在Actitivy中new出一个OnClickListenner():实现OnClickListener接口三种方式. 1.在xm ...
- [蓝桥杯] Fibonacci数列 入门
原题链接 import java.util.Scanner;//导入Scanner类 public class Main { public static void main(String[] args ...
- IP地址/掩码/网关/DNS的设置与工作原理(转)
现在互联网飞速发展,工作中生活中上不了网的计算机是不可想象的,而电脑系统网络设置中的IP地址.子网掩码.默认网关及DNS服务器,怎么理解,它们是如何工作的,下面做个简单介绍. 通常的上网方式,是打开I ...
- php 排序和置顶功能实现
(1)排序操作思路 一般来说都是按照发布时间排序.时间戳大的靠前,所以用倒序desc,而不是asc (2)置顶操作思路: 点击置顶时,修改数据库addtime字段值为当前时间即可.因为排序是按照时间戳 ...
- Java Web项目案例之---登录和注册(精华版)
登录和注册(精华版) (一)实现功能 1.使用cookie记录登录成功的用户名,用户选择记住用户名,则用户再次登录时用户名自动显示 2.实现文件上传功能(上传文件的表单上传于普通的表单上传不同,必须是 ...
- windows下用easybcd引导ubuntu出现grub的解决方案
linux安装时吧boot挂在到单独的分区 如果grub覆盖了mbr的话可以用pe工具箱修复windows的mbr linux引导项选grub 驱动器选安装时挂载了/boot的分区 添加条目 启动即可 ...