新手求助:Linux环境下部署Keycloak的最简方法?
最简Keycloak部署指南(适配Docker基础用户)
一、本地Docker快速验证(最快跑通)
适合先在Linux本地验证功能,再迁移到云环境:
- 确保Docker已正常运行,执行启动命令:
docker run -d -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:latest start-dev - 访问
http://<你的Linux主机IP>:8080,用admin/admin登录控制台即可完成基础验证 - 注意:
start-dev是开发模式,仅用于测试,生产环境禁止使用
二、云服务简化部署(推荐,免运维)
如果不想折腾容器和服务器运维,直接用云托管方案:
Azure 修复版部署(解决之前的部署问题)
- 登录Azure门户,创建App Service,选择「容器」部署类型
- 镜像源选「Docker Hub」,输入镜像地址
quay.io/keycloak/keycloak:latest - 配置环境变量:添加
KEYCLOAK_ADMIN和KEYCLOAK_ADMIN_PASSWORD,启动命令填start-dev(测试用);生产环境需改用start并配置外部数据库 - 端口映射:将App Service的默认端口映射到容器的8080端口
- 部署完成后,直接访问App Service分配的域名即可
其他云托管选项
- AWS:用Elastic Container Service (ECS) 部署Keycloak容器,搭配RDS PostgreSQL作为存储
- Google Cloud:用Cloud Run部署,自动扩缩容,无需管理底层服务器
三、生产级简化部署(Docker Compose)
如果需要在本地或云虚拟机搭建生产环境,用Docker Compose管理多容器:
- 创建
docker-compose.yml文件:version: '3.8' services: keycloak: image: quay.io/keycloak/keycloak:latest ports: - "8080:8080" - "8443:8443" environment: - KEYCLOAK_ADMIN=admin - KEYCLOAK_ADMIN_PASSWORD=admin - KC_DB=postgres - KC_DB_URL=jdbc:postgresql://postgres:5432/keycloak - KC_DB_USERNAME=keycloak - KC_DB_PASSWORD=keycloak - KC_HTTPS_CERTIFICATE_FILE=/opt/keycloak/conf/server.crt - KC_HTTPS_CERTIFICATE_KEY_FILE=/opt/keycloak/conf/server.key depends_on: - postgres volumes: - ./certs:/opt/keycloak/conf postgres: image: postgres:15 environment: - POSTGRES_DB=keycloak - POSTGRES_USER=keycloak - POSTGRES_PASSWORD=keycloak volumes: - postgres_data:/var/lib/postgresql/data volumes: postgres_data: - 生成测试用自签名证书:
mkdir certs openssl req -x509 -newkey rsa:4096 -keyout certs/server.key -out certs/server.crt -days 365 -nodes - 启动服务:
docker-compose up -d - 验证:访问
https://<主机IP>:8443登录控制台
工具推荐
- Keycloak官方CLI
kc.sh:容器内可直接调用,用于配置导入导出、主题定制等操作 - Docker Compose:简化多容器环境的部署与管理
- 云托管数据库:Azure PostgreSQL、AWS RDS、GCP Cloud SQL,避免自行维护数据库节点
内容的提问来源于stack exchange,提问作者Med Taher Ghazel
相关产品推荐
相关产品推荐

