Skip to main content

Podman finally works with docker-compose

·2 mins
Kristof Kovacs
Author
Kristof Kovacs
Software Architect & DevOps Consultant

Hello, I’m Kristof, a human being like you, and an easy to work with, friendly guy.

I've been a programmer, a consultant, CIO in startups, head of software development in government, and built two software companies.

Some days I’m coding Golang in the guts of a system and other days I'm wearing a suit to help clients with their DevOps practices.

One of the big pains of podman was that while it replaces docker, nobody actually uses docker standalone -- everyone uses (at least) docker-compose.yml, because it's incredibly rare that you don't need at least a DB for any app too.

Since Ubuntu 22.04, podman can now work nicely with docker-compose. On Ubuntu 22.04, where I tested it, the following steps were necessary to set it up properly:

First, install the packages (running as root):

apt install -y podman-docker docker-compose

Then, at least on lxd containers, this was needed to avoid a "storage driver overlay failed: kernel does not support overlay fs: 'overlay' is not supported over extfs at "/var/lib/containers/storage/overlay": backing file system is unsupported for this graph driver" error:

cat >>/etc/containers/storage.conf <<EOF
[storage]
driver = "overlay"
[storage.options]
mount_program = "/usr/bin/fuse-overlayfs"
EOF

For some reason (khm RedHat khm), podman is not set up to use the docker hub registry by default, so we have to add it manually:

echo 'unqualified-search-registries = ["docker.io"]' >>/etc/containers/registries.conf

Finally, to play nicely with docker-compose, we need to start the simulated docker.socket:

systemctl start podman.socket

This actually enabled to all docker-compose.yml I had lying around to work with podman.

We can argue about podman vs docker (I'm actually not a big podman fan as of 2022), but before making it work with docker-composer, podman was nearly unusable for us.