使用 docker stack 时挂载 tmpfs

aht*_*aht 7 docker docker-compose docker-stack

部署独立容器时,我可以使用自定义选项将 /dev/shm 挂载为 tmpfs,如下所示:

docker run --name my-container -v /dev/shm --tmpfs /dev/shm:rw,nosuid,nodev,exec,size=90g my-image
Run Code Online (Sandbox Code Playgroud)

但是,在使用docker stack deploy. 此处的文档中似乎没有任何相关信息。与以下docker-compose.yml

version: '3.6'
services:
  master:
  image: "my-image"
  ports:
   - "8080:8080"
  volumes:
   - type: tmpfs
     target: /dev/shm
Run Code Online (Sandbox Code Playgroud)

/dev/shm使用默认选项安装。如何使用/dev/shm选项安装?(rw,nosuid,nodev,exec,size=90g)docker stack deploy

小智 5

阅读此处的文档,--tmpfs 只能与独立容器一起使用,对于服务,请使用 --mount:

--tmpfs:挂载 tmpfs 挂载,不允许指定任何可配置选项,并且只能与独立容器一起使用

--tmpfs 和 --mount 之间的区别描述如下

  • --tmpfs 标志不允许您指定任何可配置选项。

  • --tmpfs标志不能与swarm 服务一起使用。您必须使用--mount。