====== Podman/Docker ====== Podman (short for pod manager) is an open source tool for developing, managing, and running containers. It was developed by Red Hat engineers along with the open source community. Docker is also an open platform for developing, shipping, and running applications. EECS Linux systems run a Red Hat Enterprise Linux compatible operating system. Podman is installed by default. As a result, Podman is the only supported container environment on EECS tech supported systems. Fortunately, both Podman and Docker support the same image format, so you can generally use Docker images with Podman and vice versa. Images built with Docker-specific features might require minor adjustments to work with Podman. In order to use Podman on a tech-supported EECS Linux system, you must be a member of a research group that has its own servers with **local** storage. 1) Request permission to use Podman by sending an email to tech. Please include your research group, and the server name where you would like to use containers. Tech will allocate a uniqe uid/gid range for your containers. 2) By default, Podman will use your EECS home directory for container storage ($HOME/.local/share/containers/storage). Your home directory is a network share which is not supported for container storage. Configure Podman to use storage that is **local** to the server (eg. /local/home/). Here's how you will configure that: a) Get rid of any old Podman configuration in your account: % rm -rf ~/.local/share/containers/storage % rm -f ~/.config/containers b) Copy the default Podman storage configuration file to your home directory: % mkdir $HOME/.config/containers % cp /etc/containers/storage.conf $HOME/.config/containers/storage.conf c) Update $HOME/.config/containers/storage.conf. Replace: runroot = "/run/containers/storage" with: runroot = "/local/home//containers/storage/runroot" Also replace: graphroot = "/var/lib/containers/storage" with: graphroot = "/local/home//containers/storage" Of course, replace with your username. 3) Now you can test container storage: % podman run hello-world You should see something like: Resolved "hello-world" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf) Trying to pull quay.io/podman/hello:latest... Getting image source signatures Copying blob 81df7ff16254 done | Copying config 5dd467fce5 done | Writing manifest to image destination !... Hello Podman World ...! .--"--. / - - \ / (O) (O) \ ~~~| -=(,Y,)=- | .---. /` \ |~~ ~/ o o \~~~~.----. ~~ | =(X)= |~ / (O (O) \ ~~~~~~~ ~| =(Y_)=- | ~~~~ ~~~| U |~~ Project: https://github.com/containers/podman Website: https://podman.io Desktop: https://podman-desktop.io Documents: https://docs.podman.io YouTube: https://youtube.com/@Podman X/Twitter: @Podman_io Mastodon: @Podman_io@fosstodon.org Podman has now been setup in your account. For more information on Podman: * [[https://docs.redhat.com/en-us/documentation/red_hat_enterprise_linux/8/pdf/building_running_and_managing_containers/Red_Hat_Enterprise_Linux-8-Building_running_and_managing_containers-en-US.pdf|Red Hat Enterprise Linux 8 - Building, Running, and Managing Containers]]