GNU/Linux >> Linux Esercitazione >  >> Linux

Come identificare le interfacce veth orfane e come eliminarle?

Risolto aggiornando la finestra mobile all'ultima versione. Nuova versione:

[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

Ora le interfacce vengono rimosse insieme ai contenitori. Le vecchie interfacce orfane sono state eliminate manualmente con il seguente comando:

# ip link delete <ifname>

Ci sono tre problemi qui:

  1. L'avvio di un singolo contenitore non dovrebbe aumentare il conteggio di veth interfacce sul tuo sistema per 2, perché quando Docker crea un veth coppia, un'estremità della coppia è isolata nello spazio dei nomi del contenitore e non è visibile dall'host.

  2. Sembra che tu non sia in grado di avviare un contenitore:

    Error response from daemon: Cannot start container ...
    
  3. Docker dovrebbe ripulire il veth interfacce automaticamente.

Questi fatti mi fanno sospettare che ci sia qualcosa di fondamentalmente sbagliato nel tuo ambiente. Puoi aggiornare la tua domanda con i dettagli su quale distribuzione stai utilizzando, quale versione del kernel e quale versione di Docker?

Come posso identificare quali interfacce sono collegate ai contenitori esistenti e come posso rimuovere l'interfaccia aggiuntiva che era collegata ai contenitori rimossi?

Per quanto riguarda l'eliminazione manuale di veth interfacce:A veth interface non è un bridge, quindi ovviamente non puoi eliminarne uno con brctl .

Per eliminare un veth interfaccia:

# ip link delete <ifname>

Rilevare le interfacce "inattive" è un problema più spinoso, perché se guardi solo il traffico potresti eliminare accidentalmente qualcosa che era ancora in uso ma che non vedeva molta attività.

Penso che quello che vorresti effettivamente cercare sia veth interfacce il cui peer è anche visibile nello spazio dei nomi della rete globale. Puoi trovare il peer di un veth interfaccia utilizzando queste istruzioni, e quindi sarebbe una semplice questione di vedere se quell'interfaccia è visibile, e quindi eliminare l'uno o l'altro (eliminando un veth interface rimuoverà anche il suo peer).


Linux
  1. Come eliminare una directory e una cartella in Linux?

  2. Come ridimensionare partizioni e filesystem su di esse?

  3. Come trovare ed eliminare directory e file vuoti in Unix

  4. Come visualizzare ed eliminare le regole di Iptables:elenco e svuotamento

  5. Come controllare il sistema operativo e la versione utilizzando un comando Linux

Come trovare ed eliminare i collegamenti simbolici interrotti in Linux

Come trovare ed eliminare directory vuote in Linux

Come trovare file duplicati in Linux e rimuoverli

Come creare, rinominare ed eliminare branch Git

Schemi di colori in Vim:come cambiarli e usarli

Come eliminare file e directory utilizzando la riga di comando di Linux