Solucionado al actualizar la ventana acoplable a la última versión. Nueva versión:
[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
Ahora las interfaces se eliminan junto con los contenedores. Las antiguas interfaces huérfanas se eliminaron manualmente con el siguiente comando:
# ip link delete <ifname>
Hay tres problemas aquí:
-
Iniciar un solo contenedor no debería aumentar el recuento de
veth
interfaces en su sistema por 2, porque cuando Docker crea unveth
par, un extremo del par está aislado en el espacio de nombres del contenedor y no es visible desde el host. -
Parece que no puede iniciar un contenedor:
Error response from daemon: Cannot start container ...
-
Docker debería estar limpiando el
veth
interfaces automáticamente.
Estos hechos me hacen sospechar que hay algo fundamentalmente mal en su entorno. ¿Puedes actualizar tu pregunta con detalles sobre qué distribución estás usando, qué versión del kernel y qué versión de Docker?
¿Cómo puedo identificar qué interfaces están vinculadas con los contenedores existentes y cómo puedo eliminar la interfaz adicional que estaba vinculada con los contenedores eliminados?
Con respecto a la eliminación manual de veth
interfaces:A veth
la interfaz no es un puente, por lo que, por supuesto, no puede eliminar uno con brctl
.
Para eliminar un veth
interfaz:
# ip link delete <ifname>
Detectar interfaces "inactivas" es un problema más espinoso, porque si solo observa el tráfico, es probable que elimine accidentalmente algo que todavía estaba en uso pero que simplemente no estaba viendo mucha actividad.
Creo que lo que realmente querrías buscar es veth
interfaces cuyo par es también visible en el espacio de nombres de la red global. Puedes encontrar el par de un veth
interfaz utilizando estas instrucciones, y luego sería una simple cuestión de ver si esa interfaz está visible, y luego eliminar una u otra (eliminar un veth
la interfaz también eliminará a su par).