Running Tutor with Podman
You have the option of running Tutor with Podman, instead of the native Docker tools. This has some practical advantages: it does not require a running Docker daemon, and it enables you to run and build Docker images without depending on any system component running
root. As such, it is particularly useful for building Tutor images from CI pipelines.
podman CLI aims to be fully compatible with the
docker CLI and
podman-compose is meant to be a fully-compatible alias of
docker-compose. This means that you should be able to use it together with Tutor, without making any changes to Tutor itself.
Since this was written, it was discovered that there are major compatibility issues between
docker-compose. Thus, podman cannot be considered a drop-in replacement of Docker in the context of Tutor – at least for running Open edX locally.
You should not attempt to run Tutor with Podman on a system that already has native
docker installed. If you want to switch to
podman using the aliases described here, you should uninstall (or at least stop) the native Docker daemon first.
Podman is supported on a variety of development platforms, see the installation instructions for details.
Once you have installed Podman and its dependencies on the platform of your choice, you’ll need to make sure that its
podman binary, usually installed as
/usr/bin/podman, is aliased to
docker, and is included as such in your system
$PATH. On some CentOS and Fedora releases, you can install a package named
podman-docker to do this for you, but on other platforms, you’ll need to take of this yourself.
$HOME/binis in your
$PATH, you can create a symbolic link there:
ln -s $(which podman) $HOME/bin/docker
If you want to instead make
dockera system-wide alias for
podman, you can create your symlink in
/usr/local/bin, an action that normally requires
sudo ln -s $(which podman) /usr/local/bin/docker
podman-compose is available as a package from PyPI, and can thus be installed with
pip. See its README for installation instructions. Note that if you have installed Tutor in its virtualenv, you’ll need to run
pip install podman-compose in that same virtualenv.
Once installed, you’ll again need to create a symbolic link that aliases
If you run Tutor and
podman-composein a virtualenv, create the symlink in that virtualenv’s
bindirectory: activate the virtualenv, then run:
ln -s $(which podman-compose) $(dirname $(which podman-compose))/docker-compose
If you do not, create the symlink in
sudo ln -s $(which podman-compose) /usr/local/bin/docker-compose
Verifying your environment
Once you have configured your symbolic links as described, you should be able to run
docker version and
docker-compose --help and their output should agree, respectively, with
podman version and
After that, you should be able to use
tutor build, and other commands as if you had installed the native Docker tools.