Skip to content

NouemanKHAL/codecrafters-docker-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a starting point for Go 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.

Note: If you're viewing this repo on GitHub, head over to codecrafters.io to signup for early access.

Passing the first stage

The entry point for your Docker implementation is app/main.go. Study and uncomment the relevant code, and push your changes to pass the first stage:

git add .
git commit -m "pass 1st stage" # any msg
git push origin master

That's all!

Stage 2 & beyond

Note: This section is for stages 2 and beyond.

You'll use linux-specific syscalls in this challenge. so we'll run your code inside a Docker container.

Please ensure you have Docker installed locally.

Next, add a shell alias:

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

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

You can now execute your program like this:

mydocker run ubuntu:latest /usr/local/bin/docker-explorer echo hey

About

My solution to the "Build Your Owner Docker" Challenge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published