如何将非持久性docker容器转换为持久性存储(卷)? 问题
我搞砸了,启动了一个prestashop docker容器(通过compose)进行生产,但忘了向其中添加一个持久卷。我已经建立了我的商店,现在我所有的数据都悬而未决。我需要以某种方式将当前docker容器转换为具有持久卷的容器 我尝试过的事情 我已经将当前容器中的所有数据复制到本地文件夹中,创建了一个新的撰写文件,如果我如何将非持久性docker容器转换为持久性存储(卷)? 问题,docker,docker-compose,Docker,Docker Compose,我搞砸了,启动了一个prestashop docker容器(通过compose)进行生产,但忘了向其中添加一个持久卷。我已经建立了我的商店,现在我所有的数据都悬而未决。我需要以某种方式将当前docker容器转换为具有持久卷的容器 我尝试过的事情 我已经将当前容器中的所有数据复制到本地文件夹中,创建了一个新的撰写文件,如果我chmod-R 777整个目录,一切都会正常工作,但是人们会因为这些类型的犯罪而下地狱,所以这不是一个选项 由于我不是专家,我没有其他想法。您遇到的问题很可能与拥有旧容器中文件
chmod-R 777
整个目录,一切都会正常工作,但是人们会因为这些类型的犯罪而下地狱,所以这不是一个选项
由于我不是专家,我没有其他想法。您遇到的问题很可能与拥有旧容器中文件的用户id/组id有关。当您移动到新容器时,如果ID不相同,您将遇到问题,因此
chmod-R 777
正在解决此问题,但地狱之门是敞开的
最好了解哪些用户id和组id应该是文件的所有者,并使用chown
和chgrp
从新容器中设置正确的所有者。好的
所以这是一个非常简单的解决方案:
sudo su
docker inspect container
获取长字符串散列822adf62adsomethingsomething
转到非持久性容器存储位置cd/var/lib/docker/overlay2/822adf62adsomethingsomething/merged
。这是所有docker容器文件cp-a whateveryouwant/whereeveryyouwant
ascp-a
保持权限和所有者的完整性好吧,我试试看。我认为会有一种更简单的docker原生方式来进行这种转换。你用的是最简单的方式。你可以通过破解容器定义来做到这一点,我已经做了好几次了,但是这一次有更宽的地狱之门,不要去那里