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.

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.

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).

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}] [--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.

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.

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.1.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.1.0
File Size Uploaded
anchorage_docker-0.1.0.tar.gz 175.8 kB Details

Built distribution (wheel)

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

Total release size: 258.3 kB

Release files / anchorage_docker-0.1.0.tar.gz

Download URL anchorage_docker-0.1.0.tar.gz
Size 175.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9e6bb70b80bf5a1ba8c67fcda3ba9444548926440fd05f91f35555d0285e2562
BLAKE2b-256 checksum
How to use checksums
f7e12138906f54056ddfbe36684ef165a87e66e531a40c77aae4d0e72cb92c2b
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.1.0-py3-none-any.whl

Download URL anchorage_docker-0.1.0-py3-none-any.whl
Size 82.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1c5e32482b089c7688af900aec9f5a3893d80baf96d2634ce9c099c31000ca11
BLAKE2b-256 checksum
How to use checksums
98c54154c1b69cf81d61d2d9edc2b76e96114b3a36d8f59ea1ee4b5f5a5dee1a
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

0.2.0

2 release files

This release

0.1.0 This release

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