一、docker安装

在 Ubuntu 20.04 LTS(或更高版本) 中安装 Docker

0、若安装过旧版本,使用以下命令卸载
sudo apt-get remove docker \
docker-engine \
docker.io

1、更新 Ubuntu
打开终端,依次运行下列命令:
sudo apt update

sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release

2、添加 Docker 库
首先,安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库:
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

然后,运行下列命令添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加 Docker 官方库:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

使用命令更新 Ubuntu 源列表:
sudo apt update

3、安装 Docker
最后,运行下列命令在 Ubuntu 服务器中安装最新 Docker CE:
sudo apt install docker-ce docker-ce-cli containerd.io

4、docker镜像加速
一般国内不容易访问到 https://hub.docker.com ,可以将docker镜像地址修改到国内的加速地址
在 /etc/docker/ 路径下创建 daemon.json 文件,内容如下:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://registry.aliyuncs.com",
"https://mirror.baidubce.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
之后重启docker服务:
sudo systemctl restart docker

5、设置Docker服务在每次开机时自动启动
sudo systemctl enable docker

6、建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。
出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
6.1、建立 docker 组:
$ sudo groupadd docker
6.2、将当前用户加入 docker 组:
$ sudo usermod -aG docker $USER
6.3、当前用户加入docker组后每次执行命令就不需要sudo来提升权限了

官方教程:https://docs.docker.com/engine/install/ubuntu/
中文参考文档:https://yeasy.gitbook.io/docker_practice/install/ubuntu

 

二、kie-server单机部署

单机部署可用于drools规则引擎的学习和研究,一般生产不使用单机部署模式

1,docker拉取镜像
docker拉取workbench镜像
docker pull jboss/drools-workbench-showcase

docker拉取kie-server镜像
docker pull jboss/kie-server-showcase


2,启动应用
workbench 执行运行命令
docker run -p 8080:8080 -p 8001:8001 -d --name drools-workbench jboss/drools-workbench-showcase:latest

启动kie-server的命令
docker run -p 8180:8080 -d --name kie-server --link drools-workbench:kie_wb jboss/kie-server-showcase:latest


3,workbench账号
USER        PASSWORD    ROLE
*********************************************
admin        admin                admin,analyst,kiemgmt
krisv           krisv                  admin,analyst
john            john                  analyst,Accounting,PM
sales-rep   sales-rep           analyst,sales
katy            katy                  analyst,HR
jack            jack                   analyst,IT


4,访问地址
4.1,workbench
http://localhost:8080/business-central/kie-wb.jsp (latest版本)
或者
http://localhost:8080/drools-wb/kie-wb.jsp (7.15.0.Final版本)

4.2,kie-server
http://localhost:8180/kie-server/services/rest/server/


5,官方文档
5.1,workbench
https://hub.docker.com/r/jboss/drools-workbench-showcase

5.2,kie-server
https://hub.docker.com/r/jboss/kie-server-showcase

 

5.3,开发文档

https://docs.jboss.org/drools/release/7.25.0.Final/drools-docs/html_single/index.html

 

 三、kie-server集群部署

使用docker compose模板文件部署kie-server 可以实现kie-server集群部署

0,文档
官方文档:https://docs.docker.com/compose/install/
中文版参考文档:https://yeasy.gitbook.io/docker_practice/compose/introduction

1、compose.yml配置示例:

1.1、drools-workbench:

version: "3"
services:
drools-wb:
image: jboss/drools-workbench-showcase:7.15.0.Final
container_name: drools-wb
restart: unless-stopped
# volumes:
# - /opt/jboss/.m2:/opt/jboss/.m2
environment:
- JAVA_OPTS=-Xms2g -Xmx2g -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai
- KIE_REPOSITORY=http://10.108.3.44:8081/repository/public/
ports:
- 8080:8080
- 8001:8001

1.2、kie-server:
version: '2.1'
services:
kie-server:
image: jboss/kie-server-showcase:7.15.0.Final
container_name: kie-server
restart: unless-stopped
ports:
- 8181:8080
environment:
- KIE_SERVER_ID=kie-server
- JAVA_OPTS=-Xms2g -Xmx2g -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai
- DOCKER_PORT=8181
- KIE_SERVER_CONTROLLER=http://10.108.3.35:8080/drools-wb/rest/controller
- KIE_SERVER_LOCATION=http://10.108.3.25:8181/kie-server/services/rest/server
- KIE_MAVEN_REPO=http://nexus.myself.com/content/groups/public
- KIE_REPOSITORY=http://nexus.myself.com/content/groups/public


2、docker compose命令示例:
2.1 启动
sudo docker compose -f /opt/kie-server/compose.yml up

使用 -f 参数指定docer-compose模板文件位置,然后使用 up 命令启动镜像。加上 -d 参数后会以守护进程方式启动。
up 该命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。

2.2 停止
sudo docker compose -f /opt/kie-server/compose.yml down

生产环境不建议使用down命令来停止kie-server,因为down命令会删除容器,这也就意味着如果不挂载外部文件目录一旦使用down命令后,生产上的数据会永久删除。

2.3 注意
目前 Docker 官方用 GO 语言 重写 了 Docker Compose,并将其作为了 docker cli 的子命令,称为 Compose V2。
你可以参照官方文档安装,然后将熟悉的 docker-compose 命令替换为 docker compose,即可使用 Docker Compose。

 

四、进入容器内部

使用docker attach、docker exec命令均可进入容器内部。attach命令在退出容器时会导致容器的停止,建议使用exec命令。

docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。
只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。
当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。

例如,进入kie-server容器内部:

sudo docker exec -it kie-server bash

有用的知识:kie-server容器中有隐藏的.m2文件夹,听说是自实现的一套类似Maven功能,不是实际引用的Maven,目录为:/opt/jboss/.m2/

 

posted @ 2023-09-04 09:39 追你追到 阅读(788) 评论(0) 推荐(0) 编辑
摘要: RedisTemplate配置Java源码: import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fa 阅读全文
posted @ 2022-11-02 18:38 追你追到 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 在Ubuntu上我使用的是APT命令安装Redis:sudo apt install redis,安装完成之后redis.conf文件的默认路径是:/etc/redis/redis.conf,redis-server文件的默认路径是:/usr/bin/redis-server 假设我们有三个IP:1 阅读全文
posted @ 2022-11-02 18:17 追你追到 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 在最新的SpringBoot2.6中使用Swagger,引入springfox-swagger2后(版本2.9.2),启动项目报无法加载documentationPluginsBootstrapper: ERROR [main][org.springframework.boot.SpringAppl 阅读全文
posted @ 2021-11-26 15:08 追你追到 阅读(7685) 评论(1) 推荐(3) 编辑
摘要: 一、问题引入 在生活中,我们会遇到填写调查问卷的情况,比如中国移动推送的通话质量问卷、京东的购物体验问卷等等,这些问卷在生成之前往往会有一套复杂的逻辑,比如题目的跳转设置、不同题目之间的互斥设置、多选题的选项之间互斥设置,以及对答案的通过性判断等等。在这些背后,某些业务的实现就可以使用到本文所介绍的 阅读全文
posted @ 2021-02-18 14:36 追你追到 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: 一、问题引入 当我们导出一些数据到Excel表格时,有时候需要从不同的维度导出(如:个人维度,时间维度),不同维度所需的处理方式不同,此时的场景很适合用策略模式,下面就以不同维度导出Excel表格为例介绍策略模式。 二、策略模式概念和理论知识 2.1,策略模式的概念 在策略模式(Strategy P 阅读全文
posted @ 2021-02-18 14:35 追你追到 阅读(3279) 评论(1) 推荐(0) 编辑
摘要: 0,用VMWare安装3台CentOS8虚拟机 0.1,虚拟网络地址如下: hostname ipaddress subnet mask geteway 1、 CentOS-1 192.168.213.135 255.255.255.0 192.168.213.2 2、 CentOS-2 192.1 阅读全文
posted @ 2020-11-17 10:41 追你追到 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 1,异步委托方式 1 static void Main(string[] args) 2 { 3 //异步委托开启线程 4 Action<int, int, int> a = Add; 5 a.BeginInvoke(1, 2, 3, null, null); 6 7 } 8 static void 阅读全文
posted @ 2020-10-22 15:05 追你追到 阅读(1640) 评论(0) 推荐(0) 编辑
摘要: 1,继承Thread类 继承Thread类,重写run方法(不推荐,因为java的单继承局限性) 1 public class ExtendThread extends Thread { 2 3 /* 4 * 创建步骤如下: 5 * 1,定义Thread类的子类,并重写该类的run()方法,该run 阅读全文
posted @ 2020-10-22 14:47 追你追到 阅读(13724) 评论(0) 推荐(0) 编辑
摘要: 以下方式均是简单的打包部署,适合部署Java项目入门。做笔记记录,以备以后回顾。 打包格式是jar,运行平台是Windows。使用命令行由jvm执行jar包,运行项目。 一、使用Idea打包 1,在Project Structure创建一个Artifacts 以上两步还有两种方式实现:1,使用快捷键 阅读全文
posted @ 2020-06-05 11:18 追你追到 阅读(1701) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示