All Apache Guacamole deployments require an instance of the web application and an instance of guacd, and most deployments additionally require a backend database to allow web-based management of users and connections. Docker images for each of these components are provided as part of Glyptodon Enterprise, built from the same packages and made available under the same EULA. These images are supported by Glyptodon, Inc. as an alternative distribution and deployment method for Glyptodon Enterprise.

Image nameBase imageDescription
glyptodon/guacamolecentos:7The Apache Guacamole web application, deployed under Apache Tomcat.
glyptodon/guacdcentos:7The Apache Guacamole proxy daemon, guacd, with support for VNC, RDP, SSH, and telnet.
glyptodon/guacamole-db-mysqlmysql:5An instance of MySQL, automatically initialized with the Apache Guacamole database schema.
glyptodon/guacamole-db-postgrespostgres:11An instance of PostgreSQL, automatically initialized with the Apache Guacamole database schema.

Using docker-compose

docker-compose is highly recommended if deploying Glyptodon Enterprise using Docker, as any deployment of Glyptodon Enterprise using the provided Docker images will involve multiple containers which docker-compose can greatly assist in orchestrating.

For example, a full deployment of Glyptodon Enterprise which uses a user-mapping.xml for authentication can be created using a docker-compose.yml like the following:

version: "3"
services:

    guacd:
        image: glyptodon/guacd
        environment:
            ACCEPT_EULA: Y

    guacamole:
        image: glyptodon/guacamole
        ports:
            - "8080:8080"
        environment:
            ACCEPT_EULA: Y
            GUACD_HOSTNAME: guacd
            USER_MAPPING: |
                <user-mapping>
                    <authorize username="test" password="test">
                        <connection name="VNC 1">
                            <protocol>vnc</protocol>
                            <param name="hostname">host1</param>
                            <param name="port">5901</param>
                        </connection>
                        <connection name="VNC 2">
                            <protocol>vnc</protocol>
                            <param name="hostname">host2</param>
                            <param name="port">5901</param>
                        </connection>
                    </authorize>
                </user-mapping>

A similar docker-compose.yml which leverages MySQL rather than user-mapping.xml and uses the glyptodon/guacamole-db-mysql image would look like:

version: "3"
services:

    guacd:
        image: glyptodon/guacd
        environment:
            ACCEPT_EULA: Y

    db:
        image: glyptodon/guacamole-db-mysql
        environment:
            ACCEPT_EULA: Y
            MYSQL_RANDOM_ROOT_PASSWORD: "yes"
            GUACAMOLE_DATABASE: guacamole_db
            GUACAMOLE_USERNAME: guacamole_user
            GUACAMOLE_PASSWORD: some_password

    guacamole:
        image: glyptodon/guacamole
        ports:
            - "8080:8080"
        environment:
            ACCEPT_EULA: Y
            GUACD_HOSTNAME: guacd
            MYSQL_HOSTNAME: db
            MYSQL_DATABASE: guacamole_db
            MYSQL_USERNAME: guacamole_user
            MYSQL_PASSWORD: some_password