NebulaPod is a Docker implementation written in Python that allows you to pull Docker images from Docker Hub and execute commands within them. This project is designed to provide a lightweight and efficient alternative for running containerized applications without the need for a full-fledged container runtime.
- Docker Image Execution: Run commands inside Docker images pulled from Docker Hub.
- STDOUT and STDERR Handling: Capture and display standard output and error streams.
- Exit Code Handling: Properly handle and return exit codes from executed commands.
- Filesystem Isolation: Enhance security by isolating the filesystem for each container.
- Process Isolation: Isolate processes within the container for improved resource management.
- Docker Registry Support: Fetch Docker images from any Docker registry.
Python 3.6 or higher
Clone the repository and navigate to the project directory:
git clone https://github.com/<your-username>/NebulaPod.git
cd NebulaPod
You can now execute your program like this:
mydocker run ubuntu:latest /usr/local/bin/docker-explorer echo hey
For handling exit codes:
mydocker run ubuntu:latest /usr/local/bin/docker-explorer exit 1
For isolating files:
mydocker run ubuntu:latest /usr/local/bin/docker-explorer ls /some_dir
for isolating process:
mydocker run ubuntu:latest /usr/local/bin/docker-explorer mypid
for fetching an image from the Docker Registry:
mydocker run ubuntu:latest /usr/local/bin/docker-explorer exit 1
main.py: The core implementation of NebulaPod
Contributions are welcome! If you have ideas for improvements, new features, or bug fixes, please open an issue or submit a pull request.