https://github.com/anugrahsinghal/docker-on-jvm
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.
https://github.com/anugrahsinghal/docker-on-jvm
codecrafters docker java jna
Last synced: 3 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/anugrahsinghal/docker-on-jvm
- Owner: anugrahsinghal
- Created: 2023-10-06T17:10:44.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-06T17:21:54.000Z (over 1 year ago)
- Last Synced: 2024-04-21T02:08:12.793Z (about 1 year ago)
- Topics: codecrafters, docker, java, jna
- Language: Java
- Homepage: https://app.codecrafters.io/courses/docker
- Size: 5.86 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://app.codecrafters.io/users/anugrahsinghal)
This is a starting point for Java solutions to the
["Build Your Own Docker" Challenge](https://codecrafters.io/challenges/docker).In this challenge, you'll build a program that can pull an image from
[Docker Hub](https://hub.docker.com/) and execute commands in it. Along the way,
we'll learn about [chroot](https://en.wikipedia.org/wiki/Chroot),
[kernel namespaces](https://en.wikipedia.org/wiki/Linux_namespaces), the
[docker registry API](https://docs.docker.com/registry/spec/api/) and much more.**Note**: If you're viewing this repo on GitHub, head over to
[codecrafters.io](https://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](https://docs.docker.com/get-docker/)
locally.Next, add a [shell alias](https://shapeshed.com/unix-alias/):
```sh
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](https://man7.org/linux/man-pages/man7/pid_namespaces.7.html))You can now execute your program like this:
```sh
mydocker run ubuntu:latest echo hey
```