Glyptodon Enterprise 提供 Apache Guacamole 的软件包,遵循最佳实践,接收定期更新并提供商业支持。这些软件包的更新仅通过上游Apache Guacamole的贡献进行,且在不破坏兼容性的前提下进行。
本镜像(glyptodon/guacamole-ssl-nginx)是基于 https://hub.docker.com/_/nginx 构建的Docker化Nginx部署,预配置用于为Guacamole提供SSL终止。它支持:
该镜像作为 Glyptodon Enterprise 的一部分提供,遵循相同的 EULA。通常用于为使用 glyptodon/guacamole 镜像 的容器提供SSL终止。
要启动一个自动初始化为Apache Guacamole提供SSL终止的Nginx实例(包括从Let's Encrypt自动获取证书):
shelldocker run --name some-guacamole-ssl \ -e ACCEPT_EULA=Y \ -e GUACAMOLE_HOSTNAME=some-guacamole \ -e SSL_HOSTNAME=guac.example.net \ -e LETSENCRYPT_ACCEPT_TOS=Y \ -e LETSENCRYPT_EMAIL=your.email@example.net \ -d glyptodon/guacamole-ssl-nginx
其中:
some-guacamole-ssl 是你希望分配给容器的名称some-guacamole 是 Guacamole实例或glyptodon/guacamole容器 的主机名或IP地址guac.example.net 是用于通过互联网访问Guacamole的公共域名your.email@example.net 是你希望注册到Let's Encrypt的电子邮件地址docker-compose如果使用Docker部署Glyptodon Enterprise,强烈推荐使用 https://github.com/docker/compose%EF%BC%8C%E5%9B%A0%E4%B8%BA%E4%BB%BB%E4%BD%95%E4%BD%BF%E7%94%A8%E6%8F%90%E4%BE%9B%E7%9A%84Docker%E9%95%9C%E5%83%8F%E7%9A%84Glyptodon Enterprise部署都将涉及多个容器,docker-compose 可以极大地帮助编排这些容器。
例如,使用Let's Encrypt获取SSL证书并使用自动初始化的MySQL数据库进行身份验证的完整Glyptodon Enterprise部署如下:
yamlversion: "3" services: guacd: image: glyptodon/guacd environment: ACCEPT_EULA: Y db: image: glyptodon/guacamole-db-mysql environment: ACCEPT_EULA: Y MYSQL_RANDOM_ROOT_PASSWORD: "yes" GUACAMOLE_DATABASE: guacamole_db GUACAMOLE_USERNAME: guacamole_user GUACAMOLE_PASSWORD: some_password guacamole: image: glyptodon/guacamole environment: ACCEPT_EULA: Y GUACD_HOSTNAME: guacd MYSQL_HOSTNAME: db MYSQL_DATABASE: guacamole_db MYSQL_USERNAME: guacamole_user MYSQL_PASSWORD: some_password ssl: image: glyptodon/guacamole-ssl-nginx ports: - "80:80" - "443:443" environment: ACCEPT_EULA: Y GUACAMOLE_HOSTNAME: guacamole SSL_HOSTNAME: guac.example.net LETSENCRYPT_ACCEPT_TOS: Y LETSENCRYPT_EMAIL: your.email@example.net
glyptodon/guacamole-ssl-nginx 支持多种生成、获取或使用现有SSL证书的机制。使用的机制取决于创建Docker容器时指定的环境变量。
除了这些机制特定的环境变量外,必须始终指定一组环境变量:
ACCEPT_EULA - 是否接受Glyptodon Enterprise EULA(使用镜像需要接受EULA)GUACAMOLE_HOSTNAME - Guacamole实例的主机名/地址SSL_HOSTNAME - 用于访问Guacamole的公共域名如果未提供现有证书且未请求生成自签名证书,默认使用Let's Encrypt。glyptodon/guacamole-ssl-nginx 镜像将使用"certbot"工具连接Let's Encrypt服务以获取SSL证书。
如果使用Let's Encrypt证书,严格要求的Let's Encrypt特定环境变量只有一个:
LETSENCRYPT_ACCEPT_TOS - 是否接受Let's Encrypt服务条款(使用该服务需要接受Let's Encrypt的服务条款)除了接受其服务条款外,请注意Let's Encrypt强烈建议提供电子邮件地址,以便获取有关证书的重要警报。除非有特殊原因,否则应额外提供电子邮件地址:
LETSENCRYPT_EMAIL - 请求证书时提交给Let's Encrypt的电子邮件地址如果只是测试Let's Encrypt的使用,应使用 Let's Encrypt staging/testing environment 而非生产环境:
LETSENCRYPT_STAGING - 设置为"Y"以使用Let's Encrypt的staging环境而非生产环境获取的证书将在必要时由镜像自动续期。如果获取失败,容器将停止,失败详情将被记录,下次容器启动时将重试该过程。
glyptodon/guacamole-ssl-nginx 镜像利用Docker卷使Let's Encrypt证书和状态在容器重建时保持持久。
如果已从证书颁发机构获取证书,可以通过 CERTIFICATE_FILE 和 PRIVATE_KEY_FILE 环境变量指向相关文件来使用该证书。需要使用Docker卷挂载将相关文件暴露给镜像。
CERTIFICATE_FILE - 证书PEM文件的完整路径PRIVATE_KEY_FILE - 私钥PEM文件的完整路径当证书需要向CA续期时,需要替换证书和私钥并重新加载Nginx。替换挂载的文件后,可以通过向容器进程发送SIGHUP信号来重新加载Nginx:
shelldocker kill --signal=SIGHUP some-guacamole-ssl
如果用于测试部署,镜像可以自动生成和维护自己的自签名证书:
SELF_SIGNED - 设置为"Y"以自动生成用于测试的自签名证书glyptodon/guacamole-ssl-nginx 镜像将在启动时重新生成自签名证书。由于证书在生成后30天过期,镜像还将每21天自动重新生成证书以确保其不会过期。
每次证书重新生成时,将记录证书过期日期和指纹,允许基本的服务器身份验证。
除下面记录的环境变量外,还接受 官方Docker Nginx镜像 支持的所有环境变量,因为官方Nginx镜像是此镜像的基础。
ACCEPT_EULA ACCEPT_EULA 环境变量必须设置为"Y",以表示您接受 Glyptodon Enterprise EULA。此Docker镜像只能在EULA条款下使用。
SSL_HOSTNAME 运行Docker的服务器的面向公众的主机名。此环境变量是必需的,应该是用于通过互联网访问Guacamole的完整公共域名,已与到达运行Docker和此镜像的服务器的IP地址相关联。
GUACAMOLE_HOSTNAME Guacamole服务器的内部主机名或IP地址。此环境变量是必需的,应该是Nginx在处理连接时将在内部连接的主机名/地址。
请注意,此处提供的主机名/地址的Guacamole服务应仅在内部网络上可访问。只有SSL终止服务(此镜像)应面向公众。
GUACAMOLE_PORT Guacamole服务器正在监听的TCP端口号。此环境变量是可选的。如果省略,将默认使用典型的8080端口。
GUACAMOLE_CONTEXT_PATH Guacamole服务所在的路径。此环境变量是可选的。默认情况下,这将为空,表示Guacamole从根路径提供服务。与 glyptodon/guacamole 镜像的 GUACAMOLE_CONTEXT_PATH 环境变量一样,此参数不能包含斜杠。
例如,如果Guacamole在内部运行于 http://some-host/guacamole/,则应将 GUACAMOLE_CONTEXT_PATH 设置为 guacamole。
SELF_SIGNED 如果设置为"Y",则请求为 SSL_HOSTNAME 自动生成自签名证书,而不是使用现有证书或从Let's Encrypt获取新证书。
自签名证书本质上是不安全的。此选项应仅用于测试。
CERTIFICATE_FILE 和 PRIVATE_KEY_FILE SSL证书和相关私钥的PEM文件路径。这些路径是相对于Docker容器的文件系统的。需要使用Docker卷挂载将外部提供的SSL证书PEM文件暴露在容器内。
这些环境变量仅在提供自己的证书时需要。如果使用 SELF_SIGNED 进行测试的自签名证书,它们将被忽略。
LETSENCRYPT_ACCEPT_TOS 如果打算使用Let's Encrypt,LETSENCRYPT_ACCEPT_TOS 环境变量必须设置为"Y",以表示您接受 Let's Encrypt服务条款。除非同意相关服务条款,否则不能使用Let's Encrypt。
此环境变量仅在使用Let's Encrypt时需要。如果使用 CERTIFICATE_FILE 和 PRIVATE_KEY_FILE 提供自己的证书,或使用 SELF_SIGNED 进行测试的自签名证书,则会被忽略。
LETSENCRYPT_EMAIL 请求证书时应提供给Let's Encrypt的电子邮件地址。此环境变量是可选的,如果使用 CERTIFICATE_FILE 和 PRIVATE_KEY_FILE 提供自己的证书,或使用 SELF_SIGNED 进行测试的自签名证书,则会被忽略。
虽然此环境变量是可选的,但请注意Let's Encrypt强烈建议在使用其服务获取证书时提供电子邮件地址。来自certbot工具的帮助内容:
... 强烈不建议这样做,因为在密钥丢失或账户泄露的情况下,您将不可挽回地失去对账户的访问权限。您也将无法收到有关证书即将过期或吊销的通知。订阅协议的更新仍然会影响您,并在网站上发布更新后14天生效。
LETSENCRYPT_STAGING 如果设置为"Y",则请求使用 Let's Encrypt staging环境 获取SSL证书,而非生产环境。如果只是测试Let's Encrypt功能,应使用此选项。
除了直接在环境变量中传递数据外,可以为该镜像支持的任何环境变量添加 _FILE 后缀,以强制从容器内的指定文件读取该变量。由于Docker secrets将敏感数据存储在容器内 /run/secrets/ 下的文件中,这可用于从Docker secrets加载敏感数据。
例如,从Docker secrets加载Let's Encrypt账户电子邮件:
shelldocker run --name some-guacamole-ssl \ -e ACCEPT_EULA=Y \ -e LETSENCRYPT_ACCEPT_TOS=Y \ -e LETSENCRYPT_EMAIL_FILE=/run/secrets/letsencrypt-email \ -d glyptodon/guacamole-ssl-nginx
此Docker镜像仅根据 Glyptodon Enterprise EULA 的条款提供。通过将环境变量 ACCEPT_EULA 的值设置为"Y",表示您拥有有效的Glyptodon Enterprise许可证,并且接受您对此Docker镜像的使用受这些条款约束。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务