Skip to content

A docker client that interacts with the docker registry, pulls and extracts the layers of the image and is able to run commands on that image. Uses the JNA (Java Native API) to issue unix specific commands.

Notifications You must be signed in to change notification settings

anugrahsinghal/docker-on-jvm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

progress-banner

This is a starting point for Java 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 try the challenge.

How to Run

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 echo hey

About

A docker client that interacts with the docker registry, pulls and extracts the layers of the image and is able to run commands on that image. Uses the JNA (Java Native API) to issue unix specific commands.

Topics

Resources

Stars

Watchers

Forks