Related:<p><i>Bocker – Docker implemented in around 100 lines of Bash (2015)</i> - <a href="https://news.ycombinator.com/item?id=22244706" rel="nofollow">https://news.ycombinator.com/item?id=22244706</a> - Feb 2020 (196 comments)<p><i>Docker implemented in around 100 lines of bash</i> - <a href="https://news.ycombinator.com/item?id=16453610" rel="nofollow">https://news.ycombinator.com/item?id=16453610</a> - Feb 2018 (9 comments)<p><i>Show HN: Bocker – Docker implemented in 100 lines of bash</i> - <a href="https://news.ycombinator.com/item?id=9925896" rel="nofollow">https://news.ycombinator.com/item?id=9925896</a> - July 2015 (87 comments)
Liz Rice's presentation on re-creating Docker in Go is also quite eye-opening: <a href="https://www.youtube.com/watch?v=Utf-A4rODH8" rel="nofollow">https://www.youtube.com/watch?v=Utf-A4rODH8</a>
Really this is more interesting as a great tutorial on the way Linux container tools work (and especially their fundamental simplicity -- the docs make them seem scary when they really aren't) more than it is as a docker replacement (docker is obviously much larger than this one script, but not really "large" as a software stack).<p>But reading this makes clear that, yes, containers are just filesystem trees, network namespaces are just like internal networks maintained by straightforward commands underneath an "ip netns" command, etc...<p>Great stuff.
Woah! Don't know if it can be used as a proper Docker replacement (probably not), but I sure do appreciate the project as an example of how to use all the tools to implement an isolated environment. And the fact that it actually works with Docker containers (well, why wouldn' it, but still) is just a cheery on top!
My team is being hit with really extreme pricing changes for Docker Desktop. I have never been clear on why we even wanted DD (I guess right now it’s the easiest path to getting x86 containers running on M1 Macs?). Alternatives like Podman or even a more extreme solution like this one are becoming more and more attractive.
It looks like it relies on BtrFS? Can anyone add support for OverlayFS 2? :) which I think is more deployed these days due to Docker itself<p>I’d be curious to see how it looks
I was part of this, it was a fun project. I have a final pull request that never made it though, and that's too bad as it addressed some hardcoding issues and added a few helpful commands: <a href="https://github.com/p8952/bocker/pull/23" rel="nofollow">https://github.com/p8952/bocker/pull/23</a><p>Revisiting the project, it looks like more people tried submitting PRs for the following couple years. Funny, for a project that was definitely an exercise in "do X in 100 lines of code"
Yet more proof that this exact UX/DX from the interface is a major part of the value add.<p>(Edit: and docker-compose)<p>One day the FreeBSD devs will understand. The closest is Focker: <a href="https://github.com/sadaszewski/focker" rel="nofollow">https://github.com/sadaszewski/focker</a>
With all those prerequisites it's definitely possible. I can implement Docker witt one prereq in one line of Bash:<p><pre><code> docker "$@"
</code></pre>
You're welcome, internet.