Comment installer Guacamole en utilisant Docker (étape par étape)

Pourquoi ce guide ?

Auparavant, le projet oznu/docker-guacamole permettait aux utilisateurs de Docker d’installer et d’exécuter facilement Guacamole. Cependant, ce projet a été archivé et n’a pas été mis à jour depuis environ 3 ans.

Par conséquent, j’ai entrepris d’installer Guacamole par moi-même.

Bien que l’installation soit relativement simple, sans une recherche approfondie, vous pourriez rencontrer de nombreuses difficultés. La documentation officielle d’Apache Guacamole est limitée, c’est pourquoi je propose ce guide pour aider ceux qui en ont besoin.

Étapes d’installation

1. Télécharger les images Docker

Je ne détaillerai pas l’installation de Docker et Docker Compose, car cela dépasse le cadre de ce guide. Veuillez noter qu’Apache Guacamole ne fournit des conteneurs que pour l’architecture AMD64, ce guide ne fonctionnera donc pas pour ARM (désolé pour les utilisateurs de Raspberry Pi).

Tout d’abord, téléchargeons les images depuis Docker Hub :

docker pull guacamole/guacamole:1.4.0
docker pull guacamole/guacd:1.4.0
docker pull mariadb:10.9.5

2. Récupérer le script d’initialisation de la base de données

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

3. Créer le fichier docker-compose.yml initial pour la base de données

Créez un fichier docker-compose.yml et ajoutez :

version: '3'
services:
  guacdb:
    container_name: guacamoledb
    image: mariadb:10.9.5
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'MotDePasseRootMariaDB'
      MYSQL_DATABASE: 'guacamole_db'
      MYSQL_USER: 'guacamole_user'
      MYSQL_PASSWORD: 'MotDePasseUtilisateurMariaDB'
    volumes:
      - './db-data:/var/lib/mysql'
volumes:
  db-data:

Puis lancez le conteneur :

docker-compose up -d

4. Initialiser la base de données

docker cp initdb.sql guacamoledb:/initdb.sql
docker exec -it guacamoledb bash
cat /initdb.sql | mysql -u root -p guacamole_db
exit

Arrêtez ensuite les conteneurs :

docker-compose down

5. Compléter le fichier docker-compose.yml avec tous les services nécessaires

Éditez le fichier docker-compose.yml et ajoutez :

version: '3'
services:
  guacdb:
    container_name: guacamoledb
    image: mariadb:10.9.5
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'MotDePasseRootMariaDB'
      MYSQL_DATABASE: 'guacamole_db'
      MYSQL_USER: 'guacamole_user'
      MYSQL_PASSWORD: 'MotDePasseUtilisateurMariaDB'
    volumes:
      - './db-data:/var/lib/mysql'
  guacd:
    container_name: guacd
    image: guacamole/guacd:1.4.0
    restart: unless-stopped
  guacamole:
    container_name: guacamole
    image: guacamole/guacamole:1.4.0
    restart: unless-stopped
    ports:
      - 8080:8080
    environment:
      GUACD_HOSTNAME: "guacd"
      MYSQL_HOSTNAME: "guacdb"
      MYSQL_DATABASE: "guacamole_db"
      MYSQL_USER: "guacamole_user"
      MYSQL_PASSWORD: "MotDePasseUtilisateurMariaDB"
      TOTP_ENABLED: "true"
    depends_on:
      - guacdb
      - guacd
volumes:
  db-data:

Puis relancez les conteneurs :

docker-compose up -d

Accéder à Guacamole

Ouvrez votre navigateur et accédez à l’adresse suivante :

http://votre_ip_locale:8080/guacamole

Les identifiants par défaut sont :

  • Nom d’utilisateur : guacadmin
  • Mot de passe : guacadmin

Pour des raisons de sécurité, j’ai activé l’authentification à deux facteurs (TOTP). Si vous ne souhaitez pas l’utiliser, supprimez la ligne TOTP_ENABLED: "true" de votre fichier docker-compose.yml.

Conclusion

J’espère que ce guide vous aidera à installer et à exécuter Guacamole sans problème.

Cet article est une traduction et une adaptation de l’article original disponible sur KRDesigns.com.

Romain D.

Passionné d'informatique perdu dans une trame Ethernet. Ce blog est mon bloc-notes public.

Ajouter un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Romain D.

Passionné d'informatique perdu dans une trame Ethernet. Ce blog est mon bloc-notes public.