Skip to content


This image is deprecated. We will not offer support for this image and it will not be updated. The last working tag is: 1.4.0-ls145 We recommend the official image instead:

linuxserver/guacd pulls GitHub Stars GitHub Release GitHub Package Repository GitLab Container Registry Docker Pulls Docker Stars Jenkins Build LSIO CI

Guacd - Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. This container is only the backend server component needed to use The official or 3rd party HTML5 frontends.

Supported Architectures

We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here.

Simply pulling should retrieve the correct image for your arch, but you can also pull specific arch images via tags.

The architectures supported by this image are:

Architecture Available Tag
x86-64 amd64-<version tag>
arm64 arm64v8-<version tag>
armhf arm32v7-<version tag>

Application Setup

This is a backend only service, to leverage Guacd server you need to use either the official Java frontend guacamole-client or an open source alternative like guacamole-lite.


To help you get started creating a container from this image you can either use docker-compose or the docker cli.

version: "2.1"
    container_name: guacd
      - 4822:4822
    restart: unless-stopped

docker cli (click here for more info)

docker run -d \
  --name=guacd \
  -p 4822:4822 \
  --restart unless-stopped \


Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Ports (-p)

Parameter Function
4822 Port Guacamole server listens on

Environment Variables (-e)

Env Function

Volume Mappings (-v)

Volume Function

Miscellaneous Options

Parameter Function

Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend FILE__.

As an example:

-e FILE__PASSWORD=/run/secrets/mysecretpassword

Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.

Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.

Docker Mods

Docker Mods Docker Universal Mods

We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

  • Shell access whilst the container is running:
  • docker exec -it guacd /bin/bash
  • To monitor the logs of the container in realtime:
  • docker logs -f guacd
  • Container version number
  • docker inspect -f '{{ index .Config.Labels "build_version" }}' guacd
  • Image version number
  • docker inspect -f '{{ index .Config.Labels "build_version" }}'


  • 15.02.23: - Deprecate image.
  • 11.03.22: - Bump to 1.4.0.
  • 15.05.21: - Add terminus font for SSH support.
  • 08.05.21: - Bump to 1.3.0, rebase to Alpine.
  • 27.07.20: - Bump to 1.2.0.
  • 17.04.20: - Bump back 1.1.0, rebase to focal
  • 08.02.20: - Bump to 1.1.0.
  • 25.05.19: - Initial Release.