Solucionado! – Cannot start a container. System error: not a directory – Docker Compose

dockerDespués de estar un tiempo utilizando Docker en mis proyectos de desarrollo un buen día, sin previo aviso, todo empezó a ir mal.

Al intentar levantar unos containers con docker-compose up la ejecución se detenía con un error extraño: Cannot start container XXXXX: System error: not a directory.

docker-01-not-a-directory

Pasado el susto inicial empecé a investigar qué podia estar fallando en un sistema que no daba problemas. De entrada descarté posibles upgrades del motor Docker. El sistema seguia siendo el mismo.

Analizando el fichero docker-compose.yml llegué a la conclusión de que el problema ocurria en las imágenes que querían montar ficheros desde el apartado volumes:docker-01b-file-volumes

Buscando en Internet la mayoría de comentarios dicen que por lo visto docker-compose ya no deja montar ficheros mediante volúmenes. Esta explicación era rara, porque una primera solución fue comentar las lineas que montaban ficheros, levantar docker-compose, detener el container, descomentar y volver a levantar.

En ese momento ya no daba problemas y el fichero aparecía en su lugar correspondiente.

No tenia sentido. Decidí inspeccionar el contenedor, docker inspect <containername>, que daba problemas para recabar más información.docker-02-volumes

Todo parecia correcto, pero aún tenía otro lugar a revisar.

Mi entorno de desarrollo es un Mac OSX, con lo que para permitir que Docker se ejecute he de utilizar docker-machine via VirtualBox como intermediario entre OSX y Docker.

Inicié sesión y miré los volúmenes que docker-machine tenia disponibles.

docker-03-ssh-login

docker-04-no-users-folder

Enseguida ví el problema. Se supone que en Mac docker-machine al instalarse en VirtualBox crea una carpeta compartida o shared folders, dando permisos de escritura al directorio /Users para que la máquina virtual docker pueda acceder y gestionar los datos.

En el listado anterior no aparecía. Mediante la GUI de VirtualBox la generé de forma manual.

docker-05-create-users-shared-folder-virtualbox

Apagué la máquina virtual, y luego via docker-machine la volví a iniciar y para ver el resultado.

docker-06-restart

Ahora ya aparecía una entrada /Users en el listado de mount.

Cerré la sesión en docker-machine y intenté levantar de nuevo docker-compose. En esta ocasión todo volvió a la normalidad y los contenedores se iniciaron sin más problemas. docker-07-up-again

Por lo visto, docker-machine no tenia acceso a los recursos debido a que no tenia disponible el shared folder de /Users. Pensándolo con más calma todo se debió a una prueba anterior que realicé con el docker-osx-dev. Este es un sistema que utiliza rsync para sincronizar directorios locales del host con el contenedor.

Se utiliza para sustituir los shared folders gestionados por VirtualBox, que son más lentos, por un sistema rsync que permite una mayor velocidad. Pero el primer paso que realiza docker-osx-dev es eliminar la carpeta compartida de VirtualBox debido a que no la necesita.

Una vez descubierto el problema, ya tiene sentido y por fin puedo volver a utilizar Docker sin mayores contratiempos.

 

 


Publicado

en

por

  • Los diez negritos

    “Los Diez Negritos“, una cautivante novela de misterio escrita por Agatha Christie, es un tour de force en el género del suspense. Publicada en 1939 bajo el título original “And Then There Were None”, esta obra maestra sumerge a los lectores en una trama inquietante, donde cada página está tejida con intriga y giros sorprendentes.…

  • Sherlock Holmes – El sabueso de los Baskerville

    “El Sabueso de los Baskerville” es una obra maestra del misterio escrita por Sir Arthur Conan Doyle, y es parte de la serie de Sherlock Holmes. La novela nos transporta a los páramos sombríos y misteriosos de Dartmoor, donde la leyenda de la familia Baskerville se entrelaza con un enigma de asesinato y oscuridad. En…

  • El juego de Ender

    “El Juego de Ender” es una novela de ciencia ficción escrita por Orson Scott Card que se ha convertido en un referente del género. La historia nos sumerge en un futuro distópico, donde la humanidad se encuentra en una constante lucha contra una raza alienígena conocida como los Insectores. La trama sigue a Andrew “Ender”…

  • Wonder – La lección de August

    Su cara lo hace distinto y él solo quiere ser uno más. Camina siempre mirando al suelo, la cabeza gacha y el flequillo tratando en vano de esconder su rostro, pero, aun así, es objeto de miradas furtivas, susurros ahogados y codazos de asombro. August sale poco, su vida transcurre entre las acogedoras paredes de…

  • 20.000 leguas de viaje submarino

    “Veinte Mil Leguas de Viaje Submarino” fue originalmente publicada en Francia en 1869 por el autor Jules Verne, cuyo nombre solemos castellanizar como Julio Verne. Esta obra se clasifica principalmente como una novela de aventuras, aunque contiene matices de ciencia ficción y toques de fantasía. Con el paso del tiempo, la dimensión de ciencia ficción…

  • Obsidiana, sangre y oro

    En el año 2011, Érik de Diego se encuentra sumido en una profunda crisis existencial que lo impulsa a tomar una drástica decisión: huir y tomarse un tiempo para reflexionar sobre su vida. Su primer destino es Guatemala, un país que poco a poco lo cautiva y lo envuelve en su rica historia, conflictos, desigualdades…

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *