Docker en Mac: no se puede ejecutar MySQL

Estoy usando Docker por primera vez. Al ejecutar el command: make kickoff , recibo un error:

 myapp_php_apache_engine_dev is up-to-date Starting myapp_mysql_dev ERROR: for mysql Cannot start service mysql: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"process_linux.go:359: container init caused \\\"rootfs_linux.go:53: mounting \\\\\\\"/Applications/MAMP/htdocs/clients/codingmachine/myapp/mysql/custom-my.cnf\\\\\\\" to rootfs \\\\\\\"/mnt/sda1/var/lib/docker/aufs/mnt/2ab6b2578ad9f8da2d453aefa5cd9b288fee30dd2d73efc3048627cf0861d55a\\\\\\\" at \\\\\\\"/mnt/sda1/var/lib/docker/aufs/mnt/2ab6b2578ad9f8da2d453aefa5cd9b288fee30dd2d73efc3048627cf0861d55a/etc/mysql/mysql.cnf\\\\\\\" caused \\\\\\\"not a directory\\\\\\\"\\\"\"\n" ERROR: Encountenetworking errors while bringing up the project. make: *** [up] Error 1 

Al ejecutar la caja de herramientas del acoplador, el daemon del acoplador se ejecuta en una máquina virtual de VirtualBox. El daemon (y los contenedores, que se ejecutan dentro de esa máquina virtual) por lo tanto no tienen acceso a los files en su host (Mac OS X).

Cuando enlaza, monta un directory desde su host en el contenedor (para que el contenedor pueda acceder a esos files), los files siempre se montan desde el host en el que se ejecuta el daemon ; en su caso, la VM VirtualBox.

Docker Toolbox usa un "truco" para permitirle montar files desde su host; los files dentro del directory /Users/ se comparten con VirtualBox VM usando VirtualBox "guest additions". Esto significa que cuando corres;

 docker run -v /Users/myname/somedir:/var/www/html -d nginx 

El daemon docker monta el directory /Users/myname/somedir desde la VM en el contenedor. Debido al "truco" de las adiciones de invitados, este path en realidad se comparte con su máquina OS X, por lo que el contenedor "ve" los files desde su máquina OS X.

Sin embargo, cualquier directory fuera del directory /Users/ no se comparte entre la máquina OS X y la VM. Si intenta vincular-montar una ruta que no existe dentro de la máquina virtual, la window acoplable crea un directory vacío (supone que desea montar un directory, porque no tiene manera de saber si debe ser un directory o un file), y monta ese directory dentro del contenedor.

En su ejemplo, intenta vincular mount;

 /Applications/MAMP/htdocs/clients/codingmachine/myapp/mysql/custom-my.cnf 

Dentro del contenedor en;

 /etc/mysql/mysql.cnf 

El directory /Applications no se comparte con la máquina virtual, por lo que Docker crea un directory vacío llamado custom-my.cnf dentro de la VM, luego intenta montar ese directory en /etc/mysql/mysql.cnf dentro del contenedor. Esto falla, porque no puede montar un directory en la parte superior de un file, y Linux produce un error "no es un directory".

Para resolver su problema;