Tag: 泊坞窗卷

如何在Docker .NET Core Web应用程序中保存数据?

我无法理解如何在运行Docker的WebApi-app中处理数据。 在我的应用程序中,用户可以上传这样存储的文件: ~\App_Data\accounts\user123\files\<sha256>.bin 没有configuration任何卷,与我的应用程序图像的Docker容器似乎工作正常,写入文件没有任何问题。 现在我想configuration,以便文件结束的地方,我可以明确指定,而不是在默认docker卷文件夹。 我假设我需要创build一个卷映射? 我试图创build一个文件夹,并将其映射到“/ App_Data”。 它仍然像以前一样工作,但我仍然没有看到这个文件夹中的任何文件。 这个文件夹的写权限是否存在问题? 如果没有访问权限,Docker将回退并写入默认卷? 什么用户/组应该有写入权限到这个文件夹? 有没有“docker”用户? 我在Synology NAS上运行这个程序,所以我只使用标准的Docker UI和“添加文件夹”button。 这是我试过的文件夹:

启动Docker容器来处理HTTP请求

我正在构build一个Web应用程序,供用户pipe理项目中的文件。 每个用户可以有多个项目,每个项目可以有多个文件。 我已经实现了这个使用Docker,其中每个项目是一个Docker卷。 当用户单击Web应用程序界面中的button修改其项目中的文件时,Web服务器configuration并启动一个工作者(这是另一个Docker实例)来修改Docker卷中的文件。 迄今为止,这一切都很好。 但是,现在我想通过HTTP提供这些项目文件。 我想到的策略是: Web服务器(如nginx)接受来自用户的传入HTTP请求 Web服务器检查传入请求以确定正在请求哪个项目。 例如,如果URL是sparkle-pony.myapp.com ,那么我们知道正在请求sparkle-pony项目。 如果这个项目不存在,nginx响应404 Not Found响应。 Web服务器还检查用户是否已login,以及login的用户是否有权查看项目。 否则,Web服务器将响应403 Forbidden HTTP响应。 Web服务器configuration并启动一个新的Docker容器,可能是另一个nginx进程。 部分configuration包括将正确的Docker卷安装到新容器上。 我们将这个新启动的容器称为“内部”容器,将现有容器称为“外部”容器。 外部容器将这个HTTP请求转交给内部容器,或者作为内部容器响应的代理。 内部容器可以访问项目的正确Docker卷,并确保请求用户拥有正确的权限,从而检查URLpath并从D​​ocker卷提供正确的项目文件。 请求被妥善处理后,内部容器closures。 所以,尽pipe如此,我有三个问题: 这是一个合理的策略? 它确实涉及启动一个新的Docker容器为每个传入的HTTP请求,但我认为没关系… 将HTTP请求从一个容器转交给另一个容器的最佳方式是什么? 还是外部容器必须代理来自内部容器的响应? 有人可以提供一些指针或如何设置这样的项目的例子? 有可能是我还不知道的一些工具或技术。 谢谢!

如何将Docker卷用作Mesos / Marathon的持久卷?

我正在CoreOS上运行Mesos和Ceph集群,并使用一个Ceph RBD Docker卷插件 ,但是对于Mesos / Marathon如何使用这个插件 ,我还不太清楚…为单个Docker容器创build/使用rbd卷虽然工作正常。 我不能find任何文章/博客文章/无论是通过马拉松处理这些卷的自动创build(以及在“Mesos”从属之间的“任务迁移”,重新映射)这些卷。 对我来说尤为重要的是如何在每个实例需要拥有自己的卷时运行有状态服务的多个实例(想象一下Mesos / Marathon上的MongoDB副本集 )。 我知道Mesos持续卷文档 ,我也看到了马拉松的问题 ,但我仍然很困惑如何或何时这将是可用的… 在这里还有其他的问题: 如何使用卷 – 从马拉松 在Mesos上的Docker:卷被放置在哪个节点上? Docker卷插件马拉松 不幸的是,这并不能真正解决这个问题。 使用RexRay的EMC代码示例也仅涵盖一个实例示例,我还可以轻松处理上面提到的volume插件: { "id": "nginx", "container": { "docker": { "image": "million12/nginx", "network": "BRIDGE", "portMappings": [{ "containerPort": 80, "hostPort": 0, "protocol": "tcp" }], "parameters": [{ "key": "volume-driver", "value": "rbd" }, { "key": "volume", "value": "nginx-data:/data/www" […]