gpt4 book ai didi

mongodb - 如何持久化 MongoDB - 在新镜像中运行 Docker 容器的数据?

转载 作者:IT老高 更新时间:2023-10-28 13:22:04 28 4
gpt4 key购买 nike

我有一个来自官方 Mongo Image 的名为 xyz 的正在运行的 Mongo DB 容器。我用 docker run -d -p 21707:21707 mongo 创建了容器在这个容器中,我使用示例数据创建了 2 个集合。

现在我想将这个容器提取到 dockerhub 上的一个新镜像中。

我使用 docker commit 并创建了一个新图像,将其推送到 docker hub 上。如果我在另一个系统上提取图像并从该图像创建一个新容器,那么在我的原始容器 xyz 中没有数据。

经过研究,我发现 mongo 镜像可以与卷一起使用,但我过去错过了这一步……我认为容器使用/data/db 作为标准卷(docker inspect),在提交时,此卷未附加到新图像?!

我也试过 docker export/import 遇到上述同样的问题!

现在我的问题是,我如何才能将这个“xyz”运行容器与我的示例数据迁移到一个新的图像/容器中?非常感谢!

最佳答案

I used docker commit and created a new image, pushed it on the docker hub. If i pull the image on a other system and create a new container from this image, there are no data like in my origin container xyz.

mongo docker 镜像将其数据写入 volume .因此,这些数据不会保存到使用 docker commit 创建的新 docker 镜像中。 docker export 不会出于同样的原因生成您的数据。

how could i reach to migrate this "xyz" running container with my sample data in a new image/container?

你想要的是:

  • 重新使用第一个容器的卷创建一个新容器 → 参见 --volumes-from
  • 将第一个容器的卷数据保存到你的docker主机上的一个目录中,然后创建一个新的容器mounting这个目录到容器中→docker run -v option

另外,这个 SO question可能会帮助您计算数量。

关于mongodb - 如何持久化 MongoDB - 在新镜像中运行 Docker 容器的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34753792/

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