Loading... Apache Guacamole是一款HTML5应用程序,可通过RDP,VNC和其他协议访问远程桌面。您可以创建一个虚拟云桌面,用户通过Web浏览器即可访问。 <!-- more --> ## 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容器都已运行 ![](https://assets.insilen.com/media/docker-guacamole/15908175632388.jpg) 浏览器访问 :http://192.168.100.17:8080/guacamole 默认用户名和密码 都是**guacadmin** ![](https://assets.insilen.com/media/docker-guacamole/15908175823487.jpg) > 来源参考 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 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 55 如果觉得我的文章对你有用,请随意赞赏