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

配置Docker Compose的tmpfs卷出错,将指定docker run命令转为Compose配置

解决Docker Compose中tmpfs卷的配置错误问题

我来帮你排查这个tmpfs配置的问题~首先看你原来的docker run命令里,--tmpfs /dev/shm:rw,nosuid,nodev,exec这个参数在Compose里的写法和你当前的配置有几个关键错误,我先给你修正后的完整配置,再解释问题出在哪:

修正后的Docker Compose配置(推荐写法)

version: "3"
services:
  centos-testing:
    image: centos:7
    privileged: true
    tty: true
    stdin_open: true
    ulimits:
      nproc: 655353
      nofile:
        soft: 20000
        hard: 40000
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
    # 直接用tmpfs字段对应docker run的--tmpfs参数
    tmpfs:
      - /dev/shm:rw,nosuid,nodev,exec

你原来配置的错误点解析

  1. 多余的source字段:tmpfs是临时内存文件系统,不需要关联宿主机的源路径,你原来写的source: /dev/shm完全没必要,反而会导致配置错误。
  2. target路径错误带参数:target只需要指定容器内的挂载路径(也就是/dev/shm),不能把挂载参数(rw,nosuid,nodev...)跟在后面,这些参数需要和路径一起放在tmpfs的条目里,或者用长格式单独配置。
  3. 没必要硬套volumes长格式:Compose专门提供了tmpfs顶级配置项(在service节点下),完全对应docker run的--tmpfs参数,写法更简洁直观,比硬套volumes长格式更不容易出错。

另外补充一下:你原来docker run里的-v /dev/shm其实会被--tmpfs /dev/shm覆盖,所以在Compose里只需要保留tmpfs的配置即可,不需要额外挂载宿主机的/dev/shm。

用上面修正后的配置运行docker-compose up -d,容器应该就能正常启动,并且/dev/shm会以你指定的参数挂载为tmpfs文件系统啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:22:06