This directory contains the MongoDB runtime on Unikraft, in binary compatibility mode. It starts a MongoDB server instance on Unikraft.
Use kraft to run the image and start a Unikraft instance:
kraft run --rm -M 1024M -p 27017:27017 --plat qemu --arch x86_64 unikraft.org/mongo:6.0If the --plat argument is left out, it defaults to qemu.
If the --arch argument is left out, it defaults to your system's CPU architecture.
Once executed, it will open port 27017 and wait for connections.
To test it, use the mongo shell:
mongoTo list information about the Unikraft instance, use:
kraft ps -aNAME KERNEL ARGS CREATED STATUS MEM PORTS PLAT
pedantic_snowflake project://mongo:qemu/x86_64 /usr/bin/mongod --bind_ip_all 6 seconds ago running 976M 0.0.0.0:27017->27017/tcp qemu/x86_64
The instance name is pedantic_snowflake.
To close the Unikraft instance, close the kraft process (e.g., via Ctrl+c) or run:
kraft rm pedantic_snowflakeThe commands so far used the pre-built MongoDB image available in the Unikraft registry.
In order to to build a local MongoDB image, clone this repository and cd into this directory.
Then use kraft to build an image locally:
kraft build --no-cache --no-update --plat qemu --arch x86_64Similar to the kraft run command, if the --plat argument is left out, it defaults to qemu.
If the --arch argument is left out, it defaults to your system's CPU architecture.
In order to run the locally built image, use . (dot, the current directory) as the final argument to the kraft run command:
kraft run --rm -M 1024M -p 27017:27017 --plat qemu --arch x86_64 .Same as above, it will open port 27017 and wait for connections.
Mixing invocations of kraft and sudo can lead to unexpected behavior.
Read more about how to start kraft without sudo at https://unikraft.org/sudoless.