python + docker:docker卷挂载错误,数据静默丢失

时间:2018-10-23 15:25:12

标签: python docker

我遇到了一个问题:没有卷挂载,加上在python中创建目录。

基本上在我的容器内,我正在写一些路径/opt/…,可能必须建立路径(我正在使用os.makedirs作为路径)

如果我安装了诸如-v /opt:/opt之类的主机文件路径,但其“权限”很差,而docker容器似乎无法写入,则在容器内部创建路径不会失败。 makedirs(P)之所以有效,是因为它在容器内可以使dir正常,因为它具有sudo权限。但是,/opt/…的主机上没有任何内容被静默地写入。数据不存在,但从未引发异常。

如果我安装了具有适当/开放权限的路径,例如-v /tmp:/opt,则数据将按预期显示在主机/tmp/…上。

那么,如果-v参数左侧的主机上没有写许可权,我怎么不会默默地失败?\

编辑:我的问题是“如果部署容器的人员错了,那么我如何检测这种不良的部署方案,崩溃并在容器内部快速失败?”?只是默默地不写数据是不可接受的。

2 个答案:

答案 0 :(得分:0)

错误的安装是主机的根,正确的安装是主机上的Docker组中的用户吗?您可以检查已安装的/opt的用户/组吗?它应该不同于/tmp

答案 1 :(得分:0)

您可能希望/ opt中存在一个特殊文件,如果不存在该文件就会失败

if not os.path.exists(PATH):
    raise Exception("could not find PATH: file missing or failed to mount /opt")