Skip to main content

Anchorage

English | Русский

Native Linux desktop client for Docker Engine. It talks to the daemon over the UNIX socket and is a plain Qt application that follows your desktop theme. There is no virtual machine and no web view.

Container list grouped by Compose project

Container logs Container resource charts
Network with its containers Volumes

Features

  • Containers grouped by Compose project with live state; start, stop, restart, remove.
  • Per-container logs with search and follow, CPU / memory / network / block I/O charts, and the full inspect tree.
  • "Open shell" runs docker exec -it in your terminal emulator.
  • Images with pull progress, remove and prune.
  • Volumes and networks with the containers that use them.
  • Reconnects on its own when the daemon restarts.
  • A Settings button in the sidebar sets the log colours, the Docker client backend, the socket path and the terminal command; socket and backend apply after a restart.

Requirements

  • Linux with a desktop session (X11 or Wayland).
  • Docker Engine 20.10 or newer (API 1.41) reachable over a UNIX socket, and permission to use it (usually membership in the docker group).
  • Python 3.11 or newer and PySide6 6.6 or newer (installed by the package).
  • For "Open shell": the docker CLI and a terminal emulator (xdg-terminal-exec, or one of the common ones such as konsole, gnome-terminal, kitty, alacritty, foot, xfce4-terminal). A terminal command set in Settings gets docker exec -it <container> sh appended, so it must include the emulator's option for running a command (konsole -e, gnome-terminal --, xterm -e).

Install

Packages for every release are attached to the GitHub releases.

Distribution Package
Any x86_64 Linux with glibc 2.28 or newer (Debian 11+, Ubuntu 20.04+, RHEL/Rocky/Alma 8+, openSUSE Leap, any Fedora) anchorage_<version>-1~universal_amd64.deb (sudo apt install ./anchorage_*universal_amd64.deb), anchorage-<version>-1~universal.x86_64.rpm (sudo dnf install ./anchorage-*universal.x86_64.rpm, or zypper in), or Anchorage-<version>-x86_64.AppImage (chmod +x, then run; without FUSE add --appimage-extract-and-run). Self-contained: own Python and Qt under /opt/anchorage, about 46 MB (deb), 41 MB (rpm) or 61 MB (AppImage) to download and about 180 MB installed. Systems with glibc older than 2.28 (for example CentOS 7) fail with a loader error
Arch Linux anchorage-<version>-1-any.pkg.tar.zst (sudo pacman -U). The file is built against the current Arch Python; after a Python major upgrade rebuild it with packaging/build.sh arch or use the self-contained package
Debian 13, Ubuntu 25.04 and newer anchorage_<version>-1_all.deb (sudo apt install ./anchorage_*_all.deb), uses the distribution's PySide6
Fedora (current release at build time, fcNN in the file name) anchorage-<version>-1.fcNN.noarch.rpm (sudo dnf install ./anchorage-*.noarch.rpm)
Anything else pipx install anchorage-docker (the command and the application are still anchorage)

GitHub shows ~universal as .universal in download names. The native packages use the desktop's own Qt and pick up the Plasma style on KDE; the self-contained build uses Fusion with the desktop's dark or light preference on KDE and the GTK theme on GNOME.

For a pipx install, take the two files from the source repository (they are not in the wheel) and install them into your local share directory:

install -Dm644 data/io.github.zexuzzzz.Anchorage.desktop ~/.local/share/applications/io.github.zexuzzzz.Anchorage.desktop
install -Dm644 src/anchorage/data/icon.svg ~/.local/share/icons/hicolor/scalable/apps/io.github.zexuzzzz.Anchorage.svg

Command line

anchorage [--socket PATH] [--backend {native,dockerpy}] [--log-colors {stream,level}] [--language CODE] [--verbose] [--version]

DOCKER_HOST is honoured when it is a unix:// URL. Any other value is ignored with a warning and the default /var/run/docker.sock is used. When DOCKER_HOST is unset (and without --socket), the client uses a rootless daemon's $XDG_RUNTIME_DIR/docker.sock if that file exists, and /var/run/docker.sock otherwise.

--backend (or ANCHORAGE_BACKEND) selects the Docker API client. native is the default. dockerpy is experimental and exists for the comparison in docs/backend-comparison.md; it needs the docker-py package: pip install 'anchorage-docker[dockerpy]' or pipx inject anchorage-docker docker, and with distribution packages the system package (python-docker on Arch, python3-docker on Debian/Ubuntu/Fedora). The self-contained packages do not include it.

--log-colors (or ANCHORAGE_LOG_COLORS) chooses how container logs are coloured. stream, the default, paints lines written to stderr red, which mirrors docker logs; level ignores the stream and colours lines by the severity marker found near their start ([ERROR], level=warning, WARN[0000], FATAL: and similar): errors red, warnings yellow.

Flags and environment variables override the values saved in Settings for that run, and the dialog shows such a setting as fixed and leaves its saved value unchanged.

Languages

The interface is available in English, Russian, German, Spanish, French and Simplified Chinese. It follows the system language by default; choose another one in Settings → Language, with --language {auto,en,ru,de,es,fr,zh_CN} or with ANCHORAGE_LANGUAGE. Translations other than Russian have not been reviewed by native speakers; corrections are welcome as issues or pull requests. The catalogues are src/anchorage/i18n/anchorage_<code>.ts (the term list is in docs/translations/GLOSSARY.md), and tools/update_translations.sh regenerates them and the compiled .qm files from the sources.

Qt's own standard buttons and menus (OK/Cancel, the text field context menu) are translated by the distribution's Qt translations package: qt6-translations on Arch, qt6-translations-l10n on Debian/Ubuntu, qt6-qttranslations on Fedora. The self-contained packages include them.

Building packages

packaging/build.sh <arch|deb|rpm|universal|all> builds the committed tree in a Docker container of the target distribution and then installs and smoke-tests the result in a fresh container. Packages land in dist/packages/. The same script runs in the Packages workflow on GitHub Actions. Downloads for the universal build are kept in dist/cache/ and reused after a checksum match; the checks of a target run in parallel, ANCHORAGE_PACKAGING_JOBS at a time (default 3), with their logs in dist/packages/logs/.

Development

uv sync
uv run anchorage
uv run pytest
uv run ruff check . && uv run ruff format --check .
uv run mypy

Integration tests against a real daemon: uv run pytest -m integration.

See CONTRIBUTING.md for the checks a change has to pass.

The repository layout: anchorage.docker is a pure-Python Docker Engine API client over AF_UNIX, anchorage.core holds the Qt models, workers and stores, anchorage.ui the widgets and anchorage.app the entry point. data/ holds the desktop entry and AppStream metainfo, packaging/aur/ the PKGBUILD.

License

MIT, see LICENSE.

Metadata

Release files for anchorage-docker 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for anchorage-docker 0.2.0
File Size Uploaded
anchorage_docker-0.2.0.tar.gz 252.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for anchorage-docker 0.2.0
File Interpreter ABI Platform
anchorage_docker-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 381.9 kB

Release files / anchorage_docker-0.2.0.tar.gz

Download URL anchorage_docker-0.2.0.tar.gz
Size 252.0 kB
Tags Source
SHA-256 checksum
How to use checksums
56c5ceb5f653ccd7fe7ff4bf3c0a5da82d6bcea7871e0c58403b6013b3762b58
BLAKE2b-256 checksum
How to use checksums
7e569712f6bba206db71eda22fd6bf5836cab03730a798b76f813029be5438a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / anchorage_docker-0.2.0-py3-none-any.whl

Download URL anchorage_docker-0.2.0-py3-none-any.whl
Size 129.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b469b2841f8f040ef48bd2b76caf53a14bd7795bb36cf2f3b7d978d6671681e
BLAKE2b-256 checksum
How to use checksums
8e7b6af87dd52d22f0967e430b5e9bd2d3f7a65be165ef9d75ea979224537fcb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page