docker remote windows
This commit is contained in:
@@ -36,6 +36,196 @@ If you're using VS Code, the project now includes pre-configured tasks for easy
|
||||
- ✅ Integrated terminal output in VS Code
|
||||
- ✅ One-click building from the IDE
|
||||
|
||||
## 🐳 Remote Docker Access Options
|
||||
|
||||
You don't need to SSH as root every time! Here are several ways to use Docker remotely from another machine:
|
||||
|
||||
### Option 1: VS Code Docker Extension (Easiest - Recommended)
|
||||
```bash
|
||||
# On the build machine (where Docker is running) - Quick setup:
|
||||
cd /mnt/shared/DEV/repos/d-popov.com/mines/rin/miner
|
||||
./setup-remote-docker.sh
|
||||
|
||||
# Or manually:
|
||||
sudo systemctl enable docker
|
||||
sudo systemctl start docker
|
||||
sudo usermod -aG docker $USER # Add user to docker group
|
||||
```
|
||||
|
||||
**In VS Code on your local machine:**
|
||||
1. Install "Docker" extension by Microsoft
|
||||
2. Install "Remote-SSH" extension for SSH tunneling
|
||||
3. Connect to build machine: `Ctrl+Shift+P` → "Remote-SSH: Connect to Host"
|
||||
4. Use VS Code Docker extension to manage containers remotely
|
||||
|
||||
### Option 2: Docker Remote API (Advanced)
|
||||
```bash
|
||||
# On the build machine - enable Docker API over TCP:
|
||||
sudo mkdir -p /etc/systemd/system/docker.service.d
|
||||
sudo tee /etc/systemd/system/docker.service.d/override.conf > /dev/null <<EOF
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376
|
||||
EOF
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart docker
|
||||
|
||||
# Secure with TLS (recommended for production):
|
||||
sudo dockerd --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem -H=0.0.0.0:2376
|
||||
```
|
||||
|
||||
**On your local machine:**
|
||||
```bash
|
||||
# Set Docker context to remote host
|
||||
docker context create remote-build --docker "host=tcp://BUILD_MACHINE_IP:2376"
|
||||
docker context use remote-build
|
||||
|
||||
# Now all docker commands work remotely
|
||||
docker ps
|
||||
docker run --rm cpuminer-windows-builder echo "Hello from remote!"
|
||||
```
|
||||
|
||||
### Option 3: SSH Port Forwarding (Simple & Secure)
|
||||
```bash
|
||||
# On your local machine - forward Docker socket:
|
||||
ssh -L localhost:2375:/var/run/docker.sock user@build-machine
|
||||
|
||||
# Or use SSH config (~/.ssh/config):
|
||||
Host build-machine
|
||||
HostName your-build-machine-ip
|
||||
User your-username
|
||||
LocalForward 2375 /var/run/docker.sock
|
||||
```
|
||||
|
||||
**Then on your local machine:**
|
||||
```bash
|
||||
# Set DOCKER_HOST environment variable
|
||||
export DOCKER_HOST=tcp://localhost:2375
|
||||
|
||||
# All docker commands now work through SSH tunnel
|
||||
docker ps
|
||||
docker run --rm cpuminer-windows-builder echo "Remote build ready!"
|
||||
```
|
||||
|
||||
### Option 4: Docker Contexts (Clean Management)
|
||||
```bash
|
||||
# Create named context for your build machine
|
||||
docker context create build-server --docker "host=ssh://user@build-machine"
|
||||
|
||||
# Switch between contexts easily
|
||||
docker context use build-server
|
||||
docker ps # Shows containers on build machine
|
||||
|
||||
docker context use default # Switch back to local
|
||||
docker ps # Shows local containers
|
||||
```
|
||||
|
||||
### Option 5: VS Code Dev Containers (Full Remote Development)
|
||||
Create `.devcontainer/devcontainer.json`:
|
||||
```json
|
||||
{
|
||||
"name": "RinHash Build Environment",
|
||||
"dockerFile": "Dockerfile",
|
||||
"context": "..",
|
||||
"remoteUser": "vscode",
|
||||
"mounts": [
|
||||
"source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind"
|
||||
],
|
||||
"extensions": [
|
||||
"ms-vscode.vscode-docker",
|
||||
"ms-vscode-remote.remote-ssh"
|
||||
],
|
||||
"postCreateCommand": "sudo usermod -aG docker vscode"
|
||||
}
|
||||
```
|
||||
|
||||
### Option 6: Docker Desktop Remote Connection (Windows 11)
|
||||
**For Windows 11 users with Docker Desktop:**
|
||||
|
||||
#### Windows Setup:
|
||||
1. **Install Docker Desktop for Windows:**
|
||||
- Download from: https://www.docker.com/products/docker-desktop
|
||||
- Enable WSL 2 integration during installation
|
||||
|
||||
2. **Enable Docker Remote API:**
|
||||
- Open Docker Desktop → Settings → General
|
||||
- Enable "Expose daemon on tcp://localhost:2375 without TLS"
|
||||
|
||||
3. **Install OpenSSH Client:**
|
||||
- Windows 11 has OpenSSH built-in
|
||||
- Enable in: Settings → Apps → Optional features → OpenSSH Client
|
||||
|
||||
#### Windows SSH Port Forwarding:
|
||||
```cmd
|
||||
REM Command Prompt:
|
||||
ssh -L localhost:2375:/var/run/docker.sock user@build-machine-ip
|
||||
|
||||
REM PowerShell:
|
||||
ssh -L localhost:2375:/var/run/docker.sock user@build-machine-ip
|
||||
```
|
||||
|
||||
#### Windows Environment Setup:
|
||||
```cmd
|
||||
REM Command Prompt:
|
||||
set DOCKER_HOST=tcp://localhost:2375
|
||||
|
||||
REM PowerShell:
|
||||
$env:DOCKER_HOST = "tcp://localhost:2375"
|
||||
```
|
||||
|
||||
#### Windows Docker Contexts:
|
||||
```cmd
|
||||
REM Create context for remote Linux machine:
|
||||
docker context create build-server --docker "host=ssh://user@build-machine-ip"
|
||||
|
||||
REM Switch to remote context:
|
||||
docker context use build-server
|
||||
|
||||
REM Test remote connection:
|
||||
docker run --rm cpuminer-windows-builder echo "Windows remote Docker working!"
|
||||
```
|
||||
|
||||
### 🔒 Security Recommendations
|
||||
|
||||
**For Production Use:**
|
||||
- ✅ Use SSH tunneling instead of exposing Docker API directly
|
||||
- ✅ Enable Docker TLS verification
|
||||
- ✅ Use VPN for additional security layer
|
||||
- ✅ Limit Docker API access to specific IP ranges
|
||||
- ✅ Regularly rotate SSH keys and certificates
|
||||
|
||||
**Quick Start (Most Secure):**
|
||||
|
||||
**For Windows 11:**
|
||||
```powershell
|
||||
# On build machine - automated setup:
|
||||
cd /mnt/shared/DEV/repos/d-popov.com/mines/rin/miner
|
||||
./setup-remote-docker.sh
|
||||
|
||||
# On your Windows 11 machine - run setup script:
|
||||
.\setup-remote-docker-windows.bat
|
||||
|
||||
# Or use PowerShell script:
|
||||
.\setup-remote-docker-windows.ps1
|
||||
```
|
||||
|
||||
**For Linux/Mac:**
|
||||
```bash
|
||||
# On build machine - automated setup:
|
||||
cd /mnt/shared/DEV/repos/d-popov.com/mines/rin/miner
|
||||
./setup-remote-docker.sh
|
||||
|
||||
# On your local machine:
|
||||
ssh -L localhost:2375:/var/run/docker.sock user@build-machine
|
||||
export DOCKER_HOST=tcp://localhost:2375
|
||||
docker run --rm cpuminer-windows-builder echo "Ready for remote builds!"
|
||||
```
|
||||
|
||||
📖 **Detailed Instructions:**
|
||||
- **Windows 11:** See [REMOTE_DOCKER_README.md](REMOTE_DOCKER_README.md) for comprehensive setup guide
|
||||
- **All Platforms:** Check [BUILD_GUIDE.md](BUILD_GUIDE.md) for additional remote access options
|
||||
|
||||
### 1. Build GPU Library (ROCm/HIP)
|
||||
```bash
|
||||
cd /mnt/shared/DEV/repos/d-popov.com/mines/rin/miner/gpu/RinHash-hip
|
||||
|
||||
Reference in New Issue
Block a user