GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengidentifikasi antarmuka veth yatim piatu dan cara menghapusnya?

Diperbaiki dengan memutakhirkan buruh pelabuhan ke versi terakhir. Versi baru:

[email protected] ~ # docker version
Client:
 Version:      1.8.1
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   d12ea79
 Built:        Thu Aug 13 02:35:49 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.8.1
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   d12ea79
 Built:        Thu Aug 13 02:35:49 UTC 2015
 OS/Arch:      linux/amd64

Sekarang antarmuka dihapus bersama dengan wadah. Antarmuka yatim lama dihapus secara manual dengan mengikuti perintah:

# ip link delete <ifname>

Ada tiga masalah di sini:

  1. Memulai satu penampung tidak boleh menambah jumlah veth antarmuka di sistem Anda sebanyak 2, karena ketika Docker membuat veth pasangan, salah satu ujung pasangan diisolasi di ruang nama penampung dan tidak terlihat dari host.

  2. Sepertinya Anda tidak dapat memulai penampung:

    Error response from daemon: Cannot start container ...
    
  3. Docker seharusnya membersihkan veth antarmuka secara otomatis.

Fakta-fakta ini membuat saya curiga bahwa ada sesuatu yang salah secara fundamental di lingkungan Anda. Bisakah Anda memperbarui pertanyaan Anda dengan detail tentang distribusi apa yang Anda gunakan, versi kernel mana, dan versi Docker mana?

Bagaimana cara mengidentifikasi antarmuka mana yang ditautkan dengan penampung yang ada, dan bagaimana cara menghapus antarmuka tambahan yang ditautkan dengan penampung yang dihapus?

Sehubungan dengan menghapus veth secara manual antarmuka:A veth antarmuka bukanlah jembatan, jadi tentu saja Anda tidak dapat menghapusnya dengan brctl .

Untuk menghapus veth antarmuka:

# ip link delete <ifname>

Mendeteksi antarmuka "tidak aktif" adalah masalah yang lebih pelik, karena jika Anda hanya melihat lalu lintas, Anda mungkin secara tidak sengaja menghapus sesuatu yang masih digunakan tetapi tidak melihat banyak aktivitas.

Saya pikir apa yang sebenarnya ingin Anda cari adalah veth antarmuka yang rekannya juga terlihat di namespace jaringan global. Anda dapat menemukan peer dari veth antarmuka menggunakan instruksi ini, dan kemudian akan menjadi masalah sederhana untuk melihat apakah antarmuka itu terlihat, dan kemudian menghapus satu atau yang lain (menghapus veth antarmuka juga akan menghapus rekannya).


Linux
  1. Cara membuat dan menghapus grup pengguna di Linux

  2. Bagaimana cara menghapus direktori dan folder di Linux?

  3. Bagaimana Mengubah Ukuran Partisi Dan Sistem File Pada Mereka?

  1. Cara memeriksa Versi OS dan Linux

  2. Cara Menghapus Buffer Memori dan Cache di Linux

  3. Bagaimana cara mengidentifikasi nama perangkat lunak server DNS jarak jauh dan versinya?

  1. Bagaimana Cara Menginstal Python di Ubuntu 20.04 dan 18.04?

  2. Cara Menemukan dan Menghapus Direktori dan File Kosong di Unix

  3. Cara Melihat dan Menghapus Aturan Iptables – Daftar dan Flush