
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
schleyk/guacamole是基于Apache Guacamole的Docker镜像,构建于tomcat:9.0-jdk8-temurin-jammy基础镜像,版本为Guacamole 1.5。该镜像集成所有官方插件,支持LDAP(s)认证、SSO及自定义根证书,解决了原生Guacamole镜像使用旧版Tomcat带来的安全漏洞问题,提供安全、便捷的远程桌面集中管理解决方案。
tomcat:9.0-jdk8-temurin-jammy,隐藏Tomcat版本信息,提升安全性guacamole-auth-cas、guacamole-auth-duo、guacamole-auth-header、guacamole-auth-ldap、guacamole-auth-openidconnect、guacamole-auth-quickconnect、guacamole-auth-totp、guacamole-auth-radiusyamlversion: '2.1' services: guacd: restart: always image: schleyk/guacd:stable depends_on: - db guacamole: restart: always image: schleyk/guacamole:stable links: - guacd - db # volumes: # - ./data:/data # 挂载数据目录(配置文件、扩展等) # - ./custom/custom-start.sh:/opt/guacamole/bin/custom-start.sh # 自定义启动脚本(不要忘记在主机系统上设置为可执行!!!) # - ./custom/server.xml:/usr/local/tomcat/conf/server.xml # 用于ProxyPass配置 environment: - MYSQL_HOSTNAME=db # MySQL数据库主机 - MYSQL_DATABASE=guacamole # 数据库名称 - MYSQL_USER=guacamole # 数据库用户 - MYSQL_PASSWORD=changeme! # 数据库密码(请修改) - GUACD_HOSTNAME=guacd # guacd服务主机 - GUACAMOLE_HOME=/data # Guacamole主目录 # entrypoint: /opt/guacamole/bin/custom-start.sh # 自定义入口点 # extra_hosts: # - "srv-dc01.contoso.local:10.0.0.1" # 用于LDAPs通过WAN的正确FQDN解析 ports: - 8080:8080 # 映射端口 depends_on: - db db: image: mariadb:10 restart: always volumes: - /srv/guacamole/db:/var/lib/mysql # 持久化数据库数据 environment: - MYSQL_ROOT_PASSWORD=changeme! # 数据库root密码(请修改) - MYSQL_DATABASE=guacamole - MYSQL_USER=guacamole - MYSQL_PASSWORD=changeme! phpmyadmin: image: phpmyadmin/phpmyadmin environment: - PMA_HOST=db # 数据库主机 ports: - "8282:80" # PHPMyAdmin访问端口 depends_on: - db
生成初始化SQL脚本:
bashdocker run --rm schleyk/guacamole:stable /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
guacadminguacadmin(首次登录后建议立即修改)| 变量名 | 说明 | 默认值 |
|---|---|---|
MYSQL_HOSTNAME | MySQL数据库主机 | - |
MYSQL_DATABASE | 数据库名称 | guacamole |
MYSQL_USER | 数据库用户 | guacamole |
MYSQL_PASSWORD | 数据库密码 | - |
GUACD_HOSTNAME | guacd服务主机 | guacd |
GUACAMOLE_HOME | Guacamole配置目录 | /data |
| 挂载路径 | 说明 |
|---|---|
/data | 存储配置文件、扩展插件、日志等 |
/opt/guacamole/bin/custom-start.sh | 自定义启动脚本(需主机设置可执行权限) |
/usr/local/tomcat/conf/server.xml | Tomcat配置文件(用于反向代理等) |
所有插件JAR文件存储于镜像内/opt/guacamole目录,激活插件需将对应JAR文件复制到/data/extensions目录(通过卷挂载实现)。
/data/guacamole.propertiesLDAPS配置
propertiesldap-hostname: srv-dc01.contoso.local # LDAP服务器主机名 ldap-port: 636 # LDAPS端口 ldap-encryption-method: ssl # 加密方式
LDAP配置(非加密)
propertiesldap-hostname: srv-dc01.contoso.local # LDAP服务器主机名 ldap-port: 389 # LDAP端口 ldap-encryption-method: none # 不加密
LDAP用户绑定
propertiesldap-search-bind-dn: CN=svc-ldap,OU=example,DC=contoso,DC=local # 绑定用户DN ldap-search-bind-password: changeme! # 绑定用户密码
用户搜索配置
propertiesldap-user-base-dn: OU=example,DC=contoso,DC=local # 用户搜索基准DN ldap-username-attribute: sAMAccountName # 用户名属性 ldap-user-search-filter: (&(objectClass=*)(memberof=CN=GRP-Guacamole,OU=example,DC=contoso,DC=local)) # 用户组过滤
组映射配置
propertiesldap-group-base-dn: OU=guacgroups,OU=example,DC=contoso,DC=local # 组搜索基准DN(需在Guacamole内预创建对应组)
nginxlocation / { proxy_pass http://guacamole:8080/guacamole/; proxy_buffering off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_redirect off; proxy_read_timeout 120; proxy_connect_timeout 10; }
升级SQL模式请参考https://github.com/apache/guacamole-client/tree/master/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/schema/upgrade%E3%80%82
支持VNC、RDP、SSH的SSO,可使用${GUAC_USERNAME}和${GUAC_PASSWORD}令牌自动填充远程连接的用户名/密码(需用户Guacamole与远程系统凭证一致)。
server.xml的trustedProxies行添加代理IPguacadmin密码您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 schleyk/guacamole 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: