{"id":1271,"date":"2025-03-06T12:41:05","date_gmt":"2025-03-06T11:41:05","guid":{"rendered":"https:\/\/www.jjtronics.com\/wordpress\/?p=1271"},"modified":"2025-03-21T13:28:31","modified_gmt":"2025-03-21T12:28:31","slug":"%e2%9a%a1-installer-carte-nvidia-dans-proxmox-lxc-docker-exemple-ia-et-ollama","status":"publish","type":"post","link":"https:\/\/www.jjtronics.com\/wordpress\/2025\/03\/06\/%e2%9a%a1-installer-carte-nvidia-dans-proxmox-lxc-docker-exemple-ia-et-ollama\/","title":{"rendered":"\u26a1 Installer carte NVIDIA dans Proxmox \/ LXC \/ Docker (IA LLM et Ollama)"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full is-resized is-style-rounded\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" data-attachment-id=\"1272\" data-permalink=\"https:\/\/www.jjtronics.com\/wordpress\/2025\/03\/06\/%e2%9a%a1-installer-carte-nvidia-dans-proxmox-lxc-docker-exemple-ia-et-ollama\/proxmox-lxc-debian-et-docker-pour-nvidia\/\" data-orig-file=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/Proxmox-LXC-Debian-et-Docker-pour-NVIDIA.webp\" data-orig-size=\"1024,1024\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Proxmox LXC Debian et Docker pour NVIDIA\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/Proxmox-LXC-Debian-et-Docker-pour-NVIDIA.webp\" src=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/Proxmox-LXC-Debian-et-Docker-pour-NVIDIA.webp\" alt=\"Proxmox LXC Debian et Docker pour NVIDIA\" class=\"wp-image-1272\" style=\"width:214px;height:auto\" srcset=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/Proxmox-LXC-Debian-et-Docker-pour-NVIDIA.webp 1024w, https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/Proxmox-LXC-Debian-et-Docker-pour-NVIDIA-300x300.webp 300w, https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/Proxmox-LXC-Debian-et-Docker-pour-NVIDIA-150x150.webp 150w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Dans ce tutoriel, nous allons configurer une carte graphique NVIDIA sur Proxmox, la rendre disponible dans un conteneur LXC, puis l\u2019exploiter dans Docker au sein de ce m\u00eame conteneur.<br>L\u2019exemple final porte sur l\u2019installation de l\u2019application <strong>Ollama<\/strong> pour l\u2019IA qui utilisera l&rsquo;acc\u00e9l\u00e9ration mat\u00e9riel de la carte graphique, mais la proc\u00e9dure s\u2019applique \u00e0 d\u2019autres usages (Serveur multimedia Plex, encodage\/d\u00e9codage &#8230;).<\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mat\u00e9riel et environnements test\u00e9s<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Serveurs HP<\/strong> : ML110 G9 et Z840<\/li>\n\n\n\n<li><strong>Cartes graphiques<\/strong> : Nvidia Quadro P6000 et Nvidia RTX 2080<\/li>\n<\/ul>\n\n\n\n<p>Mais le plus important c&rsquo;est : <\/p>\n\n\n\n<p>-D&rsquo;avoir du CPU Intel <br>-Une carte Nvidia assez r\u00e9cente en fonction des besoins pour pouvoir suivre ce tuto<br>-Le mode secure boot d\u00e9sactiv\u00e9 pour pouvoir charger le driver Nvidia (Et donc activer le mode legacy boot), par exemple pour HP : <br>  <a href=\"https:\/\/support.hp.com\/us-en\/document\/ish_6930187-6931079-16\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/support.hp.com\/us-en\/document\/ish_6930187-6931079-16<\/a> <br>-Que la carte graphique soit reconnu en faisant un lspci (dans mon cas une GeForce RTX 2080) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">root@ml110:~# lspci |grep NVIDIA\n03:00.0 VGA compatible controller: NVIDIA Corporation TU104 [GeForce RTX 2080] (rev a1)\n03:00.1 Audio device: NVIDIA Corporation TU104 HD Audio Controller (rev a1)\n03:00.2 USB controller: NVIDIA Corporation TU104 USB 3.1 Host Controller (rev a1)\n03:00.3 Serial bus controller: NVIDIA Corporation TU104 USB Type-C UCSI Controller (rev a1)\nroot@ml110:~#<\/code><\/pre>\n\n\n\n<p>Pour une config AMD, un autre tuto arrivera.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. \ud83d\ude80 Configuration de Proxmox<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1.1. Modifier le fichier <code>sources.list<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">nano \/etc\/apt\/sources.list<\/code><\/pre>\n\n\n\n<p>Assurez-vous d\u2019avoir les d\u00e9p\u00f4ts suivants (pour <strong>Proxmox 8<\/strong> sur base Debian Bookworm)\u202f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>deb http:\/\/download.proxmox.com\/debian\/pve bookworm pve-no-subscription\n\ndeb http:\/\/deb.debian.org\/debian bookworm main contrib non-free non-free-firmware\ndeb http:\/\/security.debian.org\/debian-security bookworm-security main contrib non-free non-free-firmware\ndeb http:\/\/deb.debian.org\/debian bookworm-updates main contrib non-free non-free-firmware<\/code><\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Note<\/strong> : Commentez (d\u00e9sactivez) le repository <code>ceph<\/code> et le repository <code>pve-enterprise<\/code> s\u2019ils sont pr\u00e9sents.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">1.2. Mettre \u00e0 jour le syst\u00e8me<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>apt update\napt upgrade<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1.3. Installer les d\u00e9pendances<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>apt install pve-headers-$(uname -r) build-essential dkms wget libglvnd-dev  sudo libglvnd0<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1.4. Activer l\u2019IOMMU dans GRUB<\/h3>\n\n\n\n<p>\u00c9ditez le fichier <code>\/etc\/default\/grub<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>nano \/etc\/default\/grub<\/code><\/code><\/pre>\n\n\n\n<p>Dans la ligne contenant <code>GRUB_CMDLINE_LINUX_DEFAULT<\/code>, ajoutez les param\u00e8tres <code>intel_iommu=on iommu=pt<\/code>, par exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>GRUB_CMDLINE_LINUX_DEFAULT=\"quiet intel_iommu=on iommu=pt\"\n<\/code><\/code><\/pre>\n\n\n\n<p>Puis mettez \u00e0 jour GRUB :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>update-grub\n<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1.5. Activer le regroupement des IOMMU (recommand\u00e9)<\/h3>\n\n\n\n<p>Cr\u00e9ez ou modifiez les fichiers suivants :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>echo \"options kvm ignore_msrs=1\" &gt; \/etc\/modprobe.d\/kvm.conf\necho \"options vfio_iommu_type1 allow_unsafe_interrupts=1\" &gt; \/etc\/modprobe.d\/iommu.conf<\/code><\/code><\/pre>\n\n\n\n<p>Puis mettez \u00e0 jour <code>initramfs<\/code> <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>update-initramfs -u\n<\/code><\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Info<\/strong> : S\u2019il y a eu une mise \u00e0 jour du noyau (apr\u00e8s <code>apt upgrade<\/code>), red\u00e9marrez la machine.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">1.6. D\u00e9sactiver le module <code>nouveau<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>sudo modprobe -r nouveau\n<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1.7. Installer le driver NVIDIA<\/h3>\n\n\n\n<p><em>(Exemple : version <code>550.144.03<\/code> \u2013 adaptez si n\u00e9cessaire)<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>wget https:\/\/fr.download.nvidia.com\/XFree86\/Linux-x86_64\/550.144.03\/NVIDIA-Linux-x86_64-550.144.03.run\nchmod +x NVIDIA-Linux-x86_64-550.144.03.run\n.\/NVIDIA-Linux-x86_64-550.144.03.run --dkms<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1.8. Charger les modules n\u00e9cessaires<\/h3>\n\n\n\n<p>Modifiez le fichier <code>\/etc\/modules<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>nano \/etc\/modules\n<\/code><\/code><\/pre>\n\n\n\n<p>Ajoutez-y :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd\n\n# load nvidia modules\nnvidia-drm\nnvidia-uvm<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1.9. Cr\u00e9er un fichier pour blacklist <code>nouveau<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>nano \/etc\/modprobe.d\/nvidia-installer-disable-nouveau.conf\n<\/code><\/code><\/pre>\n\n\n\n<p>Mettez-y :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>blacklist nvidiafb\nblacklist nouveau\nblacklist lbm-nouveau\noptions nouveau modeset=0<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1.10. R\u00e8gles udev pour g\u00e9rer les p\u00e9riph\u00e9riques NVIDIA<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>nano \/etc\/udev\/rules.d\/70-nvidia.rules\n<\/code><\/code><\/pre>\n\n\n\n<p>Ajoutez-y :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>KERNEL==\"nvidia\", RUN+=\"\/bin\/bash -c '\/usr\/bin\/nvidia-smi -L &amp;&amp; \/bin\/chmod 666 \/dev\/nvidia*'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"\/bin\/bash -c '\/usr\/bin\/nvidia-modprobe -c0 -u &amp;&amp; \/bin\/chmod 0666 \/dev\/nvidia-uvm*'\"\nSUBSYSTEM==\"module\", ACTION==\"add\", DEVPATH==\"\/module\/nvidia\", RUN+=\"\/usr\/bin\/nvidia-modprobe -m\"<\/code><\/code><\/pre>\n\n\n\n<p>Activez imm\u00e9diatement les r\u00e8gles :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>udevadm control --reload-rules &amp;&amp; udevadm trigger\n<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1.11. Red\u00e9marrer Proxmox<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>reboot\n<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">1.12. V\u00e9rifier la pr\u00e9sence des p\u00e9riph\u00e9riques NVIDIA<\/h3>\n\n\n\n<p>Apr\u00e8s reboot, vous devriez voir :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>ls -lah \/dev\/nvidia*\n<\/code><\/code><\/pre>\n\n\n\n<p>Exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>crw-rw-rw- 1 root root 195,   0 Mar  4 19:03 \/dev\/nvidia0\ncrw-rw-rw- 1 root root 195, 255 Mar  4 19:03 \/dev\/nvidiactl\ncrw-rw-rw- 1 root root 195, 254 Mar  4 19:03 \/dev\/nvidia-modeset\ncrw-rw-rw- 1 root root 510,   0 Mar  4 19:03 \/dev\/nvidia-uvm\ncrw-rw-rw- 1 root root 510,   1 Mar  4 19:03 \/dev\/nvidia-uvm-tools\n\n\/dev\/nvidia-caps:\ncr--------  1 root root 237, 1 Mar  4 19:03 nvidia-cap1\ncr--r--r--  1 root root 237, 2 Mar  4 19:03 nvidia-cap2\n<\/code><\/code><\/pre>\n\n\n\n<p>On retrouve les num\u00e9ros majeurs (ex. 195, 510 et 237) pour la configuration du LXC.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. \ud83c\udff7 Cr\u00e9er et configurer un conteneur LXC Debian 12<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">2.1. Cr\u00e9er un LXC Debian 12 <strong>privil\u00e9gi\u00e9<\/strong>, avec Nesting activ\u00e9<\/h3>\n\n\n\n<p>Depuis l\u2019interface Proxmox, cr\u00e9ez un conteneur LXC Debian 12 et, dans l\u2019onglet <strong>Options<\/strong> (ou <strong>Features<\/strong> selon la version) :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cochez <strong>Privileged<\/strong> (ou assurez-vous que la case \u201cUnprivileged container\u201d est <strong>d\u00e9sactiv\u00e9e<\/strong>).<\/li>\n\n\n\n<li>Activez l\u2019option <strong>Nesting<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p>Vous pouvez \u00e9galement t\u00e9l\u00e9charger le template lxc debian et l&rsquo;installer en ligne de commande : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">pveam update\npveam available | grep debian-12-standard<\/code><\/pre>\n\n\n\n<p>Vous devriez voir la derni\u00e8re version en date, dans notre cas :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">system          debian-12-standard_12.7-1_amd64.tar.zst<\/code><\/pre>\n\n\n\n<p>SI votre stockage est bien nomm\u00e9 local (par d\u00e9faut en g\u00e9n\u00e9ral dans proxmox) vous pouvez lancer :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">pveam download local debian-12-standard_12.7-1_amd64.tar.zst<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Lancez la cr\u00e9ation du LXC avec le template debian : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">pct create 100 local:vztmpl\/debian-12-standard_12.7-1_amd64.tar.zst \\\n  --hostname debian12-nvidia \\\n  --cores 4 \\\n  --memory 4096 \\\n  --swap 0 \\\n  --rootfs local-lvm:20 \\\n  --net0 name=eth0,bridge=vmbr0,ip=dhcp \\\n  --features nesting=1 \\\n  --unprivileged=0 \\\n  --password TonMotDePasseIci<\/code><\/pre>\n<\/blockquote>\n\n\n\n<p>Dans cet exemple nous allons cr\u00e9er un LXC avec le template Debian pr\u00e9c\u00e9dement t\u00e9l\u00e9charger et les param\u00e8tres :<\/p>\n\n\n\n<p>-Nom de machine : debian12-nvidia<\/p>\n\n\n\n<p>-Nombre de core CPU : 4<\/p>\n\n\n\n<p>-Taille RAM : 4096<\/p>\n\n\n\n<p>-Taille SWAP :0<\/p>\n\n\n\n<p>-Emplacement du stockage : local-lvm<\/p>\n\n\n\n<p>-Carte r\u00e9seau &#8211; Quel switch virtuel &#8211; Param\u00e8tres IP : vmbr0 en DHCP<\/p>\n\n\n\n<p>-Activation de l&rsquo;option Nesting pour Docker : nesting=1<\/p>\n\n\n\n<p>-LXC en mode privil\u00e9gi\u00e9 : &#8211;unprivileged=0<\/p>\n\n\n\n<p>-Mot de passe root du LXC : TonMotDePasseIci<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.2. \u00c9diter la configuration du LXC<\/h3>\n\n\n\n<p>Apr\u00e8s cr\u00e9ation, \u00e9ditez la conf (ex. ID 100) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>nano \/etc\/pve\/lxc\/100.conf\n<\/code><\/code><\/pre>\n\n\n\n<p>Ajoutez \u00e0 la fin<code> :<\/code> les instructions suivantes (en adaptant les num\u00e9ros majeures grace \u00e0 la commande <code>ls -lah \/dev\/nvidia*<\/code> vue au point : 1.12. V\u00e9rifier la pr\u00e9sence des p\u00e9riph\u00e9riques NVIDIA) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 510:* rwm\nlxc.cgroup2.devices.allow: c 237:* rwm\n\nlxc.mount.entry: \/dev\/nvidia-caps dev\/nvidia-caps none bind,optional,create=dir\nlxc.mount.entry: \/dev\/nvidia0 dev\/nvidia0 none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidiactl dev\/nvidiactl none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidia-modeset dev\/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidia-uvm dev\/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidia-uvm-tools dev\/nvidia-uvm-tools none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidia-caps dev\/nvidia-caps none bind,optional,create=dir,mode=0777\nlxc.mount.entry: \/dev\/nvidia-uvm-tools dev\/nvidia-caps\/nvidia-cap1 none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidia-uvm-tools dev\/nvidia-caps\/nvidia-cap2 none bind,optional,create=file<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2.3. D\u00e9marrer le LXC et y transf\u00e9rer le driver NVIDIA<\/h3>\n\n\n\n<p>Sur l\u2019h\u00f4te Proxmox :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>pct start 100\npct push 100 \/root\/NVIDIA-Linux-x86_64-550.144.03.run \/root\/NVIDIA-Linux-x86_64-550.144.03.run<\/code><\/code><\/pre>\n\n\n\n<p><em>(Adaptez le chemin si n\u00e9cessaire.)<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.4. Configurer la Debian du LXC<\/h3>\n\n\n\n<p>Dans le conteneur (SSH ou console Proxmox) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">lxc-attach 100<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>nano \/etc\/apt\/sources.list\n<\/code><\/code><\/pre>\n\n\n\n<p>Ajoutez (ou v\u00e9rifiez) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>deb http:\/\/deb.debian.org\/debian bookworm main contrib non-free non-free-firmware\ndeb http:\/\/security.debian.org\/debian-security bookworm-security main contrib non-free non-free-firmware\ndeb http:\/\/deb.debian.org\/debian bookworm-updates main contrib non-free non-free-firmware<\/code><\/code><\/pre>\n\n\n\n<p>Puis :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>apt update\napt upgrade\napt install gpg curl wget<\/code><\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. \ud83c\udf89 Installer NVIDIA Container Toolkit<\/h2>\n\n\n\n<p>Parfois, le paquet <code>nvidia-container-toolkit<\/code> n\u2019est pas dans les d\u00e9p\u00f4ts. Pour l\u2019installer directement depuis NVIDIA :<\/p>\n\n\n\n<p>Ajouter la cl\u00e9 GPG officielle :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">curl -fsSL https:\/\/nvidia.github.io\/libnvidia-container\/gpgkey | gpg --dearmor -o \/usr\/share\/keyrings\/nvidia-container-toolkit-keyring.gpg\n\ncurl -s -L https:\/\/nvidia.github.io\/libnvidia-container\/debian11\/nvidia-container-toolkit.list | sed 's#deb https:\/\/#deb [signed-by=\/usr\/share\/keyrings\/nvidia-container-toolkit-keyring.gpg] https:\/\/#g' | tee \/etc\/apt\/sources.list.d\/nvidia-container-toolkit.list<\/code><\/pre>\n\n\n\n<p>Mettre \u00e0 jour :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>apt update<\/code><\/code><\/pre>\n\n\n\n<p>Installer <code>nvidia-container-toolkit<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>apt install -y nvidia-container-toolkit<\/code><\/code><\/pre>\n\n\n\n<p>Ajuster la config (si besoin) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>nano \/etc\/nvidia-container-runtime\/config.toml<\/code><\/code><\/pre>\n\n\n\n<p>Pour ajouter ou v\u00e9rifier :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>no-cgroups = true<\/code><\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. \ud83d\udd27 Installer le driver NVIDIA dans le LXC<\/h2>\n\n\n\n<p>Dans le conteneur :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>chmod +x NVIDIA-Linux-x86_64-550.144.03.run\n.\/NVIDIA-Linux-x86_64-550.144.03.run --no-kernel-module<\/code><\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>L\u2019option <code>--no-kernel-module<\/code> est utilis\u00e9e car le module du noyau est d\u00e9j\u00e0 g\u00e9r\u00e9 par l\u2019h\u00f4te Proxmox.<\/p>\n<\/blockquote>\n\n\n\n<p>V\u00e9rifiez :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>ls -lah \/dev\/nvidia*\nnvidia-smi<\/code><\/code><\/pre>\n\n\n\n<p>Vous devriez voir vos p\u00e9riph\u00e9riques NVIDIA et avoir acc\u00e8s \u00e0 la carte via <code>nvidia-smi<\/code> : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">root@NVIDIA-TESTS:~# ls -lah \/dev\/nvidia*\ncrw-rw-rw- 1 root root 195, 254 Mar  6 13:41 \/dev\/nvidia-modeset\ncrw-rw-rw- 1 root root 510,   0 Mar  6 13:41 \/dev\/nvidia-uvm\ncrw-rw-rw- 1 root root 510,   1 Mar  6 13:41 \/dev\/nvidia-uvm-tools\ncrw-rw-rw- 1 root root 195,   0 Mar  6 13:41 \/dev\/nvidia0\ncrw-rw-rw- 1 root root 195, 255 Mar  6 13:41 \/dev\/nvidiactl\n\n\/dev\/nvidia-caps:\ntotal 0\ndrw-rw-rw- 2 root root     80 Mar  6 13:41 .\ndrwxr-xr-x 8 root root    620 Mar  6 14:00 ..\ncrw-rw-rw- 1 root root 510, 1 Mar  6 13:41 nvidia-cap1\ncrw-rw-rw- 1 root root 510, 1 Mar  6 13:41 nvidia-cap2<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"828\" height=\"344\" data-attachment-id=\"1283\" data-permalink=\"https:\/\/www.jjtronics.com\/wordpress\/2025\/03\/06\/%e2%9a%a1-installer-carte-nvidia-dans-proxmox-lxc-docker-exemple-ia-et-ollama\/image\/\" data-orig-file=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/image.png\" data-orig-size=\"828,344\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"nvidia-smi\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/image.png\" src=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/image.png\" alt=\"nvidia-smi\" class=\"wp-image-1283\" srcset=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/image.png 828w, https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/image-300x125.png 300w\" sizes=\"auto, (max-width: 828px) 100vw, 828px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. \ud83d\udc33 Installer Docker dans le LXC<\/h2>\n\n\n\n<p>Ajouter la cl\u00e9 GPG Docker et le d\u00e9p\u00f4t :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">apt-get update\napt-get install ca-certificates curl sudo\n\ninstall -m 0755 -d \/etc\/apt\/keyrings\n\ncurl -fsSL https:\/\/download.docker.com\/linux\/debian\/gpg -o \/etc\/apt\/keyrings\/docker.asc\n\nchmod a+r \/etc\/apt\/keyrings\/docker.asc\n\necho   \"deb [arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.asc] https:\/\/download.docker.com\/linux\/debian \\\n  $(. \/etc\/os-release &amp;&amp; echo \"$VERSION_CODENAME\") stable\" |   sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null\n\napt-get update<\/code><\/pre>\n\n\n\n<p>Installer Docker :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin<\/code><\/code><\/pre>\n\n\n\n<p>Configurer Docker pour utiliser le runtime NVIDIA par d\u00e9faut :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>nano \/etc\/docker\/daemon.json <\/code><\/code><\/pre>\n\n\n\n<p>Ajoutez :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">{\n  \"runtimes\": {\n    \"nvidia\": {\n      \"path\": \"nvidia-container-runtime\",\n      \"runtimeArgs\": []\n    }\n  },\n  \"default-runtime\": \"nvidia\"\n}<\/code><\/pre>\n\n\n\n<p>Red\u00e9marrer Docker :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>systemctl restart docker<\/code><\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. \ud83e\udd16 Exemple : D\u00e9ployer Ollama (IA) via Docker Compose<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">6.1. Pr\u00e9parer le dossier et le fichier <code>docker-compose.yml<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>mkdir ollama\ncd ollama\nnano docker-compose.yml<\/code><\/code><\/pre>\n\n\n\n<p>Exemple de configuration :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>services:\n  ollama:\n    image: ollama\/ollama:latest\n    container_name: ollama\n    ports:\n      - \"11434:11434\"\n    volumes:\n      - ollama:\/root\/.ollama\n    pull_policy: always\n    tty: true\n    restart: unless-stopped\n    environment:\n      - NVIDIA_VISIBLE_DEVICES=all\n      - NVIDIA_DRIVER_CAPABILITIES=all\n      - OLLAMA_ACCELERATOR=cuda\n      - CUDA_VISIBLE_DEVICES=0\n      - OLLAMA_FORCE_CUDA=1\n      - OLLAMA_USE_CUDA=1\n    devices:\n      - \/dev\/nvidia0:\/dev\/nvidia0\n      - \/dev\/nvidiactl:\/dev\/nvidiactl\n      - \/dev\/nvidia-uvm:\/dev\/nvidia-uvm\n      - \/dev\/nvidia-uvm-tools:\/dev\/nvidia-uvm-tools\n      - \/dev\/nvidia-modeset:\/dev\/nvidia-modeset\n      - \/dev\/nvidia-caps:\/dev\/nvidia-caps\n    deploy:\n      resources:\n        reservations:\n          devices:\n            - driver: nvidia\n              count: 1\n              capabilities: [gpu]\n    runtime: nvidia\n\n  ollama-webui:\n    image: ghcr.io\/ollama-webui\/ollama-webui:main\n    container_name: ollama-webui\n    ports:\n      - \"3000:8080\"\n    volumes:\n      - ollama-webui:\/app\/backend\/data\n    depends_on:\n      - ollama\n    environment:\n      - 'OLLAMA_API_BASE_URL=http:\/\/ollama:11434\/api'\n    restart: unless-stopped\n\nvolumes:\n  ollama: {}\n  ollama-webui: {}<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">6.2. Lancer les conteneurs<\/h3>\n\n\n\n<p>Toujours dans le r\u00e9pertoire <code>ollama<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>docker compose up -d\n<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">6.3. Optionnel : Installer Portainer<\/h3>\n\n\n\n<p>Pour g\u00e9rer vos conteneurs plus facilement, vous pouvez installer <strong>Portainer<\/strong> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>docker run -d -p 8000:8000 -p 9443:9443 \\\n  --name portainer \\\n  --restart=always \\\n  -v \/var\/run\/docker.sock:\/var\/run\/docker.sock \\\n  -v portainer_data:\/data \\\n  portainer\/portainer-ce:lts<\/code><\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. \ud83d\udd0e V\u00e9rification du fonctionnement d\u2019Ollama<\/h2>\n\n\n\n<p>Consultez les logs pour v\u00e9rifier que votre GPU est d\u00e9tect\u00e9. Par exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">docker logs -f ollama<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>time=2025-03-04T18:47:34.093Z level=INFO source=gpu.go:217 msg=\"looking for compatible GPUs\"\ntime=2025-03-04T18:47:34.450Z level=INFO source=types.go:130 msg=\"inference compute\" ...\nname=\"NVIDIA GeForce RTX 2080\" total=\"7.8 GiB\" available=\"7.7 GiB\"<\/code><\/code><\/pre>\n\n\n\n<p>ou par exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>time=2025-03-04T20:05:05.414Z level=INFO source=types.go:130 msg=\"inference compute\" ...\nname=\"Quadro P6000\" total=\"23.9 GiB\" available=\"23.7 GiB\"<\/code><\/code><\/pre>\n\n\n\n<p>Tant qu\u2019il affiche bien le nom de la carte, c\u2019est que la configuration fonctionne !<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"652\" data-attachment-id=\"1289\" data-permalink=\"https:\/\/www.jjtronics.com\/wordpress\/2025\/03\/06\/%e2%9a%a1-installer-carte-nvidia-dans-proxmox-lxc-docker-exemple-ia-et-ollama\/ollama-docker-in-lxc-in-proxmox-with-nvidia\/\" data-orig-file=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia.png\" data-orig-size=\"2066,1315\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ollama docker in lxc in proxmox with nvidia\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-1024x652.png\" src=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-1024x652.png\" alt=\"\" class=\"wp-image-1289\" srcset=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-1024x652.png 1024w, https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-300x191.png 300w, https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-1536x978.png 1536w, https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-2048x1304.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83c\udf89 Conclusion<\/h1>\n\n\n\n<p>Vous disposez d\u00e9sormais d\u2019un syst\u00e8me <strong>Proxmox<\/strong> avec une carte <strong>NVIDIA<\/strong> pass-through dans un conteneur <strong>LXC<\/strong> (privil\u00e9gi\u00e9, Nesting activ\u00e9) et exploitable dans <strong>Docker<\/strong>.<br>Cette configuration permet notamment d\u2019ex\u00e9cuter des t\u00e2ches d\u2019IA comme <strong>Ollama<\/strong>, ou tout autre outil GPU, dans vos conteneurs.<\/p>\n\n\n\n<p>Vous pouvez bien \u00e9videment utiliser la carte graphique simultan\u00e9ment sur plusieurs LXC et plusieurs Dockers<\/p>\n\n\n\n<p><strong>Points essentiels<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>V\u00e9rifiez toujours que le pilote NVIDIA de l\u2019h\u00f4te Proxmox est correctement install\u00e9 et que <code>nvidia-smi<\/code> fonctionne.<\/li>\n\n\n\n<li>Le conteneur LXC <strong>doit<\/strong> \u00eatre privil\u00e9gi\u00e9 et autoriser l\u2019acc\u00e8s aux p\u00e9riph\u00e9riques <code>nvidia*<\/code> et <code>nvidia-caps<\/code>.<\/li>\n\n\n\n<li>Le <strong>runtime<\/strong> <code>nvidia-container-runtime<\/code> est indispensable pour Docker.<\/li>\n\n\n\n<li>Adaptez les <strong>versions de driver<\/strong> et de paquets \u00e0 vos besoins mat\u00e9riels et logiciels.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8. \ud83d\udd0e Debugging<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">8.1. Dans le cas ou \u00e7a \u00e0 march\u00e9 mais \u00e7a ne marche plus : <\/h3>\n\n\n\n<p>Dans le cas ou \u00e7a \u00e0 march\u00e9 mais \u00e7a ne marche plus et que vous voyez dans les logs ollama : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">time=2025-03-06T18:37:14.645Z level=INFO source=gpu.go:217 msg=\"looking for compatible GPUs\"\ntime=2025-03-06T16:37:14.671Z level=WARN source=gpu.go:605 msg=\"unknown error initializing cuda driver library \/usr\/lib\/x86_64-linux-gnu\/libcuda.so.550.144.03: cuda driver library init failure: 999. see https:\/\/github.com\/ollama\/ollama\/blob\/main\/docs\/troubleshooting.md for more information\"\ntime=2025-03-06T18:37:14.689Z level=INFO source=gpu.go:377 msg=\"no compatible GPUs were discovered\"\ntime=2025-03-06T16:37:14.689Z level=INFO source=types.go:130 msg=\"inference compute\" id=0 library=cpu variant=\"\" compute=\"\" driver=0.0 name=\"\" total=\"125.7 GiB\" available=\"123.0 GiB\"<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>V\u00e9rifiez \u00e0 nouveau sur proxmox les num\u00e9ro majeure des interfaces :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>ls -lah \/dev\/nvidia*\n<\/code><\/code><\/pre>\n\n\n\n<p>Exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>crw-rw-rw- 1 root root 195,   0 Mar  4 19:03 \/dev\/nvidia0\ncrw-rw-rw- 1 root root 195, 255 Mar  4 19:03 \/dev\/nvidiactl\ncrw-rw-rw- 1 root root 195, 254 Mar  4 19:03 \/dev\/nvidia-modeset\ncrw-rw-rw- 1 root root 510,   0 Mar  4 19:03 \/dev\/nvidia-uvm\ncrw-rw-rw- 1 root root 510,   1 Mar  4 19:03 \/dev\/nvidia-uvm-tools\n\n\/dev\/nvidia-caps:\ncr--------  1 root root 237, 1 Mar  4 19:03 nvidia-cap1\ncr--r--r--  1 root root 237, 2 Mar  4 19:03 nvidia-cap2\n<\/code><\/code><\/pre>\n\n\n\n<p>On retrouve les num\u00e9ros majeurs (ex. 195, 510 et 237) pour la configuration du LXC.<\/p>\n\n\n\n<p>Et v\u00e9rifiez qu&rsquo;ils sont identiques \u00e0 ceux de la config LXC : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">root@ml110:~# cat \/etc\/pve\/lxc\/100.conf\narch: amd64\ncores: 4\nfeatures: nesting=1\nhostname: NVIDIA-TESTS\nmemory: 4096\nnet0: name=eth0,bridge=vmbr0,hwaddr=BC:24:11:AF:CE:A0,ip=dhcp,type=veth\nonboot: 1\nostype: debian\nrootfs: local-lvm:vm-100-disk-0,size=20G\nswap: 0\nlxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 510:* rwm\nlxc.cgroup2.devices.allow: c 237:* rwm\nlxc.mount.entry: \/dev\/nvidia-caps dev\/nvidia-caps none bind,optional,create=dir\nlxc.mount.entry: \/dev\/nvidia0 dev\/nvidia0 none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidiactl dev\/nvidiactl none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidia-modeset dev\/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidia-uvm dev\/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidia-uvm-tools dev\/nvidia-uvm-tools none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidia-caps dev\/nvidia-caps none bind,optional,create=dir,mode=0777\nlxc.mount.entry: \/dev\/nvidia-uvm-tools dev\/nvidia-caps\/nvidia-cap1 none bind,optional,create=file\nlxc.mount.entry: \/dev\/nvidia-uvm-tools dev\/nvidia-caps\/nvidia-cap2 none bind,optional,create=file<\/code><\/pre>\n\n\n\n<p>relancez votre LXC : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">pct stop 100 &amp;&amp; pct start 100<\/code><\/pre>\n\n\n\n<p>Connectez-vous au conteneur LXC : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">root@ml110:~# lxc-attach 100<\/code><\/pre>\n\n\n\n<p>Et v\u00e9rifiez \u00e0 nouveau les logs ollama : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">root@NVIDIA-TESTS:~# docker logs -f ollama\n...\ntime=2025-03-06T18:38:39.326Z level=INFO source=gpu.go:217 msg=\"looking for compatible GPUs\"\ntime=2025-03-06T18:38:40.310Z level=INFO source=types.go:130 msg=\"inference compute\" id=GPU-000a74e5-c3c6-1f93-1295-5a276ecbeed4 library=cuda variant=v12 compute=7.5 driver=12.4 name=\"NVIDIA GeForce RTX 2080\" total=\"7.8 GiB\" available=\"7.7 GiB\"<\/code><\/pre>\n\n\n\n<p>Si vous voyez \u00e0 nouveau votre GPU, \u00e7a devrait fonctionner sans probl\u00e8mes !<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"652\" data-attachment-id=\"1289\" data-permalink=\"https:\/\/www.jjtronics.com\/wordpress\/2025\/03\/06\/%e2%9a%a1-installer-carte-nvidia-dans-proxmox-lxc-docker-exemple-ia-et-ollama\/ollama-docker-in-lxc-in-proxmox-with-nvidia\/\" data-orig-file=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia.png\" data-orig-size=\"2066,1315\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ollama docker in lxc in proxmox with nvidia\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-1024x652.png\" src=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-1024x652.png\" alt=\"\" class=\"wp-image-1289\" srcset=\"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-1024x652.png 1024w, https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-300x191.png 300w, https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-1536x978.png 1536w, https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/ollama-docker-in-lxc-in-proxmox-with-nvidia-2048x1304.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">8.2. Dans le cas le driver <code>NVIDIA-Linux-x86_64-550.144.03.run<\/code> ne veut pas s&rsquo;installer :<\/h3>\n\n\n\n<p>Si vous bloquez d\u00e8s l&rsquo;installation de l&rsquo;ex\u00e9cutable Nvidia, il est fort probable que vous ayez des drivers nvidia deja install\u00e9 avec le gestionnaire de d\u00e9pot debian (apt);<\/p>\n\n\n\n<p>Lancez donc ces commandes pour supprimer tous les drivers Nvidia install\u00e9s :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">apt remove --purge '^nvidia-.*' '^libnvidia-.*' '^cuda-.*' '^libcuda.*' -y\napt autoremove -y\napt clean\n\nrm -rf \/etc\/modprobe.d\/nvidia.conf\nrm -rf \/etc\/modules-load.d\/nvidia.conf\nrm -rf \/etc\/X11\/xorg.conf.d\/10-nvidia.conf\nrm -rf \/usr\/local\/cuda*\nrm -rf \/etc\/apt\/sources.list.d\/cuda.list\nrm -rf \/var\/lib\/dkms\/nvidia\/\nrm -rf \/usr\/lib\/nvidia\nrm -rf \/usr\/share\/nvidia\nrm -rf \/var\/cache\/nvidia-installer\n\nupdate-initramfs -u\n<\/code><\/pre>\n\n\n\n<p>Et recommencez le tuto \u00e0 partir du point <strong>1.6. D\u00e9sactiver le module <code>nouveau<\/code><\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">8.3. Pour tout autre cas :<\/h3>\n\n\n\n<p>Si vous n&rsquo;arrivez toujours pas \u00e0 faire fonctionner votre carte Nvidia, je vous invite \u00e0 poster un commentaire avec un max d&rsquo;indications, logs etc &#8230;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<p>Bonne continuation et bon usage de votre GPU\u202f!<br>\u2728\ud83d\ude80<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans ce tutoriel, nous allons configurer une carte graphique NVIDIA sur Proxmox, la rendre disponible dans un conteneur LXC, puis [&#038;hellip<\/p>\n","protected":false},"author":1,"featured_media":1272,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[157,2,27,156],"tags":[],"class_list":["post-1271","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ia","category-linux","category-projets","category-proxmox"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.jjtronics.com\/wordpress\/wp-content\/uploads\/2025\/03\/Proxmox-LXC-Debian-et-Docker-pour-NVIDIA.webp","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6YUVZ-kv","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/posts\/1271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/comments?post=1271"}],"version-history":[{"count":28,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/posts\/1271\/revisions"}],"predecessor-version":[{"id":1311,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/posts\/1271\/revisions\/1311"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/media\/1272"}],"wp:attachment":[{"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/media?parent=1271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/categories?post=1271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jjtronics.com\/wordpress\/wp-json\/wp\/v2\/tags?post=1271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}