Docker部署Apache Guacamole远程桌面
介绍
Guacamole是一个提供了基于HTML5 Web应用程序的远程桌面代理服务器。通过使用Guacamole服务器,可以很轻松地在浏览器上远程访问Guacamole代理的主机。
语言:C
一句话描述:远程桌面代理服务器
安装DOCKER
1 配置源
cd /etc/yum.repos.d
wget https://download.docker.com/linux/centos/docker-ce.repo
2 安装 docker-ce
yum install docker-ce -y
#启动docker服务
systemctl start docker
#设置开机启动docker服务
systemctl enable docker
使用MySQL初始化Guacamole身份验证
1.拉取Guacamole服务器、Guacamole客户端和MySQL的Docker镜像
docker pull guacamole/guacamole
docker pull guacamole/guacd
docker pull mysql/mysql-server
2.创建数据库初始化脚本以创建用于验证身份的数据表:
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
3.为MySQL的root用户生成一次性密码,可在日志中查看:
docker run --name example-mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes -e MYSQL_ONETIME_PASSWORD=yes -d mysql/mysql-server
Docker日志:
docker logs example-mysql
上方的命令执行后查找 [Entrypoint] GENERATED ROOT PASSWORD: 这个字段冒号后面是密码牢记,登录mysql时需要
docker logs example-mysql|grep GENERATED
4.将initdb.sql
移动到MySQL容器中:
docker cp initdb.sql example-mysql:/initdb.sql
5.在MySQL的Docker容器中打开bash终端初始设置:
docker exec -it example-mysql bash
6.登录mysql
mysql -u root -p
7.设置新的数据库密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_root_password';
8.创建 guacamole和创建 guacamole用户并授权 guacamole用户使用 guacamole密码访问
#创建数据库
CREATE DATABASE guacamole;
#创建用户
CREATE USER 'guacamole'@'%' IDENTIFIED BY 'guacamole';
#创建用户权限
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole'@'%';
#刷新立即生效
FLUSH PRIVILEGES;
6.在bash终端中,使用初始化脚本为新数据库创建数据表:
#使用到 mysql的root密码 new_root_password
cat initdb.sql | mysql -u root -p guacamole
7.验证数据库操作是否成功
#连接数据库
mysql -uroot -p new_root_password
#选择数据库
USE guacamole_db;
#查看所有的表
SHOW TABLES;
对比以下无缺就是操作成功
部署Guacamole
1.在Docker中启动guacd
docker run --name example-guacd -d -p 4822:4822 guacamole/guacd
2.连接容器,以便Guacamole验证存储在MySQL数据库中的凭证:
docker run --name example-guacamole --link example-guacd:guacd --link example-mysql:mysql -e MYSQL_DATABASE='guacamole' -e MYSQL_USER='guacamole' -e MYSQL_PASSWORD='guacamole' -d -p 8080:8080 guacamole/guacamole
3.查看三个容器是否都是运行状态:
#查看所有容器
docker ps -a
#查看正在运行的容器
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> [root@localhost ~]# docker ps
> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
> bd2296cdbcc1 guacamole/guacamole "/opt/guacamole/bin/…" 19 hours ago Up 22 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp example-guacamole
> 3a6015803b2d mysql/mysql-server:latest "/entrypoint.sh mysq…" 19 hours ago Up 26 minutes (healthy) 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060-33061/tcp example-mysql
> 312e69f93acc guacamole/guacd "/bin/sh -c '/usr/lo…" 34 hours ago Up 25 minutes (healthy) 4822/tcp example-guacd
>-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
example-guacamole
、example-guacd
和example-mysql
都已运行可在访问:
登录
http://部署机IP:8080/guacamole/
默认账户:guacadmin
默认密码:guacadmin
登录成功后创建连接
其余配置结合需求设置
保存—>首页
(以上创建连接成功后返回首页就双击已经创建好的连接就可以成功连接)
等待连接(不出意外就能看到远程屏幕)
新建管理员管理员
其他相关命令
防火墙命令
在外部访问CentOS中部署应用时,需要关闭防火墙。
关闭防火墙命令:systemctl stop firewalld.service
开启防火墙:systemctl start firewalld.service
设置开机禁用防火墙:systemctl disable firewalld.service
设置开机启用防火墙:systemctl enable firewalld.service
打开端口号
开启防火墙:systemctl start firewalld
查看开放的端口:firewall-cmd --list-ports
查看: firewall-cmd --zone=public --query-port=3306/tcp
开启防火墙端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
关闭防火墙命令:systemctl stop firewalld.service
docker命令
查看本地镜像:docker images
查看正在运行的容器:docker ps
查看所有容器:docker ps -a
启动容器:docker start
MySQL创建数据库与创建用户以及授权
1、create schema [数据库名称] default character set utf8 collate utf8_general_ci;–创建数据库
采用create schema和create database创建数据库的效果一样。
2、create user ‘[用户名称]’@’%’ identified by ‘[用户密码]’;–创建用户
密码8位以上,包括:大写字母、小写字母、数字、特殊字符
%:匹配所有主机,该地方还可以设置成‘localhost’,代表只能本地访问,例如root账户默认为‘localhost‘
3、grant select,insert,update,delete,create on [数据库名称].* to [用户名称];–用户授权数据库
*代表整个数据库
4、flush privileges ;–立即启用修改
5、revoke all on . from tester;–取消用户所有数据库(表)的所有权限
6、delete from mysql.user where user=‘tester’;–删除用户
7、drop database [schema名称|数据库名称];–删除数据库
create user ‘erp_test’@’%’ identified by ‘erp_test@abc’; – 创建用户
grant select,insert,update,delete,create on . to erp_test; --用户授权数据库
flush privileges;–立即启用修改
部署中问题总结
1.出现问题:
[root@root ~]# yum install java-1.8.0-openjdk -y
已加载插件:fastestmirror, langpacks
/var/run/yum.pid 已被锁定,PID 为 10026 的另一个程序正在运行。
Another app is currently holding the yum lock; waiting for it to exit...
另一个应用程序是:PackageKit
内存:133 M RSS (477 MB VSZ)
已启动: Fri Apr 9 13:17:54 2021 - 00:37之前
状态 :睡眠中,进程ID:10026
Another app is currently holding the yum lock; waiting for it to exit...
另一个应用程序是:PackageKit
内存:133 M RSS (477 MB VSZ)
已启动: Fri Apr 9 13:17:54 2021 - 00:39之前
状态 :睡眠中,进程ID:10026
Another app is currently holding the yum lock; waiting for it to exit...
另一个应用程序是:PackageKit
内存:133 M RSS (477 MB VSZ)
已启动: Fri Apr 9 13:17:54 2021 - 00:41之前
状态 :睡眠中,进程ID:10026
....................
解决:
ctrl+c
# 强制关掉yum进程
rm -f /var/run/yum.pid
2.出现问题:**
[root@root src]# tar -zxvf guacamole-server-1.0.0.tar.gz
....................
checking for cl.exe... no
configure: error: in `/usr/local/src/guacamole-server-1.0.0':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
[root@root guacamole-server-1.0.0]# make -j4
make: *** 没有指明目标并且找不到 makefile。 停止。
[root@root guacamole-server-1.0.0]# ^C
解决:
[root@root guacamole-server-1.0.0]# yum install gcc
文章借鉴: https://blog.csdn.net/duguduchong/article/details/8699774
3.出现问题:**
mysql> set password for root@localhost = password('new_root_password');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password('123')' at line 1
解决:
alter user 'root'@'localhost' identified by 'new_root_password';
4.出现问题:**
部分问题未记录,哈哈哈哈…
文章借鉴:
https://my.oschina.net/54188zz/blog/3017351
等我开个百度云会员上传