Podman, qui permet de faire tourner des images docker sans docker et donc sans privilège root ou accès priviligié sur les serveurs s’installe bien sous Debian à quelques détails près:
- il faut autoriser l’utilisation des namespace pour les utilisateurs:
$ sudo sysctl kernel.unprivileged_userns_clone=1
#et pour un usage pérenne
$ sudo echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/userns.conf
- installation de Podman selon Redirect to Podman Docs
echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_10/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_10/Release.key | sudo apt-key add -
sudo apt-get update -qq
sudo apt-get -qq -y install podman
- Pour des comptes utilisateurs non locaux, il faut qu’ils apparaissent dans les fichiers suivants:
/etc/subuid et /etc/subgid
Par exemple pour ajouter tous les uidnumber > 1000 dans ces deux fichiers
for i in `getent passwd |cut -d: -f3 |sort -n |grep -E "[0-9]{4}" |grep -v 65534`; do echo $i:100000:65536 >> /etc/subuid; echo $i:100000:65536 >> /etc/subgid; done
- Enfin, si les comptes ont leur home sur NFS, podman ne pourra utiliser le NFS pour y exécuter les images. Il faut donc ajouter cette configuration pour chaque utilisateur:
$ mkdir -p ~/.config/containers
$ cat > .config/containers/storage.conf << EOF
[storage]
graphroot = "/tmp/$USER/containers/storage"
rootless_storage_path = "/tmp/$USER/containers/storage"
EOF
Et mettre à jour la configuration:
$ podman system migrate
- Enfin, on peut jouer avec:
$ podman run --rm debian /bin/echo Hello World.
Trying to pull docker.io/library/debian...
Getting image source signatures
Copying blob e4c3d3e4f7b0 done
Copying config 1510e85017 done
Writing manifest to image destination
Storing signatures
Hello World.