杂记 | Linux服务器使用docker安装keycloak(docker-compose)

news2024/11/20 10:28:02

文章目录

  • 01 关于keycloak
  • 02 准备工作
    • 2.1 安装docker
    • 2.2 安装docekr-compose
    • 2.3 获取https证书
  • 03 编写docker-compose.yml
  • 04 访问keycloak


01 关于keycloak

Keycloak是一个开源的身份和访问管理解决方案,由RedHat公司开发和维护。它提供了一套全面的工具和功能,帮助开发人员实现安全的用户身份验证和授权机制,同时简化了应用程序的身份和访问管理流程。
关于keycloak的详细介绍及相关概念,参考我之前的一篇文章:keycloak的介绍和基本概念

本文写作日期是2023年6月,截至目前,keycloak的最新稳定版本是21.1.1

官网:https://www.keycloak.org

官方文档:https://www.keycloak.org/documentation

GitHub:https://github.com/keycloak/keycloak

本文介绍通过docker安装并启动keycloak,具体使用docker-compse的方式。

02 准备工作

2.1 安装docker

参考我的另一篇文章:Linux下Docker的安装与常用命令

2.2 安装docekr-compose

# 先从github上下载 也可在本地下载好后上传到服务器的/usr/local/bin目录
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose

# 然后添加可执行权限
chmod +x /usr/local/bin/docker-compose

# 安装完成后查看版本(检查可用性)
docker-compose --version

2.3 获取https证书

访问keycloak需要使用https,如果有域名,可以去服务商获取可信证书,作为学习,我们也可以使用命令生成自签名的证书,直接通过ip进行访问。

# 将xxx.xxx.xxx.xxx替换为服务器公网ip或域名
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt -subj "/CN=xxx.xxx.xxx.xxx"

使用OpenSSL工具生成一个自签名的证书。生成的证书将在当前目录下生成两个文件:server.key(私钥)和 server.crt(证书文件)。
注意,自签名证书不会被公共信任机构所信任,不适用于开发环境。

03 编写docker-compose.yml

在官方文档的介绍中,使用下面这条命令可启动一个简单的keycloak。

docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:21.1.1 start-dev

不过我们有一些定制化的需求,例如,不使用keycloak自带的数据库,而使用自己的mysql数据库,可以通过更多命令参数实现,这里采用docekr-compose的方式完成。
docker-compose.yml文件如下,请根据自己实际情况更改:

version: '3.7'
services:
  # mysql容器
  mysql:
    container_name: mysql
    image: mysql
    command: --lower_case_table_names=1 --sql-mode=""	# 可选
    ports:
      - 3306:3306
    volumes:
      - ./db-init:/docker-entrypoint-initdb.d			# 可选
      - ./data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: keycloak
      TZ: Asia/Shanghai									# 可选
  # keycloak容器
  keycloak:
    container_name: keycloak
    image: quay.io/keycloak/keycloak:21.1.1
    depends_on:
      - mysql
    environment:
      # 设置管理员账号密码
      KEYCLOAK_ADMIN: admin
      KEYCLOAK_ADMIN_PASSWORD: admin
	  # 数据库配置
      KC_DB: mysql
      KC_DB_USERNAME: root
      KC_DB_PASSWORD: 123456
      KC_DB_URL: jdbc:mysql://ip:3306/keycloak			# 能连接到数据库的ip 例如公网ip
      quarkus.transaction-manager.enable-recovery: true	# 可选
    ports:
      - 8443:8443
    security_opt: 
      - seccomp:unconfined								# 可选
    volumes:
      - /root/keycloak/cert:/etc/x509/https
      # 下面3行卷映射为可选配置
      - /var/keycloak/conf/quarkus.properties:/opt/keycloak/conf/quarkus.properties
      - /var/keycloak/themes:/opt/keycloak/themes
      - /etc/localtime:/etc/localtime
    privileged: true									# 可选
    command: start --hostname=公网ip或域名 --https-certificate-file=/etc/x509/https/cert.pem --https-certificate-key-file=/etc/x509/https/key.pem

在这一docker-compose.yml文件中,配置了keycloak使用mysql数据库,https证书通过卷映射可获取,配置为:/root/keycloak/cert:/etc/x509/https
需将刚才生成的证书文件存放在主机的/root/keycloak/cert目录下。
最后在执行启动命令时指定了证书文件(注意证书文件名)

接下来启动docker-compose

# 首次启动先拉取镜像
docker-compose pull

# 启动命令
docker-compose up -d

# 关闭命令
docker-compose down

# 查看日志
docker-compose logs

04 访问keycloak

启动好后稍等片刻,可通过ip或域名访问。
在上面的配置中,使用的是ip地址,端口使用的是8443。
访问https://xxx.xxx.xxx.xxx:8443即可。
在这里插入图片描述
因为是自签名证书,提示不安全,忽略,点击继续访问。
在这里插入图片描述
访问成功,点击左侧的Administrator Console进行登录,输入刚才配置的账号和密码(admin)。
在这里插入图片描述
可以按图所示将界面改为中文。
在这里插入图片描述
到此,keycloak就安装成功了!🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/694060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

centos 安装 nginx

1.下载nginx安装包 wget -c https://nginx.org/download/nginx-1.24.0.tar.gz 下载到了当前目录下 2.解压安装包 解压后的结果 3.安装依赖 yum -y install gcc gcc-c make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel 4. ./configure --prefix/usr/lo…

雷达侦察系统

文章目录 前言 一、系统组成 二、数字信道化侦察接收机 三、信号处理器 总结 前言 本人主要从事电子侦察中辐射源目标定位的研究工作,下面简单介绍传统雷达侦察系统的简单系统组成,希望有研究相同方向的同行可以私信交流。 一、系统组成 典型雷达侦察…

python机器学习—— 数据预处理 算法初步

目录 数据预处理1.获取数据2.处理缺失值3.划分数据集4.数据预处理和PCA降维5.算法实现:估计器 数据预处理 1.获取数据 from sklearn.datasets import load_iris liload_iris() print("获取特征值") print(li.data) print("目标值",li.target)#…

千万级规模微服务稳定性技术揭秘:隔离策略

随着当今云原生的发展,无状态微服务系统通过其良好的设计理念和相关技术栈的成熟,成为越来越多企业建设系统的首选,但不可避免的是随着微服务拆分系统增多,稳定性慢慢会被重视,如何保证服务7*24小时不间断服务&#xf…

数据结构---循环链表

数据结构—循环链表 循环单链表 typedef struct LNode {ElemType data;struct LNode* next; }LNode, *LinkList;循环单链表初始化 bool InitList(LinkList &L) {L (LNode*)malloc(sizeof(LNode));if (L NULL) return false;L->next L; //头结点next指向头结点retur…

Postman:mock server简单使用,自定义获取response body

一.mock server的作用 创建一个虚假的服务器接口,只要访问就可以返回设定好的response. 可用于接口调试和接口自动化测试。 二.操作步骤 首先创建一个mock server 指定response body 创建成功后Collections那里会自动多一个跟mock server 对应的接口 接下来…

前端Vue自定义银行卡号格式化组件 中间卡号文本转星号

前端Vue自定义银行卡号格式化组件 中间卡号文本转星号, 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13230 效果图如下: # cc-format-card #### 使用方法 使用方法 <!-- cardNo:银行卡号 isStar: 是否转星号 --> <cc…

基于Debian 12 “Bookworm “的SparkyLinux 7.0 “Orion Belt” 正式发布

导读SparkyLinux 开发人员今天宣布&#xff0c;SparkyLinux 7.0 “Orion Belt “已经发布并全面上市&#xff0c;这是这个基于Debian的GNU/Linux发行版的最新稳定更新。 基于最近发布的Debian 12 “Bookworm “操作系统系列&#xff0c;并与2023年7月15日的资料库同步&#xff…

bug汇集-三

1、 2、async...await 同步执行 方法一&#xff08;推荐&#xff09;&#xff1a;使用 async...await 同步执行 方法二: 不用async...await&#xff0c;就是异步处理&#xff0c;需要每一步 都加提示

如何不注册Oracle登录账号而下载Oracle11g客户端

注册非常烦人。简单的事情本来一个安装包就搞定的事情&#xff0c;结果搞得比上天还复杂。 进入这个界面&#xff1a; Instant Client for Windows 32-bithttps://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html打开界面后。用浏…

【安全】使用docker安装Nessus

目录 一、准备docker环境服务器&#xff08;略&#xff09; 二、安装 2.1 搜索镜像 2.2 拉取镜像 2.3 启动镜像 三、离线更新插件 3.1 获取challenge 3.2 官方注册获取激活码 3.3 使用challenge码和激活码获取插件下载地址 3.4 下载的插件以及许可协议复制到容器内 四…

数字逻辑与模拟电子技术-部分知识点(3)——数电部分-基本逻辑运算、复合逻辑运算

目录 基本逻辑运算 与逻辑运算 或逻辑运算 非逻辑运算 复合逻辑运算 与非逻辑 或非逻辑 与或非逻辑 异或逻辑 同或逻辑 基本逻辑运算 逻辑代数中只有三种基本逻辑运算,即 “与”、“或”、“非”。 与逻辑运算 定义&#xff1a;只有决定一事件的全部条件都具备时&…

怎么学习网络安全相关知识? - 易智编译EaseEditing

学习网络安全相关知识是一个系统性的过程&#xff0c;以下是一些学习网络安全的方法和建议&#xff1a; 学习基础知识&#xff1a; 了解计算机网络、操作系统、网络协议等基础知识。掌握网络的工作原理、常见的网络攻击方式和防御策略。 学习安全技术&#xff1a; 学习各种网…

Spark 3.4.x Server Client模式下的数据传输实现

背景 在Spark中python和jvm的通信杂谈–ArrowConverter中&#xff0c;我们提到Spark 3.4.x中是Client和Server之间的数据传输是采用Arrow IPC的&#xff0c;那具体是怎么实现的呢&#xff1f; 分析 直接上代码ClientE2ETestSuite test("createDataFrame from complex t…

nginxconfig-部属

一、下载源码&#xff08;master&#xff09; GitHub - digitalocean/nginxconfig.io: ⚙️ NGINX config generator on steroids &#x1f489; 二、编译 npm install npm run build 三、将编译后的dist目录下的文件拷贝到nginx托管服务器下的目录&#xff1a;/data/wwwroot…

zabbix微信告警

环境&#xff1a;点击查看 注册一个企业微信&#xff08;官网&#xff09; 进入后台管理 拉一个用户 创建一个应用 下载脚本&#xff08;这步保留个人看法&#xff09; [rootchenshuyi requests-2.18.3]# wget https://github.com/X-Mars/Zabbix-Alert-WeChat.git --2021-0…

原淘宝npm域名即将停止解析,请切换至新域名

https://developer.aliyun.com/mirror/NPM?spma2c6h.13651102.J_4121707010.2.3e221b11kPiuyz 设置查看npm 国内镜像地址 C:\>npm config get registry http://registry.npmmirror.com/C:\>npm config set registry http://registry.npmmirror.com/C:\>npm config …

windows安装python开发工具pycharm

下载地址 PyCharm: the Python IDE for Professional Developers by JetBrains 点击下载 安装 双击exe安装等待安装完成即可 设置python环境 添加本地python环境 选择python.exe 所在路径即可&#xff0c;2.x版本和3.x版本都可&#xff0c;根据需要进行调整

清华大学发布《2023年GPT赋能通信行业应用白皮书》(132页)

加gzh 回复“gpt” 获取《2023年AIGC(GPT-4)赋能通信行业应用白皮书》完整版 摘要&#xff1a;在ChatGPT/GPT-4席卷全球的热潮中&#xff0c;人们已经深刻认识到人工智能作为经济社会发展中一项变革性技术与关键性力量&#xff0c;将为全球产业带来的巨大飞跃和突破式发展&a…

SVN 多项目地址指向方法

前言 我们在实际的开发中往往可能管理着多个项目&#xff0c;多个项目都用SVN管理着&#xff0c;如果遇到SVN地址变更&#xff0c;以前我们需要对每个项目一一进行SVN重新定位&#xff0c;项目少还好&#xff0c;一旦项目很多并且SVN地址经常变的情况下&#xff0c;进行地址映…