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 -itin 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
dockergroup). - Python 3.11 or newer and PySide6 6.6 or newer (installed by the package).
- For "Open shell": the
dockerCLI 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 getsdocker exec -it <container> shappended, 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)
| File | Size | Uploaded | |
|---|---|---|---|
| anchorage_docker-0.2.0.tar.gz | 252.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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