Skip to main content
Version: 2.0.0

Deployment using Podman

Podman is a rootless alternative to Docker, it can run the default example session with a compose provider or use Quadlets

Podman is daemonless so you won't be able to follow the instructions at docker-host, instead remote connections can be made through ssh by setting

sock=$(ssh uav30 "podman info --format '{{.Host.RemoteSocket.Path}}'")
export CONTAINER_HOST="ssh://mrs@uav30${sock}"

Compose file

Put the following in your ~/.bashrc to allow running Docker commands from the up.sh script:

alias docker='podman'

Install the docker-compose-plugin or podman-compose package. If you want to use docker-compose, you will need to enable the podman.socket user unit and set docker socket environment variable for that user:

systemctl --user enable --now podman.socket
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock

If not, you may want to add docker.io to the unqualified-search-registries:

sudo tee /etc/containers/registries.conf.d/10-unqualified-search-registries.conf <<< 'unqualified-search-registries = ["docker.io"]'

Now you can follow the instructions from the Docker page

To get dogtail log collection working, you should change the sock in the compose.yaml to the one used by Podman

Quadlet

To-do

Useful info

To transfer images between Docker and Podman, you have several options, you can save and load it:

docker save ctumrs/mrs_uav_system:stable > mrs.tar
podman load -i mrs.tar

You can also do that with no temporary file and remotely with SSH

ssh uav30 'docker save ctumrs/mrs_uav_system:stable | podman load'

Or you can setup a local registry in Docker, add it as an insecure registry

sudo tee /etc/containers/registries.conf.d/mrs.conf <<EOF
[[registry]]
location = "localhost:5000"
insecure = true
EOF

And pull the image into Podman:

podman pull localhost:5000/ctumrs/mrs_uav_system:latest