docker搭建guacamole,web远程桌面

复制代码
	Apache Guacamole 是一个客户端无插件的远程桌面网关。它支持标准协议,如 VNC、RDP 和 SSH。您可以使用任何现代 web 浏览器连接到您的桌面环境,而无需安装额外的软件。

使用 Docker Compose 部署 Guacamole,如果没有docker-compose请先执行sudo apt install docker-compose安装

1.创建目录:

首先为 Guacamole 创建一个工作目录。

bash 复制代码
mkdir guacamole-docker
cd guacamole-docker

2.创建 docker-compose.yml 文件:

在这个目录中,创建一个 docker-compose.yml 文件,用于定义 Guacamole 服务及其依赖项。

yaml 复制代码
version: '3'

services:
  db:
    image: mariadb:10.6.18
    container_name: guac-db
    environment:
      - MYSQL_ROOT_PASSWORD=your_password
      - MYSQL_DATABASE=guacamole_db
      - MYSQL_USER=guacamole
      - MYSQL_PASSWORD=guacamole
    volumes:
      - guac-db-data:/var/lib/mysql
    ports:
      - "3306:3306"
    restart: always

  guacd:
    image: guacamole/guacd:latest
    container_name: guacd
    ports:
      - "4822:4822"
    restart: always

  guacamole:
    image: guacamole/guacamole:latest
    container_name: guacamole
    depends_on:
      - db
      - guacd
    environment:
      - GUACD_HOSTNAME=宿主机IP
      - GUACD_PORT=4822
      - MYSQL_HOSTNAME=宿主机IP
      - MYSQL_PORT=3306
      - MYSQL_DATABASE=guacamole_db
      - MYSQL_USER=guacamole
      - MYSQL_PASSWORD=guacamole
    ports:
      - "8080:8080"
    volumes:
      - /opt/guacamole/guacamole.properties:/etc/guacamole/guacamole.properties
    restart: always
volumes:
  guac-db-data:

这个配置文件定义了三个服务:guacd (Guacamole 的代理服务),guacdb (用于存储 Guacamole 数据的 mariadb数据库),以及 guacserver (Guacamole 服务器)。

3.初始化数据库:

3.1在启动 Guacamole 之前,您需要初始化数据库。这通常涉及到创建数据库表结构。官方 Guacamole 文档提供了详细的说明,但您可以使用以下命令快速完成初始化:

bash 复制代码
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

这条命令会从 Guacamole 镜像中提取 SQL 脚本,并通过 Docker 执行这些脚本来初始化 guacdb 数据库。

bash 复制代码
root:/opt/guacamole# ls
docker-compose.yml  initdb.sql

3.2使用 docker exec 命令将初始化脚本导入到 MySQL 数据库中。

bash 复制代码
docker exec -i guacdb mysql -uguacamole -pguacamole guacamole_db < initdb.sql

4.启动服务:

现在可以启动 Guacamole 服务了。

bash 复制代码
docker-compose down
docker-compose up -d

5.访问 Guacamole:启动后,Guacamole 应该可以通过浏览器访问了,通常是 http://localhost:8080/guacamole。默认的用户名是 guacadmin,密码也是 guacadmin。首次登录后,系统会提示您更改密码。

注意事项

复制代码
安全性:请确保更改默认的管理员密码,并考虑使用 HTTPS 来保护您的连接。
持久化数据:上述配置将 PostgreSQL 数据库的数据存储在一个 Docker 卷中 (guacdb-data),这意味着即使容器被删除,数据仍然会被保留。
资源限制:根据您的需求调整 Docker 容器的资源限制(如 CPU 和内存),以确保良好的性能。
相关推荐
Mh3 分钟前
虚拟滚动真的比普通滚动性能更好吗?
前端·javascript·性能优化
pe7er8 分钟前
React + Ant Design 中的 IME (输入法合成)安全输入组件
前端
xrlfreedom1 小时前
大厂 MCP 面试实录:内部 REST API 封装为可审计 MCP Tools 的落地方案
docker·mcp·提示注入防护
Super 含1 小时前
Android 启动优化(二):TTID、TTFD 与 Macrobenchmark 启动性能测量
前端
Python私教1 小时前
别急着加 llms.txt:企业官网面向 AI 搜索的工程清单
前端·人工智能·seo
东方小月1 小时前
从零开发一个 Coding Agent(十三):实现安全的 read 文件读取工具
前端·人工智能·全栈
东方小月1 小时前
从零开发一个 Coding Agent(十二):实现版本化 JSONL 与真实 CLI 入口
前端·设计模式·前端框架
摇滚侠2 小时前
《Docker技术入门与实战 第4版》阅读笔记 2 Docker 镜像
笔记·docker·容器
FL16238631292 小时前
室内易燃物识别易燃评估室内易燃程度识别分割数据集labelme格式1015张85类别
java·服务器·前端
用户059540174462 小时前
把 AI 长期记忆去重测试从 20 分钟压到 40 秒,重复率从 18% 干到 1.5%
前端·css