Rumah Operasi dan penyelenggaraan Docker Apa yang berlaku apabila docker gagal berkongsi cakera keras?

Apa yang berlaku apabila docker gagal berkongsi cakera keras?

Apr 19, 2023 pm 05:18 PM

Dalam proses menggunakan Docker, kadangkala kita perlu berkongsi imej dan bekas Docker antara mesin yang berbeza. Cara mudah ialah membungkus imej dan bekas ini ke dalam fail tar, kemudian memindahkannya ke mesin sasaran melalui rangkaian, dan kemudian nyahmampat dan memuatkannya ke dalam Docker. Walau bagaimanapun, walaupun kami berjaya memindahkan imej dan bekas ini ke mesin sasaran, kami sering menghadapi masalah seperti itu: tidak dapat memuatkan imej atau memulakan bekas, mendorong "tiada ruang tersisa pada peranti", iaitu, ruang cakera partition adalah tidak mencukupi, terutamanya apabila Masalah ini lebih berkemungkinan dihadapi apabila menggunakan tindanan pemacu storan2.

Apa yang sedang berlaku? Saya pernah menghadapi masalah yang sama Selepas beberapa penyiasatan dan penyelidikan, saya menemui sebab dan penyelesaian:

  1. Cara pemacu storan Apa yang berlaku apabila docker gagal berkongsi cakera keras? berfungsi

Pemacu storan Docker termasuk AUFS, DeviceMapper dan OverlayFS, antaranya Apa yang berlaku apabila docker gagal berkongsi cakera keras? adalah yang lebih popular. Ia berdasarkan sistem fail overlayFS, menindih berbilang sistem fail bercermin bersama-sama untuk membentuk titik lekap bersama, menjadikannya kelihatan seperti sistem fail yang lengkap, seperti yang ditunjukkan dalam rajah berikut:

Apa yang berlaku apabila docker gagal berkongsi cakera keras?

Seperti yang ditunjukkan dalam rajah, bahagian biru ialah sistem fail bagi imej asas, bahagian hijau ialah sistem fail lapisan bekas, dan bahagian merah ialah sistem fail bagi lapisan baca sahaja. Lapisan baca sahaja mengandungi sistem fail biasa untuk semua imej Lapisan bekas ialah sistem fail setiap bekas Ia mencipta lapisan baca sahaja untuk setiap bekas dan menambah lapisan boleh tulis di atasnya supaya setiap bekas boleh melihat. Ia adalah sistem fail bebas dan tidak mengganggu antara satu sama lain.

  1. Sebab ruang partition tidak mencukupi

Apabila kami mencipta bekas Docker, pemacu storan Apa yang berlaku apabila docker gagal berkongsi cakera keras? akan dibuat untuk setiap bekas dalam /var/lib/docker/ direktori Apa yang berlaku apabila docker gagal berkongsi cakera keras? Subdirektori berasingan untuk sistem fail bekas. Data fail dalam subdirektori ini semuanya disimpan dalam imej asas, jadi saiznya tidak menjejaskan prestasi pemacu storan. Walau bagaimanapun, apabila kami membungkus imej dan bekas Docker dari satu mesin dan menghantarnya ke mesin lain, apabila pemacu storan Apa yang berlaku apabila docker gagal berkongsi cakera keras? membongkar data, ia menyahmampatkannya ke direktori /var/lib/docker, menghasilkan direktori ini Ruang fail yang diduduki terlalu besar, dan ruang cakera partition di mana /var/lib/docker terletak juga menjadi lebih kecil dengan sewajarnya Rajah berikut mengambil direktori /var/lib/docker sebagai contoh untuk menggambarkan masalah ini:

Apa yang berlaku apabila docker gagal berkongsi cakera keras?_space

Dalam gambar ini, saiz cakera partition /dev/vda1 ialah 50GB dan saiz cakera partition /var/lib/docker ialah 21GB Namun, kerana docker mencipta terlalu banyak bekas, /var / Terdapat ruang yang tidak mencukupi dalam direktori lib/docker, hanya 30.72MB yang tinggal Oleh itu, apabila kita ingin memulakan bekas dari mesin sedemikian dengan kekurangan ruang cakera, akan ada masalah kegagalan permulaan.

  1. Apakah penyelesaian yang berkaitan?
    Sebagai tindak balas kepada masalah di atas, saya telah menyediakan beberapa penyelesaian:

3.1 Kembangkan ruang cakera sekatan

Ini adalah kaedah yang paling biasa untuk mesin maya, kami Anda boleh mengembangkan saiz partition cakera dalam alat pengurusan mesin maya dan mulakan semula mesin maya. Untuk pelayan awan, kebanyakan platform awan menyediakan fungsi pengembangan cakera dalam talian, tetapi proses pengendaliannya agak rumit dan memerlukan berhati-hati untuk mengelakkan kehilangan data.

3.2 Lekapkan direktori /var/lib/docker pada cakera data yang lebih besar

Sediakan cakera yang lebih besar daripada 21GB (seperti 20T) terlebih dahulu dan formatkannya ke dalam format ext4 dan lekapkannya pada direktori /data, dan kemudian pindahkan direktori /var/lib/docker ke cakera data untuk penyimpanan. Arahan operasi khusus adalah seperti berikut:

# 制作文件系统格式
mkfs.ext4 /dev/vdb

# 挂载
mount /dev/vdb /data

# 备份原/var/lib/docker目录下所有数据
cp -au /var/lib/docker/* /data/

# 卸载/var/lib/docker目录
umount /var/lib/docker

# 将/var/lib/docker目录迁移到新的数据盘中
echo '/dev/vdb /var/lib/docker ext4 defaults 0 0' >> /etc/fstab
mount -a
Salin selepas log masuk

3.3 Padamkan imej dan bekas Docker yang tidak lagi digunakan

Kami boleh menggunakan arahan berikut untuk membersihkan ruang cakera:

# 清理所有停止的容器
docker container prune

# 清理所有未被标记的镜像
docker image prune -a

# 删除所有没有容器使用的镜像
docker image prune -a --filter "dangling=true"
Salin selepas log masuk

Ringkasan
Apabila menggunakan Docker, kita perlu sentiasa memberi perhatian sama ada ruang yang digunakan oleh pemacu storan mencukupi, jika tidak, ia boleh menyebabkan kegagalan permulaan. Untuk melakukan ini, anda boleh mengambil salah satu daripada tiga penyelesaian di atas Saya secara peribadi mengesyorkan kaedah kedua, yang boleh menyelesaikan masalah dengan cepat tanpa memusnahkan sistem fail asal. Semoga perkongsian saya dapat membantu anda, terima kasih kerana membaca.

Atas ialah kandungan terperinci Apa yang berlaku apabila docker gagal berkongsi cakera keras?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah saya menggunakan aplikasi ke kluster Swarm Docker? Bagaimanakah saya menggunakan aplikasi ke kluster Swarm Docker? Mar 17, 2025 pm 04:20 PM

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

Apakah pod, penyebaran, dan perkhidmatan Kubernetes? Apakah pod, penyebaran, dan perkhidmatan Kubernetes? Mar 17, 2025 pm 04:25 PM

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)

Bagaimanakah saya membuat skala aplikasi di Kubernet? Bagaimanakah saya membuat skala aplikasi di Kubernet? Mar 17, 2025 pm 04:28 PM

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.

Bagaimana saya melaksanakan kemas kini rolling di Swarm Docker? Bagaimana saya melaksanakan kemas kini rolling di Swarm Docker? Mar 17, 2025 pm 04:23 PM

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.

Bagaimana saya menguruskan penyebaran di Kubernet? Bagaimana saya menguruskan penyebaran di Kubernet? Mar 17, 2025 pm 04:27 PM

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

Bagaimana saya menguruskan perkhidmatan di Swarm Docker? Bagaimana saya menguruskan perkhidmatan di Swarm Docker? Mar 17, 2025 pm 04:22 PM

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

Bagaimana saya membuat kelompok docker swarm? Bagaimana saya membuat kelompok docker swarm? Mar 17, 2025 pm 04:19 PM

Artikel membincangkan membuat dan menguruskan kluster docker swarm, termasuk persediaan, perkhidmatan skala, dan amalan terbaik keselamatan.

Bagaimanakah Swarm Docker berbeza dari Kubernet? Bagaimanakah Swarm Docker berbeza dari Kubernet? Mar 17, 2025 pm 04:18 PM

Artikel ini membandingkan docker swarm dan kubernetes, memberi tumpuan kepada perbezaan mereka dalam seni bina, kemudahan penggunaan, dan ekosistem. Kubernet disukai untuk penyebaran berskala besar kerana skalabiliti dan ciri-ciri canggih, manakala docker swarm sesuai smal

See all articles