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
作为替代。