A Docker containerized deployment of lazydocker with web-based terminal access via ttyd.
- ๐ Browser-based access to lazydocker terminal UI
- ๐ณ Multi-architecture support (amd64, arm64)
- ๐ Automated dependency updates via Renovate
- ๐ฆ Published to GitHub Container Registry
- ๐ Includes SBOM and provenance attestations
This container requires access to the Docker socket (/var/run/docker.sock) and provides unauthenticated access to the Docker daemon through a web interface.
Security considerations:
- Anyone with access to the web interface (port 7682) can manage all Docker resources on the host
- This grants root-equivalent access to the host system
- Do not expose this port to the internet without proper authentication/VPN
- Only use on trusted networks or with additional security measures (e.g., reverse proxy with authentication)
Recommended security measures:
- Use a reverse proxy (nginx, Traefik, Caddy) with authentication
- Bind to localhost only:
-p 127.0.0.1:7682:7682 - Use a VPN or SSH tunnel for remote access
- Consider Docker socket proxy solutions for additional isolation
With Docker Run:
docker run -d \
--name lazydocker-webui \
-p 7682:7682 \
-e TZ=Europe/Copenhagen \
-v /var/run/docker.sock:/var/run/docker.sock \
-v lazydocker-config:/.config/jesseduffield/lazydocker \
--restart unless-stopped \
ghcr.io/jeppestaerk/lazydocker-webui:latestWith Docker Compose:
services:
lazydocker-webui:
image: ghcr.io/jeppestaerk/lazydocker-webui:latest
container_name: lazydocker-webui
ports:
- "7682:7682"
environment:
- TZ=${TZ:-Europe/Copenhagen}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- lazydocker-config:/.config/jesseduffield/lazydocker
restart: unless-stopped
volumes:
lazydocker-config:
driver: localThen run:
docker compose up -dAccess lazydocker at http://localhost:7682
Clone the repository:
git clone [email protected]:jeppestaerk/lazydocker-webui.git
cd lazydocker-webuiWith Docker Compose:
The repository includes a docker-compose.yaml that builds from source:
docker compose up -dWith Docker Run:
# Build the image
docker build -t lazydocker-webui .
# Run the container
docker run -d \
--name lazydocker-webui \
-p 7682:7682 \
-e TZ=Europe/Copenhagen \
-v /var/run/docker.sock:/var/run/docker.sock \
-v lazydocker-config:/.config/jesseduffield/lazydocker \
--restart unless-stopped \
lazydocker-webuiAccess lazydocker at http://localhost:7682
TZ- Timezone (default:Europe/Copenhagen)
/var/run/docker.sock- Required for Docker host access/.config/jesseduffield/lazydocker- Persists lazydocker configuration
7682- ttyd web interface
docker compose up -ddocker compose logs -fdocker compose downDependencies are automatically updated via Renovate:
- Go Alpine Base Image: Tracked from Docker Hub
golangrepository - Lazydocker: Tracked from GitHub releases
Updates run weekly on Mondays before 4am UTC and auto-merge when CI passes.
GitHub Actions automatically builds and publishes multi-architecture images to GitHub Container Registry on every push to main.
This project is licensed under the MIT License.
This is a containerized wrapper for the following projects:
- lazydocker - MIT License
- ttyd - MIT License