在没有noexec选项的情况下将卷装入Docker容器 [英] Mount volume into docker container without noexec option
问题描述
当我侦察时,docker(也通过docker-compose)使用noexec选项将卷安装到容器中,因此我无法从安装目录内部启动任何程序.
As i recon, docker (docker-compose also) mounts volumes into container with noexec option, so i cant start any program from inside mounted directory.
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已安装/app类型ext4上的/dev/sdb1(rw,nosuid,nodev,noexec,relatime,data = ordered)
So, inside container we can see /app mounted like
/dev/sdb1 on /app type ext4 (rw,nosuid,nodev,noexec,relatime,data=ordered)
在没有此选项的情况下是否存在某种方式挂载卷?我在文档中进行了搜索,但一无所获
Is that exist some way to mount volume without this option? I have search in documentation, but found nothing
推荐答案
全部收听!关闭!
我拍自己的腿.这个问题是因为我将/home和/var/lib/docker移到了磁盘的专用分区(因为缺少磁盘空间),并且默认情况下,它们是使用noexec选项由linux挂载的.
I shoot my own leg. This problem was because i moved my /home and /var/lib/docker to dedicated partitions of disk (because lack of disk space), and by default they was mounted by linux with noexec option.
Docker只是在容器内重新翻译了
Docker just retranslate that inside container
这篇关于在没有noexec选项的情况下将卷装入Docker容器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!