实际上,我像这样运行我的容器,例如:
docker run -v /nexus-data:/nexus-data sonatype/nexus3
^
阅读文档后,我发现卷完全由 docker 管理。出于某些原因,我想改变运行容器的方式,做这样的事情:
docker run -v nexus-data:/nexus-data sonatype/nexus3
^
我想将现有的绑定(bind)安装转移到卷。
但我不想将数据丢失到
/nexus-data
文件夹,是否有可能将此文件夹转移到新卷,而无需重新启动所有内容?例如,因为我也有 Jenkins 和 Sonar 容器,所以我只想改变拥有持久数据的方式。这是一个正确的方法吗?
最佳答案
您可以尝试以下步骤,以免丢失当前的关联数据。
#>docker run -v nexus-data:/nexus-data sonatype/nexus3
#>docker copy /nexus-data/. <container-name-or-id>:/nexus-data/
#>docker stop <container-name-or-id>
#>docker start <container-name-or-id>
docker copy 会将数据从主机的/nexus-data 文件夹复制到容器的 FS/nexus-data 文件夹,这是您安装的卷。如果您在执行以下步骤时遇到任何问题,请告诉我。
关于docker - 将 docker bind-mount 移动到卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49888014/