一、参考

  • guacamole配置
  • guacamole使用Docker安装
  • guacamole在浏览器中播放录像
  • guacamole插件下载

二、环境

操作系统:Anolis OS 8.6 QU1
docker版本:23.0.5
docker compose版本:v2.17.3
docker-image-guacamole:1.5.1
docker-image-guacd:1.5.1
docker-image-mysql:8.0.33-debian

三、安装Docker

# 创建docker主目录和配置目录
mkdir -p /opt/docker /etc/docker
# 创建docker配置文件
tee /etc/docker/daemon.json <<-'END'
{"data-root": "/opt/docker","log-driver": "json-file","log-opts": {"max-size": "800m","max-file": "50"},"registry-mirrors": ["https://hub-mirror.c.163.com"]
}
END
# 添加阿里docker镜像源
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker docker-compose-plugin
dnf install docker-ce docker-ce
# 启动docker并设置开机自动启动
systemctl enable --now docker
# 查看docker docker-compose版本
docker -v
docker compose version

四、拉取镜像

# 拉取mysql数据库
docker pull mysql:8.0.33-debian
# 拉取guacamole 核心
docker pull guacamole/guacd:1.5.1
# 拉取guacamole Web客户端
docker pull guacamole/guacamole:1.5.1

五、容器编排

5.1 配置目录、插件、权限、数据库初始化脚本

# 创建程序主目录
mkdir -p /opt/guacamole
# 创建插件目录
mkdir -p /opt/guacamole/extensions
# 创建录像目录
mkdir -p /opt/guacamole/recordings
# 创建数据库初始化脚本目录
mkdir -p /opt/guacamole/initdb.d
# 下载快速链接插件
curl -O https://archive.apache.org/dist/guacamole/1.5.1/binary/guacamole-auth-quickconnect-1.5.1.tar.gz
# 下载录像存储插件
curl -O https://archive.apache.org/dist/guacamole/1.5.1/binary/guacamole-history-recording-storage-1.5.1.tar.gz
# 解压插件
tar -zxvf guacamole-auth-quickconnect-1.5.1.tar.gz
tar -zxvf guacamole-history-recording-storage-1.5.1.tar.gz
# 移动插件至插件目录
mv guacamole-auth-quickconnect-1.5.1/guacamole-auth-quickconnect-1.5.1.jar /opt/guacamole/extensions/
mv guacamole-history-recording-storage-1.5.1/guacamole-history-recording-storage-1.5.1.jar /opt/guacamole/extensions/
# 配置插件目录所有者 1001为guacamole容器内的guacamole用户UID和GID
chown -R 1001.1001 /opt/guacamole/extensions
# 配置插件目录权限
chmod -R 644 /opt/guacamole/extensions
# 配置录像目录所有者
# 1000为guacd容器内的guacd用户UID
# 1001为guacamole容器内的guacamole用户组GID
chown 1000.1001 /opt/guacamole/recordings
# 配置插件目录权限
chmod 2750 /opt/guacamole/recordings
# 运行guacamole容器生成数据库初始化脚本
docker run --rm guacamole/guacamole:1.5.1 /opt/guacamole/bin/initdb.sh --mysql > /opt/guacamole/initdb.d/initdb.sql

5.2 创建容器编排文件

# 创建docker-compose.yml容器编排配置文件
vi /opt/guacamole/docker-compose.yml

docker-compose.yml

services:guacamole-mysql:image: mysql:8.0.33-debiancontainer_name: guacamole-mysqlvolumes:- /etc/localtime:/etc/localtime:ro# 数据库数据绑定至guacamole-mysql-data卷- guacamole-mysql-data:/var/lib/mysql# 数据库初始化脚本- /opt/guacamole/initdb.d/initdb.sql:/docker-entrypoint-initdb.d/initdb.sqlcommand:- "--character-set-server=utf8"- "--collation-server=utf8_bin"restart: alwaysenvironment:# 数据库root密码- MYSQL_ROOT_PASSWORD=2477bb2991dd472094d118ad9bafa0ce# 数据库名- MYSQL_DATABASE=guacamole# 数据库用户- MYSQL_USER=guacamole# 数据库密码- MYSQL_PASSWORD=fea78183e72c4e7798e1d803e2d36109expose:- "3306"networks:guacamole_network:guacamole-guacd:image: guacamole/guacd:1.5.1container_name: guacamole-guacdvolumes:- /etc/localtime:/etc/localtime:ro# 录像目录- /opt/guacamole/recordings:/var/lib/guacamole/recordingsrestart: alwaysexpose:- "4822"networks:guacamole_network:guacamole-web:image: guacamole/guacamole:1.5.1container_name: guacamole-webvolumes:- /etc/localtime:/etc/localtime:ro# 录像目录- /opt/guacamole/recordings:/var/lib/guacamole/recordings# 插件目录- /opt/guacamole/extensions:/etc/guacamole/extensionsrestart: alwaysenvironment:# guacd主机名- GUACD_HOSTNAME=guacamole-guacd# guacd端口- GUACD_PORT=4822# 首选认证方式- EXTENSION_PRIORITY=mysql# 数据库主机名- MYSQL_HOSTNAME=guacamole-mysql# 数据库端口- MYSQL_PORT=3306# 数据库名- MYSQL_DATABASE=guacamole# 数据库用户- MYSQL_USER=guacamole# 数据库密码- MYSQL_PASSWORD=fea78183e72c4e7798e1d803e2d36109# guacamole主目录(插件、库、配置等)- GUACAMOLE_HOME=/etc/guacamole# 会话超时时间 单位: 分钟- API_SESSION_TIMEOUT=60ports:- "80:8080"networks:guacamole_network:networks:guacamole_network:name: "guacamole_network"driver: bridgeipam:config:- subnet: 172.31.125.0/24gateway: 172.31.125.1volumes:# 数据库数据卷guacamole-mysql-data:name: "guacamole-mysql-data"

运行容器

# 进入目录
cd /opt/guacamole
# 启动容器
docker compose up -d

六、使用

浏览器访问:http://IP地址/guacamole
用户名:guacadmin
密码:guacadmin

点击用户名-设置-连接-新建连接



名称:服务器名称
协议:勾选对应的远程协议
主机名:IP地址
用户名:用户名
密码:密码
忽略服务器证书:RDP协议勾选这个跳过证书验证
录像路径:填写 ${HISTORY_PATH}/${HISTORY_UUID}
自动建立录像目录:勾选


回到首页 点击刚创建的连接即可远程控制



按Ctrl+Alt+Shift弹出控制菜单 点击断开链接结束远程


用户名-设置-历史 查看历史记录 点击View播放录像

使用Docker安装Guacamole远程网关并配置录像回放相关推荐

  1. 【Guacamole中文文档】二、用户指南 —— 3.用Docker安装Guacamole

    用Docker安装Guacamole 可以使用Docker部署Guacamole,无需从源代码构建guacamole-server或手动配置web应用程序.Guacamole项目为Guacamole和 ...

  2. docker安装mysql8,Docker安装Mysql8.0,并配置忽略大小写

    1.拉取镜像 //拉取mysql镜像 docker pull mysql//查看镜像 docker images 2.启动mysql $ docker run --name mysq.db -p 33 ...

  3. Docker安装Mysql8.0,并配置忽略大小写,一句命令搞定

    Docker安装Mysql8.0,并配置忽略大小写,一句命令搞定 docker run --name mysql8.db -p 3307:3306 -e MYSQL_ROOT_PASSWORD=Csd ...

  4. docker安装mysql远程不能访问_虚拟机中docker安装mysql远程无法访问

    问题:虚拟机中docker安装mysql远程无法访问 背景: [root@localhost ~]# docker run -p 3306:3306 --name mysql01 -e MYSQL_R ...

  5. 虚拟机中docker安装mysql远程无法访问解决方法

    #docker安装mysql docker pull mysql docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 -d ...

  6. vscode安装本地服务器_VS Code安装和远程服务器连接配置

    简介 Visual Studio Code是一个轻量且强大的代码编辑器,支持Windows,OS X和Linux.内置JavaScript.TypeScript和Node.js支持,而且拥有丰富的插件 ...

  7. docker安装mysql远程不能访问,虚拟机中docker安装mysql远程无法访问解决方法

    #docker安装mysql docker pull mysql docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 -d ...

  8. Ubuntu 20.04 安装 Apache Guacamole 远程网关 mysql ldap

    准备好文件 Apache Guacamole™: Release Archive 这里下载 1.4   这边计划采用ad统一认证的方案. 安装依赖文件 apt -y install libcairo2 ...

  9. docker 安装 nacos/nacos-server 镜像并配置本地数据库

    docker pull nacos/nacos-server 启动镜像 这里启动容器的时候参数配置我就不在详解了,不明白的话,评论区留言,有不会的问题一定要及时询问,期待你的评论呦! docker r ...

最新文章

  1. PHP 10条有用的建议
  2. c将字符串拆分,并存入结构体
  3. Velocity语法使用总结
  4. SeekBar和RatingBar
  5. 计算机缺失esul.dll,SceneUI.ES.dll
  6. neo4j 连接超时_Neo4j:遍历查询超时
  7. Java序列化魔术方法及其示例使用
  8. 算法每日一题--分治算法(一)-李富贵要上岸985
  9. 大数据集群跨多版本升级、业务0中断,只因背后有TA
  10. Python:通过获取淘宝账号和密码的实验,来看登陆方式选择的重要性
  11. php判断手机浏览器,php判断是不是手机浏览器访问
  12. 【工具封装】不用 for 循环, 教你如何向MySQL数据库批量插入数据
  13. js处理null和underfined
  14. android突然断电丢失程序,a2sd+状态下应用程序丢失的解决方法详细解析
  15. 实战分析SpringBoot整合JSON,面试题附答案
  16. 带例子的测试用例模板
  17. 计算机缺少更新,Win10电脑无法更新提示你的设备中缺少重要的安全和质量修复怎么处理...
  18. samba不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接
  19. 基于SSH开发学生公寓管理系统
  20. SoO of EIGRP

热门文章

  1. 【计算机毕设之基于springboot的教育管理平台-哔哩哔哩】 https://b23.tv/3wZSJIh
  2. error: implicit instantiation of undefined template ‘std::vector<int>‘
  3. 流计算框架——Storm
  4. 简单几步教你做你国际化网站
  5. python处理音频的库_python视频音频处理库
  6. Kitchen Plates(暴力写法和学习拓扑排序)
  7. Excel与Word套打功能使用技巧及EXCEL数据处理成绩
  8. 幸福与灭亡的钥匙都在于压力
  9. 巧妙使用金山快盘实现qq聊天记录“网络漫游”
  10. c语言中scanf(%7.2f,a);合法吗,scanf