pla*_*irt 4 cassandra docker rancher
我Rancher用作编排工具.我有一个单独的节点Cassandra安装在一个容器中,并希望重新启动它,因为我cassandra.yaml最近在配置文件()中做了一些更改.数据库中已存在数据,因此希望防止数据丢失.我用的是usman/docker-rancher-cassandra:3.1图像.应该使用哪个命令来执行此操作?
重新启动容器不会影响容器中的数据.如果您尝试使用新图像重新创建容器,则可能会丢失数据.
如果您使用的是卷,则您的数据将保留在主机中.这取决于你是如何开始容器的.您可以查看音量信息docker inspect <container_name>.
通过浏览您正在使用的dockerfile,cassandra数据目录是一个卷.
VOLUME /var/lib/cassandra
Run Code Online (Sandbox Code Playgroud)
如果使用明确装入容器卷
docker run -d -v <HOST_PATH>:/var/lib/cassandra usman/docker-rancher-cassandra:3.1
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用新版本升级容器.否则,您需要在重新创建容器之前从目录复制数据.
解决方案1:
从现有容器的卷启动另一个容器.
docker stop cassandra
docker run -it --volumes-from cassandra \
--name="cassandra-new" \
usman/docker-rancher-cassandra:3.1
Run Code Online (Sandbox Code Playgroud)
如果一切正常,请删除以前的容器并重命名容器
docker rm cassandra
docker rename cassandra-new cassandra
Run Code Online (Sandbox Code Playgroud)
解决方案2:
/var/lib/docker/volumes/531419fb27d1dff9c5371769edc08d6160f71061c9fe3af05309a3a0c51bb84d/_data在重新创建容器之前,您可以将数据从其他目录复制到其他目录.您需要在使用时启动新容器时挂载该目录
docker run -v <HOST_PATH>:/var/lib/cassandra
| 归档时间: |
|
| 查看次数: |
3743 次 |
| 最近记录: |