The Podman Community builds and supports packages
for a wide variety of Linux distributions and operating systems. These builds are
provided in the public Open Build Service hosted by openSUSE.
These pre-built packages
have made it easier for new users to test the latest-greatest
versions of Podman and allow for using it on distributions that do not yet provide
it in their main repositories.
Installing and managing development dependencies for various project is a chore and one thing that can improve your everyday workflow is the usage of containers.
Tent is a CLI tool for running development dependencies such as MySQL, Mongo, ElasticSearch etc inside pre-configured containers using simple one-liners.
If you want to know how to use Podman v3.0 to convert Docker Compose YAML to a format that Podman recognizes, Brent Baude explains the “how to” in a recent blog post on the Red Hat Enable Sysadmin site, From Docker Compose to Kubernetes with Podman. This functionality is now available in the upstream version of Podman if you want to take a sneak peak.
A number of blog posts have flung by and I have not had a chance to get individual
link posts to them, so thought I would add a few here that have popped up recently,
links after the break!.
One of the questions that the Podman development team has been hearing a lot over the past year or so is “Does Podman support Docker Compose? Up until recently, the answer was “not yet”. With the soon to be released Podman v3.0, that answer changes to “NOW!” Brent Baude explains the how to in a recent blog post on the Red Hat Enable Sysadmin site, Using Podman and Docker Compose. This functionality is now available in the upstream version of Podman if you want to take a real sneak peak.
Como está o seu português? Well if it’s better than mine, check out Daniel Lara’s video on
YouTube. He walks through running Containers using Podman, creating pods, generating YAML for Kubernetes and more! Daniel uses a number of great examples, so it is pretty
easy to follow along even if your Portugese is like mine. Apreciar!
Robert Bohne has a nice post on
opensourcers.org which talks about the basics of containers, how digests and manifests come into play,
working with and creating multi-architecture images and more! It is a really nice discussion of all the pieces and parts of a container image for someone new to the technology right through
people who are a lot more experienced, but might not know every nook and cranny.
On August 1, 2020, the Podman team posted a Podman API v1.0 Deprecation and Removal notice. As noted in that document, the Podman API v1.0 relied on the varlink library to handle the underlying client/server calls from the Podman client to the host where the Podman service was running. The support for the varlink library was greatly reduced in the spring of 2020. This led the Podman team to investigate the use of other client/server technologies and it was decided to develop a RESTful API for Podman using the native Go libraries.
My background is in industrial automation, and in most cases, the edge devices in the factory are too underpowered to run Kubernetes as a method to manage the lifecycle of containers. The workloads have a very long lifecycle, and generally are “tied” to the edge device. There is a lot of value in containerizing applications on these edge devices, however, as it decouples the application dependencies from the OS and provides a level of isolation between applications. This demo will show how using Podman in conjunction with systemd provides an elegant solution for this sort of use case. In addition, this will be done as a “rootless” user - a key benefit of Podman that helps keep the device secure.
A number of blog posts have flung by and I have not had a chance to get individual
link posts to them, so thought I would add a few here that have popped up recently,
links after the break!.
In a recent blog post on the Red Hat Enable Sysadmin site, The history of an API: GitLab Runner and Podman, Pablo Greco from the CentOS QA team in Buenos Aires, Argentia documented his journey through a Podman and GitLab Runner integration. When Podman v2.2 arrives, GitLab Runner will be able to run with Podman right out of the box. Give the article a read to see how he got there.
In a recent blog post on the Red Hat Enable Sysadmin site, Exploring Podman RESTful API using Python and Bash, Jhon Honce nicely demonstrates the new Podman REST API using code examples in Python and shell commands. Additional notes are included in the code comments. The provided code was written to be clear vs. production quality.
The first Podman Community Meeting is coming up at 11:00 a.m. Eastern on
October 6th, 2020. We plan to hold the meeting on Bluejeans and will be
holding them going forward on the first Tuesday of every month.
All are welcome and it’s free of charge! The agenda after the break and
hope to see a lot of you there.
In case you missed Kedar Kulkarni’s excellent talk at DevConf.US 2020, “Docker, Podman, Buildah, Skopeo, and what else?”, check out the video on YouTube. There were also a number of other interesting talks at DevConf.US 2020 that you might be interested in, you’ll be able to find links to the talks at the DevConf.US site above.
Today, we’re releasing updates to fix CVE-2020-14370, a security issue in Podman. This is a medium-severity information disclosure vulnerability that affects containers created using Podman’s Varlink API or the Docker-compatible version of its REST API. If two or more containers are created using these APIs, and the first container had environment variables added to it when it was created, all subsequent containers created using the Varlink or Docker-compatible REST APIs will also have these environment variables added. This effect does not persist after restarting the Podman API service.
Podman v2.0.5 and higher contain a fix for the CVE. If you use either of these APIs, please update to Podman v2.0.5 or later. We will also be patching the long-term support v1.6.4 release used in RHEL and CentOS.
Brian Smith - Rootless containers using Podman - Watch this two-part video series on understanding root inside and outside of containers and how user namespaces work.
In a recent blog post on the Red Hat Enable Sysadmin site, Podman remote clients for macOS and Windows, Brent Baude and Ashley Cui walk you through setting up a remote client on either Windows or macOS to let you manage your containers and images on your Linux backend. The post covers installation, ssh setup, creating the initial connection and finally how to use the client. Give it a quick look!
In a recent blog post on the Red Hat Enable Sysadmin site, The podman play kube command now supports deployments, you can now learn all about the recent features added to Podman to interact with Kubernetes objects. The podman generate kube command allows you to export your existing containers into Kubernetes Pod YAML. This YAML can then be imported into OpenShift or a Kubernetes cluster. The podman play kube does the opposite, it allows you to take a Kubernetes YAML and run it in Podman. Learn all of the details and more in the blog post!
Ashley Cui recently joined our team at Red Hat and just wrote her first ever blog post that is now on the Red Hat Enable Sysadmin site Tick-tock. Does your container know what time it is?. In this timely post, Ashley walks you through setting the timezone within a container using the --tz option. Just prior to this posting, I had answered a very similar question for someone. This is a really good and quick blog, and I’m sure the first of many for Ashley.
As a kid, I was fascinated by space flight. If I couldn’t be a fireman like my father, I wanted to be an astronaut. Of course I had to have a Major Matt Mason figure so I could fly him around the house and then land him softly in a jury-rigged parachute in my wading pool. Then of course the whole Apollo 13 drama had me riveted, and when the movie came out years later, I fell in love with this line in the movie, “Let’s work the problem people. Let’s not make things worse by guessing.” by Ed Harris who played Gene Kranz the “vested” flight director.
Four engineers at IBM and Red Hat, JJ Asghar, Brian Tannous, Jason Dobies and Cedric Clyburn spent some time in a stream learning about Podman, Buildah, Skopeo from the ground up in this video blog post. Check out the video to get a great introduction to the tools.
In the release of Podman 2.0, we removed the experimental tag
from its recently introduced RESTful service. While it might
be interesting to interact with a RESTFul server using curl,
using a set of Go based bindings is probably a more direct
route to a production ready application. Let’s take a look
at how easily that can be accomplished.
The Podman API v1.0 relied on the varlink library to handle the underlying client/server calls from the Podman client to the host where the Podman service was running. About one year ago, the Podman team was notified that the focus on the varlink library was being greatly reduced and there would be no further development and little support for it from the varlink library team. This led the Podman team to investigate the use of other client/server technologies and it was decided to develop a RESTful API for Podman using the native Go libraries.
Dan Walsh has another blog post on the Red Hat Enable Sysadmin site this time he’s writing about Exploring additional image stores in Podman. In the article Dan shows you how to store container images on shares, permitting the images to be accessed over the network.
Tom Sweeney has another blog post on the Red Hat Enable Sysadmin site this time he’s writing about Building images using Podman and cron. In the article Tom talks about how necessity became the mother of invention and cron was put into use to build container images on a regular schedule.
Podman v2.0.0 launched recently, and with it the REST API. We’ve seen a great deal of excitement with this new API because of what it will enable - enabling applications and automation to use Podman when the could previously only use Docker. As you may know, Podman’s REST API is split into two halves: one providing a Docker-compatible API, and a Libpod API providing support for Podman’s unique features such as pods. We would love for all projects to eventually grow to support for our native Libpod API, but this will take time (and may be impossible for older, no longer maintained projects). As such, we need to talk about the Compatibility API and how it can be used.
If you have been following the upstream development of Podman, you have undoubtedly seen us refer to “2.0” or “Podman 2”. Today, we have made the first release of Podman 2 upstream. The release notes highlight many of the newest features but we wanted to call out some specific things in this blog and expand on them.
A few weeks ago, we made an announcement about the development of Podman V2. In the announcement, we mentioned that the state of upstream code would be jumbled for a while and that we would be temporarily disabling many of our CI/CD tests. The upstream development team has been hard at work, and we are starting to see that work pay off.
Today, we are very excited to announce:
The local Podman v2 client is complete. It is passing all of its rootfull and rootless system and integration tests.
The CI/CID tests have been re-enabled upstream and are run with each pull request submission. We are now hard at work finishing up some of the core podman-remote functions. Once those functions are complete, we can then begin to run our podman-remote system and integration tests to catch any regressions.
We have re-enabled the autobuilds for Podman v2 in Fedora rawhide. As mentioned earlier, the Podman remote client is not complete, so that binary is temporarily being removed from the RPM. It will be re-added when the remote client is complete. As a corollary, the Windows and OS/X clients are also not being compiled or tested. This will occur once the remote client for Linux is complete.
We encourage you to pull the latest upstream Podman code and exercise it with your use cases to help us protect against regressions from Podman v1. We hope to make a full Podman v2.0 release in several weeks, once we are confident it is stable. We look forward to hearing what you think, and please do not hesitate to raise issues and comments on this in our GitHub repository, our Freenode IRC channel #podman, or to the Podman mailing list.
We’re very excited to bring Podman v2.0 to you as it offers a lot more flexibility through it’s new REST API interface and adds several enhancements to the existing commands. If your project builds on top of Podman, we would especially love to have you test this new version out so we can ensure complete compatibility with Podman v1.0 and address any issues found ASAP.
Note: This announcement was first released to the Podman mailing list. If you are not yet a member of that community, please join us by sending an email to podman-join@lists.podman.io with the word “subscribe” as the title.
Est-ce que tu parles français? Le mien est horrible. But if your abilities to read and speak French is better than mine, check out this website that I was just pointed to. Installation podman sur CentOS 8 by Bilal Kalem shows you how to install Podman on Centos 8. If nothing else, check out the graphic at the top of the page!
In the last few days, the Podman development team has been working to
release Podman-1.9.0. This is likely to be the last Podman-1.X release
before we transition to Podman v2.x. We have been working since
November 2019 to make a significant overhaul of Podman’s architecture.
And if we did our job correctly, most casual Podman users will not
notice a difference. We will continue to investigate and fix issues in
Podman-1.x versions but severity of the bug and priority will dictate
our response.
What some users who follow upstream development may notice is that
while we make the final push to a 2.x release, our GitHub repository
will look drastically different. For some period of time, certain
Podman commands, if built based on upstream, may not function exactly
as expected nor even exist. We already know we will need to disable
some of our CI testing framework as part of this final push until we
have a more complete Podman v2.x. We will not release Podman 2.0 until
we are satisfied that it is ready. While upstream development will be
impacted by the announced migration to Podman v2.x, you can still open
issues and contribute pull requests to the project.
As has been the standard with our project, we will remain transparent
in our development activities and try to keep our community appraised
of our progress. We are excited for some of the technical
advancements that Podman v2.x will give our users. Subsequent blog
posts will be written on those advancements and why they matter to our
users.
In this video, Kirill Shirinkin will show how to use Podman to build container images and run Java applications in containers with Systemd.
We are going to learn why we should at least try alternatives to Docker, how container runtime landscape changed and how Podman is different and in certain ways better than Docker.
Managing Podman pods with pods-compose makes your move to Podman easier. Balázs Németh already converted his docker-compose services to pods with Podman, however some features were missing, up until now. Let’s meet pods-compose.
Sascha Grunert has written a tutorial explaining how to use Gnu Privacy Guard
(GPG) keys to secure your container images stored in a container repository.
Signing container images is nothing magical and can drastically enhance
security to mitigate man-in-the-middle (MITM) attacks. Read all about it
here.
We were just pointed to this post Building Container Images with Podman and Buildah by Puja Abbassi on the Giant Swarm site. In the article Puja goes over how Podman and Buildah handle daemonless and rootless building processes. A tardy link on this site, but worth a read!
Jack Wallen has a blog post on the THENEWSTACK site with a great introduction on how to Deploy a Pod on CentOS with Podman. In the post, Jack talks about how Podman fits in the Red Hat ecosystem and then walks you through the fundamentals of creating and running a pod using Podman.
Over the holiday break, a number of great posts were added to a number of sites that filled up my Twitter feed, so I thought I’d throw together a quick block with links to the highlights from the past month:
If you follow the traffic on IRC (#podman on freenode) or GitHub from the developers of libpod, you might have seen us referencing a new API. We often referred to it as apiv2 and for about a month, there has been an ‘apiv2’ branch for libpod on GitHub. This week, we have begun to merge that branch but have yet to “wire it up.”
First and foremost, the Golang libpod API remains largely unchanged. What is changing is the API we expose for automation and remote usage. Our previous API was based on the varlink protocol. But we heard from users that varlink was a hurdle for libpod adoption especially for those who were using the Docker API and its bindings. They simply could not or did not want to rewrite their custom applications for libpod’s new, varlink-based API.
Over the last 10 years I’ve seen machines and workflows evolve where I work. From the initial dedicated server, to hpc environments
and now the latest instance, containers.
From an admin point of view this is great - The initial servers had to be carefully built and maintained so that everything would work nicely together. Incompatible programs at that time were run through a VM until such time as they could be folded in to the mix.
The HPC’s had versioned software and environment modules and were built to load the relevant dependencies at run time.
Now we are into a new era, containers - and not just any old containers, but containers that end users can build and run up fairly
quickly to perform what-if’s, and move on quickly through iterations until they perform the required functions.
Podman has developed very rapidly and is incredibly easy to use. You can use it in conjunction with quay.io or run it on a local machine.
I should add that Adrian Reber gave a talk and has also created a Podman article using openhpc; well worth a watch and a read.
If you don’t have a RedHat Developer Subscription now is an ideal time to get one:
Podman version 1.7 is coming out soon and will include new features that will make management of containers with systemd services even easier. Valentin Rothberg has a blog post on the Red Hat Enable Sysadmin site that previews the features: Running containers with Podman and shareable systemd services. In the post Valentin goes over the highlights and then gives a great working example.
Do you want to know how to setup RHEL 8 to run containers using Podman? Xuegang Jin has a blog post on the Red Hat Blog about this very subject, Working with Linux containers on RHEL 8 with Podman, image builder and web console. In the post Xuegang explains how you can use Image Builder to create an OS image, how to run containers with Podman, and how to check the host and containers performance using Web Console.
Do you run containers as root, or as a regular user? Scott McCarty has a blog post on the Red Hat Blog about this very subject, Understanding root inside and outside a container. In the post Scott walks you through what a rootless container does and how it can be a safer alternative to a container run by root.
Dan Walsh has another blog post on the Red Hat Enable Sysadmin site this time about Rootless Podman and NFS. In the post Dan talks about how you can make some minor configuration changes to allow Podman to use a user’s home directory on an NFS share. Give it a read!
Josphat Mutai posted a blog post on the Computing for Geeks site talking about How To Install Podman on Debian. In the post Josphat walks through all the steps necessary from ‘A’ to ‘Z’ to get Podman up and running on Debian and how to do some initial Podman commands.
Brent Baude has another blog post on the Red Hat Enable Sysadmin site this time about Leasing routable IP addresses with Podman containers. In the post Brent talks about using the macvlan and the dhcp plugins that ship with the container-networking project in order to lease ip addresses for your containers.
Dan Walsh has another blog post on the Red Hat Enable Sysadmin site this time about Fedora 31 and Control Group v2. In the post Dan talks about the new version of control groups that is part of the Fedora 31 release and how it makes containers even more secure.
Scott McCarty (@fatherlinux) has an amazing video on YouTube about Building freely distributed containers with open tools. As only Scott could say “Although explaining how to ride a Tron-style light cycle is beyond the scope of this tutorial, we will discuss something almost as exhilarating—building containers with #Podman and #RedHat Universal Base Image (UBI). We will cover how to build and run #containers based on #UBI using just your regular user account—no daemon, no root (rootless), no fuss. Finally, we will order the deresolution of all of our containers with a really cool command. You probably won’t be promoted to CEO of ENCOM after this talk, but you will have new tools in your toolbelt for how to find, run, build, and share container images.”
Elliott Sales de Andrade’s post on Quantum Logic, Migrating from Docker to Podman takes a look at his migration from Docker to Podman and a good assessment of where the Podman tool stands in comparison to Docker.
In case you missed Akihiro Suda’s post on Medium.com, The current adoption status of cgroup v2 in containers, here’s a quick link to it. In the article Akihiro talks all things cgroup v2 and what changes it promises to bring to the world of containers, and Podman is at the forefront of that change.
I often times stay up too late at night watching late night television and run into these crazy commercials that tell you how easy their product is to use. If you’ve stayed up too, you know them as well. Just put your chicken and veggies in our oven, press 3 buttons and 45 minutes later a perfectly cooked meal! Easy! Got a leak? Slap on this tape and no more leak! Easy! Got a messy floor, just use this sweeper and you’ve the cleanest floor in the neighborhood! Easy!
Podman runs secure rootless containers and it really is easy! Trust me, I’m not like those other folks! As we’ve had a number of people asking us about what’s needed to set Podman rootless containers up, I decided to run through the process myself and to blog about the steps I took.
In my previous Podman in HPC
environments article I
introduced how Podman can be used to run containers under the control of Open
MPI. In this article I want to extend my HPC environment to use a shared NFS
home directory.
Ceri Williams talks about how the Percona Monitoring and Management (PMM) can be run in a container using Podman without root privileges here. In the post Ceri talks about how Percona was able to replace Docker with Podman and Buildah and are able to run containers more securely by doing so.
Containers run everywhere. They run in the cloud, they run on IoT devices, they run in small and in big companies and wherever they run, we want them to run as securely as possible. In this article, I describe the Google Summer of Code project that Divyansh Kamboj, Dan Walsh and I have been working on and how we improved the state of the art in securing containers, and how you can try it out.
Ganesh Mani discusses why Podman is more secure than Docker here on the CLOUDNWEB site. Ganesh talks about why Podman’s fork and execute model is more secure than Docker’s client server model.
Saharsh Singh talks about how he’s moved on from his Docker daemon and moved on to Podman, Buildah and Skopeo here on the Red Hat Service Blog site. Saharsh walks you through a history of container tools and then talks about Podman, Buildah and Skopeo with a lot of great examples.
Brent Baude has a blog post on the Red Hat Enable Sysadmin site about Configuring container networking with Podman. In the post Brent goes over how you can communicate between a container and the host, between containers in and out of a pod, while running as a root and as a non-root user.
A High-Performance Computing (HPC) environment can mean a lot of things,
but in this article I want to focus on running Message Passing Interface
(MPI) parallelized programs with the help of Podman.
Matt Heon has a blog post on the Red Hat Enable Sysadmin site about Why can’t rootless Podman pull my image?. In the blog Matt discusses why restrictions on rootless containers can be inconvenient, but why they’re necessary. In the blog Matt covers the use of user namespace and the allocations of uid and gid’s that are required to make rootless containers work securely in your environment.
Dan Walsh has recently posted a blog on the Red Hat Developer Blog, Best practices for running Buildah in a container. The post walks you through the balancing act of running a container securely using while keeping an eye on performance. A big boost to the performance side of things is the concept of “Additional Stores”. Dan walks you through the use of those in this blog and then wraps it all up with an on-line video at the end.
How’s your espanol? If it’s good or you want to work on it, checkout this video blog on YouTube from Iñigo Serrano Podman, contenedores sin Docker. In it Iñigo Serrano shows how to run Wildfly in a Podman container without Docker.
Scott McCarty has a blog post on the Red Hat Blog about Using the rootless containers Tech Preview in RHEL 8.0. Podman rootless containers has hit Tech Preview for RHEL 8.0 and Scott walks you through the setup necessary for rootless containers. Small hint, it’s a short post because it’s just that easy.
A quick asciinema demo highlighting what the podman images command can do. A great way to get quickly immersed with this command in just a few minutes time. Checkout the demo here and if you want to run the script yourself, it can be found here.
It’s in German again, but a worthy read Podman: Linux containers made easy, part 3 Valentin Rothberg (@vrothberg) introduces Podman to the reader and talks about how it fits in the container eco-system. If your German is a little rusty, you may need to lean on Google Translate.
Ganesh Mani recently wrote the blog Replacing Docker with Podman — Power of Podman — Cloudnweb. The article gives a nice overview of Docker, Podman, their differences, and how you can use Podman to replace Docker. A nice read and
really, who doesn’t love a blog that wraps up with a meme featuring The Rock?
Red Hat has recently posted an OnDemand course: Container pipelines for sys admins—and anyone, really—with Buildah and Podman. The session teaches you how to integrate both Podman and Buildah into your continuous delivery (CI/CD) solutions and also serves as a good introduction to both tools. The cost can’t be beat (free!), so if you’re looking for a quick introduction into the tools, this is a good way to go.
We’ve received a number of requests for a mailing list for Podman and we’re happy to announce that one has just been created! We’ve built a friendly community on IRC and GitHub and plan to continue that growth in this new mailing list. The maintainers of the project are all members of the list and we’re happy to take any and all questions there about Podman. You can also just use the list as a way to track what’s going on with Podman as release announcements and other important news will be posted there.
Red Hat Developer recently posted a new Podman Cheat Sheet on their blog. It’s a handy guide that cover the commands that focus on images, containers and container resources. Check it out!
It’s in German again, but a worthy read Podman: Linux containers made easy, part 2 Valentin Rothberg (@vrothberg) introduces Podman to the reader and talks about how it fits in the container eco-system. If your German is a little rusty, you may need to lean on Google Translate.
Muayyad Alsadi’s article in Fedora Magazine talks about Building Smaller Container Images by leveraging microdnf within fedora-minimal. It’s a really nice way to save space and build more compact containers.
Who doesn’t want a healthy container in their environment? Now with Podman you can setup healthchecks so you can check if your container and it’s application is up and running as you’d expect. Brent Baude introduces the new functionality in this article on the Red Hat Developer Blog: Monitoring container vitality and availability with Podman.
Ed Santiago (@edsantiago) needed help with his New York Times crossword puzzle. So naturally he turned to Podman to save the day. Read about it in his blog post: Podman Saves My Crossword Habit. Many thanks to Ed for sharing this
innovative use of Podman.
It’s in German, but a worthy read Podman: Linux containers made easy, part 1. Valentin Rothberg (@vrothberg) introduces Podman to the reader and talks about how it fits in the container eco-system. If your German is a little rusty, you may need to lean on Google Translate.
I wanted to write a detailed post about the CI setup we use for exercising proposed
changes to libpod (podman repo). Unfortunately
this topic (and automation in general)
is so big, most readers would end up on the floor, sound asleep, in a puddle of their
own drool. Instead, I will keep your fidget-spinner twirling, by jumping around
several topics.
A new article about how Docker users can use Podman and Buildah on the Red Hat Developer Site. William Henry (@ipbabble) introduces the two tools to Docker users and explains how they can be used to replace Docker and how the two tools are related.
Commands used by container runtimes to create containers have become complex. It is on purpose of course. When creating
containers, we want the ability to specify various security or network attributes. But if you are in the unenviable position to have to keystroke in some of these lengthy commands, it can grow tiresome. Defining labels on the container image is a great way to define how the container should be run; however, now with Podman we can read and execute that label saving you potential command line bloat.
We are seeing a proliferation of Podman usage in users’ daily workflows. As such, these workflows are often scripted – in something like bash – and clear exit codes from the applications being run are paramount. One of the tasks we often see is a user wanting to verify if an image or a container exists in local storage. We saw several different approaches approaches to solving this including running podman ps or podman images with filters or complex uses of grep.
Libpod development is still very much active and on-going. We often have folks who are looking
to test out the latest libpod and Podman for either new features or bug fixes. We typically
build RPMs for distributions like Fedora on a release cadence, which used to be weekly but now
has slowed down as libpod has stabilized. Building libpod from source is not difficult, but
sometimes the user’s environment will not allow them to install all the packages needed; or
perhaps the user is intimidated by building from source; or perhaps the user would prefer
the RPM package because it will make the upgrade process easier down the road.
To solve this problem, I have created a series of container images for CentOS7, Fedora 28, and Fedora 29 that are capable of building a development Podman RPM and associated packages.
Kubernetes installations can be complex with multiple runtime dependencies and runtime engines. CRI-O was created to provide a lightweight runtime for Kubernetes which adds an abstraction layer between the cluster and the runtime that allows for various OCI runtime technologies. However you still have the problem of daemon dependencies in your cluster for builds - I.e. if you are using the cluster for builds you still need a Docker daemon.
Enter Buildah. Buildah allows you to have a Kubernetes cluster without any Docker daemon for both runtime and builds. Excellent. But what if things go wrong? What if you want to do troubleshooting or debugging of containers in your cluster? Buildah isn’t really built for that, what you need is a client tool for working with containers and the one that comes to mind is Docker CLI - but then you’re back to using the daemon.
This is where Podman steps in. Podman allows you to do all of the Docker commands without the daemon dependency. With Podman you can run, build (it calls Buildah under the covers for this), modify and troubleshoot containers in your Kubernetes cluster. With the two projects together, you have a well rounded solution for your OCI container image and container needs.
With the help of Checkpoint/Restore In Userspace (CRIU) I
was able to add initial checkpoint/restore support to Podman. Using
checkpoint/restore it is now possible to resume a container after a reboot at
exactly the same point in time it was checkpointed.
I wrote a SELinux blog on running a container with Podman. The talks explains why SELinux blocks the connection to the
libvirt socket. It then goes on to explain how to setup the container to allow
the communication.
When running Podman as root, the default location for storage is /var/lib/containers/storage. Of course, users cannot use this directory when running as non root, so Podman creates the storage by default in $HOME/.local/share/containers.
I recently received a bug report about some huge container images not working correctly in Docker. So I suggested to the reporter that they try them with Podman. He responded that he saw the images with docker images, but did not see them with podman images.
I explained to him that the Docker image and container database are separate from the Podman image and container database. I told him he would have to pull the images into Podman. Then I decided to try a cool feature of Podman, where I could pull images directly out of the Docker daemon.
Podman wasn’t designed to manage containers startup order, dependency
checking or failed container recovery.
In fact, this job can be done by external tools and this blog post describes
how we can use the systemd initialization service to work with Podman
containers.
You’ve learned of Podman and all it’s coolness for running OCI-based containers, but you need a solution that is repeatable and scripted. Rather than just executing Podman commands, you want a stable API to call into and not need to screen scrape the output.
We heard you and now provide a Python package, python3-podman. This package allows you to access the facilities of a Podman service with #nobigfatdaemons.