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 和内存),以确保良好的性能。
相关推荐
Linux运维老纪1 小时前
DNS缓存详解(DNS Cache Detailed Explanation)
计算机网络·缓存·云原生·容器·kubernetes·云计算·运维开发
还是鼠鼠2 小时前
图书管理系统 Axios 源码 __删除图书功能
前端·javascript·vscode·ajax·前端框架·node.js·bootstrap
轻口味2 小时前
Vue.js `Suspense` 和异步组件加载
前端·javascript·vue.js
m0_zj3 小时前
8.[前端开发-CSS]Day08-图形-字体-字体图标-元素定位
前端·css
还是鼠鼠3 小时前
图书管理系统 Axios 源码__编辑图书
前端·javascript·vscode·ajax·前端框架
杨浦老苏3 小时前
开源音乐管理软件Melody
docker·群晖·多媒体
北极象3 小时前
vue3中el-input无法获得焦点的问题
前端·javascript·vue.js
百度网站快速收录3 小时前
网站快速收录:如何优化网站头部与底部信息?
前端·html·百度快速收录·网站快速收录
Loong_DQX4 小时前
【react+redux】 react使用redux相关内容
前端·react.js·前端框架
GISer_Jing4 小时前
react redux监测值的变化
前端·javascript·react.js