Live data from Hacker News

Transitioning from Docker to Podman

developers.redhat.com

81–90 of 278 posts

Re: Transitioning from Docker to Podman

#81
post #61

We've tried this (podman 2.0.5) and have hit some really really annoying bugs: - Build layer cache doesn't seem to work. If I rebuild locally with podman, it correctly detects cache hits and the build is fast. On our Jenkins server (RHEL 8) with podman 2.0.5 it doesn't. It randomly doesn't cache hit, causing builds to take 20x longer than with docker CE. - Podman is insanely slow at building images in general. COPY e…

Are you trying to use cache-from? This is explicitly not supported: > --cache-from > Images to utilize as potential cache sources. Podman does not currently support caching so this is a NOOP.

Not using --cache-from, though I did try the various caching command line options to try to troubleshoot. Just a vanilla Dockerfile with a few RUN commands and COPY commands. It would hit cache until about the third layer, and then would cache break every time.

On my local computer (Arch) podman is v2.1.1, which seems to have whatever bug I was hitting fixed.

So I guess my complaint isn't about podman specifically-- It had bugs and they were fixed, and that's great. But I hate that RHEL 8 touts it as a docker replacement, and won't carry docker in their repositories, when the version they have in their production releases is so broken.

We eventually sledgehammered docker CE's CentOS repo into our RHEL 8 jenkins server and now everything works perfectly.

Running podman on the production webservers seems to work okay though-- apart from the process killing problems.

Re: Transitioning from Docker to Podman

#82

At my company, we run our CI/CD (Jenkins) using the Docker-in-Docker paradigm to facilitate easy maintainability of the CI itself and allow us to run containerized builds. When we shifted to RHEL 8, we attempted to move this over to Podman and it went miserably (this was back in November 2019). The main reason being is that podman-in-podman doesn't work and had bugs (at least back in Nov 2019). Maybe it fixed now but…

> Docker-in-Docker paradigm Apologies for the patronising comment, but do you really mean that? Docker in Docker works but is intended for the developers of Docker to debug Docker itself. Usually for running Docker from within a container, you just hook up the Docker client to the TCP port of the Docker daemon running outside the container, which isn't strictly Docker-in-Docker. I ask this in case you're trying a wil…

We use docker-in-docker as well to deploy our Jenkins workers. It has it's pros (running Ubuntu 18.04 and Ubuntu 20.04 workers side-by-side and ease of pushing out an update) but it's fragile and confusing. Things can get really hacky when you need to start sharing volumes or injecting additional configuration.

I'm much more confident with packer now though. Next time I do any major work on our Jenkins infrastructure I'm ripping out docker-in-docker for the workers and replacing it with packer built images.

Re: Transitioning from Docker to Podman

#84
Nope, it's still not there, simplest things work but as soon as you diverge to something more complex it fails.

I tried using it as Docker replacement, but various tools that use docker (using dockerized pip in serverless framework) and complex docker-compose files (dockerized Magento) were broken.

Re: Transitioning from Docker to Podman

#85
post #52

Earlier quoted context omitted.

So run it as root then? Am I missing something?

If GP thinks the selling point of podman is that it doesn't have to run as root, but to actually do anything meaningful they have to run it as root after all, why would they use podman?

The other major benefit of podman is that it doesn't use a daemon.

Re: Transitioning from Docker to Podman

#86
post #15

I was just about to complain about another thing to learn. Then I saw you can do "$ alias docker=podman". Just want to acknowledge the importance of that work. Making things compatible is both boring and a pain, but it's a door opener for people like me who refuse to learn your new API because I know a decent one already.

Unless you're optimizing for stagnation, this really is a terrible approach to reaping the benefits of innovation. If your prereq to trying something better is that it needs to mirror something that's "decent already," you'll spend most of your life stuck on the same plateau.

Re: Transitioning from Docker to Podman

#87

Earlier quoted context omitted.

Last time i did look into docker it couldn't even tell if a service is up or still starting and there were all kinds of weird hacks around that like "is something listening on the configured port". Did that improve?

Systemd struggles with this as well. While a service can easily tell you if it's "up", sometimes the only way to determine if it's "available" is to check. Keep in mind that the sentinel for any given service will be different. If you think about it, how could any external monitoring service determine when a service under it's purview is available without actually checking? Maybe it already has something like this, b…

Am I understanding this wrong or is HEALTHCHECK supposed to enable that?

https://docs.docker.com/engine/reference/builder/#healthchec...

Re: Transitioning from Docker to Podman

#88

Earlier quoted context omitted.

Last time i did look into docker it couldn't even tell if a service is up or still starting and there were all kinds of weird hacks around that like "is something listening on the configured port". Did that improve?

Systemd struggles with this as well. While a service can easily tell you if it's "up", sometimes the only way to determine if it's "available" is to check. Keep in mind that the sentinel for any given service will be different. If you think about it, how could any external monitoring service determine when a service under it's purview is available without actually checking? Maybe it already has something like this, b…

Here you go: https://www.freedesktop.org/software/systemd/man/systemd-not...

Re: Transitioning from Docker to Podman

#89
post #29

Earlier quoted context omitted.

Maybe you are just too far into docker. I noticed that a lot of default workflows (needlessly) depended on docker running with privileges. One big reason for that seem to be Mac users that only know docker from inside a VM. However, if you think about what you're really needing for CI you will easily see that docker-in-docker gains you nothing. You can as well use plain docker (or podman). The same holds for privileg…

Okay, I want to build a container image using gitlab CI, which runs builds in docker. How would you like me to build an image without using docker in docker, or buildah in docker?

A container image is just an archive file with some metadata, could you take the same approach as Google Jib?

Re: Transitioning from Docker to Podman

#90
post #61

We've tried this (podman 2.0.5) and have hit some really really annoying bugs: - Build layer cache doesn't seem to work. If I rebuild locally with podman, it correctly detects cache hits and the build is fast. On our Jenkins server (RHEL 8) with podman 2.0.5 it doesn't. It randomly doesn't cache hit, causing builds to take 20x longer than with docker CE. - Podman is insanely slow at building images in general. COPY e…

copying things might be slower if you have a .dockerignore file. try without the .dockerignore file.
Post reply on HN