在没有 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 栏