Try   HackMD

Install podman or Docker in Ubuntu

tags: c4lab

Install Driver

check if you have GPU(pysical)
lspci | grep -i nvidia

Disable nouveau

vim /etc/modprobe.d/blacklist-nouveau.conf

blacklist nouveau
options nouveau modeset=0

then

sudo update-initramfs -u
sudo reboot

Install NVIDIA driver (Old)

Download nvidia driver
https://www.nvidia.com/Download/index.aspx
e.g.

wget https://us.download.nvidia.com/XFree86/Linux-x86_64/450.66/NVIDIA-Linux-x86_64-450.66.run

and run

sudo apt install -y build-essential
chmod +x NVIDIA-Linux-x86_64-418.74.run
sudo ./NVIDIA-Linux-x86_64-418.74.run

Install NVIDIA driver (new)

https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_network

apt intall cuda libcudnn8-dev

Install Docker-ce(Can skip)

sudo apt update && \
	sudo apt -y install \
	apt-transport-https \
	ca-certificates \
	curl \
	software-properties-common \
    build-essential

echo "add gpg docker key and stable repository"
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt install -y docker-ce
sudo usermod -aG docker $USER

Install NVIDIA container(Can skip)

export distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update

sudo apt-get install -y nvidia-docker2

Install Podman

. /etc/os-release
echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key | sudo apt-key add -
sudo apt update
sudo apt install -y podman

Install nvidia driver for podman

export distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.listsudo apt-get update
sudo apt update
sudo apt install nvidia-container-runtime

Fix Podman bugs

Add this to /etc/nvidia-container-runtime/config.toml

[nvidia-container-cli]
no-cgroups = true

Add alias in /etc/containers/containers.conf or /usr/share/containers/containers.conf

[engine.runtimes]
runc = [
...
]
nvidia = ["/usr/bin/nvidia-container-runtime"]

Run it

podman run -it --rm  --runtime nvidia nvidia/cuda:11.0-base nvidia-smi

User config (SKIP)

podman config for each user is located at
~/.config/containers/storage.conf

[storage]
  runroot = "/run/user/1000/containers"
  # graphroot = "/home/c4lab/.local/share/containers/storage"
  graphroot = "/opt/container/c4lab"

Post-install

edit /etc/bash.bashrc

export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

Test it

https://gist.github.com/linnil1/c7a854a47f5c225aa4996651c61904d6

Reference