A minimal docker baseimage to ease creation of X graphical application containers
500K+
This Docker baseimage simplifies creating containers to run any X graphical application on a headless server. The application's full graphical interface directly from any modern web browser - no downloads, installs, or setup required on the client side - or connect with any VNC client.
The web interface also offers audio playback, seamless clipboard sharing, an integrated file manager and terminal for accessing the container's files and shell, desktop notifications, and more.
This baseimage is available for multiple Linux distributions:
| Base Distribution | Docker Image Base Tag | Size |
|---|---|---|
| Alpine 3.16 | alpine-3.16 | |
| Alpine 3.17 | alpine-3.17 | |
| Alpine 3.18 | alpine-3.18 | |
| Alpine 3.19 | alpine-3.19 | |
| Alpine 3.20 | alpine-3.20 | |
| Alpine 3.21 | alpine-3.21 | |
| Alpine 3.22 | alpine-3.22 | |
| Debian 10 | debian-10 | |
| Debian 11 | debian-11 | |
| Ubuntu 16.04 LTS | ubuntu-16.04 | |
| Ubuntu 18.04 LTS | ubuntu-18.04 | |
| Ubuntu 20.04 LTS | ubuntu-20.04 | |
| Ubuntu 22.04 LTS | ubuntu-22.04 |
Docker image tags follow this structure:
| Tag | Description |
|---|---|
| distro-vX.Y.Z | Exact version of the image. |
| distro-vX.Y | Latest version of a specific minor version of the image. |
| distro-vX | Latest version of a specific major version of the image. |
View all available tags on Docker Hub or check the Releases page for version details.
Images adhere to semantic versioning. The version format is
MAJOR.MINOR.PATCH, where an increment in the:
MAJOR version indicates a backward-incompatible change.MINOR version indicates functionality added in a backward-compatible manner.PATCH version indicates a bug fix in a backward-compatible manner.The baseimage includes the following key components:
Creating a Docker container for an application using this baseimage is
straightforward. You need at least three components in your Dockerfile:
/startapp.sh in the
container.Below is an example of a Dockerfile and startapp.sh for running the xterm
terminal:
Dockerfile:
# Pull the baseimage.
FROM jlesage/baseimage-gui:alpine-3.19-v4
# Install xterm.
RUN add-pkg xterm
# Copy the start script.
COPY startapp.sh /startapp.sh
# Set the application name.
RUN set-cont-env APP_NAME "Xterm"
startapp.sh:
#!/bin/sh
exec /usr/bin/xterm
Make the script executable:
chmod +x startapp.sh
Build the Docker image:
docker build -t docker-xterm .
Run the container, mapping ports for web and VNC access:
docker run --rm -p 5800:5800 -p 5900:5900 docker-xterm
Access the GUI via a web browser at:
http://<HOST_IP_ADDR>:5800
Full documentation is available at https://github.com/jlesage/docker-baseimage-gui.
Content type
Image
Digest
sha256:0df945975…
Size
65.8 MB
Last updated
3 days ago
docker pull jlesage/baseimage-gui:alpine-3.23-v4Pulls:
3,944
Last week