Apache Guacamole是一款HTML5应用程序,可通过RDP,VNC和其他协议访问远程桌面。您可以创建一个虚拟云桌面,用户通过Web浏览器即可访问。

1.安装DOCKER

{% link 安装Docker方法, /post/docker-install.html, https://assets.insilen.com/media/docker-install/docker.webp %}

配置Docker国内加速

{% link Docker 镜像加速, /post/docker-chinaimage.html, https://assets.insilen.com/media/docker-aliyun/3682944458.jpeg %}

使用加速器可以提升获取Docker官方镜像的速度

2.拉取必要镜像

拉取Guacamole服务器、Guacamole客户端和MySQL的Docker镜像

docker pull guacamole/guacamole
docker pull guacamole/guacd
docker pull mariadb

3.开始部署

都拉取成功后,需要直接运行以下命令创建数据库初始化脚本以创建用于验证身份的数据表:

cd /root
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

这时候在root目录下 就创建了用于验证身份的数据initdb.sql

将initdb.sql移动到MySQL容器中,登录数据库设置新的数据库密码:

docker cp initdb.sql mysql:/initdb.sql
sudo  docker exec -it mysql mysql -uroot -p123456

创建 guacamole和创建 guacamole用户并授权 guacamole用户使用 guacamole密码访问

CREATE DATABASE guacamole;
CREATE USER 'guacamole'@'%' IDENTIFIED BY 'guacamole';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole'@'%';
FLUSH PRIVILEGES;

在bash终端中,使用初始化脚本为新数据库创建数据表

docker exec -it mysql bash
mysql –uroot –p123456 -Dguacamole<initdb.sql

启动guacd和guacamole实例:

docker run --name guacd \
--restart=always \
-d guacamole/guacd
docker run --name guacamole -d \
--restart=always \
--link guacd:guacd \ 
--link mysql:mysql \
-e MYSQL_DATABASE='guacamole' \
-e MYSQL_USER='guacamole' \
-e MYSQL_PASSWORD='guacamole'\ 
-p 8080:8080 \
guacamole/guacamole

查看docker容器都已运行

浏览器访问 :http://192.168.100.17:8080/guacamole

默认用户名和密码 都是guacadmin

来源参考 https://www.cnblogs.com/majiang/p/11465978.html

启动命令示例

MairaDB

docker run -d \
--name guacamole-mariadb \
--restart=always \
-v /docker/guacamole-mariadb/datadir:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mariadb:latest

phpmyadmin

如果需要phpmyadmin
该命令配置了config.user.inc.php 等同直接部署的config.inc.php
其中 PMA_ABSOLUTE_URI 为反代之后的最终目录需要配合nginx

docker run -d \
--name phpmyadmin \
--restart=always \
--link guacamole-mariadb:guacamole-mariadb \
-e UPLOAD_LIMIT=64M \
-e PMA_ABSOLUTE_URI=https://YOURDOMAIN.com/phpmyadmin_123 \
-v /docker/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php \
phpmyadmin/phpmyadmin

Guacamole

docker run --name guacd \
--restart=always \
-d guacamole/guacd
docker run -d \
--name guacamole-mariadb \
--restart=always \
-v /docker/guacamole-mariadb/datadir:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mariadb:latest

nginx

docker run -d \
--name nginx \
--restart=always \
--link phpmyadmin:phpmyadmin \
--link guacamole:docker-guacamole \
-v /docker/nginx/conf.d:/etc/nginx/conf.d \
-v /docker/nginx/cert:/etc/nginx/cert \
-p 80:80 \
-p 443:443 \
nginx

nginx配置示例

 #设置http重定向到https    
server 
     {  
       listen 80;
       server_name YOURDOMAIN.com;
       rewrite ^/(.*)$ https://YOURDOMAIN.com/$1 permanent;
     }
      
#主要https设置
server 
     {  
       listen 443 ssl http2;
       server_name YOURDOMAIN.com;
       ssl_certificate /etc/nginx/cert/YOURDOMAIN.com.pem;
       ssl_certificate_key /etc/nginx/cert/YOURDOMAIN.com.key;
  
       #guacamole
       location /guacamole_1234/ {
           proxy_pass http://docker-guacamole:8080/guacamole/;
           proxy_buffering off;
           proxy_http_version 1.1;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection $http_connection;
           proxy_cookie_path /guacamole/ /guacamole_1234/;
           access_log off;
       }
          
       #phpmyadmin
       location /phpmyadmin_123/ {
               proxy_redirect off;
               proxy_pass http://phpmyadmin/;
               proxy_http_version 1.1;
               proxy_set_header Host $host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header REMOTE-HOST $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;         
               #需要上传文件操作下面这三段代码是需要添加的。
               proxy_buffer_size 64k;
               proxy_buffers 32 32k;
               proxy_busy_buffers_size 128k;
             } 
                    
     }
 
最后修改:2024 年 01 月 20 日
如果觉得我的文章对你有用,请随意赞赏