Release notes
What changed in each version of eDock, newest first.
0.6.5 — 2026-11-15
docker cp works as it does with Docker
docker cp container:/folder/. here/copies the folder's contents, as Docker does. Before, it copied the folder itself, so the files landed inhere/folder/….- Files copied into a container keep the owners the archive gives them, as with Docker:
docker cpfrom your Mac makes them your user's, and an archive's own owners stay. Before, every file became root's.docker cp -amakes them the container user's (root's for a container running as root).
Smaller fixes
- Engine › Builds & import says the builder pauses when it's idle and resumes for the next build, which is what it does. It used to say it stops.
- When you restore a Compose service's snapshot, the dialog says the container it replaces is kept as a snapshot.
edockwith no arguments lists every command and option:setup --domains,--docker-socketand--no-domains;machine start,restart,--image,--systemd,--ssh-agentandshell -- CMD;import orbstack image|volume|container.
Under the hood
- The engine no longer carries code for Windows and WSL from the project it was forked from: about 1,150 lines less.
- The documentation was checked against the code, claim by claim, and corrected where they differed.
Download
eDock-0.6.5-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.
0.6.4 — 2026-11-15
A quality release, from going through every page of the app on eDock and on OrbStack.
Fixed
- Images no longer turns blank when two tags name the same image (
redis:8-alpineandredis:alpine). - Volumes shows each volume's size again, on eDock, OrbStack and Docker.
- Restart engine starts the containers that were running again, as it says it will. Before, they stayed stopped.
- Error messages show only what went wrong, without
elyra command "…" failed:in front. - A container's web address with no web page behind it (a database, a worker with no ports, a server still starting) shows a page that says why, instead of an empty reply.
- When the engine starts while its old process still holds the domain ports, it tries again for a few seconds instead of leaving container domains off until the next restart.
- Files says so when an image has no
findto list folders with (on OrbStack and Docker), instead of showing an empty folder. - A container that has stopped shows its exit code: exited (3) on its page, Exited (3) 16 minutes ago in the list.
- ⌘K lists matching containers before New service, and offers Start eDock engine only while the engine isn't running.
- A volume's users no longer include eDock's own helper containers.
- Requests: a request that failed shows how long it took, and No response instead of No response yet.
Details
- Uptime reads as
docker pswords it: Up About a minute, not Up 1 minutes. - 1 line, not 1 lines, and the log's line count stays on one line.
- The sidebar leaves out memory while the VM sleeps, instead of showing 0.0 GB.
- A container whose image has no name shows a short ID.
- Screen readers: checkboxes, the Remove buttons on a container's and a volume's pages, and the menu bar's open buttons have names.
Download
eDock-0.6.4-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.
0.6.3 — 2026-11-15
A quality release: fixes from a review of everything added since 0.4.0, with no new features.
Snapshots
- When you restore a container, it keeps its anonymous volumes, the ones an image declares (a database's data). A container with a bind mount used to come back with an empty one.
- When you restore a Compose service's container, the one it replaces is kept as a snapshot (Before restoring …), not as a second container of the same service that Compose would trip over.
- Two snapshots taken in the same second get their own names. Before, the second replaced the first.
Files and volumes
- Uploading a file of 8 GiB or more works. Before, the upload failed.
- Save writes to a temporary file and moves it into place when it's complete, so a save that fails leaves the existing file as it was.
- A container or folder that's gone says so, instead of asking you to restart the engine.
- Clicking quickly between folders shows the last one you clicked.
- Long link targets and file names in eDock's own archives are read correctly.
- An import that fails no longer leaves an empty volume behind.
Engine and app
- Just after a container starts, the Finder view and the Files tab no longer show the VM's own files.
- Two requests at once to share the same Kubernetes address open one port, not two.
- The HTTP inspector keeps only the start of a large body and no longer slows big downloads through
*.edock.localhost. edock usb --jsonworks on its own.- AI agents can run images given by digest (
image@sha256:…). - On Docker and OrbStack, a command that worked is no longer sometimes reported as
exit -1. - The check for an old
edockon your PATH runs your login shell at most once a minute, and a shell that hangs is stopped. - The menu bar, the build page and Compose's combined logs do less work when a lot happens at once.
Download
eDock-0.6.3-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.
0.6.2 — 2026-11-15
Fixes
- A container's Files tab on eDock shows its volumes and bind mounts as the container sees them, also in images without a shell or
find(scratch and distroless images, ElyraSQL's data folder).~/eDockin Finder shows them too. - While eDock measures disk usage, a container that closes its input (
docker exec -i … tar) or a forwarded connection no longer waits for the measuring to finish. docker cpinto a container can no longer lose its connection in a rare case inside the VM.- Askr serves only project folders:
/Users,/Volumesand the temporary folders, never/etcor/var. It gets a writableHOME, and New service says how a project reaches a database on your Mac (DB_HOST=host.docker.internal). - Container domain links show only while the domain router answers (not while a container publishes its port).
- In a volume's files, a link to the volume's top opens the top.
Download
eDock-0.6.2-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.
0.6.1 — 2026-11-15
Fixed: containers that failed to start, or never did
A container started while eDock measured disk usage (the Volumes page, docker system df) could fail at once with exit code 127 (“switch user: No such file or directory” or “executable file not found”), or hang before its program ran. The VM's agent measured on a second thread, and a container started from a multi-threaded process inherited that state. It now measures in a separate process, so starts are never affected.
New services
New service gains three:
- ElyraSQL: MySQL-compatible, one file, with vector search (
mysql://root:elyrasql@localhost:3307/elyra). - SQL Anywhere: SQLite over HTTP and WebSockets (
http://localhost:8080). - Askr: a PHP 8.5 app server for a project folder on your Mac; Laravel runs in worker mode.
Fixes
- A volume's page shows the volume's files (it showed an empty folder on eDock's engine), and a container's Files tab shows what's in its volumes and bind mounts.
- Cloning a volume copies from volume to volume inside the VM, never through the Mac; an export or import that's cut short says so.
- Leaving a volume's page while its helper starts no longer leaves the helper running.
edock k8s delete(and changing the cluster's settings) no longer leaves three anonymous volumes behind.- Responses through
*.edock.localhostthat take longer than 30 seconds (server-sent events, slow pages) are no longer cut. - Ports changed in the app show in
docker inspect, and survive restoring a snapshot. - Volume snapshots are kept per engine, so OrbStack's
postgresand eDock's don't mix. edock machine createandedock k8s startuse the image eDock has when the registry can't be reached.sudoin Linux machines keeps the Mac's SSH agent.- Combined Compose logs: a note when the filter hides every line, and the last line of a stopped service is kept.
- AI agents' runs are kept out of the container list; BuildKit doesn't raise memory alerts; every change an agent makes shows a note.
Download
eDock-0.6.1-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.
0.6.0 — 2026-11-15
Compose projects as a whole
A project's header now has:
- All its logs: every service's log as one, in time order, each service in its own colour; click one to hide it.
- Rebuild & up:
docker compose up -d --buildfrom the project's own files and folder, with its output as it runs. - Its folder, a click from Finder, Terminal or your editor (Cursor, VS Code, Zed and others).
Volumes, without a container
Click a volume for its files: browse, preview, save to the Mac, put files in, remove. A small helper does it and goes away when you leave. Volumes can also be cloned, and exported to one .tar and imported again, owners kept.
Notifications
A macOS notification when a container runs out of memory or turns unhealthy; click it for the container's log. At most one per container every ten minutes. Engine › Overview › Notifications turns them off.
Your Mac's SSH agent in Linux machines
New machines can use the Mac's SSH agent (on by default), so git and ssh in them use your Mac's keys, which never leave the Mac.
Builds and their images
A completed build shows the image it made: its size against the last build of the same name, and Inspect image and Scan. Engine › Builds & import also has:
- docker build uses: docker's context, or eDock always;
- a speed test: how long a container takes on eDock and on the other engines on your Mac;
- the engine log.
The Command line card warns when an older edock comes first on your PATH.
Engine
- The engine sends Docker's
oomevent when the kernel kills a container for memory. edock build-with --json,edock builds layers BUILDER IDandedock machine create --ssh-agent.
Fixes
- A container's Files tab on eDock now shows folders inside volumes and bind mounts too (a database's data folder, say).
- eDock's helper containers (snapshots, the speed test, volume files) are listed with eDock's own, not yours.
Download
eDock-0.6.0-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.
0.5.0 — 2026-11-14
AI agents (MCP)
eDock is an MCP server. Claude Code, Claude Desktop, Cursor and VS Code can see your containers, read their logs, check ports, scans and requests, and run commands in throwaway containers (no network unless asked). Anything that changes something is asked in the agent's app first. Engine › AI agents has the command to copy.
Requests: an HTTP inspector
Requests records each request through http(s)://<name>.edock.localhost: method, URL, headers, bodies (gzip undone, JSON indented), status and timing. Filter by status or container, copy a request as curl, or replay it. Off until you start recording; kept in memory only.
Snapshots
Take a snapshot of a container's files or a volume's, and go back to it later. Restoring a container keeps the one it replaces, renamed. Works on any engine.
Files
A container's new Files tab browses its folders, previews files, saves a file (or a folder as a .tar) to the Mac, takes files dropped on the window, and removes them. On eDock it works with any image, even without a shell.
New service, and ⌘K finds things
New service on the Containers page (and in ⌘K) starts PostgreSQL, MySQL, MariaDB, Redis, MongoDB, RabbitMQ, Mailpit or MinIO for development: data in a volume, its port on your Mac, the connection string copied. ⌘K now also finds containers, images, Linux machines and Kubernetes pods by name.
USB devices (beta)
Engine › USB hands a serial adapter, Zigbee stick or development board to eDock's containers (--device), and gives it back.
Fixes
- The Containers page and the menu bar's popover show an empty state when only eDock's own containers exist, and the counts leave those out.
- Kubernetes forwards live in the engine: they survive the app closing, and the same service forwarded twice gets the same port.
- The welcome's steps act on eDock's engine even while another is shown.
- Error notes show in red, as they were meant to.
- Build times show properly for builds still running or cut off.
- Docker compatibility: image labels (
docker inspect,docker images --filter label=…), and a container'sHostConfig.Binds,PortBindingsand the like indocker inspect, so tools that make a container again from its inspect keep its mounts and ports.
Download
eDock-0.5.0-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page (Requests and Files need the new engine).
0.4.0 — 2026-11-14
Welcome
The first time eDock opens, it walks you through getting set up, each step one click and each one skippable:
- Start the engine.
- Set up the terminal:
docker, Compose and buildx, without a package manager. - Bring your images, volumes and containers over from OrbStack or Docker Desktop.
- Trust HTTPS for
https://<name>.edock.localhost.
⌘K › Welcome shows it again any time.
Builds
A new Builds page lists every docker build on eDock, with its status, steps, how much came from the cache, and how long it took. Open one to see each step's log. A failed build shows its error and the failed step at the top. From the terminal: edock builds.
Kubernetes: Forward to Mac
A ClusterIP service's ports now have Forward. It opens the service on localhost, like kubectl port-forward, without kubectl. The service shows the link until you stop it.
Proxy
Engine › Network gathers container domains, HTTPS and now the proxy for image pulls, pushes and logins:
- macOS's settings, a custom proxy, or none;
- optionally passed to new containers as
HTTP_PROXY,HTTPS_PROXYandNO_PROXY.
Download
eDock-0.4.0-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves; afterwards, press Restart engine on the Engine page.
0.3.1 — 2026-11-14
An important fix for 0.3.0: please update.
Fixes
- Prune no longer removes Linux machines or Kubernetes. In 0.3.0, a stopped Linux machine, or a stopped Kubernetes cluster, was deleted with everything in it by Prune on the Containers page or by
docker container prune. Now they're kept, and go only by their own Delete (or an explicitdocker rm). - eDock's own containers stay out of the way. Linux machines, the Kubernetes node and BuildKit no longer crowd the container list and the menu bar. eDock's own in the Containers header shows them, marked as what they are.
- The environment editor keeps values exactly. It's now a row per variable:
- a value over several lines, such as a PEM key or JSON, and spaces at its ends are kept as they are;
- a container with two variables of the same name no longer breaks Inspect.
- Quieter. The menu bar and the engine status ask eDock's engine once instead of twice, without keeping its VM awake.
- Ports: a UDP port is no longer shown as listening because a TCP port of that number is.
After updating, press Restart engine on the Engine page: the prune fix is in the engine.
Download
eDock-0.3.1-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below. eDock 0.2.0 and later offer this update by themselves.
0.3.0 — 2026-11-14
eDock 0.3.0 brings out much of what eDock's engine could already do.
Ports that just work
- Every running container has an address at eDock's router,
http://<name>.edock.localhost(or<service>.<project>…for Compose). It shows in the list and the menu bar, and reaches the container's web port even when nothing is published. - See what a container really listens on. The new Ports tab finds ports it listens on that nothing publishes (you forgot
-p, or the image never declared them) and publishes them with one click, while it runs. You can also add, change or remove ports there. - Edit the environment in place. Inspect › Environment › Edit restarts the container with the new variables, and keeps its files.
- Trusted HTTPS. Engine › Domains › Trust HTTPS gives
https://<name>.edock.localhosta padlock. The certificates can only vouch for eDock's own names. Another server on ports 80 and 443? Give eDock's domains ports of their own there.
Linux machines
A new Machines page: long-lived Linux environments with your Mac user, passwordless sudo, and /Users at the same path.
- Ubuntu, Debian, Alpine, Fedora, Arch, Rocky or openSUSE, optionally with systemd.
- Ready in seconds, with a shell a click away.
- From the terminal:
edock machine shell <name>.
Image security
Click an image:
- Layers: what each Dockerfile line added, and which lines came with the base image.
- Security: known vulnerabilities, found by Grype straight from eDock's store, without starting the VM.
- Findings by severity, with the versions that fix them and the line that brought them in.
- Fixable only filter, earlier scans, and the SBOM as CycloneDX.
- The first scan downloads the scanner and its database: about 200 MB, and about 3 GB on disk.
Engine settings
The Engine page has tabs now:
- Resources: the VM's CPUs and memory, and what the containers, the VM and eDock itself use now.
- Domains: container domain ports and HTTPS trust.
- Builds & import:
docker build's cache size, and emptying it;- import from OrbStack or Docker Desktop (only read; containers arrive stopped);
- a diagnostics report, saved where you choose.
Also
edock tls status | trust | untruston the command line.- Cards everywhere lay out their content properly.
Download
eDock-0.3.0-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below.
eDock 0.2.0 and later offer this update by themselves. Afterwards, press Restart engine on the Engine page.
0.2.1 — 2026-11-14
A maintenance release with fixes from a review of eDock 0.2.0.
Fixes
- Restart engine no longer hangs. When the app had started the engine itself, Restart engine (offered after an update) waited 30 seconds and then failed. It now takes a few seconds.
- eDock leaves ports 80 and 443 to their owner. If another local server held them on IPv4, eDock took them on IPv6, so
localhostreached eDock instead of that server. Now it takes both or neither, and turns its container domains off. To give them ports of their own, see Troubleshooting › Ports 80 or 443 are taken. - The engine's VM sleeps. The app's status checks no longer count as use.
- Live lists:
- A container turning healthy or unhealthy shows at once.
- A burst of changes, such as
docker compose up, is one refresh. - Switching engines in the toolbar takes effect immediately.
- Logs keep stdout and stderr apart, and no longer garble æ, ø, å or emoji split across reads.
- Terminal, logs and stats don't leave a shell or stream running when you leave the page while it opens.
- The menu bar popover no longer fails when a port is published on both TCP and UDP.
- The terminal follows light and dark mode.
Licences
- The app now carries the notices for everything built into it (
Contents/Resources/NOTICE) and its MIT licence. - The engine's notices are current.
- Each release now publishes the guest Linux kernel's complete source (
eDock-0.2.1-kernel-source.tar.xz), as GPL-2.0 asks.
Download
eDock-0.2.1-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple. Download it from elyracode.com/edock, or below.
eDock 0.2.0 offers this update by itself. eDock-0.2.1-arm64.zip and latest.json are for that.
0.2.0 — 2026-11-14
Kubernetes
eDock now runs a single-node Kubernetes cluster (k3s) on its own engine, managed from the app's new Kubernetes page:
- The cluster. Start, stop and delete it, with the engine's progress as it goes. The first start pulls k3s and takes about a minute.
- The API server is at
https://127.0.0.1:6443, as theedockkubectl context. You can make it kubectl's current context on the first start.
- The API server is at
- Pods. The list shows status as kubectl prints it (Running, CrashLoopBackOff, Error, Terminating…), plus ready, restarts, age and the owning Deployment.
- You can filter by namespace; the system namespaces are hidden by default.
- Each pod can be deleted, its Deployment restarted, and its page opened.
- Each pod's page. It shows the live log and a shell (
kubectl exec), with a container picker for pods that have several. - Services. Type, cluster IP and ports. A LoadBalancer port opens on
localhostwith one click.
The app reads the cluster through kubectl inside the node, so your Mac needs neither kubectl nor a kubeconfig.
Updates
eDock now checks for new versions when it starts, and on Check for Updates… in the menu bar.
- Installing. A new version is offered with its notes, installed with one click, and opens when you choose Restart.
- Checks. An update is installed only when its download is signed with eDock's update key, matches its checksum, and is signed with eDock's Developer ID.
- The engine. After an update, the Engine page offers Restart engine, which runs the engine from the new version.
eDock 0.1.0 doesn't check for updates. Install 0.2.0 by hand once, and later versions come to you.
The command line, without a package manager
Engine › Command line › Set up gets everything you need to use eDock from a terminal:
- the
dockerCLI, Docker Compose and buildx, downloaded once at pinned versions, each checked against its SHA-256; edock;- an
edockdocker context; - the engine started at login.
No Homebrew needed.
Stop works however the engine was started
Stop now turns eDock's engine off through the engine itself: its containers stop and its VM powers off, until Start. Before, it only stopped an engine the app had started in that run. Now it also works on an engine started by an earlier run of the app, by the LaunchAgent, or from a terminal.
Documentation and licence
- Complete documentation in
docs/. - eDock's own code (the app, scripts and docs) is now MIT-licensed. The engine stays Apache-2.0, as Kiri is.
Download
eDock-0.2.0-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple.
Check the download with shasum -a 256 -c eDock-0.2.0-arm64.dmg.sha256. eDock-0.2.0-arm64.zip and latest.json are for the app's own updates.
eDock is for Apple silicon only; there is no Intel version.
0.1.0 — 2026-11-14
The first release of eDock: a tiny, fast container runtime for the Mac, with its own Linux VM and the Docker Engine API, so docker, Compose and buildx work unchanged.
Download
eDock-0.1.0-arm64.dmg: Apple silicon, macOS 14 or later. Signed with a Developer ID and notarized by Apple.
Open the dmg and drag eDock to Applications. eDock lives in the menu bar; open the window from there.
Check the download with shasum -a 256 -c eDock-0.1.0-arm64.dmg.sha256.
What's in it
- The engine. Containers start in milliseconds in one small Linux VM, which sleeps when idle. The engine serves the Docker Engine API on
~/.edock/run/docker.sock. amd64 images run through Rosetta. - The app, built on the Elyra Framework:
- Containers, grouped by Compose project, with start, stop, restart and remove for one container or a whole project.
- Images (pull and prune), volumes and networks.
- Per container: live logs, CPU, memory, network and disk stats, and a terminal.
- Switching between docker contexts. eDock also manages OrbStack, Docker Desktop, Colima or Podman.
- A menu bar item with what's running.
Good to know
- To point
dockerat eDock:docker context create edock --docker host=unix://$HOME/.edock/run/docker.sock - When started, the engine serves
*.edock.localhoston ports 80 and 443, and mounts container files at~/eDockin Finder. - eDock is for Apple silicon only; there is no Intel version.