我搞得一团糟,为生产启动了一个 prestashop docker 容器(通过 compose),但忘记向其中添加持久卷。我已经建立了我的商店,现在我所有的数据都悬而未决。我需要以某种方式将我当前的 docker 容器转换为具有持久卷的容器。
我已将当前容器中的所有数据复制到本地文件夹,创建了一个新的撰写文件,如果我 chmod -R 777
整个目录,一切都会正常,但人们会因这些类型的犯罪而下地狱,所以这不是一个选项。
由于我不是专家,所以我没有其他想法。
答案 0 :(得分:1)
您遇到的问题很可能与拥有旧容器中文件的用户 ID/组 ID 相关。当您移动到新容器时,如果 ID 不相同,您就会遇到问题,因此 chmod -R 777
正在解决这个问题,但地狱之门是敞开的。
最好了解哪个用户 ID 和组 ID 应该是文件的所有者,并使用 chown
和 chgrp
从新容器中设置正确的所有者。
答案 1 :(得分:0)
好的,
所以这是一个非常简单的解决方案:
sudo su
docker inspect container
获取长字符串哈希 822adf62adsomethingsomething
可以获得的非持久性容器存储位置。cd /var/lib/docker/overlay2/822adf62adsomethingsomething/merged
。你有你所有的 docker 容器文件。cp -a whateveryouwant /whereeveryouwant
作为 cp -a
保持权限和所有者不变。