Docker卷空

我正在尝试通过Docker教程,并将卷装载到我的主机操作系统中,如

$ sudo docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py 

我试图从我的主机操作系统(OSX)挂载一个目录到VM:

 $ docker run -P --name web -v /Users/simon/source/test:/opt/test training/webapp ls -al /opt/test total 4 drwxr-xr-x 2 root root 40 Jun 27 17:48 . drwxr-xr-x 5 root root 4096 Jun 27 17:51 .. $ 

但从主机操作系统:

 $ ls -al /Users/simon/source/test total 0 drwxr-xr-x 3 simon staff 102 Jun 27 10:55 . drwxr-xr-x@ 36 simon staff 1224 Jun 27 10:55 .. -rw-r--r-- 1 simon staff 0 Jun 27 10:55 foo $ 

也许有关 – 我的理解是docker卷应该存储在/var/lib/docker ,这对我来说是不存在的:

 $ ls -al /var/lib/docker ls: /var/lib/docker: No such file or directory 

Docker服务器在达尔文上不起作用。 这就是为什么你使用虚拟机。 当您使用-v ,您实际上将命令发送到运行在vm上的docker服务器。 您发送或相对于服务器的path,而不是客户端。 /var/lib/docker存在于虚拟机上,而不是主机上。 您看到的空卷是预期的行为,因为它从不存在的VM挂载/Users/simon/source/test ,因此由docker创build并为空。

为了实现你想要做的事情,要么移动到虚拟机,要么设置共享目录,甚至更好,不要使用绑定挂载。 请参阅Dockerfile的ADD作为替代。