What has Docker become?
Posted by tuananh 1 day ago
Comments
Comment by mg794613 1 day ago
No, everything was already open source, other had done it before too, they just made it in a way a lot of "normal" users could start with it, then they waited too long and others created better/their own products.
"Docker Swarm was Docker’s attempt to compete with Kubernetes in the orchestration space."
No, it never was intended like that. That some people build infra/business around it is something completely different, but swarm was never intended to be a kubernetes contender.
"If you’re giving away your security features for free, what are you selling?"
This, is what actually is going to cost their business, I'm extremely grateful for what they have done for us. But they didn't gave themselves a chance. Their behaviour has been more akin to a non-profit. Great for us, not so great for them in the long run.
Comment by dralley 1 day ago
Corporate customers didn't like the security implications of the Docker daemon running as root, they wanted better sandboxing and management (cgroups v2), wanted to be able to run their own internal registries, didn't want to have docker trying to fight with systemd, etc.
Docker was not interested (in the early years) in adopting cgroups v2 or daemonless / rootless operation, and they wanted everyone to pay to use Dockerhub on the public internet rather than running their own internal registries, so docker-cli didn't support alternate registries for a long long time. And it seemed like they disliked systemd for "ideological" reasons to an extent that they didn't make much effort to resolve the problems that would crop up between docker and systemd.
Because Docker didn't want to build the product that corporate customers wanted to use, and didn't accept patches when Red Hat tried to get them implemented those features themselves, eventually Red Hat just went out and built up Podman, Quay, and the entire ecosystem of tooling that those corporate customers wanted themselves (and sold it to them). That was a bit of an own goal.
Comment by cpuguy83 1 day ago
Corporate customers do not care about any of the things you mentioned. I mean, maybe some, but in general no. That's not what corps think about.
There was never "no interest" at Docker in cgv2 or rootless. Never. cgv2 early on was not useable. It lacked so much functionality that v1 had. It also didn't buy much, particularly because most Docker users aren't manually managing cgroups themselves.
Docker literally sold a private registry product. It was the first thing Docker built and sold (and no, it was not late, it was very early on).
Comment by djb_hackernews 1 day ago
Comment by FireBeyond 1 day ago
Comment by mikepurvis 1 day ago
That said, I've been really surprised to not see more first class CI support for a repo supplying its own Dockerfile and being like "stage 1 is to rebuild the container", "stage two is a bunch of parallel tests running in instances of the container". In modern Dockerfiles it's pretty easy to avoid manual cache-busting by keying everything to a package manager lockfile, so it's annoying that the default CI paradigm is still "separate job somewhere that rebuilds a static base container on a timer".
Comment by FireBeyond 1 day ago
Comment by mikepurvis 1 day ago
But if that's not the case (robotics, ML, gamedev, etc) or especially if you're dealing with a slow, non-parallel package manager like apt, that upfront dependency install starts to take up non-trivial time— particularly galling for a step that container tools are so well equipped to cache away.
I know depot helps a bunch with this by at least optimizing caching during build and ensuring the registry has high locality to the runner that will consume the image.
Comment by cpuguy83 1 day ago
Comment by jeremyjh 1 day ago
I’d be surprised if the systemd thing was not also true.
I think it’s quite likely Docker did not have a good handle on the “needs” of the enterprise space. That is Red Hats bread and butter; are you saying they developed all of that for no reason?
Comment by cpuguy83 21 hours ago
I don't feel like RedHat had to do anything to sell support contracts in this case, because that was already their business. All they had to do was say they'll include container support as part of their contracts.
What they did do, AIUI based on feedback in the oss docker repos, is those contracts stipulated that you must run RHEL in the container and the host, and use systemd in the container in order to be "in support". So that's kind of a self-feeding thing.
Comment by oso2k 17 hours ago
I don't feel like RedHat had to do anything to sell support contracts in this case, because that was already their business. All they had to do was say they'll include container support as part of their contracts.
Correct. Maybe starting with RHEL7, Red Hat took the stance that “containers are Linux”. Supporting Docker in RHEL7 was built-in as soon as we added it to ‘rhel-7-server-extras-rpms’ repo. The containers were supported as “customer workloads” while we docker daemon and cli were supported as part of the OS. What they did do, AIUI based on feedback in the oss docker repos, is those contracts stipulated that you must run RHEL in the container and the host, and use systemd in the container in order to be "in support". So that's kind of a self-feeding thing.
Not quite right. RHEL containers (and now UBI containers) are only supported when they run on RHEL OS hosts or RHEL CoreOS hosts as part of an OpenShift cluster. systemd did not work (well?) in containers for a while and has not been ever a requirement. There’s several reasons for this RHEL containers on RHEL/RHCOS requirement. For one, RHEL/UBI containers inherit their subscription information from their host. This is much like how RHEL VMs can inherit their subscription if you have virtualization host-based subscriptions. If containers weren’t tied to their host, then by convention, each container would need to subscribe to Red Hat on instantiation and would consume a Red Hat subscription instance.Comment by oblio 23 hours ago
I would be utterly shocked if corporate customers wouldn't want corporate Docker proxies/caches/mirrors.
Entire companies have been built on language specific artifact repositories. Generic ones like Docker are even more sought after.
Comment by cpuguy83 22 hours ago
Comment by PaulHoule 1 day ago
I did large downloads all the time, I used to download 25GB games for my game consoles for instance. I just had to use schedule them and use tools that could resume downloads.
If I'd had a local docker hub I might have used docker but because I didn't it was dead to me.
Comment by nyrikki 1 day ago
Crun just stamp couples security profiles as an example, so everything in the shared kernel that is namespace incompatible is enabled.
This is why it is trivial to get in-auditable communication between pods on a host etc…
Comment by ragall 1 day ago
Which parts of the model are you referring to ?
Comment by nyrikki 20 hours ago
Basically, docker started using lxc, but wanted a go native option, and wrote runc. If you look at [0] you can see how it actually instantiates the container. Here is a random blog that describes it fairly well [1]
crun is the podman related project written in c, which is more efficient than the go based runc.
You can try this even as the user nobody 65534:65534, but you may need to make some dirs, or set envs.
Here is an example pulling an image with podman to make it easier, but you could just make an OCI spec bundle and run it:
mkdir hello
cd hello
podman pull docker.io/hello-world
podman export $(podman create hello-world) > hello-world.tar
mkdir rootfs
tar -C rootfs -xf hello-world.tar
runc spec --rootless
sed -i 's;"sh";"/hello";' config.json
runc run container1
Hello from Docker!
runc doesn't support any form of constraints like a bounding set on seccomp, selinux, apparmor, etc.. but it will apply profiles you pass it.Basically it fails open, and with the current state of apparmor and selinux it is trivial to bypass the minimal userns restrictions they place.
Historically, before rootless containers this was less of an issue, because you had to be a privileged user to launch a container. But with the holes in the LSMs, no ability to set administrative bounding sets, and the reality that none of the defaults constrain risky kernel functionality like vsock, openat2 etc... there are a million ways to break netns isolation etc...
Originally the docker project wanted to keep all the complexity of mutating LSM rules etc... in containerd. and they also fought even basic controls like letting an admin disable the `--privileged` flag at the daemon level.
Unfortunately due to momentum, opinions, and friction in general, that means that now those container runtimes have no restrictions on callers, and cannot set reasonable defaults.
Thus now we have to resort to teaching every person who launches a container to be perfect and disable everything, which they never do.
If you run a k8s cluster with nodes on VMs, try this for example, if it doesn't error out, any pod can talk to any other pod on the node, with a protocol you aren't logging, and which has limited ability to log anyway. (if your k8s nodes are running systemd v256+ and you aren't using containerd which blocked vsock, but cri-o, podman, etc... don't (at least up to a couple of weeks ago)
socat - VSOCK-LISTEN:3000
You can also play around with other af_families as IPX, Appletalk, etc... are all available by default, or see if you can use openat2 to use some file in /proc to break out.[0] https://manpages.debian.org/testing/runc/runc-spec.8.en.html [1] https://mkdev.me/posts/the-tool-that-really-runs-your-contai... [2] https://github.com/opencontainers/runtime-spec/blob/main/REA...
Comment by oblio 23 hours ago
I don't understand any of this :-)
Comment by anonymars 1 day ago
Comment by Normal_gaussian 1 day ago
Comment by PaulHoule 1 day ago
Comment by tracker1 1 day ago
The former felt like a rug pull when they did it later, and the latter should have been obvious from the start. But it wasn't there in the beginning and too many alternatives from every cloud provider popped in to fill that gap and it was too late.
There were a lot of cool ideas, and I think early on, they were more focused on the cool ideas and less on how to make it a successful, long lived business that didn't rely on VC funding and an exit strategy they didn't have to succeed.
Comment by xp84 19 hours ago
This "free to start using" move is best exemplified by Slack, which ended up taking over many companies guerrilla-style. They did a pretty good job of pivoting companies to paying, too.
Comment by paradox460 22 hours ago
Comment by mattwiese 1 day ago
This is particularly amusing when considering they helped start the Open Container Initiative with others back in 2015.
What if Docker "the company" was just a long con to use VC bux to fund open source? I say mostly in jest.
Comment by pjmlp 1 day ago
As proven later when Kubernetes became container runtime agnostic.
Comment by ffsm8 22 hours ago
> No, it never was intended like that.
It was certainly marketed as that though...
Comment by JeremyNT 1 day ago
Yes. It was a helpful UI abstraction for people uncomfortable with lower level tinkering. I think the big "innovations" were 1) the file format and 2) the (free!) registry hosting. This drove a lot of community adoption because it was so easy to share stuff and it was based on open source.
And while Docker the company isn't the behemoth the VCs might have wanted, those contributions live on. Even if I'm using a totally different tool to run things, I'm writing a Dockerfile, and the artifacts are likely stored in something that acts basically the same as Docker Hub.
Comment by daveisfera 23 hours ago
Comment by diceduckmonk 10 hours ago
Any posts on the internet archives to understand the history ?
Comment by crimps 1 day ago
There were also a lot of talented, well-paid engineers working on open source side projects with no business value. It just wasn't a very well-run company. You can't take on half a billion dollars in VC just to sell small enterprise support contracts.
Comment by abronan 1 day ago
Your comment is accurate for the original Swarm project, but a bit misleading regarding Swarm mode (released later on and integrated into docker).
I have worked on the original Swarm project and Swarmkit (on the distributed store/raft backend), and the latter was intended to compete with Kubernetes.
It was certainly an ambitious and borderline delusional strategy (considering the competition), but the goal was to offer a streamlined and integrated experience so that users wouldn't move away from Docker and use Swarm mode instead of Kubernetes (with a simple API, secured by default, just docker to install, no etcd or external key value metadata store required).
You can only go so far with a team of 10 people versus the hundreds scattered across Google/RedHat/IBM/Amazon, etc. There were so many evangelists and tech influencers/speakers rooting for Kubernetes already, reversing that trend was extremely difficult, even after initiating sort of a revolution in how developers deployed their apps with docker. The narrative that cluster orchestration was Google's territory (since they designed Borg that was used at a massive scale) was too entrenched to be challenged.
Swarm failed for many reasons (it was released too soon with a buggy experience and at an incomplete state, lacking a lot of the features k8s had, but also too late in terms of timing with k8s adoption). However, the goal for "Docker Swarm mode" was to compete with Kubernetes.
Comment by chuckadams 1 day ago
Comment by tln 23 hours ago
I think the problem was giving up on swarm TBH. At some point it was clear k8s would be dominant, but there was still room for that streamlined and integrated experience.
Comment by xeromal 1 day ago
Comment by karolist 1 day ago
Comment by aruggirello 21 hours ago
Comment by ChocolateGod 1 day ago
Comment by metaltyphoon 1 day ago
Comment by karolist 23 hours ago
Comment by ahepp 23 hours ago
They wrote a really nice wrapper around cgroups/ns/tarball hosting and then struggled to monetize it because a large portion of their users are exactly the kind of people who could set up a curlftpfs document cloud.
Comment by nixosbestos 1 day ago
That would be news to the then Docker CTO, who reached out to my boss to try to get me in trouble, because I was tweeting away about [cloud company] and investing heavily in Kubernetes. The cognitive dissonance Docker had about Swarm was emblematic of the missteps they took during that era where Mesos, Kube and Swarm all looked like they could be The Winner.
Comment by pc86 1 day ago
Comment by Moto7451 1 day ago
At two places I worked their reps reached out to essentially ensnare the company in a sort of “gotcha” scheme where if we were running the version of Docker Desktop after the commercial licensing requirement change, they sent a 30 day notice to license the product or they’d sue. Due to the usual “mid size software company not micromanaging the developers” standard, we had a few people on a new enough version that it would trigger the new license terms and we were in violation. They didn’t seem to do much outreach other than threatening us.
So in each case we switched to Rancher Desktop.
The licensing cost wasn’t that high, but it was hard to take them in good faith after their approach.
Comment by someone7x 1 day ago
This tracks with what I saw, one day there was an email sent out to make sure you don’t have docker desktop installed.
It was wild because we were on the heels of containerize-all-th-things push and now we’re winding down docker?? Sure whatever you say boss.
Comment by bullonabender 7 hours ago
Comment by steve1977 1 day ago
Comment by Someone 1 day ago
What exactly are you objecting to? Since you say “I’m fine with the idea that licensing Docker and Docker Desktop is a good thing to do” it’s not the change, so what is it? The 30 days, them saying they would sue after that, or the tone?
I haven’t seen the messages so I cannot comment on that, but if you accept that the licensing can be changed, whats wrong with writing offenders to remind them to either stop using the product or start paying? And what’s wrong with giving them 30 days, since, in my memory, they announced the licensing change months in advance?
Comment by dec0dedab0de 1 day ago
It reminds me of someone handing me something on the street then asking me to pay for it, whenever they do that I just throw whatever it is as far as I can and keep walking.
Comment by saghm 21 hours ago
Comment by dangus 1 day ago
If they never changed that licensing, nobody would have had an incentive to put big effort into an alternative.
I think the hosted Docker registry should have been their first revenue source and then they should have created more closed source enterprise workflow solutions and hosted services that complement the docker tooling that remained truly open source, including desktop.
Comment by b40d-48b2-979e 1 day ago
Due to the usual “mid size software company not micromanaging the developers”
standard
You didn't have a device management system or similar product managing software installs (SCCM in Windows land)? That's table stakes for any admin.Comment by Moto7451 1 day ago
At one place there wasn’t and at the other it wasn’t well managed. I agree from a compliance point of view and have advocated for this but I was not on the IT/Ops side of the business so I could only use soft power.
The CTO at the first company had a “zero hindrances for the developers” mindset and the latter was reeling from being the merger of five different companies. The latter did a better job of trying to say the least but wasn’t great about it. Outcome was the same none the less.
Comment by jabroni_salad 1 day ago
But outside of 'make sure the oracle lawyers never contact us' they dont want us policing them and they are admins on their own devices. For a lot of businesses their computer network has separate production and business zones and the production zone is a YOLO type situation.
Comment by coredog64 1 day ago
Comment by b40d-48b2-979e 1 day ago
Comment by dangus 1 day ago
At my midsize company, our engineers could absolutely say something like “we don’t like Terraform Cloud, we want to switch to OpenTofu and env0” and our management would be okay with it and make it happen as long as we justify the change.
We wouldn’t even really have to ask permission if the change was no cost.
Comment by ajcp 1 day ago
I think OPs point is they failed on this part. "Making it happen" should have been ensuring a compliant and approved version of the software was the one made available to the developers. At a large scale that is done via device management, but even at a medium sized enterprise that should have been done via a source management portal of some sort.
Comment by rmccue 1 day ago
Strongly disagree. The core Docker technology was an excellent product and as the article says, had a massive impact on the industry. But they never found a market for that technology at any price point that wasn't ~free, so they didn't have PMF. That technology also only took off in the way it did because it was free and open source.
Comment by LtWorf 1 day ago
Comment by airstrike 1 day ago
Comment by llbbdd 1 day ago
Comment by ronsor 1 day ago
Comment by hashstring 19 hours ago
Comment by MikeNotThePope 17 hours ago
Comment by steve_adams_86 21 hours ago
Comment by bedstefar 1 day ago
Comment by radioradioradio 1 day ago
The tech is open source and free forever - thats somehow a problem? The company monitised enterprise features, while keeping core and hub free - also a problem? Is exploring AI tools, like everyone else is? should they not? should they just stay stagnant? Has made hardened images free instead of making that a premium feature only for people in banks? - and monitising SLAs, how is that a problem?
Docker is still maintaining the runtime on which orbstack, podman etc are all using, and all the cloud providers are using, but apparently at the same time Docker is deeply irrelevant and should not make money - while all of us on HN with well paid tech jobs get to have high thoughts on their every move to pay their employees and investors...
Comment by bmitch3020 1 day ago
> Docker is still maintaining the runtime on which orbstack, podman etc are all using, and all the cloud providers are using
I need to fact check that one. runc was donated by Docker to OCI a while back. And containerd was created under the CNCF from a lot of Docker code and ideas. podman is sitting on the RedHat containers stack, which has their own code base. Docker itself uses runc and containerd, and so do most Kubernetes deployments. Many of these tools go to containerd directly without deploying the Docker engine.
Comment by shykes 1 day ago
No. containerd was created by Docker, as part of a refactoring of dockerd, then later donated to cncf. Over time it gained a healthy base of maintainers from various companies. It is the most successful of Docker's cncf contributions. But it was not created under the CNCF.
Comment by amluto 1 day ago
Podman? Podman appears to have reimplemented basically everything. What runtime are you talking about?
Comment by JCattheATM 21 hours ago
Comment by amluto 19 hours ago
Comment by JCattheATM 18 hours ago
Most stuff is not published on Quay; most podman users use Docker Hub or Compose files.
Comment by amluto 18 hours ago
or GHCR, etc. Docker Hub is hardly a “runtime”.
> or Compose files.
Compose files aren’t a replacement for Docker Hub. And Podman has a reimplementation of compose.
Comment by JCattheATM 18 hours ago
In the context of your question Hub makes sense, as it is something Docker maintains that most podman users still rely on
> Compose files aren’t a replacement for Docker Hub.
Correct, but most compose files refer to Docker Hub.
You seem to be highlighting that alternatives, which I don't dispute, but most people are overwhelmingly using the services that Docker maintain. That's the answer to your question. Read up a few replies if you've forgotten the context.
Comment by radioradioradio 1 day ago
Look at the maintainer lists of containerd and moby, which are used by loads of others, several docker employees on those lists - I didn't check what their amount of involvement is compared to other companies, nor whether they are even sanctioned by docker to do the work, but afaik those projects came out of OCI with Docker as one of the primary backers.
Comment by shykes 1 day ago
Comment by pjmlp 1 day ago
Comment by shykes 1 day ago
Comment by pjmlp 1 day ago
Comment by shykes 1 day ago
Docker in its entirety was at risk of being wrapped as a commodity component. By spinning out lower-level components under a different brand, they (we) made it possible to keep control of the Docker brand, and use it to sell value-added products.
Source: I'm the founder of Docker.
Comment by sneak 1 day ago
Docker Desktop, among other things, is not open source and is not free.
Open Core is not something that people who care about software freedoms engage in. It’s what proprietary software makers engaging in open source cosplay do.
Comment by shykes 1 day ago
AMA.
Comment by biggestlou 1 hour ago
Comment by lenova 1 day ago
Comment by shykes 23 hours ago
I also recently discovered a trove of my old presentations, retracing my early obsession with the same problem, and my repeated failed attempts to get people to care. I shared some of them in a talk a few weeks ago: https://www.youtube.com/watch?v=huRfsLMK5sA
Comment by meonkeys 1 day ago
Comment by shykes 1 day ago
All generic advice since I don't have inside information.
Comment by McP 1 day ago
Comment by shykes 1 day ago
In the early days we tried very hard to accommodate their needs, for example by implementing support for devicemapper as an alternative to aufs. I remember spending many hours in their Boston office whiteboarding solutions. But we soon realized our priorities were fundamentally at odds: they cared most about platform lock-in, and we cared most about platform independence. There was also a cultural issue: when Red Hat contributes to open source it's always from a position of strength. If a project is important to them, they need merge authority - they simply don't know how to meaningfully contribute to an upstream project when they're not in charge. Because of the diverging design priorities, they never earned true merge rights on the repo: they had to argue for their pull requests like everyone else, and input from maintainers was not optional. Many pull requests were never merged because of fundamental design issues, like breaking compatibility with non-Red Hat platforms. Others because of subjective architecture disagreements. They really didn't like that, which led to all sorts of drama and bad behavior. In the process I lost respect for a company I once admired.
I also think they made a mistake marketing podman as a drop-in replacement to Docker. This promise of compatibility limited their design freedom and I'm sure caused the maintainers a lot of headaches- compatibility is hard!
Ultimately the true priority of podman - native integration with the Red Hat platform - makes it impossible for it to overtake Docker. I'm sure some of the podman authors would like to jettison that constraint, but I don't think that's structurally possible. Red Hat will never invest in a project that doesn't contribute to their platform lock-in. Back when RH was a dominant platform, that was a strength. Nowadays it is a hindrance.
Comment by daveisfera 22 hours ago
Comment by shykes 22 hours ago
Ask yourself: how many open source projects reject PRs every day because of design disagreements? That's just how open source works. Why did you hear about that specific case of PRs getting rejected, and why do you associate it with vague concepts like "arrogance" and "insecurity"? That's because a marketing team engineered a narrative, then spent money to deploy that narrative - via blog posts, social media posts, talks at conferences, analyst briefings, partner briefings, sales pitches, and so on. This investment was justified by the business imperative of countering what was perceived to be an existential threat to Red Hat's core business.
It opened my eyes to the reality of big business in tech: many of the "vibes" and beliefs held by the software engineering community, are engineered by marketing. If you have enough money to spend, you can get software engineers to believe almost anything. It is a depressing realization that I am still grappling with.
The most damning example I can give you: we once rejected a PR because it broke compatibility with other platforms. Red Hat went ahead and merged it in their downstream RPM package. So, Fedora and RHEL users who thought they were installing Docker, were in fact installing an unauthorized modified version of it. Later, a security vulnerability was discovered in their modified version only, but advertised as a vulnerability in Docker - imagine our confusion, looking for a vulnerability in code that we had not shipped. Then Red Hat used this specific vulnerability, which only existed in their modified version, in their marketing material attacking Docker as "insecure". That was an eye-opening moment for me...
Comment by hyperman1 9 hours ago
E.g. for your most damning example: If docker published this story, blogged about it, made noice in places like HN, it is exactly what the press would love: RH breaks docker security while claiming to be more secure! The Emperor has no clothes! If you take security serious, accept no fake substitutes!
Comment by ghthor 18 hours ago
Comment by shykes 18 hours ago
In any case I meant it in an informal software engineering sense: it's bad form for a packager to distribute upstream software under its original name, with substantial modifications beyond what users would expect distro packagers to make - backporting, build rules, etc.
For such a downstream change to introduce security vulnerabilities is a major fuckup. To actively blame upstream for said vulnerability, while competing with them in the market, is unethical.
Comment by JCattheATM 20 hours ago
Which stand out? Any particular mailing list or github issue discussions?
Comment by incognito124 1 day ago
Comment by shykes 1 day ago
We heard the feedback that we should pick a lane between CI and AI agents. We're refocusing on CI.
We're making Dagger faster, simpler to adopt.
We're also building a complete CI stack that is native to Dagger. The end-to-end integration allows us to do very magical things that traditional CI products cannot match.
We're looking for beta testers! Email me at solomon@dagger.io
Comment by linkage 1 day ago
Comment by shykes 1 day ago
Comment by monkchips 1 hour ago
Comment by LikeAnElephant 1 day ago
Focusing on CI would still enable the AI stuff too! But my use case is CI, no AI.
Comment by shykes 1 day ago
Thanks for giving us another chance! Come say hi on our discord, if you ever want to ask questions or discuss your use case. We have a friendly group of CI nerds who love to help.
Comment by shepherdjerred 1 day ago
Comment by shykes 1 day ago
The companies themselves are not related beyond that.
Comment by jiehong 1 day ago
Comment by shykes 1 day ago
Only listen to your users and customers, ignore everyone else.
Don't hire an external CEO unless you're ready to leave. Hiring a CEO will not fix the loneliness of not having a co-founder.
Having haters is part of success. Accept it, and try to not let it get to you.
Don't partner with Red Hat. They are competitors even though they're not honest about it.
Not everyone hates you even though it may seem that way on hacker news and twitter. People actually appreciate your work and it will get better. Keep going.
Comment by logube 1 day ago
Comment by shykes 1 day ago
When we open sourced Docker, we had considerable experience running openvz in production, as well as migrating to lxc - a miserable experience in the early days because the paint was still so fresh. To my knowledge we were the very first production deployment of managed databases and multi-tenant application servers on lxc, back in 2010.
It's a common misconception that Docker was a naive reinvention of, or a thin wrapper around, pre-existing technology like solaris zones or lxc. In reality that is not the case. Those technologies were always intended as alternative forms of virtualization: a new way to slice up a machine. Docker was the first to use container and copy-on-write tech for the purpose of packaging and distributing applications, rather than provisioning machines. Before Docker, nobody would ever consider running a linux container or solaris zone on top of a VM: that would be nonsensical because they were considered to be at the same layer of the stack. Sun invented a lot of things, but they did not everything :)
Comment by justsomehnguy 19 hours ago
Comment by shykes 19 hours ago
Comment by justsomehnguy 6 hours ago
It's even more egregious with 'ipvlan' and 'macvlan' drivers:
> ipvlan Connect containers to external VLANs.
Duh, that's a 'routed network' and nobody cares if it's on a separate vlan or not.
> macvlan Containers appear as devices on the host's network.
And this is a bridge!
Comment by Avamander 19 hours ago
Comment by vivzkestrel 1 day ago
- take advantage of the current agentic wave and announce a Docker Sandbox runner product that lets you run agents inside cloud sandboxes
Comment by pploug 1 day ago
Comment by vivzkestrel 1 day ago
Comment by jiehong 1 day ago
Comment by jaynamburi 8 hours ago
The original breakthrough wasn’t containers themselves (LXC already existed), but the combination of: a reproducible image format, layered filesystem semantics, a simple CLI, and a registry model that made distribution trivial. That unlocked a whole workflow shift.
What happened next is that Docker the company tried to own the platform, while the industry standardized around the parts that mattered. The runtime split into containerd/runc, orchestration moved to Kubernetes, image specs went to OCI, and “Docker” became more of a developer UX brand than a core infrastructure primitive.
Today Docker mostly means:
A local dev environment (Docker Desktop)
A build UX (Dockerfile, buildx)
A compatibility layer over containerd
A commercial product with licensing constraints
Meanwhile, production container infrastructure largely bypasses Docker entirely.
That’s not failure it’s a common arc. Docker succeeded so well that it got standardized out of the critical path. What remains is a polished on ramp for developers, not the foundation of the container ecosystem.
In other words: Docker won the mindshare, lost the control, and pivoted to selling convenience.
Comment by amelius 1 day ago
Comment by bmitch3020 1 day ago
There's a rootless [0] option, but that does require some sysadmin setup on the host to make it possible. That's a Linux kernel limitation on all container tooling, not a limitation of Docker.
> and that it keeps images between users in a database.
Not a traditional database, but content addressable filesystem layers, commonly mounted as an overlay filesystem. Each of those layers are read-only and reusable between multiple images, allowing faster updates (when only a few layers change), and conserving disk space (when multiple images share a common base image).
> I want to move things around using mv and cp, and not have another management layer that I need to be aware of and that can end up in an inconsistent state.
You can mount volumes from the host into a container, though this is often an anti-pattern. What you don't want to do is modify the image layers directly, since they are shared between images. That introduces a lot of security issues.
Comment by Alupis 1 day ago
Docker could do a lot better job in the packaging of their software. Even major updates require manual uninstalling and reinstalling it... Podman just works.
Comment by WhyNotHugo 21 hours ago
Docker could definitely do a much better job of making packaging easier. The docker-rootless just includes an sh script which has several of the files inline and writes them to the target location… assuming you're making a user-only installation (even though other potions of the setup require root intervention).
So packaging this requires reverse engineering how the installation process works, and extracting some of those inline files from the sh script, and figuring out where they'd be installed for a system-wide location.
Comment by scoodah 21 hours ago
> I cannot install it as nonroot user
You still need root privileges to install podman initially.
Comment by esafak 1 day ago
Comment by iberator 1 day ago
Comment by embedding-shape 1 day ago
Yeah, I mean what do you expect or is the alternative? If you have a process that needs access to something only root typically can do, and the solution been to give that process root so it can do it's job, you usually need root to be able to give that process permission to do that thing without becoming root. Doesn't that make sense? What alternative are you suggesting?
Comment by IshKebab 1 day ago
You have to be root to set it up, but after that you don't need any special privileges. With Docker the only option is to basically give everyone root access.
It's true that it requires root for some setup though. Unclear if op was complaining about that.
Comment by cpuguy83 1 day ago
Comment by FireBeyond 1 day ago
Comment by cpuguy83 1 day ago
Comment by IshKebab 1 day ago
Comment by kccqzy 1 day ago
Sure you cannot install docker or podman as a non-root user. But take your argument a bit further: what if the kernel is compiled without cgroups support? Then you will need root to replace the kernel and reboot. The root user can do arbitrarily many things to prevent you from installing any number of software. The root user can prevent you from using arbitrary already installed software. The root user can even prevent you from logging in.
It is astounding to me that someone would complain that a non-root user cannot install software. A much more reasonable complaint is that a non-root user can become root while using docker. This complaint has been resolved by podman.
Comment by oarsinsync 1 day ago
Depends on what you mean by "install software".
If your definition is "put an executable in a directory that is in every other user's standard $PATH", then yes, this is an absurd complaint. Of course only root should be able to do this.
If your definition is "make an executable available to run as my user", then no, this is not absurd. You absolutely should not need root to be able to run software that doesn't require root privileges. If the software requires root, it's either doing something privileged, or it's doing it wrong.
Comment by kccqzy 1 day ago
> You absolutely should not need root to be able to run software that doesn't require root privileges.
But root can approve or disapprove you running that software. Have you heard of SELinux or AppArmor? The root user can easily and simply preventing you from running an executable even as your own user.
A malware can run as your own user and exfiltrate files you have access to. The malware does not need root privileges. Should root have the capability to prevent the malware from being installed? Regardless of what your definition of “install” is, the answer is unequivocally yes.
Comment by tucnak 1 day ago
Comment by outcoldman 1 day ago
Comment by cpuguy83 1 day ago
Comment by embedding-shape 1 day ago
Comment by outcoldman 1 day ago
Just a note, I am working for the org, that sells enterprise software shipped as container images, publishes on Docker Hub and RedHat. No issues migrating to apple/container.
Comment by pawelduda 1 day ago
Comment by outcoldman 1 day ago
Comment by __MatrixMan__ 1 day ago
Comment by chuckadams 1 day ago
Comment by __MatrixMan__ 22 hours ago
You'd have to ensure that their ports and data directories don't collide, but I don't think you'll have a problem having "process-compose up" start multiple separate mysql, postgres, or webserver instances.
I just dedicate a terminal pane to it so I can arrow around and see the logs and health status of my databases (plus things like Prometheus and Grafana, I like to be able to nuke the cluster and have everything flatline, rather than having telemetry itself die when k8s goes away).
Both mysql and postgres are included in https://github.com/juspay/services-flake which you might find interesting.
Comment by wkrp 1 day ago
Comment by gf000 1 day ago
"Deploying" one is as simple as `nixos-rebuild switch --flake .#hostName`
Comment by chuckadams 1 day ago
Comment by pxc 22 hours ago
There are a ton of other open-source process supervisors you can use to manage long-lived processes in a portable way, too, notably Foreman[8] and various clones written in languages other than JS, and GNU Shepherd[9]. In the course of writing this post, I discovered one called dinit[10] which looks sort of similar to s6 and the GNU Shepherd in that it supports both pure usermode operation as well as functioning as an OS's init system. Anyway, all of 'em are in Nixpkgs, so you can pick them up and use them without any packaging work, too.
Service orchestration and containers are basically orthogonal concerns. Before Docker was born, there were already plenty of portable tools for standalone "process supervision", "service management", whatever you wanna call it. So it is after Docker, as well.
If I needed this for one of my dev environments I would take a look at process-compose to decide if it's acceptable to me. If it isn't, then after surveying the contemporary landscape of usermode service managers, I'd then write a devenv module that generates configs for it, and use that.
> Should I run Nix in Docker, Docker from Nix, or is there a nix-only solution for this?
I'd do this in a "Nix-only" way if possible, but if it's convenient for you to run a service via Docker (or Podman or any other container runtime), you can still do that.
If you can safely assume that all of your devs have it available, you can ship the client (`docker` or `podman` CLI or whatever) as part of your Nix environment, then have your process manager launch it via that command line interface. I'd avoid running Nix from within Docker for the purposes of development environments.
--
3: https://devenv.sh/supported-process-managers/process-compose...
4: https://f1bonacc1.github.io/process-compose/
5: https://sandervanderburg.blogspot.com/2020/02/a-declarative-...
6: https://github.com/svanderburg/nix-processmgmt
7: https://skarnet.org/software/s6/
8: https://github.com/ddollar/foreman
Comment by pxc 13 hours ago
Comment by tuananh 1 day ago
Comment by __MatrixMan__ 23 hours ago
Its especially nice for use with agents because the process-compose commands can be used to understand what's running, what's pending, what's failing, etc. Of course there's always `ps aux | grep` but that's full of noise from the rest of your system and it doesn't provide and structure for understanding: "foo is not running because the readiness check for bar is failing".
Containers have their place, but I don't think it's everywhere.
Comment by Havoc 1 day ago
Comment by justonceokay 1 day ago
Comment by yomismoaqui 1 day ago
Comment by Loeffelmann 1 day ago
Comment by bmitch3020 1 day ago
Docker had a choice of markets to go after, the enterprise market was being dominated by the hyperscalers pushing their own Kubernetes offerings. So they pivoted to focus on the developer tooling market. This is a hard market to make work, particularly since developers are very famous for not paying for tooling, but they appear to making a profit.
With Docker Hub, it's always been a challenge to limit how much that costs to run. And with more stuff being thrown in larger images, I don't want to see that monthly bill. The limits they added hurt, but also made a lot of people realize they should have been running their own mirror on-prem, if not only to better handle an upstream outage when us-east-1 has a bad day.
Everything else has been pushing into each of the various popular development markets, from AI, to offloading builds to the cloud, to Hardened Images. They release things for free when they need to keep up with the competition, and charge when enterprises will pay for it.
They've shifted their focus a lot over the years. My fear would be if they stayed stagnant, trying to extract rents without pushing into new offerings. So I'm not worried they'll fail this year, just like I wasn't worried any of the previous years when similar posts were made.
Comment by jesse_dot_id 23 hours ago
Comment by shermantanktop 1 day ago
It will get a company started but if the tech has any success, that success is always replicable (even if the exact tech isn’t). IP protection is worthless and beside the point.
The only moat is the creativity of a company’s core staff when they spend a lot of time on valuable problems. Each thing they produce will grow, live, and die, but if the company has no pipeline it is doomed.
And VCs know this, which is why they want to pump startups up, and then cash out before they flop, even while founders talk about all the great things they can do next.
Naming your company after your one successful product is a pretty good sign of a limited lifespan.
Comment by OptionOfT 1 day ago
Gordon is the character from Half Life.
Docker a piece of software. Don't anthropomorphize it.
Comment by gordonhart 1 day ago
Comment by Joel_Mckay 1 day ago
Comment by bmitch3020 1 day ago
Comment by Joel_Mckay 1 day ago
Comment by whinvik 1 day ago
But the actual experience with developing on VSCode with Dev Containers is not great. It's laggy and slow.
Comment by eYrKEC2 1 day ago
I worked at a company where we were trying to test code with our product and, for a time, everyone on the team was given a mandate to go out and find X number of open source projects to test against, every week.
Independently, every member of the (small) team settled on only trying to test repos where you could do:
get clone repo && cd repo && docker compose up
Everything else was just a nightmare to boot up their environment in a reasonable amount of time.Comment by mfro 1 day ago
Comment by whinvik 22 hours ago
Comment by Avamander 19 hours ago
Comment by wilsonpa 1 day ago
I have also used them remotely (ssh and using tailscale) and noticed a little lag, but nothing really distracting.
Comment by amonith 1 day ago
Comment by okanat 1 day ago
Comment by pjmlp 1 day ago
Comment by okanat 1 day ago
If you open a native Windows folder in VSCode and activate the Dev Container, it will use the special drvfs mounts that communicate via Plan9 to host Windows OS to access native Windows files from the Docker distro. Since it is a network layer accross two kernels, it is slow as hell.
Comment by pjmlp 1 day ago
First of all it supports containers natively, Windows own ones, and Linux on WSL.
Secondly, because Microsoft did not want to invent their own thing, the OS APIs are exposed the same way as Docker daemon would expect them.
Finally, with the goal to improving Kubernetes support and the ongoing changes for container runtimes in the industry, nowadays it exposes several touch points.
https://learn.microsoft.com/en-us/virtualization/windowscont...
Comment by 0xbadcafebee 1 day ago
Things will actually change quite a bit. First of all, millions of people depend on Docker Desktop, and Podman Desktop is (as everything from RedHat is) a poor replacement for it. And the Docker CLI and daemon power a huge amount of container technology; Podman is, again, quite a poor replacement. If these solutions go away, a large amount of business and technology is gonna get left in the lurch.
Second, most of the containerized world depends on Docker Hub. If that went away, actually a huge swath of businesses would just go hard-down, with no easy fix. I know a million HNers will be crying out about the evils of "centralization", but actually the issue is it's corporate-run rather than an open body. The architecture should have had mirrors built-in from the start, but even without mirrors, the company and all its investment and support going away is the bigger rug-pull.
The industry and ecosystem have this terribly human habit of rushing at the path-of-least-resistance. If we don't plan an intelligent, robust migration strategy away from Docker, we'll end up relying on something worse.
Comment by forty 1 day ago
Comment by starkparker 1 day ago
That's not to say they aren't effective, or even good, at least for the CLI. They're just still catching up. It's not and shouldn't be a surprise considering the head start.
Comment by Spivak 1 day ago
Quadlets are amazing and greatly simplify the deployment and management of containers.
The systemd integration is so good because you have this battle tested process manager with a gazillion features and you can use them with your containers for free.
Podman can run pods, hence the name, which is an abstraction that k8s has proven is useful but docker completely lacks.
Podman pushing k8s manifests as an (imho better) compose with podman play is refreshing. And it can be dropped in with Quadlets too.
Podman can generate your k8s manifests from your running containers. Get everything running how you like and save.
buildah frees you from Dockerfile and lets you build containers completely rootlesslessly.
Comment by godzillabrennus 1 day ago
FYI- If I was docker, I'd stand up some bare metal hosting (i.e., a Docker Cloud) designed around making it easier for novice developers to take containers and turn them into web applications, with a product similar to Supabase built around this cloud to let novice developers quickly prototype and launch apps without learning how to do deployments in more sophisticated clouds. Supabase and AI vibe coders pair well, but the hole in the market is vibe coders who want to launch a web app vibe coded but don't know how to deploy containers to the cloud without a steep learning curve. It keeps many vibe coders trapped in AIO vibe coding platforms like Lovable and AI Studio.
Comment by embedding-shape 1 day ago
Is it really a hole? I'm not the target user, but I keep coming across "Build & deploy your own platform/service/application with VibeCodingLikeThereIsNoTomorrow" and similar, maybe new one every week or so.
Comment by godzillabrennus 1 day ago
Comment by embedding-shape 1 day ago
Comment by godzillabrennus 23 hours ago
Comment by skwashd 1 day ago
Early 2017 was peak Docker and Docker Inc. Those were the days. Container hype was everywhere. Before moby. Before all the pivots.
Microsoft was embracing open source and the cloud. They were acquiring dev tools.
It was a missed opportunity for both companies.
Comment by hamdingers 1 day ago
Comment by eigencoder 1 day ago
Comment by 0hw0t 23 hours ago
The team I was before Docker got popular just used the OG container, user accounts, and set up namespaces and cgroups per user.
Docker represents perfectly the issue with the software industry; it is software that duplicates existing software chasing "line go up" not actual utility. No net new utility just different semantics to perform sys admin work.
Developers did not want to learn sys admin, and instead learned a meta-Docker-driven-sysadmin anyway.
Comment by gregoryl 1 day ago
For a while, Docker seemed to focus on developer experience.
ahh yes, docker desktop, where the error messages are "something went wrong", and the primary debugging step is to wipe it, uninstall, and reinstall.Comment by reedf1 1 day ago
Comment by hu3 1 day ago
It has been a year without problems since I enabled WSL2 engine for Docker.
Honestly they should make the WSL2 Docker engine mandatory because otherwise things barely work.
Comment by bonesss 1 day ago
Comment by tuananh 1 day ago
Comment by throw20251220 1 day ago
Comment by breakingcups 1 day ago
Comment by FireBeyond 1 day ago
Comment by leetrout 1 day ago
Open infrastructure is hard to monetize. Old school robotics players have a playbook for this. You may or may not agree DBs are infra but Oracle has done well by capitalistic standards.
The reality is in our economy exploitation is a basic requirement. Nothing says a company providing porcelain for Linux kernel capabilities has a right to exist. What has turned into OCI is great. Docker desktop lost on Mac to Orb stack and friends (but I guess they have caught back up?) the article does make it clear they have tried hard to find a place to leverage rent and it probably is making enough for a 10-100 person company to be very comfortable but 500-1000 seems very over grown at this point.
Really should not have given up on Swarm just to come back to it. Kubernetes is over kill for so many people using it for a convenient deployment story.
Comment by torginus 1 day ago
If I wrote the best word processor in the world, I could probably sell it for a decent sum to quite a few people.
However if I expressed my revenue expectations as a percentage of revenue from the world's bestselling novels, I would be very quickly disappointed.
Comment by physicsguy 1 day ago
I worked in engineering software for a long time and because of who we sell to, there's always been a very hard cost-benefit analysis for customers of SaaS in that space. If customers didn't see a saving equal to more than the cost of the software in Y1 they could and would typically cancel.
Comment by ragall 23 hours ago
Comment by fragmede 1 day ago
But not impossible. Terraform seems to have paid its creator quite well.
Comment by tuananh 1 day ago
Comment by b40d-48b2-979e 1 day ago
Comment by chuckadams 1 day ago
Comment by echelon 1 day ago
Imagine if Docker the company could charge AWS and Google for their use of their technology.
Imagine if Redis, Elastic, and so many other technologies could.
Modern database companies will typically dual license their work so they don't have their lunch eaten. I've done it for some of my own work [3].
You want your customers to have freedom, but you don't want massive companies coming in and ripping you off. You'd also like to provide a "easy path" for payments that sustain the engineering, but not require your users to be bound to you.
"OSI-approved" Open Source is an industry co-opt of labor. Amazon and Google benefit immensely with an ecosystem of things they can offer, but they in turn give you zero of the AWS/GCP code base.
Hyperscalers are miles of crust around an open source interior. They charge and make millions off of the free labor of open source.
I think we need a new type of license that requires that the companies using the license must make their entire operational codebases available.
[3] https://github.com/storytold/artcraft/blob/main/LICENSE.md
Comment by WJW 1 day ago
Comment by echelon 1 day ago
Big tech companies saw this as an opportunity to build proprietary value-add systems around open source, but not make those systems in turn open. As they scaled, it became impossible to compete. You're not paying Redis for Redis. You're paying AWS or Google.
Comment by vladms 1 day ago
To compete at offering infrastructure maybe, but what I would like is more capability to build solutions.
And I think that today one has much more open-source technologies that one can deploy with modest efforts, so I see progress, even if some big players take advantage of people that don't want or are not capable to make even modest efforts.
Comment by mschuster91 1 day ago
Part of that was that the platform churn costs were a new thing for developers that needed to be priced in now. In the "old world" aka Windows, application developers didn't need to do much, if any at all, work to keep their applications working with new OS versions. DOS applications could be run up until and including Windows 7 x32 - that meant in the most ridiculous case about 42 years of life time (first release of DOS was 1981, end of life for Win 7 ESU was 2023). As an application developer, you could get away with selling a piece of software once and then just provide bug fixes if needed, and it's reasonably possible to maintain extremely old software even on modern Windows - AFAIK (but never tried it), Visual Basic 6 (!!!) still runs on Windows 11 and can be used to compile old software.
In contrast to this, with both major mobile platforms (Android and iOS) as an app developer you have to deal with constant churn that the OS developer forces upon you, and application stores make it impossible to even release bugfixes for platforms older than the OS developer deems worthy to support - for Google Play Store, that's Android 12 (released in 2021) [1], for iOS the situation is a bit better but still a PITA [2].
[1] https://developer.android.com/google/play/requirements/targe...
Comment by c0balt 1 day ago
An "issue" is that Docker these days mostly builds on open standards and has well documented APIs. Open infrastructure like this has only limited vendor lock-in.
Building a docker daemon compatible service is not trivial but was already mostly done with podman. It is compatible to the extent that the official docker cli mostly works with it oob (having implemented the basic Docker HTTP API endpoints too). AWS/GCP could almost certainly afford to build a "podman" too, instead of licensing Docked.
This is not meant to defend the hyperscalers themselves but should maybe out approaches like this in perspective. Docker got among other things large because it was free, monetizing after that is hard (see also Elasticsearch/Redis and the immediate forks).
Comment by ragall 23 hours ago
The technology on which Docker is based, Linux containers, was developed by Google engineers for Borg, and later Docker adopted it when it pivoted away from LXC (an IBM technology).
Comment by dist-epoch 1 day ago
I can't imagine. Tell me one software project used in AWS/GCP that Amazon/Google pay for. Not donations (like for Linux), but PAID for.
Docker started as a wrapper over LXC, Amazon has enough developers to implement that in a month.
Comment by ragall 23 hours ago
Comment by ynx 1 day ago
I would argue the reverse: that Docker's value was itself the product-market fit. Docker the technology was commoditized and open-source almost from its genesis, because its technology had been built by Borg engineers at Google. It provided marginally more than ergonomics, but ergonomics was all it needed - the missing link between theory and practice.
Comment by Conan_Kudo 1 day ago
Comment by shykes 22 hours ago
All three companies contributed significantly to the modern container stack. As the co-founder of Docker, and someone who spent 10 years toiling away at container technology before it finally became cool, I wish people had more appreciation for the amount of engineering and design work that went into that. Google and IBM contributed the primitives that made Docker possible. But Docker made genuine contributions of its own.
Comment by zoobab 1 day ago
Comment by c0n5pir4cy 1 day ago
There is a lot more than a simple chroot to Docker though - with FreeBSD Jails being a stepping stone along the way. It's real innovation and why it won over alternatives was the tooling and infrastructure around the containers - particularly distributing them.
Comment by bmitch3020 1 day ago
Comment by lifetimerubyist 1 day ago
Comment by jrm4 1 day ago
We got an amazing durable essential piece of software from someone investing billions of dollars.
Now, the fact that they didn't get their money back, well, who cares? Not me, it wasn't my money.
Sucks for them, maybe -- but that's far better than enshittification for everyone.
Comment by vegabook 20 hours ago
Comment by koe123 1 day ago
Comment by szszrk 1 day ago
I tried to substitute docker-compose with Podman and Quadlets on a test server the other day, but was shocked how badly described the overall concept is. Most materials I found glimpsed through ability to run it as root/user and how different that is in configuration, and repeated the same 4-6 commands mantra.
Spent a few hours on it and just... failed to run a single container. systemctl never noticed my qualdet definitions, even if podman considered my .container file registered.
A bit.. frustrating, I expected smoother sailing.
Comment by Fabricio20 1 day ago
Comment by szszrk 1 day ago
Comment by jabl 1 day ago
Then you can just create a few line systemd unit definition, and it integrates as a normal systemd unit, with logs visible via journalctl etc.
Comment by unitexe 1 day ago
Short of weeding through the docs, I found the "Play with Kube using Podman" talk on DevConfs YouTube channel helpful.
Comment by szszrk 1 day ago
> Note: The kube commands in podman focus on simplifying the process of moving containers from podman to a Kubernetes environment and from a Kubernetes environment back to podman.
I'll give it a try, but I'm starting to understand why there is so little use of podman among amateurs.
Comment by unitexe 1 day ago
The podman documentation pages I have found most helpful for this use case are podman-kube-generate (generate kube YAML from an already running pod), podman-kube-play (run the kube manually) and podman-systemd.unit (run the kube as a service).
Edit: I should also mention that there are pod units (which don't require the use of kube YAML) but I skipped over them because they do not support podmans auto-update feature.
Comment by supernes 1 day ago
Comment by bootsmann 1 day ago
Comment by exceptione 1 day ago
systemctl --user daemon-reload
to let systemd ingest the changes. And, if you have configured to start your container on boot, then still you have to start the container by hand, as you typically won't reboot during development. If you have multiple containers, it might be easiest to have them in one pod, so you only need to start the pod.I agree that the documentation needs a good tutorial to show the complete concept as a starting point. There are multiple ones though on the internet.
Comment by szszrk 1 day ago
That was not sufficient. Both for global o user setup.
Comment by stryan 22 hours ago
Quadlets are just a systemd generator: all `daemon-reload` is doing is running `podman-system-generator` which looks at the Quadlet files and turns them into systemd unit files with a big honking `podman run --rm --blah container:tag` as the `ExecStart` property. There's nothing else to it, no daemons or what not
If you ever feel like bothering to give it another shot check journalctl to see if there's any generator errors. Or run the generator directly: on my OpenSUSE box it's at `/usr/lib/systemd/system-generators/podman-system-generator` , Run it with `--dry-run` to just output to stdout and `--user` to get user quadlets.
Comment by jillesvangurp 1 day ago
hub.docker.com mainly, the centralized docker registry. A bit like Github, there are plenty of alternatives. But that's where you find most people pushing their containers.
And then there is Docker Desktop which a lot of users seem to like.
I switched to colima myself recently (on a mac). I think people overthink all this stuff a bit. Colima doesn't have a UI; but that's fine for me. I mainly use it to run stuff from the command line or from scripts. I wasn't using the Docker Desktop UI very much either.
Colima is a simple wrapper around Lima, which is a simple wrapper around qemu or Apple's virtualization layer. The resulting vm runs a simple Linux distribution with some file mounts and network tunneling to give you a similar experience as Docker Desktop. Which does exactly the same thing in the end of course.
Linux runs containers just fine. The main thing you need for containerization is a Linux kernel. People have actually hacked together docker alternatives with just bash and namespaces. I used a plain qemu vm for a while with the docker socket pointing to an ssh tunnel on my mac. Works amazingly well but it has some limitations. Colima is easier to manage.
People have mentioned several of the other alternatives already. They all can work with the same command line tooling. If you need a UI, colima is probably too barebones. But otherwise, things like IDEs and other tools work (e.g. lazydocker, vs code, intellij, etc.) just fine with it. So the added value of extra UI is limited to me at least.
I think the container runtime inside the vm (podman, containerd, whatever) is mostly not that relevant for developers. It's a bit of an implementation detail. As long as docker and docker compose work on the command line, I'm happy.
Comment by b40d-48b2-979e 1 day ago
What is the edge that docker provides these days?
Enterprise support and Docker Desktop makes it nearly seamless to get set up using containers. I've tried Rancher/podman/buildah and the experience introduced too much friction for me without being on a Linux system.Comment by troyvit 1 day ago
I'll add that needing to be on the "right" Linux system is another strike against Podman. Last I checked if I wasn't on a RedHat derivative I was in the wilderness.
Comment by travisgriggs 1 day ago
I found the signal to noise ratio better in Podland. As a newb to docker space, I was overwhelmed with should I swarm, should I compose, what’s this register my thing? And people are freaking about root stuff. I’m sure I still only use and understand about 10% of the pod(man) space, buts way better than how I felt in the docker space.
I miss when software engineering put a high value on simplicity.
Comment by troyvit 1 day ago
Comment by koe123 1 day ago
Comment by pzmarzly 1 day ago
The gap with Podman is closing though, and most users don't need any of these in the first place.
Comment by darkwater 1 day ago
That you are not the average developer
Comment by swores 1 day ago
Are you suggesting that docker provides an (unspecified) edge to developers who are better than average? Or to those who are mediocre? Or...
Comment by darkwater 1 day ago
Comment by thiagoperes 1 day ago
Comment by scoodah 21 hours ago
Comment by eigencoder 1 day ago
Comment by linkage 1 day ago
Comment by chuckadams 1 day ago
Comment by calmoo 18 hours ago
Comment by wcallahan 23 hours ago
I pay for Docker licenses, even though not meeting the criteria for business size requiring it, as I wanted reliable image fetching for my self hosted container CI/CD pipelines failing docker hub image fetches.
But as of now, my oAuth logins to Docker expire within hours now, and I’ve been left with no choice but to scatter in search of diffuse container image alternative sources for my Dockerfiles to stop this madness.
My one way permanent migration from Docker Hub sourced images has finally left me with no reason to keep paying for Docker licenses due to whatever this misguided or blundered rate limit implementation is.
Comment by kordlessagain 15 hours ago
Docker is useful and it’s too bad early and ignorant investors poisoned the well.
Their new AI stuff is bad but maybe if they positioned themselves like Ollama….
Comment by drnick1 1 day ago
Comment by JakaJancar 1 day ago
Comment by VLM 2 hours ago
Consider how a SCM like git or bitkeeper is more complicated than a wrapper for LXC. For some odd reason Docker has almost 100x as many employees as bitkeeper. They're just too big. It would be like trying to create a startup of "/bin/ls as a service" with at least 50 employees and 49 of them would not be able to generate enough revenue to break even much less turn into a billion dollar "LSaaS" tech unicorn. There's not enough meat for the pack. FreeBSD has jails and all of FreeBSD (not just jails, the whole thing) is about a third the size of Docker... hmm.
An alternative to having an appropriate sized company would be giving up on profit. There probably is no way to make "real" money doing what Docker is doing, not "real" in the context of 1500+ employees. It would be very real if they could get their current revenue with 20 employees, but ... That is not bad, that just means they're better off as an IRS 501(c)(3) approved charity rather than trying to become a startup unicorn. Large organizations like the Red Cross are a valuable and important addition to the community, despite not being a successful tech unicorn. They got a lot of money from In-Q-Tel so they're already kind of taxpayer funded (via CIA) so going outright charity wouldn't be a stretch.
A good business analogy for Docker would be the small day care my kids attended. They were based in a small church building which permanently limited the size of their state license. It doesn't matter if they hire 3 caregivers or 1500, they only have space for an 8 kid license and revenue will never exceed 8 kids. They can hire 1500 caregivers using VC funds but they'll never get more than 8 kids of revenue. They are not working in a field where they can scale to a billion dollars of revenue. There's nothing "wrong" about a daycare that rents a room of a church, employs a couple "early childhood education major" college grads right around minimum wage, and the kids have fun. Thats Docker. There is perhaps a bigger third problem that they probably sold themselves to investors as an unstoppable money printing machine. Whoops. Nobody makes that mistake with the local church daycare. To some extent lack of due diligence is the fault of the investors. We'd never have had docker without their ... selfless financial donation.
Comment by neom 1 day ago
Jerry is a good friend of mine and I think a great VC, he comes from the VMware world and was part of building the VMware enterprise strategy. When all the container stuff was all going down, I was trying to understand how digialocean needed to play in the container space - so I spent a lot of time talking to people and trying to understand it (decided we basically...shouldn't, although looked at buying Hashi) - but it was clear at the time the docker team went with Jerry because they saw themselves either displacing VMware or doing a VMware style play - either way, we all watched them start the process of moving to a real enterprise footing out of just a pure play devtool in 2014, it might have worked too (although frankly their GTM motions were very very strange), but Kubernetes..yah. You might recall Flo was on the scene too selling his ideas at Mesosphere, and the wonderful Alex Polvi with CoreOS. It was certainly an interesting time, I think about that period often and that it is a bit of a shame what happened to docker. I like Solomon a lot and think he's a genuinely genius dude.
Comment by singularity2001 1 day ago
Comment by mystraline 1 day ago
For example, sharing a graphics card, say a Intel A380 and Jellyfin, over docker is a TERRIBLE experience.
But the same, with a full VM, and the gfx card shared to it is easy peasy.
Now, for testing applications, docker is great. But when I decide to run a service, I'll de-dockerize OR single VM with docker inside, with cronjobs to once a week update.
And logging/monitoring is also a hell of a lot easier per machine, rather than 8 services through docker.
I'm sure if I need a full dynamic service fabric, sure go with Docker or K8s. But this is for personal and friend usage.
Comment by blackcatsec 1 day ago
Comment by shortsunblack 2 hours ago
Docker did not invent Linux containers. They did not invent namespaces or chroots.
You'll be hard pressed to name the things they did invent and those things have long ago left Docker to hang dry (OCI imagespec).
OrbStack is built by a single person and it provides an objectively better experience than Docker Desktop, built presumably by dozens of full time engineers.
People detest incompetence and rent seeking. That they do.
The lack of important contributions of Docker can be best summarized by all the alternatives that popped up in no time. With Kubernetes now defaulting to CRI-O, modern container stack has precisely zero Dockerisms.
Comment by onraglanroad 1 day ago
Comment by jujube3 12 hours ago
Comment by sneak 1 day ago
Docker tried to become a proprietary software company, which is rude and user-hostile.
Comment by PlatoIsADisease 1 day ago
He'd always try to get us into various technologies, Docker was one of them. It wasn't really relevant for the job, but I could see its uses.
Now that I think about it, I don't think anything they did on the tech discovery front was useful. Got stuck on Confulence which required us to save as a .pdf for our users to view lmao. Credit for being super smart with coding, he was a wiz on code reviews.