分享一个自编译 Docker 容器 Guacamole – 基于 Web 的 VNC 客户端

基于 guacamole-1.2.0 最新版构建,除了amd64、arm32 架构之外还增加了对 arm64 架构的支持,并集成最新的内置环境相关程序。所有 arm64 位的操作系统都可以使用,比如斐讯 N1……

概要说明:

Hub 上找不到 arm64 架构的 guacamole 版多合一镜像,所以就自己构建了一个。 基于 guacamole-1.2.0 最新版构建,除了 amd64、arm32 架构之外还增加了对 arm64 架构的支持,并集成最新的内置环境相关程序。 所有基于 arm64 位的操作系统都可以使用,比如斐讯 N1……

更新日志:

  • 2020-10-08,镜像常规基础更新,基于当前最新稳定版 guacamole-1.2.0
  • 2020-07-24,跟随官方最新稳定版构建升级到 guacamole-1.2.0
  • 2020-05-24,首次构建官方最新稳定版 guacamole-1.1.0

使用方法:

docker pull otakusay/guacamole:latest
docker run -d -p 8888:8080 --name guacamole --restart always --hostname guacamole -v guacamole_data:/config otakusay/guacamole:latest
  • 默认用户:guacadmin
  • 默认密码:guacadmin

PS:首次登录成功以后第一时间去创建一个新的管理员用户,然后用新建管理员用户再次登录,然后删除这个 guacadmin 默认用户!

必要参数:

参数分为两半,中间用英文冒号分隔,左侧代表宿主,右侧代表容器。

  • -p 8888:8080 – 将容器的8080端口绑定到主机上的8888端口,必填! (8888可以自行修为其他端口)
  • -v guacamole_data/config – 配置和数据库的存储位置,必填! (guacamole_data可以自行修改为其他路径)
  • -e EXTENSIONS – 有关详情,请参见下文。非必填!

更多示例:

可以使用 -e EXTENSIONS 变量来启用扩展。可以使用逗号分隔的列表(不含空格)来启用多个扩展名。

docker pull otakusay/guacamole:latest
docker run -d -p 8888:8080 --name guacamole --restart always --hostname guacamole -v guacamole_data:/config -e "EXTENSIONS=auth-ldap,auth-duo" otakusay/guacamole:latest

如果你希望 guacamole 运行在反向代理后面,则可以创建私有网络,然后给 guacamole 容器分配个子网固定 IP ,容器端口只在内网公开,然后你可以通过 Nginx 或者其他反代程序反代 guacamole 的内网 IP:8080 端口进行访问,SSL 证书也可以一并通过反代解决。

docker network create --subnet=192.168.0.0/24 mynet
docker pull otakusay/guacamole:latest
docker run -d --expose 8080 --name guacamole --network mynet --ip 192.168.0.2 --restart always --hostname guacamole -v guacamole_data:/config otakusay/guacamole:latest

--expose 这个参数意思是只在内网暴露容器端口,不对外映射。

Docker 创建私有网络并为容器设定固定 IP 的方法可以参考下面的文章:

Docker 容器设置固定 IP

更多扩展:

  • auth-ldap – LDAP Authentication
  • auth-duo – Duo two-factor authentication
  • auth-header – HTTP header authentication
  • auth-cas – CAS Authentication
  • auth-openid – OpenID Connect authentication
  • auth-totp – TOTP two-factor authentication
  • auth-quickconnect – Ad-hoc connections extension

您仅应启用所需的扩展名,如果在 guacamole.properties 文件中未正确配置扩展名,则可能会阻止系统加载。有关更多详细信息,请参见官方文档。(官方文档: https://guacamole.apache.org/doc/gug/ )

PS:这些认证方式除非你很懂,否则不建议开启。如果需要了解这方面的更多知识可谷歌搜索『两步验证』了解更多。

支持架构:

  • docker pull otakusay/guacamole:amd64 (例如:电脑PC)
  • docker pull otakusay/guacamole:arm (例如:树莓派)
  • docker pull otakusay/guacamole:arm64 (例如:斐讯N1)

PS:如果你不知道自己设备的架构,可以无脑 docker pull otakusay/guacamole:latest 系统会自动选择架构,并根据你的设备下载与之匹配的最新版镜像包。

给TA打赏
共{{data.count}}人
人已打赏
Linux

Proxmox VE 设置虚拟机 NAT 转发端口内网互通

2021-6-30 15:08:22

Linux

Proxmox VE 设置虚拟机 NAT 转发端口内网互通

2021-6-30 15:08:22

6 条回复 A文章作者 M管理员
  1. Xshell

    管理你好,想请教一下,用这种方法安装的guacamole,如果更换服务器,如何备份已有的数据?难道需要重新添加一遍?

    • 66哥

      更新容器镜像时不会影响已有的用户数据,因为启动容器时增加了容器内部到主机的文件目录映射。
      所以正常更新容器镜像即可,更新后一切数据都还在,不用担心自定义数据丢失。

    • Xshell

      我的意思是迁移服务器,比如我从腾讯云迁移到阿里云的机器,如何保留已经添加的机器信息?

    • 66哥

      例如:
      docker run -d -p 8888:8080 --name guacamole --restart always --hostname guacamole -v /mydata:/config otakusay/guacamole:latest

      搬家时,把宿主机/mydata目录下的数据打包备份。
      在新主机部署容器,然后停止容器,再用打包备份的数据覆盖新主机相同路径下的数据,最后重启容器即可。
      参数详解:
      -d 后台运行容器
      -p 8888:8080 映射宿主机8888端口到容器内8080端口
      --restart always 开机自启动容器
      -v /mydata:/config 挂载映射宿主机/mydata目录到容器内/config目录(所以备份迁移这个目录的数据即可)

    • Xshell

      谢谢!guacamole升到1.3.0版本了,后期有计划更新docker吗?

    • 66哥

      这两天有时间我会考虑更新镜像的,其实这东西能用就好,不需要经常更新的。

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索