- 安装docker方法参见Docker部署安装及常用指令
- 拉取Guacamole服务器、Guacamole客户端和MySQL的Docker镜像
docker pull guacamole/guacamole docker pull guacamole/guacd docker pull mysql/mysql-server
- 创建数据库初始化脚本以创建用于验证身份的数据表
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
- 启动数据库容器
docker run --name example-mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes -e MYSQL_ONETIME_PASSWORD=yes -d mysql/mysql-server
- 第一次使用MySQL的话,root用户生成一次性密码,可在日志中查看:
docker logs mysqltest
- 复制[Entrypoint] GENERATED ROOT PASSWORD:后面的部分,作为一次性密码
- 重命名并将initdb.sql移动到MySQL容器中,后续就能通过这个生成表了
docker cp initdb.sql example-mysql:/initdb.sql
- 在MySQL的Docker容器中打开bash终端:
docker exec -it example-mysql bash
- 使用一次性密码登录,会提示你Enter password,将刚才的一次性密码复制进去(此时在bash-4.2#状态下)
mysql -u root -p
- 在重新设定root用户密码之前,终端不会接受任何命令。因此,首先是要重新设置root用户密码(此时在mysql>状态下)
ALTER USER 'root'@'localhost' IDENTIFIED BY '自己设定的新密码';
- 创建 guacamole和创建 guacamole用户并授权 guacamole用户使用 guacamole密码访问(此时在mysql>状态下)
CREATE DATABASE guacamole;
CREATE USER 'guacamole'@'%' IDENTIFIED BY 'guacamole';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole'@'%';
FLUSH PRIVILEGES;
- 最后,输入quit退出即可
- 在bash终端中,使用初始化脚本为新数据库创建数据表(此时在bash-4.2#状态下)
cat initdb.sql | mysql -u root -p guacamole
- 需要输入密码,只需要输入刚才设置的root账户的新密码就可以了,然后退出bash状态
Ctrl + p + q
- 在Docker中启动guacd
docker run --name example-guacd -d guacamole/guacd
- 连接容器,以便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
- 查看三个容器是否都是运行状态
docker ps -a
- example-guacamole、example-guacd和example-mysql都已运行即可,访问localhost:8080/guacamole/,默认的登录账户是guacadmin,默认登录密码guacadmin。登录后应尽快修改登录账户及密码。
- 本文参考使用Apache Guacamole实现远程连接和Docker 安装 Apache Guacamole
标签: none