Bocker: Docker implemented in around 100 lines of Bash (2015)
github.com
github.com
Bocker – Docker implemented in around 100 lines of Bash (2015) - https://news.ycombinator.com/item?id=22244706 - Feb 2020 (196 comments)
Docker implemented in around 100 lines of bash - https://news.ycombinator.com/item?id=16453610 - Feb 2018 (9 comments)
Show HN: Bocker – Docker implemented in 100 lines of bash - https://news.ycombinator.com/item?id=9925896 - July 2015 (87 comments)
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...
Great stuff.
The readme says "I can make no guarantees that it won't trash your system", so yeah clearly not intended for real use.
Right?
... right?
See here: https://www.docker.com/legal/docker-terms-service/
Under EXCLUSION OF WARRANTIES and LIMITATION OF LIABILITY.
Here, Bocker is also a replacement for Docker in exactly the same sense: Bocker's simple statement "I can't guarantee it won't trash your system" is a concise alterantive to a wall of legalese.
You'd probably want to tread cautiously if someone doesn't use disclaimers - that's probably a more dangerous product.
To verify that Bocker adds no additional issues is a smaller job than verifying Docker in the same way.
If there is some problem in the actual containerization, Bocker and Docker will be equally affected.
[1] https://medium.com/nttlabs/containerd-and-lima-39e0b64d2a59
Additionally, it's a shame that the docker company struggles to profit from their revolutionary technology: operations, devops and infra looks completely different than 10 years ago and they played a big role in it.
The thing that is making my team consider alternatives is this: https://www.docker.com/pricing/october-2022-pricing-change-f...
We were on the "Docker Teams" plan, paying $7/user/month. With this pricing change, since we are over 100 users, we bump to "Docker Business" paying $24/user/month, more than a 3x price increase!
At that price point, it's definitely worth looking at what other choices there are.
I’d be curious to see how it looks
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"
This is a great way of making fun of it.
(Edit: and docker-compose)
One day the FreeBSD devs will understand. The closest is Focker: https://github.com/sadaszewski/focker
IANAL, but I would guess that that implies that the author is in violation of the GPL for adding that restriction?
Focker also took a stab at a docker-compose-like implementation.
=for comment
keep the ascii whale swimming
do not modify this code
=cutInternet points mean very little, until you get enough that you start floating to the top of popularity rankings, at which point they suddenly become indirectly monetizable.
Incidentally karma on HN is similar to the extent that it lets you how active a participant someone is, and that they're not a troll or throwaway. Again, it can certainly be gamed, and throwaway accounts often add valuable comments, but its still a signal
docker "$@"
You're welcome, internet.1. Dockerfile concept.
2. Container image format (which is know known as OCI container).
3. Docker hub which is a repository of containers including high-quality ones.
Every thing is essential and bringed innovation.
Launching container is boring and not really interesting indeed.
Container image format is essential because it allows for a shared ecosystem of containers. There are plenty of container registries and you can just pull any image, build your image using those other images, etc.
Basically docker introduced some standards and everyone accepted those standards. And that's a good thing. They're far from ideal, but they're kind of shared among implementations and good enough I guess.
Now with those standards you can innovate on implementations. Some people replaced docker with podman, having access to the same vast repository of containers. Some people replaced docker build with kaniko, which allows to build containers in a different way using the same source Dockerfile.
stop making new frameworks
“Everyday” in the case of js frameworks has always been hyperbolic to me, but I think something that perhaps isn’t unfair is “once you’ve mastered a given framework, there’s a new one you have to learn.”
It certainly seems to be more development than in other languages. Seems. Seems. Seems. I could be wrong about that though.
🅰🅱🆎🅾
There was a meme a while back where people would use 🅱 all over the place. Not sure why it was funny but it was.
True. You should replace it with podman!
Had short discussion with couple of friends more familiar with podman vs docker, they highlighted the case when you need to give access to docker socket (say for building images) or for other needs to someone who is not in infrastructure admins (devops) team. As we know, having access to docker effectively meant root access on host, so such untrusted parties access implies severe risk of your host belongs to someone else now.
For such cases, when you cannot guarantee the one who operates docker is the root on host anyways, podman starts to make sense.
Quick demo and intro: https://m.youtube.com/watch?v=OVkj_W6Bynk
I know it is an amazing tool so not to bash too much. There is a reason why I use it all the time. But goddamn it: https://stackoverflow.com/questions/24319662/from-inside-of-... and goddamn it: https://stackoverflow.com/questions/22049212/docker-copying-...
Docker needs a new command "sudo docker someone --invent new:docker-replacement:latest".
The syntax of port mapping is unfortunate and unergonomic, but I suppose it just follows the syntax of port forwarding in OpenSSH :-/
For a number of improvements / different trade-offs, see Podman. But does it have a neat client for macOS, which many developers unfortunately run? (I don't.)
There are some valid usecases during development - run some services on the host, while running the rest in containers. Containers doesn't need to know if it's connecting to the host or other containers. Just pass a proper URL, and services must blindly connect to it.