个人博客系统搭建笔记--Docker篇
1.什么是Docker
Docker 是基于Go语言实现的开源容器项目。利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化(通俗解释:Docker内嵌极小型系统,例如Linux只有5M多,windows也是)。它是内核级的虚拟化。期望达到使项目运行环境“一次封装,到处运行的目的”。
在Docker里面可以设置使用Windows还是Linux系统,默认是用Linux系统,基于Ubuntu的,只有5M多,包含了最基本功能。
利用docker创建的运行环境叫做docker容器,容器是通过docker镜像创建的,docker镜像文件可以放在私有仓库中也可以放在共有仓库中。
官网地址:https://www.docker.com
二、Docker 安装与启动
1.安装
1.1.下载docker-ce repo
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
1.2. 安装依赖
yum install -y https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
1.3. 安装docker-ce
yum install -y docker-ce
2.启动
2.1. 启动命令
systemctl start docker
2.2. 查看Docker状态
docker info
结果如下:

3.镜像加速器配置
默认情况下Docker从Docker Hub上下载镜像资源,但速度很慢,可以通过配置国内的镜像加速器来解决。
3.1. 使用阿里云镜像
3.2. 进入容器镜像服务

3.3. 进入管理控制台

3.4. 进入镜像加速器

3.5. 选择对应的OS并配置

3.6. 验证镜像加速器是否配置成功
通过docker info命令验证镜像加速器配置,结果如下:

三、安装redis
1.获取redis镜像
docker pull redis:6.0.5

2.查看本地镜像
docker images

3.从官网获取redis.config配置文件
# 进入文件夹
cd /local/docker
wget http://download.redis.io/redis-stable/redis.conf //下载redis配置文件
vim redis.conf //修改配置文件
1.注释bind 127.0.0.1。这里限制redis只能本地访问,注释掉之后使redis可以外部访问;
2.protected-mode yes 修改为 protected-mode no。默认yes,开启保护模式,限制仅本地访问,改为no之后使redis可以外部访问;
3.daemonize no 。默认no,当前界面将进入redis的命令行界面,exit强制退出或者关闭连接工具(putty,xshell等)都会导致redis进程退出。 改为yes意为以守护进程方式启动,该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程,如果改为yes会使以配置文件方式启动redis的方式失败。
4.requirepass pwd。这里的pwd是自己设置的密码,可以不开启,不开启表示无需密码即可连接。
5.databases 16。默认数据库个数16,可以不修改。
6.appendonly no。默认 no,表示不开启aof方式持久化,改为appendonly yes表示开启aof,可以不修改该配置。
文件夹如下:

4. 启动redis
docker run \
--name redis \
-p 6379:6379 \
--restart unless-stopped \
-v /local/docker/redis/data:/data \
-v /local/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf \
5. 查看redis运行是否成功
#查看redis容器运行
docker ps |grep redis
#进入redis容器中
docker exec -it redis /bin/bash
#使用redis客户端
redis-cli
#设置密码
config set requirepass 123456

四、安装mysql
1. 拉取镜像
docker pull mysql:8.0.16
2. 创建数据目录和配置文件
[root@king docker]# mkdir -p mysql
[root@king docker]# cd mysql/
[root@king mysql]# mkdir data
[root@king mysql]# mkdir conf
[root@king mysql]# chmod -R 755 /local/docker/mysql
[root@king conf]# vim my.cnf
添加以下内容到上述创建的配置文件中
[client]
#socket = /usr/mysql/mysqld.sock
default-character-set = utf8mb4
[mysqld]
#pid-file = /var/run/mysqld/mysqld.pid
#socket = /var/run/mysqld/mysqld.sock
#datadir = /var/lib/mysql
#socket = /usr/mysql/mysqld.sock
#pid-file = /usr/mysql/mysqld.pid
datadir = /local/docker/mysql/data
character_set_server = utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/
3.启动创建容器
docker run --restart=unless-stopped -d --name mysql \
-v /local/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /local/docker/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.16
查看容器启动情况
docker info
4.修改mysql密码以及可访问主机
- 进入mysql容器内部
[root@king conf]# docker exec -it mysql /bin/bash
-
连接mysql
mysql -uroot -p -
使用mysql库
use mysql -
修改访问主机以及密码等,设置为所有主机可访问
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; -
刷新
flush privileges
五、Halo服务器安装
1.创建工作文件夹
# 创建工作文件夹
[root@king local]# mkdir halo
[root@king local]# ls
docker halo upload
[root@king local]# cd halo/
#下载配置文件
[root@king halo]# wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
2.修改配置文件
vim application.yaml
Halo默认内嵌了H2数据库,在这里我使用了mysql数据库
server:
port: 8090
# Response data gzip.
compression:
enabled: false
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: 123456
halo:
# Your admin client path is https://your-domain/{admin-path}
admin-path: admin
# memory or level
cache: memory
创建数据库
create database halodb character set utf8mb4 collate utf8mb4_bin;
3.拉取镜像
docker pull halohub/halo
4.创建并启动容器
docker run -it -d --name halo -p 8090:8090 -v /local/docker/halo:/root/.halo --restart=unless-stopped halohub/halo
六、安装JDK8
1.上传文件
将jdk文件上传到/local/upload
2.解压压缩包
tar zxf jdk-8u221-linux-x64.tar.gz
3.移动文件
mv jdk1.8.0_221 /local/soft/jdk
4.配置环境变量
在linux中/etc/profile此文件为环境变量配置文件。
#export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/local/soft/jdk
export PATH=$JAVA_HOME/bin:$PATH
#进入etc文件夹并且编译profile文件
cd /etc && vim profile

5.解析文件
不解析,必须通过重启才能生效。只要解析不需要重启了
source /etc/profile
6.查看配置是否成功
java -version

七、安装solr
1.上传文件
上传压缩包solr-8.2.0.tgz到/local/upload中。
2.解压
[root@king upload]# tar zxf solr-8.2.0.tgz
3.移动文件
mv solr-8.2.0 /local/soft/solr
4.Solr常用目录简介

bin目录:可执行文件所在目录。
dist目录:Solr对外提供的核心、扩展、插件等代码jar文件。
server目录:Solr搜索应用服务器核心目录。
server/solr:Solr的索引库所在位置
server/solr-webapp:Solr的WAR核心应用
server/etc:Solr的核心配置
5.修改启动参数
修改启动参数,否则启动时报警告。提示设置SOLR_ULIMIT_CHECKS=false
[root@king solr]# cd bin && vim solr.in.sh

6.启动solr
Solr内嵌Jetty,直接启动即可。默认监听8983端口。
Solr默认不推荐root账户启动,如果是root账户启动需要添加-force参数。
./solr start -force
启动成功如下图所示:

注意:阿里云服务器8983端口放行

7.可视化管理界面
在浏览器输入ip:8983就可以打开solr可视化管理页面了

左侧有5个菜单。分别是:
(1)Dashboard:面板显示Solr的总体信息。
(2)Logging:日志
(3)Core Admin:Solr的核心。类似于数据的Database
(4)Java Perperties:所有Java相关属性。
(5)Thread Dump:线程相关信息。
(6)如果有Core,将显示在此处。
8.创建核心(索引库)
Solr安装完成后默认是没有核心的。需要手动配置。
需要在solr/server/solr下新建文件夹,并给定配置文件,否则无法建立。
8.1 新建目录
在 /local/soft/solr/server/solr中新建自定义名称目录。这里我创建了名为blog的目录
#进入对应文件夹
[root@king ~]# cd /local/soft/solr/server/solr
#创建blog文件夹
[root@king solr]# mkdir blog
8.2 复制配置文件
在configsets里面包含了_default和sample_techproducts_configs。里面都是配置文件示例。_default属于默认配置,较纯净。sample_techproducts_configs是带有了一些配置示例。
[root@king solr]# cp -r configsets/_default/conf/ blog/
8.3 创建 core
在可视化管理界面填写如下信息

最后点击Add Core按钮创建
创建成功结果如下:

9.安装中文分词器
9.1上传文件
上传ik-analyzer-8.2.0.jar到/local/upload文件夹下
9.2复制文件
将ik-analyzer-8.2.0.jar文件复制/local/soft/solr/server/solr-webapp/webapp/WEB-INF/lib文件夹下
[root@king upload]# cp ik-analyzer-8.2.0.jar /local/soft/solr/server/solr-webapp/webapp/WEB-INF/lib/
9.3修改配置文件
修改managed-schema文件
[root@king /]# vim /local/soft/solr/server/solr/blog/conf/managed-schema
<fieldType name="text_zh_cn" class="solr.TextField">
<analyzer>
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<!--自定义字段,类似于设计数据表一样-->
<!--ID-->
<!--ID 已经在前面有了-->
<!--浏览量-->
<field name="blog_view_count" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<!--标题-->
<field name="blog_title" type="text_zh_cn" indexed="true" stored="true" required="true" multiValued="false" />
<!--内容-->
<field name="blog_content" type="text_zh_cn" indexed="true" stored="true" required="true" multiValued="false" />
<!--创建时间-->
<field name="blog_create_time" type="date" indexed="true" stored="true" required="true" multiValued="false" />
<!--标签-->
<field name="blog_labels" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<!--文章链接-->
<field name="blog_url" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<!--分类ID-->
<field name="blog_category_id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<!--搜索item-->
<field name="search_item" type="text_zh_cn" indexed="true" stored="true" required="true" multiValued="true" />
<copyField source="blog_title" dest="search_item"/>
<copyField source="blog_content" dest="search_item"/>
<copyField source="blog_labels" dest="search_item"/>
排版:Esc 退出编辑状态下:gg=G

9.4 重启
[root@king /]# cd /local/soft/solr/bin/
[root@king bin]# ./solr stop -all
[root@king bin]# ./solr start -force
9.5 验证


图片来源于:https://upload-images.jianshu.io/upload_images/10139744-19785d5c0484474c.jpg
10.配置Dataimport
使用Solr自带的Dataimport功能把数据库中数据快速导入到solr中.
必须保证managed-schema和数据库中表的列对应。
10.1 修改solrconfig.xml配置文件
[root@king bin]# cd /local/soft/solr/server/solr/blog/conf/
[root@king conf]# vim solrconfig.xml
<!-- 配置数据导入的处理器 -->
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<!-- 加载data-config.xml -->
<str name="config">data-config.xml</str>
</lst>
</requestHandler>

10.2 新建data-config.xml
和solrconfig.xml同一目录下新建data-config.xml

浙公网安备 33010602011771号