7.1 KiB
🐳 Remote Docker Setup for RinHash Miner
This guide explains how to set up remote Docker access so you can build the RinHash miner from another machine without needing root SSH access every time.
🎯 Windows 11 Quick Start (Most Common)
If you're using Windows 11 as your local machine, here's the fastest way to get started:
Step 1: Install Prerequisites on Windows
-
Install Docker Desktop:
- Download: https://www.docker.com/products/docker-desktop
- Enable WSL 2 during installation
-
Enable OpenSSH Client:
- Settings → Apps → Optional features → Add "OpenSSH Client"
-
Install VS Code:
- Download: https://code.visualstudio.com/
- Install extensions: "Docker" and "Remote SSH"
Step 2: Setup Remote Connection
# PowerShell (recommended for Windows):
ssh -L localhost:2375:/var/run/docker.sock user@linux-build-machine-ip
$env:DOCKER_HOST = "tcp://localhost:2375"
# Test connection:
docker run --rm cpuminer-windows-builder echo "Remote Docker working!"
Step 3: Build Remotely
# Now you can run builds from your Windows machine:
docker run --rm -v "${PWD}:/work" -v "${PWD}/build/win:/output" cpuminer-windows-builder bash -c "cd /work && ./build-windows-smart.sh"
Step 4: VS Code Integration (Optional)
-
Connect to Linux machine:
Ctrl+Shift+P
→ "Remote-SSH: Connect to Host"- Enter:
ssh user@linux-build-machine-ip
-
Run builds from VS Code:
- Open Command Palette:
Ctrl+Shift+P
- Select: "Tasks: Run Task"
- Choose: "Build Windows CPU Miner (Smart)"
- Open Command Palette:
That's it! You're now building remotely from Windows 11! 🚀
Quick Setup (Recommended)
On the Build Machine (where Docker runs):
cd /mnt/shared/DEV/repos/d-popov.com/mines/rin/miner
./setup-remote-docker.sh
This script will:
- ✅ Add your user to the docker group
- ✅ Enable and start Docker service
- ✅ Test Docker access
- ✅ Provide connection instructions
On Your Local Machine:
Option 1: SSH Port Forwarding (Most Secure)
For Windows 11:
# PowerShell (recommended):
ssh -L localhost:2375:/var/run/docker.sock user@build-machine-ip
$env:DOCKER_HOST = "tcp://localhost:2375"
# Command Prompt:
ssh -L localhost:2375:/var/run/docker.sock user@build-machine-ip
set DOCKER_HOST=tcp://localhost:2375
For Linux/Mac:
# Forward Docker socket through SSH
ssh -L localhost:2375:/var/run/docker.sock user@build-machine-ip
# Set Docker to use remote host
export DOCKER_HOST=tcp://localhost:2375
Test connection (all platforms):
docker ps
docker run --rm cpuminer-windows-builder echo "Remote Docker working!"
Option 2: Docker Contexts
For Windows 11:
# PowerShell:
docker context create build-server --docker "host=ssh://user@build-machine-ip"
docker context use build-server
docker ps
# Command Prompt:
docker context create build-server --docker "host=ssh://user@build-machine-ip"
docker context use build-server
docker ps
For Linux/Mac:
# Create context for remote machine
docker context create build-server --docker "host=ssh://user@build-machine-ip"
# Use the remote context
docker context use build-server
# All docker commands now work remotely
docker ps
Benefits:
- ✅ Automatic SSH key management
- ✅ No manual port forwarding needed
- ✅ Clean context switching between local and remote
Option 3: VS Code Integration (Windows 11)
-
Install VS Code on Windows:
- Download: https://code.visualstudio.com/
- Install extensions:
- Docker (Microsoft)
- Remote SSH (Microsoft)
- Remote Development (Microsoft)
-
Connect to Linux build machine:
Ctrl+Shift+P
→ "Remote-SSH: Connect to Host"- Enter:
ssh user@build-machine-ip
- VS Code will open a new window connected to the Linux machine
-
Use VS Code Docker panel:
- View containers, images, and networks on remote machine
- Manage remote Docker from VS Code interface
- Run builds with one click
-
Run builds from VS Code:
- Open Command Palette:
Ctrl+Shift+P
- Select: "Tasks: Run Task"
- Choose: "Build Windows CPU Miner (Smart)"
- Build runs directly on the Linux machine!
- Open Command Palette:
Benefits:
- ✅ Full IDE integration
- ✅ Remote development environment
- ✅ Docker management from VS Code
- ✅ One-click builds
Build Commands
Once connected, you can run builds remotely from your Windows machine:
PowerShell (Windows 11):
# Smart build (recommended)
docker run --rm -v "${PWD}:/work" -v "${PWD}/build/win:/output" cpuminer-windows-builder bash -c "cd /work && ./build-windows-smart.sh"
# Manual build
docker run --rm -v "${PWD}:/work" -v "${PWD}/build/win:/output" cpuminer-windows-builder bash -c "cd /work && ./build-windows.sh"
# Clean build
docker run --rm -v "${PWD}:/work" -v "${PWD}/build/win:/output" cpuminer-windows-builder bash -c "cd /work && make clean"
Command Prompt (Windows 11):
REM Smart build (recommended)
docker run --rm -v "%CD%:/work" -v "%CD%/build/win:/output" cpuminer-windows-builder bash -c "cd /work && ./build-windows-smart.sh"
REM Manual build
docker run --rm -v "%CD%:/work" -v "%CD%/build/win:/output" cpuminer-windows-builder bash -c "cd /work && ./build-windows.sh"
REM Clean build
docker run --rm -v "%CD%:/work" -v "%CD%/build/win:/output" cpuminer-windows-builder bash -c "cd /work && make clean"
Linux/Mac (original):
# Smart build (recommended)
./build-windows-smart.sh
# Manual build
./build-windows.sh
# Clean build
./build-clean.sh
Security Notes
- ✅ SSH tunneling provides encrypted connection
- ✅ No need to expose Docker API publicly
- ✅ All communication goes through secure SSH
- ✅ Use VPN for additional security if needed
Troubleshooting
Permission Denied
# If you get permission errors, try:
newgrp docker
# or logout and login again
Connection Refused
# Check if Docker is running on build machine:
ssh user@build-machine sudo systemctl status docker
# Start Docker if needed:
ssh user@build-machine sudo systemctl start docker
VS Code Issues
- Make sure Remote SSH extension is installed
- Check that SSH key authentication is set up
- Verify firewall allows SSH connections
Alternative Methods
Docker Remote API (Advanced)
For direct TCP access to Docker API (less secure, requires firewall configuration):
# On build machine (as root):
sudo systemctl edit docker
# Add: ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376
sudo systemctl restart docker
# On local machine:
export DOCKER_HOST=tcp://build-machine-ip:2376
Docker Desktop (Windows/Mac)
If you have Docker Desktop on your local machine:
- Settings → General → Enable "Expose daemon on tcp://localhost:2375"
- Use SSH port forwarding as described above
Performance Tips
- Use fast network connection between machines
- Consider using
--mount
instead of-v
for better performance - Use Docker contexts to easily switch between local and remote
Need Help?
Check the main BUILD_GUIDE.md for detailed instructions and troubleshooting.