图片可以自定义默认shm大小吗?

时间:2017-07-13 18:38:55

标签: docker

我有一个容器,必须使用大于默认64Mb的/ dev / shm运行。它可以像这样运行它:

docker run --shm-size=1G my-container

虽然必须提供&shm-size'每次争论,容易错过对不熟悉容器的人。如果容器本身可以具有自定义默认shm大小,那将是很好的。这可能吗?

3 个答案:

答案 0 :(得分:1)

没有。我认为不应该出于以下原因:

  • 还应该提出许多其他选择。但代码越少越好。
  • 此选项是系统特定的。我不知道Windows容器是否有这个分区。
  • docker客户端是 runc (这是Docker所贡献的Open Container Initiative的客户端容器)。

然而,你可以做的是在入口点脚本中检查/ dev / shm分区的大小并大声拒绝运行。

答案 1 :(得分:1)

问:图片可以自定义默认shm大小吗?

答:简短回答,

这是不可能的,因为您只能在运行时打开共享内存。

问: 虽然每次都必须提供“shm-size”参数,但不熟悉容器的人很容易错过,这是不方便的。

答:我看到了您的问题。

也许你可以使用docker-labels。将shm-size=1G之类的键值对标签添加到docker images

然后创建一个简单的脚本来执行docker inspect,从图像中读取键值对,然后执行通常的docker run --shm-size=read_value

Docker标签:

  

LABEL指令将元数据添加到图像。 LABEL是键值对。要在LABEL值中包含空格,请使用引号和反斜杠,就像在命令行解析中一样。一些用法示例:

查看

https://docs.docker.com/engine/reference/builder/#label

答案 2 :(得分:1)

从docker 17.04开始,您可以使用--default-shm-size选项。但当然它会产生全球影响

https://github.com/moby/moby/blob/master/CHANGELOG.md#17040-ce-2017-04-05