最适合数据容器的容器?

Ash*_*ken 29 docker

对于仅数据的Docker容器,最合适(最小,最简单)的容器是什么?

在文档中,他们使用training/postgres容器.但是,我相信另一个容器实际上会运行数据库(例如postgres).

http://docs.docker.com/userguide/dockervolumes/

我假设数据容器非常小,因为它通常只为那个容器提供数据量.

创建仅限数据的容器时,可能会忽略容器?

Adr*_*uat 39

更新:现在我们已经命名了卷,您通常根本不想使用数据容器.

对数据容器使用相同的图像 - 在本例中为Postgres图像.您不会让数据容器继续运行,因此不会消耗资源.

使用相同的图像很重要,原因如下:

  • 由于您已经缓存了图像,因此占用的空间更少.
  • 图像有机会使用数据(例如默认文件)播种音量.
  • 权限和所有者将是正确的.

有关更多信息,请参阅仅数据容器疯狂.

  • 好的,你是对的.我正在删除我的回答和评论.该方法的唯一问题是锚定过时的图像. (2认同)

van*_*ome 22

我推荐tianon/true这个dockerfiles集合中的图像.在125字节,它比基于busybox的图像小:

REPOSITORY                 TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
tianon/true                latest              724d63a6172d        35 hours ago        125 B
Run Code Online (Sandbox Code Playgroud)

基于该图像的容器立即退出,该容器适用于仅存储容器.


Mit*_*ent 11

Busybox是基本图像,而不是用户图像,因此对于生产使用来说更加实用,它也很小.

图片泊坞窗页面在这里

BusyBox:嵌入式Linux的瑞士军刀

大约2.5 Mb.Busybox是最小的Linux发行版之一.

BusyBox将许多常见UNIX实用程序的微小版本组合到一个小的可执行文件中.它提供了你通常在GNU fileutils,shellutils等中找到的大多数实用程序的替换.BusyBox中的实用程序通常比它们的全功能GNU兄弟有更少的选项; 但是,包含的选项提供了预期的功能,其行为与GNU对应物非常相似.BusyBox为任何小型或嵌入式系统提供了相当完整的环境.


sci*_*lot 5

这篇文章建议使用一个空的“临时”容器 - 根本没有操作系统:

Dockerfile:

FROM scratch

VOLUME /data
ENTRYPOINT ["/no/such/file"]
Run Code Online (Sandbox Code Playgroud)

我刚刚做了一个空的,图像是... 0 字节!

然后我在构建过程中复制了一个 2k 文件,并且图像是 260 字节,因此必须压缩。

我使用它是因为命名卷在半/无服务器环境中不太有用,例如没有主机的 AWS Fargate,并且您想要部署版本化数据。

更新:如果您希望容器在 docker-compose 中正常工作,则上面的示例将不起作用,因为入口点失败。tianon/true似乎是最好的解决方案,一个返回 true 的小程序。所以你可以使用FROM tianon/true.