Skip to main content

Setting up Apache Guacamole using Docker

The IP of my docker server is 192.168.10.11

Step 1: sudo docker run --name my-guacd -d guacamole/guacd

Step 2: sudo docker run --name guacamole-mysql -e MYSQL_ROOT_PASSWORD=sqlpassword -d --restart unless-stopped mysql:latest

Step 3: sudo docker exec -it guacamole-mysql /bin/bash

mysql -u root -p

CREATE DATABASE guacamole_db;
CREATE USER 'guacamole_user'@'%' IDENTIFIED BY 'guacamopwd';
GRANT ALL PRIVILEGES ON guacamole_db.* TO 'guacamole_user'@'%';
FLUSH PRIVILEGES;

Exit out of the mysql docker

Step 4:

sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -pguacamopwd -D guacamole_db

note: there is no space between -p and guacamopwd (the actual password)

Step 5:

sudo docker run --name my-guacamole \
--link my-guacd:guacd \
--link guacamole-mysql:mysql \
-e WEBAPP_CONTEXT=ROOT \
-e MYSQL_HOSTNAME=192.168.10.11 \
-e MYSQL_DATABASE=guacamole_db \
-e MYSQL_USER=guacamole_user \
-e MYSQL_PASSWORD=Nur6u6R0L7Na9Su2 \
-e TOTP_ENABLED=true \
--restart unless-stopped \
-d -p 8080:8080 guacamole/guacamole

Check that quacamole is running: sudo docker logs my-guacamole

Reference: https://guacamole.apache.org/doc/gug/guacamole-docker.html