I’ve read that standard containers are optimized for developer productivity and not security, which makes sense.

But then what would be ideal to use for security? Suppose I want to isolate environments from each other for security purposes, to run questionable programs or reduce attack surface. What are some secure solutions?

Something without the performance hit of VMs

  • It can pull and build containers fine but last time I tried there were some differences. Mounts were not usable because user uid/gid behave quite differently. Tools like portainer dont work on podman containers. I havent tried out any networking or advanced stuff yet.

    But i found that the considerations to write docker files are quite different for podman.

    • Differences you find could be related to containers being run rootless, or the host system having SELinux enforcesd. Both problems could be intended behavior and can be soled simply by using by adding correct labels to mount points like :z or :Z. This SELinux feature also affects Docker when setup.

      Portaiers tries to connect to a docker sock path that is not the same with Podman. While podman is rootless and does not need a daemon, socks and stuff, it has support for them nevertheless. So you can simply adjust Portainer config to work with podman. I havnt tried it yet but I managed to do similar things for other software.

      • I dont have much idea about SELinux, apart from the name. But I think the problem I was having was specifically wrt uid, with docker I used to add user with the same uid/gid as the host user, as a developer this would help me with debugging. But this differs with the non root setup.

    • Gotcha. I use docker containers on computing clusters at the University, but because of security, I have to convert them to singularity containers. That is okay, but I was hoping that by running podman I could prevent this extra step.

      • Unlike docker, podman doesn’t try to do everything on it’s own. There’s a separate tool known as buildah which builds containers from dockerfiles just fine.

        Ps. More generally, they’re called containerfiles.