Skip to content

Mochi-Margo docker containers to develop distributed systems

License

Notifications You must be signed in to change notification settings

otatebe/mochi-container

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mochi-Margo Workspace

This provides a four-node virtual cluster by docker to develop distributed systems in Mochi-Margo and Mochi-Thallium.

Container hostnames are c1, c2, c3, and c4. The workspace in a container is ~/workspace, which is shared among all containers.

This directory also includes sample programs in Mochi-Margo and Mochi-Thallium.

About Mochi-Margo and Mochi-Thallium

Margo is a C library that helps develop distributed services based on RPC and RDMA. Thallium is a complete object-oriented wrapper for Margo in C++.

Document [ Margo | Thallium ]
Repository [ Margo | Thallium ]

Prerequisites for Windows

Install WSL

Prerequisities

Install Docker Engine

Execute docker containers by Docker Engine and login to a container

$ make build
$ make up
$ make

or

$ docker compose build --build-arg UID=$(id -u) c1
$ docker compose up -d
$ docker exec -u ${USER} -w /home/${USER}/workspace -it mochi-c1 bash

Execute docker containers by VS Code dev containers and login to a container

  • Install VS Code and Remote Containers extension
  • Open this directory
  • Open a command palette by Ctrl+Shift+P and execute "Remote-Containers: Rebulid and Reopen in Container"

Sample programs

There are sample programs in Mochi-margo in the sample directory, and in Thallium in the thallium-sample directory.

Login to other containers in a container

$ ssh c2

Install new packages in a container

$ sudo apt-get update
$ sudo apt-get install ...

or modify Dockerfile

Stop containers

(in a host)
$ make down

or

$ docker compose down

Enjoy!

About

Mochi-Margo docker containers to develop distributed systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published