首页 > 解决方案 > docker-compose 并列出卷内容

问题描述

也许我只是没有正确理解,但我试图从视觉上验证我是否正确使用了卷。

在我的 docker-compose 中,我会有类似的东西

some-project:
  volumes:
   - /some-local-path/some-folder:/v-test

我可以通过“ls -la /some-local-path/some-folder”验证它的内容

在一些项目 Dockerfile 我会有类似的东西

  RUN ls -la /v-test

返回“没有这样的文件或目录”

这是正确的使用方法吗?如果是这样,为什么我不能从容器内查看内容?

标签: dockerdocker-compose

解决方案


在考虑文件中块Dockerfile之外的任何内容之前运行的所有内容。映像构建看不到仅在 中声明的卷或环境变量,也无法访问其他服务。build:docker-compose.ymldocker-compose.yml

在您的示例中,首先尝试Dockerfile目录ls然后Compose 将使用绑定挂载启动容器。

如果您只是为了验证而这样做,您可以使用文件docker-compose run中的大部分设置创建一个容器docker-compose.yml,但可以使用备用命令:

docker-compose run some-project \
  ls -la /v-test

(这样做需要图像CMD是一个格式良好的 shell 命令;它没有ENTRYPOINT或者是一个以运行.ENTRYPOINT结尾的包装脚本。如果你只有,请将其更改为指令,将其合并为一行。)exec "$@"CMDENTRYPOINTCMDCMD


推荐阅读