• 安装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

添加新评论