我有一个Docker容器(运行在WindowsVLS2上的.NET容器),它运行的是Docker Core5.0应用程序,它的Dockerfile和docker-compose.yml是由其他人创建的。我使用docker run并传递了一个环境变量和端口映射来加速它。它工作得很好,直到它尝试创建一个文件,它试图用下面这样的语句来完成:System.IO.File.WriteAllText($"/output_json/myfile.json", jsonString);,并输出错误。错误消息显示
Could not find a part of the path '/output_json/myfile.json'.由于Docker容器本质上是一个虚拟化的文件系统,因此我假设我需要为该容器分配一些空间,或者与它共享主机上的一个文件夹,以便它有一个可访问的位置来保存文件。对吗?
编辑:我刚刚在docker-compose.yml中找到了这个
services:
<servicename>:
volumes:
- ./output:/output_json这是否意味着应该创建一个output_json目录?docker-compose与使用docker run创建的容器没有任何关系吗
发布于 2021-08-31 15:55:23
docker镜像中可能不存在路径/output_json。这可能是因为您需要将主机上的一个目录映射到该路径。然后容器可以把它的输出放在那里,你可以在容器完成后获取它。
要尝试它,您可以创建一个空目录并将其映射到容器中的/output_json路径,方法是从命令行运行以下两个命令
mkdir %temp%\container_output
docker run -v %temp%\container_output:/output_json <other options> <image name>然后执行cd %temp%\container_output,看看容器产生了什么输出。
https://stackoverflow.com/questions/69001143
复制相似问题