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:
-
L'avvio di un singolo contenitore non dovrebbe aumentare il conteggio di
veth
interfacce sul tuo sistema per 2, perché quando Docker crea unveth
coppia, un'estremità della coppia è isolata nello spazio dei nomi del contenitore e non è visibile dall'host. -
Sembra che tu non sia in grado di avviare un contenitore:
Error response from daemon: Cannot start container ...
-
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).