Docker 卷安装问题
Docker Volumes mounting issue
我正在尝试将卷从容器动态挂载到主机,它可以工作,但有一个问题。我正在使用以下命令:
docker run -it --name Test1 -v $HOME/.myapp_configs/specificConfig.txt:/bin/specificConfig.txt:rw docker-image /bin/bash
问题在于,如果主机上的挂载点不存在,docker 命令会创建它,但会分配给它 root:root
而不是我期望的 $USER:$USER
。我认为这很可能是已用 Docker 确定的命名空间映射问题的直接结果。
有没有人想过如何强制使用适当的权限创建主机挂载点?即
drwxr-xr-x. 3 $USER $USER 31 Aug 21 15:02 ~/.myapp_configs/specificConfig.txt
而不是...
drwxr-xr-x. 3 root root 31 Aug 21 15:02 ~/.myapp_configs/specificConfig.txt
谢谢,
布鲁斯
如何确保文件在 运行 容器之前存在?
命令可能如下所示:
test -f $HOME/.myapp_configs/specificConfig.txt || touch $HOME/.myapp_configs/specificConfig.txt
docker run -it --name Test1 -v $HOME/.myapp_configs/specificConfig.txt:/bin/specificConfig.txt:rw docker-image /bin/bash
解释:
test -f <some file>
将具有退出状态 0
如果文件存在
||
只有在前面的命令退出状态不同于 0
时才会执行后面的命令
touch <some file>
修改现有文件的修改时间,或者(这是我们的情况)创建一个空文件
当然,如果您的容器内有一些代码,无论 文件是否存在 ,它们的行为都不同,那么您将不得不修改该代码以检查 [=24] =]文件是空的。
我正在尝试将卷从容器动态挂载到主机,它可以工作,但有一个问题。我正在使用以下命令:
docker run -it --name Test1 -v $HOME/.myapp_configs/specificConfig.txt:/bin/specificConfig.txt:rw docker-image /bin/bash
问题在于,如果主机上的挂载点不存在,docker 命令会创建它,但会分配给它 root:root
而不是我期望的 $USER:$USER
。我认为这很可能是已用 Docker 确定的命名空间映射问题的直接结果。
有没有人想过如何强制使用适当的权限创建主机挂载点?即
drwxr-xr-x. 3 $USER $USER 31 Aug 21 15:02 ~/.myapp_configs/specificConfig.txt
而不是...
drwxr-xr-x. 3 root root 31 Aug 21 15:02 ~/.myapp_configs/specificConfig.txt
谢谢,
布鲁斯
如何确保文件在 运行 容器之前存在?
命令可能如下所示:
test -f $HOME/.myapp_configs/specificConfig.txt || touch $HOME/.myapp_configs/specificConfig.txt
docker run -it --name Test1 -v $HOME/.myapp_configs/specificConfig.txt:/bin/specificConfig.txt:rw docker-image /bin/bash
解释:
test -f <some file>
将具有退出状态0
如果文件存在||
只有在前面的命令退出状态不同于0
时才会执行后面的命令
touch <some file>
修改现有文件的修改时间,或者(这是我们的情况)创建一个空文件
当然,如果您的容器内有一些代码,无论 文件是否存在 ,它们的行为都不同,那么您将不得不修改该代码以检查 [=24] =]文件是空的。