我使用下面的命令在容器中运行docker:
docker run --rm -ti --privileged -v /var/run/docker.sock:/var/run/docker.sock docker:1.12 sh
在那个容器的shell中,我看到一个包含大量文件的目录。 让我们说/project与文件build.gradle 。 我想开始一个新的容器,并使用下面的命令来挂载这个目录
docker run -ti --rm -v /project:/project openjdk:8-jdk bash -c "ls /project" 。
但是,它看起来像项目目录是空的, ls /project不显示任何文件..
现在试图挂载一个文件:
docker run -ti --rm -v /project/build.gradle:/project/build.gradle openjdk:8-jdk bash -c "ls /project/"
这一次文件夹显示文件。
任何人有一个想法,为什么卷挂载不能按预期工作。 这是一个权限问题?
不。 在“docker”容器里,你只能得到一个Docker客户端,而不是整个事物。 一旦将Docker套接字安装在“docker”容器中,当您执行Docker命令时,它们会直接转到在您的实际Docker主机上运行的Docker“server”。 因此,该文件夹预计将存在于您的Docker主机中。