Sign inSign up

maulanahirzan971/keyless-mpi-cluster

By maulanahirzan971

•Updated about 2 hours ago

Based on Debian Slim Trixie with Python 3.14.10, OpenMPI, and mpi4py. Untested! Under Development!

Image
Networking
0

45

maulanahirzan971/keyless-mpi-cluster repository overview

⁠Keyless MPI Cluster

⁠Introduction

A pre-configured, zero-friction Docker image designed for simulating cluster computing, distributed systems, and parallel processing environments.

This image eliminates the boilerplate setup required for inter-node communication. With pre-injected universal SSH keys, disabled host key verification, and a fully compiled MPI stack, you can deploy a multi-node cluster using Docker Compose with static IP addresses without writing any custom initialization scripts.

⁠Features

  1. Minimal Base OS: Built on Debian Slim Trixie (Debian 13) to ensure a small image footprint and reduced attack surface.
  2. Python: Includes Python 3.14.10 for cutting-edge language features and performance optimizations.
  3. Complete MPI Stack: OpenMPI is fully installed and configured for distributed execution.
  4. Python Integration: mpi4py is pre-compiled and ready for immediate use in your Python scripts.
  5. Zero-Config SSH: Pre-configured passwordless SSH access between all containers. Strict host key checking is disabled to prevent interactive fingerprint prompts.
  6. Static IP Ready: Designed to work seamlessly with Docker Compose static IP assignments for predictable network topology.
  7. Development Toolchain: Includes build-essential, curl, wget, and other essential utilities for compiling custom extensions or fetching data.
  8. ZSH: Why not?
  9. Many More: Standard Debian utilities, optimized pip configurations, and cleaned-up apt caches for optimal layer sizing.

⁠Quick Start

No special configuration or entrypoint scripts are needed in your docker-compose.yml. Simply define your nodes, assign static IPs via a custom network, and the image handles the rest.

services:
  node-1:
    image: maulanahirzan971/keyless-mpi-cluster:latest
    container_name: mpi_node_1
    networks:
      cluster_net:
        ipv4_address: 172.20.0.10

networks:
  cluster_net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/16

⁠Usage Examples

⁠Verify Passwordless SSH

Access the first node and SSH into the second node using its static IP. No password or fingerprint confirmation will be requested.

# Enter the first container
docker exec -it <first_node> /bin/bash
# or
docker exec -it <first_node> /usr/bin/zsh

# SSH to the second container via its static IP
ssh root@<target_ip>
⁠Execute an MPI Python Script

Create a simple mpi4py script and execute it across your statically defined nodes.

Note: Because the containers run as the root user by default, the --allow-run-as-root flag is required for OpenMPI.

⁠Security and Production Considerations

This image is explicitly engineered for local development, simulation, and internal cluster testing.

  1. Root Privileges: All processes, including SSH and MPI, run as the root user.
  2. Universal Keys: The exact same private key is distributed to all nodes. If the private key is compromised, the entire cluster is compromised.
  3. Network Isolation: Never expose port 22 of these containers to the public internet or untrusted networks. Always rely on Docker's internal bridge networks.

For production deployments, it is highly recommended to build a custom derivative image that implements non-root users, dynamic SSH certificate authorities (SSH CA), and strict host key verification.

⁠License

This Docker image configuration is provided as-is for educational and development purposes. Please ensure compliance with the licenses of the underlying software (Debian, Python, OpenMPI, mpi4py) when distributing derivative works.

Tag summary

Content type

Image

Digest

sha256:95e43c18d…

Size

325.4 MB

Last updated

about 2 hours ago

docker pull maulanahirzan971/keyless-mpi-cluster