I know that we need to install the podman-docker
package from RPM to use Docker Compose in Redhat systems.
But such a package is not available on the Ubuntu system in the APT. Then how can I run a Docker Compose file?
The package podman-docker is not used when running docker-compose together with Podman. .
The RPM package podman-docker provides a wrapper shell script so that
executing docker
will actually execute podman
.
$ cat /etc/fedora-release
Fedora release 34 (Thirty Four)
$ rpm -ql podman-docker | grep bin
/usr/bin/docker
$ file /usr/bin/docker
/usr/bin/docker: a /usr/bin/sh script, ASCII text executable
$ cat /usr/bin/docker
#!/usr/bin/sh
[ -f /etc/containers/nodocker ] || \
echo "Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg." >&2
exec /usr/bin/podman "$@"
$
This functionality is not needed when running docker-compose with Podman. Instead the environment variable DOCKER_HOST
is used to configure what
backend docker-compose will connect to. Podman understands the Docker REST API and can be used as a backend for docker-compose.
(Untested instructions as I don't have an Ubuntu system)
Install the executable docker-compose
curl -sL -o ~/docker-compose https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)
chmod 755 ~/docker-compose
Run
systemctl --user start podman.socket
(Remove --user
when running as root)
Set the environment variable DOCKER_HOST
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock
Run
~/docker-compose up -d
You could also skip installing the docker-compose
executable and
instead run docker-compose
in the container docker.io/docker/compose
For more details see my answer https://stackoverflow.com/a/65670037/757777
Ubuntu 21.04 has Podman 3.0.1. The package contains this list of files: https://packages.ubuntu.com/hirsute/amd64/podman/filelist
For instance
These files are needed for
systemctl --user start podman.socket
and
systemctl start podman.socket
to work.
Note, Podman 3.0.1 only supports docker-compose when Podman is run as root.
The coming release Ubuntu 21.10 scheduled for October 2021 currently contains Podman 3.2.1. Podman 3.2.1 supports running docker-compose when Podman is run as a normal user (i.e. running rootless).
I would guess that 21.10 will be a safer bet to get Podman working with docker-compose. An alternative could be to install a newer Podman version from the 3rd party repository Kubic.