在没有 noexec 选项的情况下将卷挂载到 docker 容器中

poi*_*212 2 docker docker-compose

据我所知,docker(也包括 docker-compose)使用 noexec 选项将卷安装到容器中,因此我无法从安装的目录中启动任何程序。


services:
  app:
    build:
      context: .
      dockerfile: Dockerfile.development
    command: sh -c "rm -f tmp/pids/server.pid && /app/bin/rails s -b 0.0.0.0"
    env_file:
      - .env
    ports:
      - "3000:3000"
    volumes:
      - .:/app:cached

Run Code Online (Sandbox Code Playgroud)

因此,在容器内我们可以看到 /app 安装如下 /dev/sdb1 on /app type ext4 (rw,nosuid,nodev,noexec,relatime,data=ordered)

是否存在某种方法可以在没有此选项的情况下安装卷?我在文档中进行了搜索,但什么也没找到

poi*_*212 5

大家都听着!解雇!

我开枪射击自己的腿。这个问题是因为我将 /home 和 /var/lib/docker 移动到磁盘的专用分区(因为缺乏磁盘空间),并且默认情况下它们是由 linux 使用 noexec 选项安装的。

Docker 只是重新翻译容器内的内容