docker下使用guacamole
第一步: 下载运行guacd镜像
第二步: 初始化mysql
使用guacomole要在mysql认证后端,您需要一个运行mysql映像的docker容器,或者网络访问mysql的工作安装。可以使用环境变量或Docker链接指定到MySQL的连接。
- 下载并运行MySQL镜像
docker run -d -e MYSQL_ROOT_PASSWORD=root --name mysql -v e:/home/docker/mysql/my.cnf:/etc/mysql/my.cnf -v e:/home/docker/mysql/data:/var/lib/mysql -p 3306:3306 registry.cn-hangzhou.aliyuncs.com/shepf/mysql:5.7
- 生成mysql要执行的sql
To generate a SQL script which can be used to initialize a fresh MySQL database。
生成sql脚本用于初始化sql数据库。
mysql> CREATE DATABASE guacamole_db;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE USER 'guacamole_user'@'%' IDENTIFIED BY 'some_password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)
mysql> quit
$ docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
- 在guacamole_db库下执行刚才生成的initdb.sql
第三步: 运行guacamole镜像,指定数据库连接信息、执行guacd连接信息。
如果使用docker的guacd和mysql,
docker run --name some-guacamole --link some-guacd:guacd --link mysql:mysql -d -p 8080:8080 guacamole/guacamole
启动失败,日志报错如下:
C:\Users\Administrator>docker logs some-guacamole
FATAL: No authentication configured
The Guacamole Docker container needs at least one authentication mechanism in
order to function, such as a MySQL database, PostgreSQL database, or LDAP
directory. Please specify at least the MYSQL_DATABASE or POSTGRES_DATABASE
environment variables, or check Guacamole’s Docker documentation regarding
configuring LDAP and/or custom extensions.
解决:
使用mysql认证,需要额外的配置参数,通过docker环境变量
Variable Description
MYSQL_DATABASE
The name of the database to use for Guacamole authentication.
MYSQL_USER
The user that Guacamole will use to connect to MySQL.
MYSQL_PASSWORD
因此最终的命令如下:
The password that Guacamole will provide when connecting to MySQL as MYSQL_USER.
docker run --name some-guacamole -e MYSQL_DATABASE=guacamole_db -e MYSQL_USER=guacamole_user -e MYSQL_PASSWORD=some_password --link some-guacd:guacd --link mysql:mysql -d -p 8080:8080 guacamole/guacamole
至此,guacamole成功启动。
登陆 http://127.0.0.1:8080/guacamole/
默认账号密码为:guacadmin/guacadmin
如果登陆不上查看guacamole容器日志,调试即可。