Docker部署Apache Guacamole远程桌面

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-guacamoleexample-guacdexample-mysql都已运行可在访问:

登录

http://部署机IP:8080/guacamole/

默认账户:guacadmin
默认密码:guacadmin
登录页面
登录成功后创建连接
设置
>连接>*
新建连接
其余配置结合需求设置
其他设置
保存—>首页
(以上创建连接成功后返回首页就双击已经创建好的连接就可以成功连接)
在这里插入图片描述
等待连接(不出意外就能看到远程屏幕)
在这里插入图片描述
新建管理员管理员
在这里插入图片描述

其他相关命令

防火墙命令

文章借鉴: https://blog.csdn.net/s_p_j/article/details/80979450

在外部访问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;–立即启用修改

文章借鉴: https://www.cnblogs.com/linjiqin/p/10481636.html

部署中问题总结

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

https://blog.csdn.net/qq_35656986/article/details/107185276

https://www.cnblogs.com/ruhuanxingyun/p/13614144.html

等我开个百度云会员上传
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值