cassandra-3.0 - 删除 Cassandra 容器时如何保留数据和架构
问题描述
我创建了一个 Cassandra 容器,运行它,创建模式并向其中添加数据。当我稍后停止容器并将其删除并从映像中创建一个新容器时,先前创建的架构和数据将丢失。
我可以/如何持久化数据和模式,以便每当从图像创建容器时,它会选择现有的模式和数据?
我是否必须重新创建架构并添加数据?
解决方案
为此,我使用 -v 选项挂载了一个外部目录(容器外部)。
例如。
对于容器 1 (node1)
docker run -v C:\...\dockertest\dockerdata\cassandra1:/var/lib/cassandra --network cassandra-net -p 9042:9042 --name cassandra1 cassandra_image_id
对于容器 2 (node2)-
docker run -v C:\...\dockertest\dockerdata\cassandra2:/var/lib/cassandra --network cassandra-net --name cassandra2 -e CASSANDRA_SEEDS=cassandra1 cassandra_image_id
如果在同一台机器上运行两个容器,每个节点/容器的外部目录必须不同
推荐阅读
- c# - .Net 标准库、ExtentReports、.Net FrameWork 测试应用程序
- javascript - eslint 没有被禁用特定文件
- tcplistener - tokio::net::TcpListner 连接在 Windows 中自行关闭(但在 Linux 上有效)
- python - 烧瓶 send_file() 给出错误 TypeError: send_file() missing 1 required positional argument: 'environ'
- animation - Anylogic Heavy 3D Animation 在运行时停止模型动画
- node.js - 用于测试目的的 Discord bot 分片,如何在 1000 台服务器之前测试 IPC
- python - 如何确定在 Pandas 系列(DataFrame 中的列)中找到的实例类别(int. vs. str. vs. bool 等)?
- node.js - 我正在尝试使用 React 和 Express 构建联系表单,但它不起作用
- cypress - 赛普拉斯:如何对“烟雾”、“理智”和“回归”等测试进行分组
- android - W/System:忽略标头 X-Firebase-Locale,因为它的值为 null 。通过许多 ans 没有找到 ans