繁体   English   中英

Mac上的Docker:无法运行MySQL

[英]Docker on Mac: Unable to run MySQL

我是第一次使用Docker。 在运行命令: make kickoff我得到错误:

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: Encountered errors while bringing up the project.
make: *** [up] Error 1

运行docker toolbox时,docker守护程序在VirtualBox VM中运行。 因此,守护程序(以及在该VM中运行的容器)无权访问主机上的文件(Mac OS X)。

当您将主机中的目录绑定安装到容器中(以便容器可以访问这些文件)时,文件总是从运行守护程序的主机上装入; 您的情况是VirtualBox VM。

Docker Toolbox使用“技巧”来允许您从主机装载文件; /Users/目录中的文件通过VirtualBox“来宾添加”与VirtualBox VM共享。 这意味着当您运行时;

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

泊坞窗守护程序将VM中/Users/myname/somedir目录挂载到容器中。 由于来宾添加了“技巧”,该路径实际上与OS X计算机共享,因此容器“看到”了OS X计算机中的文件。

但是, /Users/目录之外的任何目录都不在OS X机器和VM之间共享。 如果您尝试绑定安装虚拟机中不存在的路径,则docker将创建一个空目录 (假定您要安装目录,因为它无法确定它应该是目录还是文件),并将该目录装入容器中。

在您的示例中,您尝试绑定mount;

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

在容器内部;

/etc/mysql/mysql.cnf

/Applications目录中没有与VM共享,因此搬运工创建一个名为空目录 custom-my.cnf的虚拟机内,然后尝试安装该目录在/etc/mysql/mysql.cnf容器内。 这将失败,因为您无法在文件顶部安装目录,并且Linux会产生错误“非目录”。

解决您的问题;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM