首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的Docker容器找不到它应该创建的文件?

为什么我的Docker容器找不到它应该创建的文件?
EN

Stack Overflow用户
提问于 2021-08-31 15:07:48
回答 1查看 50关注 0票数 0

我有一个Docker容器(运行在WindowsVLS2上的.NET容器),它运行的是Docker Core5.0应用程序,它的Dockerfiledocker-compose.yml是由其他人创建的。我使用docker run并传递了一个环境变量和端口映射来加速它。它工作得很好,直到它尝试创建一个文件,它试图用下面这样的语句来完成:System.IO.File.WriteAllText($"/output_json/myfile.json", jsonString);,并输出错误。错误消息显示

代码语言:javascript
复制
Could not find a part of the path '/output_json/myfile.json'.

由于Docker容器本质上是一个虚拟化的文件系统,因此我假设我需要为该容器分配一些空间,或者与它共享主机上的一个文件夹,以便它有一个可访问的位置来保存文件。对吗?

编辑:我刚刚在docker-compose.yml中找到了这个

代码语言:javascript
复制
services:
  <servicename>:
    volumes:
      - ./output:/output_json

这是否意味着应该创建一个output_json目录?docker-compose与使用docker run创建的容器没有任何关系吗

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-31 15:55:23

docker镜像中可能不存在路径/output_json。这可能是因为您需要将主机上的一个目录映射到该路径。然后容器可以把它的输出放在那里,你可以在容器完成后获取它。

要尝试它,您可以创建一个空目录并将其映射到容器中的/output_json路径,方法是从命令行运行以下两个命令

代码语言:javascript
复制
mkdir %temp%\container_output
docker run -v %temp%\container_output:/output_json <other options> <image name>

然后执行cd %temp%\container_output,看看容器产生了什么输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69001143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档