You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用docker stack部署时,如何为/dev/shm挂载带自定义选项的tmpfs

在Docker Swarm中为/dev/shm挂载带自定义选项的tmpfs

我之前在部署Swarm服务时也遇到过这个问题——单容器用docker run加--tmpfs参数很轻松,但Swarm模式下的Compose配置写法确实容易被忽略。其实Docker Compose 3.x规范是支持给tmpfs挂载添加自定义选项的,只需要在volumes配置里补充tmpfs子字段即可。

修改后的docker-compose.yml配置

version: '3.6'
services:
  master:
    image: "my-image"
    ports:
      - "8080:8080"
    volumes:
      - type: tmpfs
        target: /dev/shm
        tmpfs:
          size: 96636764160  # 90GB换算为字节数:90 * 1024^3
          mode: 0777         # 对应rw权限,默认即为rw,可显式指定
          nosuid: true
          nodev: true
          exec: true

关键配置说明

  • size参数注意点:Compose的tmpfs配置不支持90g这种人类可读的单位,必须换算成字节数。90GB的换算公式是:90 * 1024 * 1024 * 1024 = 96636764160
  • 布尔选项设置:nosuid、nodev、exec这些选项直接设为true即可生效
  • mode字段:对应挂载的权限,0777就是读写权限,和你需要的rw选项对应

验证配置是否生效

部署服务后,进入容器执行mount命令查看/dev/shm的挂载参数:

docker exec -it <你的容器ID或名称> mount | grep /dev/shm

如果配置生效,你会看到类似这样的输出:

tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,exec,relatime,size=96636764160)

内容的提问来源于stack exchange,提问作者aht

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:24:42