Skip to content

JiyuShao/build-your-own-docker-rust

Repository files navigation

progress-banner

This is a starting point for Rust solutions to the "Build Your Own Docker" Challenge.

In this challenge, you'll build a program that can pull an image from Docker Hub and execute commands in it. Along the way, we'll learn about chroot, kernel namespaces, the docker registry API and much more.

Quick Start

Init Project

git submodule update --init --recursive

Setup Environment

Please ensure you have Docker installed locally.

Next, add a shell alias:

alias mydocker='docker build -t mydocker ./docker && docker run --cap-add="SYS_ADMIN" mydocker'

(The --cap-add="SYS_ADMIN" flag is required to create PID Namespaces)

Run mydocker

You can now execute your program like this:

mydocker run ubuntu:latest /usr/local/bin/docker-explorer echo hey
mydocker run ubuntu:latest bash -c 'echo "This is a stdout output" >&1'
mydocker run ubuntu:latest bash -c 'echo "This is a stderr output" >&2'

This command compiles your Rust project, so it might be slow the first time you run it. Subsequent runs will be fast.

Run Tests

You can test your program like this:

# Test shell output
./test_shell_output.sh

# Test your docker command
./test_your_docker.sh

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published