gpt4 book ai didi

Docker 容器重启不丢失数据

转载 作者:行者123 更新时间:2023-12-04 22:57:53 26 4
gpt4 key购买 nike

我正在使用 Rancher作为编排工具。我有一个节点 Cassandra安装在容器中并想重新启动它,因为我最近对配置文件( cassandra.yaml )进行了一些更改。数据库中已经有数据,所以要防止数据丢失。我用 usman/docker-rancher-cassandra:3.1图片。应该使用哪个命令来执行此操作?

最佳答案

重新启动容器不会影响容器中的数据。如果您尝试使用新镜像重新创建容器,则可能会丢失数据。

如果您使用的是卷,您的数据将保留在主机中。这取决于您如何启动容器。您可以从 docker inspect <container_name> 查看音量信息.

通过通过 dockerfile您正在使用的 cassandra 数据目录是一个卷。

VOLUME /var/lib/cassandra 

如果您使用显式挂载容器卷
docker run -d -v <HOST_PATH>:/var/lib/cassandra usman/docker-rancher-cassandra:3.1 

然后您可以使用新版本升级容器。否则,您需要在重新创建容器之前从目录中复制数据。

解决方案 1:

从现有容器的卷启动另一个容器。
docker stop cassandra
docker run -it --volumes-from cassandra \
--name="cassandra-new" \
usman/docker-rancher-cassandra:3.1

如果一切正常,请删除之前的容器并重命名容器
docker rm cassandra
docker rename cassandra-new cassandra

解决方案 2:

docker inspect 获取卷路径。
docker inspect <container_name>



您可以从 /var/lib/docker/volumes/531419fb27d1dff9c5371769edc08d6160f71061c9fe3af05309a3a0c51bb84d/_data 复制数据在重新创建容器之前到其他目录。您需要在使用启动新容器时挂载该目录
docker run -v <HOST_PATH>:/var/lib/cassandra

关于Docker 容器重启不丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36810318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com