can';t在docker中的docker中列出文件(dind)
我面对这个奇怪的问题,无法解释原因can';t在docker中的docker中列出文件(dind),docker,Docker,我面对这个奇怪的问题,无法解释原因 $ docker run -d --name dind --privileged --net=host -v `pwd`:/app -w /app docker:stable-dind fe66d6e7e5effcf15e439a332a2368fddab810e9bc8ac3445392c8e56b0aa38a $ docker exec dind ls Dockerfile $ docker exec dind docker run -v `pwd`:
$ docker run -d --name dind --privileged --net=host -v `pwd`:/app -w /app docker:stable-dind
fe66d6e7e5effcf15e439a332a2368fddab810e9bc8ac3445392c8e56b0aa38a
$ docker exec dind ls
Dockerfile
$ docker exec dind docker run -v `pwd`:/app -w /app alpine ls
$ docker exec dind docker build -t demo .
Sending build context to Docker daemon 521.7kB
Step 1/24 : FROM alpine
那么为什么我在docker中运行的docker容器中看不到我的文件呢
为什么它可以用命令
docker build
读取文件Dockerfile
,但不能docker run
?这是因为代码中的pwd
将在主机中解析,而不是在容器中解析,因此容器中的容器
将获取主机的当前目录,不是容器机的当前目录,您可以通过更改以下命令来证明:
$ docker exec dind docker run -v `pwd`:/app -w /app alpine ls
$docker exec dind docker run-v`pwd`:/app-w/app-ls
到
$docker exec dind docker run-v/app:/app-w/app-ls
然后,您将看到Dockerfile输出。仅供参考
$ docker exec dind docker run -v /app:/app -w /app alpine ls