首页 > 解决方案 > 在没有 noexec 选项的情况下将卷挂载到 docker 容器中

问题描述

当我侦察时,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

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

如果没有此选项,是否存在某种挂载卷的方法?我在文档中进行了搜索,但一无所获

标签: dockerdocker-compose

解决方案


都听好了!解雇!

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

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


推荐阅读