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

Posted

技术标签:

【中文标题】在没有 noexec 选项的情况下将卷挂载到 docker 容器中【英文标题】:Mount volume into docker container without noexec option 【发布时间】:2019-04-29 11:35:25 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

听好了!解雇!

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

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

【讨论】:

以上是关于在没有 noexec 选项的情况下将卷挂载到 docker 容器中的主要内容,如果未能解决你的问题,请参考以下文章

TypeError: Object(...) is not a function 当将卷从本地目录挂载到 next.js 容器中时

在没有 UINavigationController 的情况下将 UIBarButtonItem 添加到 UINavigation 栏

怎样验证nosuid,nodev,noexec生效

在CentOS系统下将OSS对象储存挂载到硬盘

如何在不从当前活动选项卡中获取焦点的情况下将子窗口添加到 QMdiArea(设置为 TAB 模式)?

Angular - 在没有 jQuery 的情况下将行号添加到 textarea