keycloak的部署使用
keycloak部署使用
docker相关命令本文不做描述,请参考docker官方文档[(https://www.runoob.com/docker/docker-tutorial.html)
- 通过dockerfile创建keycloak镜像并启动
- 创建Dockerfile文件内容如下
FROM java:8
VOLUME /tmp
ADD /keycloak-9.0.2/ /keycloak
EXPOSE 8080
ENTRYPOINT ["/keycloak/bin/./standalone.sh"] - 在Dockerfile同级目录下执行docker build -t keycloak . //keycloak镜像别名 点不能缺少
- 启动容器
- docker run -itd -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin keycloak
-keycloak内置H2数据库,可以更换成mysql,具体操作如下
- docker ps 找到启动的进程
- 修改standalone.xml 数据库配置
- 还有一点很重要interface要改成,要不然不是同一局域网无法访问keycloak,
也是我实际应用中花了点时间才找到的。 - 修改standalone.xml配置后,要把对应的mysql的jar包引入到keycloak中。
- 下载keycloak.zip,上传到dockerfile同级目录并解压unzip xx.zip
- 创建keycloak-9.0.2/modules/system/layers/base/com/mysql/driver/main目录
将jar和xml上传上去 - 然后通过以下命令启动,启动之前需要在配置的mysql里建个数据库,数据库名字同standalone.xml配置mysql的名字,启动好后,会初始化数据库表
docker run -itd -p 8080:8080 -v /opt/mysql/module.xml:/opt/jboss/keycloak/modules/system/layers/base/com/mysql/driver/main/module.xml -v /opt/mysql/mysql-connector-java-8.0.19.jar:/opt/jboss/keycloak/modules/system/layers/base/com/mysql/driver/main/mysql-connector-java-8.0.19.jar -v /opt/standalone/standalone.xml:/opt/jboss/keycloak/standalone/configuration/standalone.xml -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin keycloak
- 启动成功后,直接访问ip:8080
- 第一次访问时,需要手动创建admin账号,进入keycloak容器
- docker ps 查到keycloak进程
- docker exec-it 进程号 /bin/bash
- 进入到
执行./add-user-keycloak.sh -u admin,然后提示输入密码,输入后回车
exit退出容器,然后重启keycloak docker restart 进程号
再次访问ip:8080如上图所示。
- 点击Administration Console 进入登录页面,会提示HTTPS…
- 需要我们在次进入keycloak容器,同上面步骤,进入到bin目录
- 执行以下命令
- ./kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin
./kcadm.sh update realms/master -s sslRequired=NONE
再次刷新页面,就可以正常登录了。