我面对这个奇怪的问题,无法解释原因。
$ 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容器中的文件?
为什么它可以使用命令Dockerfile
读取文件docker build
,但不能读取docker run
?
答案 0 :(得分:1)
这是因为代码中的pwd
将在主机而不是容器中进行解析,因此the container which in the container
获取主机的当前目录而不是容器的当前目录,您可以通过更改以下命令来证明这一点:
$ docker exec dind docker run -v `pwd`:/app -w /app alpine ls
到
$ docker exec dind docker run -v /app:/app -w /app alpine ls
然后,您将看到Dockerfile输出。仅供参考。