Manage Docker hosts from your Mac
Logs, exec and compose over SSH, a container's port opened on your Mac through a tunnel, and the same command sent to every host.
By Lucas Russo, developer of SSHive · Updated
Docker on a real Linux host, whether a $5 VPS for side projects, a mini PC with thirty self-hosted services or a small Swarm, is run over SSH:
docker ps, docker logs -f app, docker exec -it app sh, docker compose up -d.
SSHive keeps a profile per host and can give each one a startup command, such as cd /srv/app && docker compose ps, that runs as soon as the session opens. The snippet library already lists the running containers and the installed images. Add your own with a value to fill in, like docker logs -f --tail 200 {{container}}, and SSHive asks for the container name when you insert it.A container's port on your Mac, through a tunnel
A dev app started with
docker run -p 3000:3000 myapp on a remote host is open to anyone who can reach that host. Publish it on the loopback instead, -p 127.0.0.1:3000:3000, and add a local tunnel to the host's profile from port 3000 to localhost:3000. Open http://localhost:3000 on the Mac: the app answers through SSH, and the host exposes nothing new. The same goes for Portainer or a database container.The same command on every host
Running identical hosts, or a Swarm? Open a session to each and broadcast the command:
docker system prune -f to free disk space, or cd /srv/app && docker compose pull && docker compose up -d to roll out a release. Every connected SSH session receives it, and each host's output stays in its own tab, so go through the tabs before moving on. Disconnect a host first if it should not take part.What is free here, and what needs Pro
One host with SSH, SFTP, the built-in snippets plus 3 of your own, and one local tunnel per profile: that is the free version, with 2 SSH sessions at once. Several hosts is where SSHive Pro earns its $12.99: broadcast, unlimited sessions and profiles, and more tunnels, for a one-time purchase.
Frequently asked questions
Can SSHive replace Portainer?+
For command-line work, yes: most of Docker is
ps, logs, exec and compose. SSHive does not read docker ps or draw containers, though. If you want a graphical view, run Portainer on the host and reach it through a tunnel as shown above.Does SSHive work with Docker contexts (DOCKER_HOST over SSH)?+
SSHive does not set DOCKER_HOST. In the macOS Terminal,
docker context create myremote --docker "host=ssh://user@host" then docker context use myremote points your local Docker CLI at the remote daemon over SSH. That runs beside SSHive, not inside it: the Docker CLI reads ~/.ssh/config, while SSHive uses its own profiles, which it can import from that same file.Related SSHive features
Try SSHive Free for macOS
Get the all-in-one SSH, SFTP, RDP and VNC client for Mac. Free download, no signup required.