ONLY USE VM, dont use containers as they have many issues

ON ALPINE HOST

apk update && apk upgrade

apk add docker nano neovim btop wget curl file openssh
rc-update add docker boot
rc-update add sshd boot
nano /etc/ssh/sshd_config # allow root and password login
service sshd start
service docker start

DOCKER_CONFIG=${HOME}/.docker
mkdir -p $DOCKER_CONFIG/cli-plugins
wget -O $DOCKER_CONFIG/cli-plugins/docker-compose https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
ln -s $DOCKER_CONFIG/cli-plugins/docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

sed -i 's|.*DOCKER_OPTS=.*|DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"|' /etc/conf.d/docker
service docker restart

ON WINDOWS HOST

choco install -y docker-cli
mkdir $Env:ProgramFiles\Docker
Invoke-WebRequest "https://github.com/docker/compose/releases/latest/download/docker-compose-Windows-x86_64.exe" -OutFile "$Env:ProgramFiles\Docker\docker-compose.exe"
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Docker", [EnvironmentVariableTarget]::Machine)

# Set environment variable
$ALPINE_HOST_IP = "192.168.x.x"
Test-NetConnection -ComputerName $ALPINE_HOST_IP -Port 2375
[Environment]::SetEnvironmentVariable("DOCKER_HOST", "tcp://${ALPINE_HOST_IP}:2375", "Machine")

# Or create context
#docker context create remote-docker-host --docker "host=tcp://${ALPINE_HOST_IP}:2375"
#docker context use remote-docker-host

# Test connection
docker version
docker ps