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/<user>). 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/<user>/containers/storage/runroot"

Also replace:

graphroot = "/var/lib/containers/storage"

with:

graphroot = "/local/home/<user>/containers/storage"

Of course, replace <user> 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: