Guacamole ist eine Webanwendung, welche es ermöglicht RDP, VNC und SSH Verbindungen über ein Webinterface zu nutzen. Es können Berechtigungsstrukturen für die Nutzung mit mehreren Accounts erstellt werden.
Vorraussetzungen:
– Aktueller Ubuntu LTS Server
– Installiertes Docker und Docker Compose
Schritt 1:
Verzeichnis für das Docker Compose Script erstellen:
mkdir -p ~/guacamole
cd guacamole
Schritt 2:
Docker Images herunterladen:
docker pull guacamole/guacamole:1.5.5
docker pull guacamole/guacd:1.5.5
docker pull mariadb:10.9.5
Schritt 3:
Datenbank Initialization-File erstellen:
docker run --rm guacamole/guacamole:1.5.5 /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
Schritt 4:
Nun wird das Docker Compose Script erstellt. Vorerst nur mit dem Datenbankcontainer.
nano docker-compose.yml
-----------------------
services:
guacdb:
container_name: guacamoledb
image: mariadb:10.9.5
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: '8xLF8EQ4GLN9gOfwoes36xHal'
MYSQL_DATABASE: 'guacamole_db'
MYSQL_USER: 'guacamole_user'
MYSQL_PASSWORD: '2wBPEHT8Ft72K837HHW4YVoHn'
volumes:
- './db-data:/var/lib/mysql'
Schritt 5:
Nun den Container starten:
docker-compose up -d
Schritt 6:
Jetzt wird das SQL-Script in den Datenbank Container kopiert:
docker cp initdb.sql guacamoledb:/initdb.sql
--------------------------------------------
docker exec -it guacamoledb bash
cat /initdb.sql | mysql -u root -p guacamole_db <insert MYSQL_ROOT_PASSWORD as defined earlier>
--------------------------------------------
exit
Schritt 7:
Nun muss der Datenbankcontainer wieder gestoppt werden:
docker-compose down
Schritt 8:
Nun kann der restliche Inhalt in die docker-compose.yml Datei kopiert werden. Die Datei sieht dann in etwa so aus:
services:
guacdb:
container_name: guacamoledb
image: mariadb:10.9.5
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: '8xLF8EQ4GLN9gOfwoes36xHal'
MYSQL_DATABASE: 'guacamole_db'
MYSQL_USER: 'guacamole_user'
MYSQL_PASSWORD: '2wBPEHT8Ft72K837HHW4YVoHn'
volumes:
- './db-data:/var/lib/mysql'
guacd:
container_name: guacd
image: guacamole/guacd:1.5.5
restart: unless-stopped
guacamole:
container_name: guacamole
image: guacamole/guacamole:1.5.5
restart: unless-stopped
ports:
- 8080:8080
environment:
GUACD_HOSTNAME: "guacd"
MYSQL_HOSTNAME: "guacdb"
MYSQL_DATABASE: "guacamole_db"
MYSQL_USER: "guacamole_user"
MYSQL_PASSWORD: "2wBPEHT8Ft72K837HHW4YVoHn"
TOTP_ENABLED: "true"
WEBAPP_CONTEXT: "ROOT"
depends_on:
- guacdb
- guacd
volumes:
db-data:
Schritt 9:
Nun die Container gemeinsam starten:
docker-compose up -d
Zum updaten von Guacamole können einfach die Versionsnummern für die Container „guacd“ und „guacamole“ angepasst werden.