apakah nvidia docker2
nvidia-docker2.0 ialah pakej ringkas, yang terutamanya membenarkan docker menggunakan masa jalan NVIDIA Container dengan mengubah suai fail konfigurasi docker "/etc/docker/daemon.json".
Persekitaran pengendalian artikel ini: sistem Windows 10, Docker versi 20.10.11, komputer Dell G3.
Pengenalan kepada NVidia Docker
NVIDIA mula mereka bentuk NVIDIA-Docker pada 2016 untuk memudahkan bekas menggunakan GPU NVIDIA. Generasi pertama nvidia-docker1.0 melaksanakan enkapsulasi klien docker dan memasang peranti dan perpustakaan GPU yang diperlukan ke dalam bekas apabila bekas dimulakan. Walau bagaimanapun, kaedah reka bentuk ini sangat digabungkan dengan masa larian docker dan tidak mempunyai fleksibiliti. Kecacatan sedia ada adalah seperti berikut:
Reka bentuk sangat digabungkan dengan docker dan tidak menyokong masa jalan kontena lain. Seperti: LXC, CRI-O dan masa jalan kontena yang mungkin ditambah pada masa hadapan.
Tidak dapat menggunakan alat lain dengan lebih baik dalam ekosistem docker. Seperti: docker compose.
GPU tidak boleh digunakan sebagai sumber sistem penjadualan untuk penjadualan fleksibel.
Tingkatkan sokongan GPU semasa masa jalan kontena. Contohnya: secara automatik mendapatkan perpustakaan Pemacu NVIDIA peringkat pengguna, modul kernel NVIDIA, pesanan peranti, dsb.
Berdasarkan kelemahan yang diterangkan di atas, NVIDIA memulakan reka bentuk masa jalan kontena generasi seterusnya: nvidia-docker2.0.
Mekanisme pelaksanaan nvidia-docker 2.0
Pertama sekali, mari kita perkenalkan secara ringkas hubungan langsung antara nvidia-docker 2.0, containerd, nvidia-container-runtime, libnvidia- bekas dan runc .
Hubungan antara mereka boleh dikaitkan melalui gambar berikut:
nvidia-docker 2.0
nvidia -docker2.0 ialah pakej ringkas yang membolehkan docker menggunakan masa jalan Kontena NVIDIA dengan mengubah suai fail konfigurasi docker /etc/docker/daemon.json.
nvidia-container-runtime
nvidia-container-runtime ialah bahagian teras sebenar Ia menambah pramula semula berdasarkan runc bekas docker asal, yang digunakan untuk memanggil perpustakaan bekas libnvidia.
libnvidia-container
libnvidia-container menyediakan perpustakaan dan alat CLI ringkas yang boleh digunakan untuk membuat GPU NVIDIA digunakan oleh bekas Linux.
Containerd
Containerd bertanggungjawab terutamanya untuk:
Mengurus kitaran hayat kontena (dari penciptaan kontena hingga kemusnahan )
Tarik/Tolak imej bekas
Pengurusan storan (uruskan storan imej dan data bekas)
Panggil runc untuk menjalankan bekas
Urus antara muka rangkaian dan rangkaian bekas
Apabila containerd Selepas menerima permintaan, buat persediaan yang berkaitan Anda boleh memilih untuk memanggil runc sendiri atau mencipta containerd-shim dan kemudian memanggil runc berdasarkan fail OCI. Di atas adalah proses asas penciptaan kontena biasa.
RunC
RunC ialah alat ringan yang digunakan untuk menjalankan bekas Ia hanya digunakan untuk melakukan satu perkara dan satu perkara Lakukan dengan baik. Kita boleh menganggapnya sebagai alat baris arahan yang boleh menjalankan kontena secara langsung tanpa melalui enjin docker. Malah, runC ialah produk penyeragaman dan ia mencipta dan menjalankan bekas mengikut piawaian OCI. Organisasi OCI (Inisiatif Kontena Terbuka) bertujuan untuk membangunkan piawaian industri terbuka di sekitar format kontena dan masa jalan.
Anda boleh terus menggunakan baris arahan RunC untuk mencipta bekas dan menyediakan keupayaan interaksi yang mudah.
Fungsi setiap komponen dan hubungan di antara mereka telah diperkenalkan di atas Seterusnya, mari kita huraikan gambar ini secara terperinci:
Buat bekas seperti biasa. proses adalah seperti berikut:
docker --> dockerd --> containerd--> containerd-shim -->runc --> container-process
Pelanggan docker menghantar permintaan untuk mencipta bekas kepada dockerd Apabila dockerd menerima tugas permintaan, ia menghantar permintaan kepada containerd. shim atau Mulakan proses bekas sendiri.
Buat bekas yang menggunakan GPU
Proses mencipta bekas GPU adalah seperti berikut:
docker--> dockerd --> containerd --> containerd-shim--> nvidia-container-runtime --> nvidia-container-runtime-hook --> libnvidia-container --> runc -- > container-process
Proses asas adalah serupa dengan bekas yang tidak menggunakan GPU Hanya gantikan masa jalan lalai docker dengan masa jalanan nvidia-bekas NVIDIA.
Dengan cara ini, apabila nvidia-container-runtime mencipta bekas, ia mula-mula melaksanakan cangkuk nvidia-container-runtime-hook untuk menyemak sama ada bekas itu perlu menggunakan GPU (dinilai oleh pembolehubah persekitaran NVIDIA_VISIBLE_DEVICES) . Jika perlu, hubungi libnvidia-container untuk mendedahkan GPU kepada bekas. Jika tidak, logik runc lalai digunakan.
Pada ketika ini, mekanisme umum nvidia-docker2.0 pada dasarnya jelas. Walau bagaimanapun, projek yang terlibat dalam nvidia-container-runtime, libnvidia-container, containerd, dan runc tidak akan diperkenalkan satu demi satu dalam artikel ini. Jika anda berminat, anda boleh meneroka dan belajar sendiri. Alamat projek ini telah dipautkan dalam artikel.
Pembelajaran yang disyorkan: "Tutorial Video Docker"
Atas ialah kandungan terperinci apakah nvidia docker2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Butiran artikel yang menggerakkan aplikasi ke docker swarm, meliputi penyediaan, langkah penempatan, dan langkah -langkah keselamatan semasa proses.

Artikel ini menerangkan pod, penyebaran, dan perkhidmatan Kubernetes, memperincikan peranan mereka dalam menguruskan aplikasi kontena. Ia membincangkan bagaimana komponen ini meningkatkan skalabiliti, kestabilan, dan komunikasi dalam aplikasi. (159 aksara)

Artikel ini membincangkan aplikasi penskalaan di Kubernet menggunakan skala manual, HPA, VPA, dan AutoScaler kluster, dan menyediakan amalan dan alat terbaik untuk pemantauan dan mengautomasikan skala.

Artikel ini membincangkan pengurusan penyebaran Kubernet, memberi tumpuan kepada penciptaan, kemas kini, skala, pemantauan, dan automasi menggunakan pelbagai alat dan amalan terbaik.

Artikel membincangkan pengurusan perkhidmatan dalam Swarm Docker, memberi tumpuan kepada penciptaan, skala, pemantauan, dan mengemas kini tanpa downtime.

Artikel ini membincangkan pelaksanaan kemas kini rolling di Swarm Docker untuk mengemas kini perkhidmatan tanpa downtime. Ia meliputi perkhidmatan mengemas kini, menetapkan parameter kemas kini, memantau kemajuan, dan memastikan kemas kini yang lancar.

Artikel ini membincangkan strategi untuk mengoptimumkan Docker untuk aplikasi latency rendah, yang memberi tumpuan kepada meminimumkan saiz imej, menggunakan imej asas ringan, dan menyesuaikan peruntukan sumber dan tetapan rangkaian.

Artikel membincangkan mengoptimumkan imej Docker untuk saiz dan prestasi menggunakan pelbagai peringkat membina, imej asas yang minimum, dan alat seperti Docker Scout dan Dive.
