docker上的应用程序商店应该在哪上传文件?

我正在构build一个Web应用程序,需要允许用户上传个人资料照片。 我希望应用程序是独立的,以便人们不需要拥有s3或其他云存储服务帐户。

最好把docker集装箱尽可能地抛弃,所以我想我应该创build一个卷。 所以我希望自动创build卷,所以在运行容器时不需要指定卷,但dockerfiles中的VOLUME指令的文档让我感到困惑。

VOLUME指令创build一个具有指定名称的挂载点,并将其标记为从本地主机或其他容器中持有外部安装的卷。

这是什么意思? 数据是由应用程序写的,它不是来自外部的源。

当您在dockerfile中标记一个卷时,比如说VOLUME /site/uploads ,它可以很容易地使用--volumes-from <container-name>来运行另一个容器,并且可以在所有容器中使用/site/uploads已写入的数据和将被写入的数据(如果第一个容器仍在运行)。

另外,在第一次启动容器后,您将可以使用docker volume ls来查看该容量。

如果删除容器,唯一的问题是你将失去docker inspect <container-name>提供的映射,告诉你容器创build了哪个卷。 要查看你的容器真正清楚而快速地创build的体积,请尝试docker inspect <container-name> | jq '.[].Mounts' docker inspect <container-name> | jq '.[].Mounts'如果你有jq安装。 否则, docker inspect <container-name> | grep Mounts -A 10 docker inspect <container-name> | grep Mounts -A 10可能就足够了,当你只有一个卷。 (你也可以自己浏览所有的json)

即使您删除了创build该卷的容器,该卷仍将保留在系统中,除非运行docker volume rm <volume-name>否则将使用docker volume ls查看。

注意:我正在使用docker版本1.10.3

你不会有任何问题,图像将被上传到挂载的文件系统没有问题。

也许你必须指定上传文件夹的免费权限,以便你可以在上面写下。