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 和内存),以确保良好的性能。
相关推荐
江号软件分享26 分钟前
有效保障隐私,如何安全地擦除电脑上的敏感数据
前端
超级小忍26 分钟前
Spring Boot 与 Docker 的完美结合:容器化你的应用
spring boot·后端·docker
web守墓人1 小时前
【前端】ikun-markdown: 纯js实现markdown到富文本html的转换库
前端·javascript·html
Savior`L2 小时前
CSS知识复习5
前端·css
许白掰2 小时前
Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件
linux·运维·服务器·前端·学习·编辑器
B1nna2 小时前
Docker学习
学习·docker·容器
缘友一世3 小时前
网安系列【15】之Docker未授权访问漏洞
docker·容器
中微子6 小时前
🔥 React Context 面试必考!从源码到实战的完整攻略 | 99%的人都不知道的性能陷阱
前端·react.js
中微子7 小时前
React 状态管理 源码深度解析
前端·react.js
加减法原则8 小时前
Vue3 组合式函数:让你的代码复用如丝般顺滑
前端·vue.js