【发布时间】:2016-10-17 15:25:13
【问题描述】:
我知道在 docker 中我们可以像这样运行数据卷容器
#create a pure data container based on my data_image
docker run -v /data --name data-volume-container data-vol-container-img
# here I'm using the data volume in a property container (ubuntu)
docker run --volumes-from data-volume-container ubuntu
我的问题是我们如何创建 data_image?
我知道最简单的方法是基于 ubuntu 或类似的东西创建图像
From ubuntu
Copy data /data
CMD["true"]
但问题是,为什么我需要 ubuntu 作为我的基础镜像??? (我知道这没什么大不了的,因为 ubuntu 将在其他场景中重用)。我真的很想知道为什么我不能使用scratch??
FROM scratch
COPY data /data
#I don't know what to put here
CMD ["???"]
我在这里创建的图像是一个虚拟图像,它绝对不执行任何操作,只充当一个虚拟数据容器,即用于docker run -v /data --name my_dummy_data_container my_dummy_data_image
有什么想法吗??
(是不是因为scratch没有实现最低限度的文件系统?但是如果容器没有实现自己的,Docker可以使用宿主系统的文件系统)
【问题讨论】:
-
请注意,现在认为“数据卷容器”已被弃用,因为 docker api 支持将卷作为第一类对象进行管理。也就是说,您可以运行“docker volume create”、“docker volume ls”等内容。
-
感谢@larks。通过 docker volume create 创建的卷不包含任何内容,因此您仍然需要一个容器将内容放在那里,然后与他人共享。这就是数据卷容器的作用:卷容器所基于的 docker 镜像,有一些内置的内容,因此当数据容器被其他应用程序容器使用时,内容已经可用
标签: docker containers volume