105
submitted 8 months ago* (last edited 8 months ago) by GravitySpoiled@lemmy.ml to c/linux@lemmy.ml

I am moving from docker to podman and selinux because I thought that podman is more secure and hence, the future. I thought the transition will be somewhat seamless. I even prepaired containers but once I migrated I still ran into issues.

minor issue: it's podman-compose instead of podman compose. The hyphen feels like a step back because we moved from docker-compose to docker compose. But thT's not a real issue.

podman does not autostart containers after boot. You have to manually start them, or write a start script. Or create a systemd unit for each of them.

Spinning up fresh services works most of the time but using old services that worked great with docker are a pain. I am wasting minutes after minutes because I struggle with permissions and other weird issues.

podman can't use lower number ports such that you have to map the ports outside of the machine and forward them properly.

Documentation and tutorials are "all" for docker. Github issues are "all" for docker. There isn't a lot of information floating around.

I'm still not done and I really wonder why I should move forward and not go back to docker. Painful experience so far. https://linuxhandbook.com/docker-vs-podman/ and following pages helped me a lot to get rid of my frustration with podman.

you are viewing a single comment's thread
view the rest of the comments
[-] Molecular0079@lemmy.world 50 points 8 months ago* (last edited 8 months ago)

Your issues stem from going rootless. Podman Compose creates rootless containers and that may or may not be what you want. A lot more configuration needs to be done to get rootless containers working well for persistent services that use low ports, like enabling linger for specific users or enabling low ports for non-root users.

If you want the traditional Docker experience (which is rootful) and figure out the migration towards rootless later, I'd recommend the following:

  1. Install podman-docker. This provides a seamless Docker compatibility layer for podman, allowing you to even use regular docker commands that get translated behind the scenes into Podman.
  2. Install regular docker-compose. This will work via podman-docker and gives you the native docker compose experience.
  3. Enable podman.socket and podman-restart.service. First one socket-activates the central Podman daemon, second one restarts any podman containers with a restart-policy of always on boot.
  4. Run your docker-compose commands using sudo, so sudo docker-compose up -d etc. You can run this with sudo podman compose as well if you're allergic to hyphenation. Podman allows both rootful and rootless containers and the way you choose is by running the commands with sudo or not.

This gets you to a very Docker-like experience and is what I am currently using to host my services. I do plan on getting familiar with rootless and systemd services and Kubernetes files, but I honestly haven't had the time to figure all that out yet.

[-] GravitySpoiled@lemmy.ml 7 points 8 months ago
[-] qaz@lemmy.world 2 points 8 months ago* (last edited 8 months ago)

Enable podman.socket and podman-restart.service. First one socket-activates the central Podman daemon, second one restarts any podman containers with a restart-policy of always on boot.

Thanks, the last time I checked I was told that creating individual systemd services was the only viable solution and I ended up ditching podman because I didn’t think it was worth the hassle. I might try it again with your tips.

[-] Molecular0079@lemmy.world 2 points 8 months ago* (last edited 8 months ago)

Definitely not necessary. If that was the case, it wouldn't live up to it's claims of being a transparent Docker replacement at all. I think you do need to use systemd if you want to go full rootless, but I haven't tried it enough to make a solid call on that.

But yeah, with the above steps, I've moved seamlessly over to Podman for my self hosting stack and I've never looked back. It's also great because I can take literally any Docker Compose I find on the Internet and it will most likely just work.

this post was submitted on 22 Feb 2024
105 points (91.3% liked)

Linux

48080 readers
770 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS