1. 安装Docker和Docker Compose
如果尚未安装,请先安装Docker和Docker Compose:
# 安装Docker curl -fsSL https://get.docker.com | sh sudo systemctl start docker sudo systemctl enable docker # 安装Docker Compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
复制
2. 创建Docker Compose文件
创建一个目录并编写 docker-compose.yml
:
mkdir guacamole && cd guacamole nano docker-compose.yml
复制
将以下内容粘贴到文件中(使用MySQL作为数据库):
version: '3' services: guacd: image: guacamole/guacd container_name: guacd restart: always volumes: - ./drive:/drive:rw - ./record:/record:rw networks: - guacamole mysql: image: mysql:8.0 container_name: mysql restart: always environment: MYSQL_ROOT_PASSWORD: your_mysql_root_password MYSQL_DATABASE: guacamole_db MYSQL_USER: guacamole_user MYSQL_PASSWORD: guacamole_password volumes: - mysql_data:/var/lib/mysql networks: - guacamole guacamole: image: guacamole/guacamole container_name: guacamole restart: always depends_on: - guacd - mysql environment: GUACD_HOSTNAME: guacd MYSQL_HOSTNAME: mysql MYSQL_DATABASE: guacamole_db MYSQL_USER: guacamole_user MYSQL_PASSWORD: guacamole_password ports: - "8080:8080" networks: - guacamole volumes: mysql_data: networks: guacamole:
复制
注意:替换环境变量中的密码(如 your_mysql_root_password
, guacamole_password
)。
3. 启动Guacamole服务
docker-compose up -d
复制
4. 初始化数据库
Guacamole首次启动时会自动初始化数据库。如果遇到问题,可手动执行:
# 下载数据库初始化脚本 docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql # 将脚本导入MySQL容器 docker exec -i mysql mysql -u root -pyour_mysql_root_password guacamole_db < initdb.sql
复制
5. 访问Guacamole Web界面
浏览器访问 http://你的服务器IP:8080/guacamole
,使用默认账号登录:
- 用户名:
guacadmin
- 密码:
guacadmin
首次登录后请立即修改密码!
6. 配置远程桌面连接
- 登录后点击右上角 Settings。
- 选择 Connections,点击 New Connection。
- 填写连接信息:
- Name: 自定义连接名称(如
My-RDP
)。 - Protocol: 选择协议(如RDP、SSH、VNC)。
- Parameters:
- RDP示例:
复制Hostname: 目标主机IP Port: 3389 Username: 远程主机用户名 Password: 远程主机密码
- RDP示例:
- Name: 自定义连接名称(如
7. 高级配置(可选)
- SSL加密:使用Nginx反向代理配置HTTPS。
- 持久化存储:确保数据库卷(
mysql_data
)已挂载,避免数据丢失。 - 防火墙:开放端口8080(或自定义端口)。
常见问题
- 容器启动失败:检查日志
docker logs guacamole
。 - 数据库连接失败:确认MySQL容器运行正常,环境变量正确。
- 无法连接远程主机:检查目标主机防火墙是否放行协议端口(如RDP的3389)。
通过以上步骤,您可以在Linux环境下快速部署Guacamole,并通过Web界面管理多种远程桌面协议。