Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 向docker compose添加卷是否会重新创建容器并删除其定义已更改的容器中的数据?_Linux_Docker_Docker Compose - Fatal编程技术网

Linux 向docker compose添加卷是否会重新创建容器并删除其定义已更改的容器中的数据?

Linux 向docker compose添加卷是否会重新创建容器并删除其定义已更改的容器中的数据?,linux,docker,docker-compose,Linux,Docker,Docker Compose,我有一个正在运行的DB容器,我为docker compose定义的卷指向容器中的错误位置 我需要这些数据 我可以只更改docker compose定义中的容器路径目标,还是重新创建容器并删除数据 我知道我可以备份,停止容器,然后进行体积更改,但我希望我可以不停机地离开 谢谢如果您更改docker compose.yml文件并重新运行docker compose up,compose将根据需要删除并重新创建容器,以考虑这些更改。它不会触及任何不需要的内容,而且它会特别努力不删除卷 仅更改卷的装载路

我有一个正在运行的DB容器,我为docker compose定义的卷指向容器中的错误位置

我需要这些数据

我可以只更改docker compose定义中的容器路径目标,还是重新创建容器并删除数据

我知道我可以备份,停止容器,然后进行体积更改,但我希望我可以不停机地离开


谢谢

如果您更改
docker compose.yml
文件并重新运行
docker compose up
,compose将根据需要删除并重新创建容器,以考虑这些更改。它不会触及任何不需要的内容,而且它会特别努力不删除卷

仅更改卷的装载路径应该是安全的:

版本:“3.8”
服务:
姓名:
...
卷数:
#-我的数据:/error/path#容器将被销毁,
-我的数据:/right/path#但现有卷将被重新装载
卷数:
我的数据:#未经更改
(如果您有一个匿名卷–卷定义只是
/错误/path
–您可能需要执行一些手动操作来保留其内容,并且为
/right/path
指定一个没有名称的卷将创建一个新的匿名卷。)