Dockhand is a completely free and self-hosted Docker container management tool for personal use.



Portainer was the dominant tool for managing Docker containers with a GUI. Meanwhile, Dockhand , which touts itself as a 'state-of-the-art Docker management tool that anyone can use,' has arrived. Dockhand is free for personal use and is designed to allow users to create, manage, and monitor Docker containers using an intuitive interface, making it a tool that can be used by beginners and advanced users alike.

Dockhand - Modern Docker Management
https://dockhand.pro/#screenshots

◆Introduction
Like Portainer, Dockhand can also be run on Docker. To start it on Docker, run the following command:
[code]
docker run -d \
--name dockhand \
--restart unless-stopped \
-p 3000:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v dockhand_data:/app/data \
fnsys/dockhand:latest
[/code]


You can also use the Docker Compose command, by creating a 'docker-compose.yaml' file with the following content:
[code]
services:
dockhand:
image: fnsys/dockhand:latest
container_name: dockhand
restart: unless-stopped
Ports:
- 3000:3000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- dockhand_data:/app/data

volumes:
dockhand_data:
[/code]


When using the Docker Compose command, you can easily use PostgreSQL instead of the default SQLite. To do so, create a 'docker-compose.yaml' file with the following content:
[code]
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: dockhand
POSTGRES_PASSWORD: changeme
POSTGRES_DB: dockhand
volumes:
- postgres_data:/var/lib/postgresql/data

dockhand:
image: fnsys/dockhand:latest
Ports:
- 3000:3000
environment:
DATABASE_URL: postgres://dockhand:changeme@postgres:5432/dockhand
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- dockhand_data:/app/data
depends_on:
- postgres

volumes:
postgres_data:
dockhand_data:
[/code]


The minimum operating environment configuration is as follows:

Docker Engine 20.20 and later
Docker API 1.41 or later
memory 512MB or more (1GB or more recommended)
browser Chrome・Firefox・Safari・Edge
Database SQLite (default) or PostgreSQL 14 or later



◆Dashboard
The dashboard that appears when you start it up looks like this:



Each Docker environment under your management is displayed as a tile, with key information displayed at a glance.

Header : Environment name, icon, connection status
Number of containers : Operating, stopped, total number of containers
Resource metrics : progress bar, CPU usage, memory usage
Health status : Warning banner for abnormal/restarting containers
Activities : Today's events and recent activities
Container list : A list of containers sorted by CPU usage (large tiles only)

The status indicated by the icon is as follows:

Shield (green) : Vulnerability scanning is enabled
Graph (Amber) : Tracking container events
Disconnected (red) : Inaccessible

You can also narrow down the display by name.



◆Container
The Containers page gives you comprehensive management of all Docker containers across your environment.



The following information is displayed for each container displayed in the list view:

Name : Container name (click to display details)
Image : The image tag used in the container
State : Status (Running, Stopped, Paused, Restarting, Created)
Health : Health check status (if configured)
Uptime : Time elapsed since the container was started/stopped
CPU % : Real-time CPU usage
Memory : Current memory usage
Network I/O : Number of bytes received/sent
Disk I/O : Number of read/write bytes
IP Address : Container IP address
Ports : public port mapping (host:container)
Stack : Compose project name (only if part of a stack)
Actions : Icons for actions that can be performed (start, stop, restart, delete, display log, etc.)

Click the icons in the Actions column to perform the following actions:

Start : Start a stopped container
Stop : Stop a running container (with confirmation)
Pause : Pause a running container
Restart : Restart the container (confirmation required)
Inspect : View detailed container settings
Browse Files: Display a file browser (only for running containers)
Edit : Edit the container settings
Logs : Display the log panel
Terminal : Open an interactive shell
Delete : Delete a container (confirmation required)

If you want to update a container, click the 'Check for updates' button to check for containers with updates, then click the 'Update all' button to update all containers with updates.



◆Automatic update schedule management
To meet the demand for always running the latest containers, Dockhand has an automatic container update function. You can list and manage automatic update schedules on the Schedule page.



When automatic updates are enabled, Dockhand will periodically check Docker Hub and other registries and automatically update your containers if new images become available. Automatic updates can be configured on a per-container basis, and you can customize the frequency and timing of updates.

Daily : Updated once a day at the specified time
Weekly : Updates on the specified day and time
Custom : Specify the schedule in cron format

When vulnerability scanning is enabled, you can control when automatic updates are blocked by setting 'vulnerability criteria,' allowing you to fine-tune the balance between staying up-to-date and avoiding newly introduced security issues. The available vulnerability criteria are:

Vulnerability criteria Update Block Conditions subject
Never block No blocking, always updates Non-critical containers, development environments
Any vulnerability If a vulnerability (critical, high, medium, low) exists in the new image Security-focused zero-tolerance environment
Critical or High If the new image has critical or high severity vulnerabilities Production environment (recommended)
Critical only If the new image has a critical vulnerability Emphasis on balance, allowing high, medium and low
More than current If the new image has more total vulnerabilities than the current image Incremental Improvement Approach



◆Stack
The Stacks page allows you to manage stacks deployed using Docker Compose, including creating, editing, and deleting stacks.



To create a stack, click the 'Create' button, which will open the YAML editor. Paste the contents of the docker-compose.yaml file and click the 'Create' button. To edit a stack that has already been created, click the stack name to open the YAML editor, edit the contents, and click the 'Save & Apply' button.



Switching the view to 'Graph' allows you to visually understand the relationships between services in the stack.



◆Image
The Images page allows you to manage all the Docker images that exist on your Docker host.



You can perform the following operations on each image displayed in the list view.

Run : Create a new container from this image
Scan : Scan for vulnerabilities (only if a scanner is configured)
Tag : Add a new tag to this image
Push : Push to the configured registry
Export : Download as a tar/tar.gz archive
History : Shows the layer history of the image
Delete : Delete the image

You can also delete unused images by clicking the Prune button.

◆Activity log
Track Docker container events in real time across all your environments.



Log event types include:

create : Create a container
start : Start a container
stop : Stop the container
die : Container termination
kill : Forcefully terminate the container
restart : Restart the container
pause : Container pause
unpause : Unpause a container
oom : Out of memory
health_status : Health check result

You can also filter the log display by the following criteria:

Container name : Text search
Event type : Select a specific event type
Environment : Filter by environment
Labels : Filter by environmental labels
Date range : preset or custom range

Summary
If you are able to self-host in a private environment such as at home, Dockhand is a very attractive option. It has features comparable to Portainer, and its automatic update and vulnerability scanning functions provide peace of mind in terms of security. With an intuitive interface and extensive management functions, Dockhand is a tool suitable for a wide range of users.

in Software, Posted by log1c_sh