Docker卷与Visual Studio

我在Visual Studio 2017中创build了一个具有Docker支持的Web项目(我的主机是Windows 10机器)。 我的图像基于Linux。

我也创build了一个webapi用户可以上传图片。 我必须将此图片存储在文件系统上。 目前,我正在这样做:

 File.WriteAllBytes(path, bytes); // path = /pictures/abc.jpg 

我可以像这样读回图像:

 byte[] bytes = File.ReadAllBytes(path); 

一切工作正常。

问题是照片存储在我的容器中,但是我想将它存储在我的主机上(最后,docker镜像将托pipe在Raspberry Pi上,我必须将这些照片存储在SD卡上)。

我认为解决scheme是使用VOLUME。 我用这个指令修补了一下,但是没能看到我的主人的照片…我怎么能这样做呢?

解决scheme是在这个文件

泊坞窗,compose.override.yml

 version: '3' services: abc: environment: - ASPNETCORE_ENVIRONMENT=Development ports: - "5001:80" volumes: - .:/src - ./pictures:/pictures // <- The pictures folder is created where my docker project is 

您需要使用docker卷。 您可以像下面一样在主机上设置音量

 docker run -v ~/Desktop/images:/my/images/inside/docker 

确保你的代码写入容器内的/my/images/inside/docker 。 这也将它移到主机。

您也可以使用命名卷

 docker volume create images docker run -v images:/my/images ... 

这将存储在一个容量甚至容器死亡将保持的图像。 但是这不会将其存储在您的主机上

编辑-1

所以docker-compose.override.yml是你需要使用的。 将文件的内容更改为

 version: '3' services: ci-build: volumes: - .:/src - ~/Desktop/images:/images/inside 

这将结合这两个文件,然后运行它。