使用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
相关产品推荐
相关产品推荐

