【问题标题】:Resolved: How to create a Mongodb docker container without volume已解决:如何创建没有卷的 Mongodb docker 容器
【发布时间】:2019-10-10 23:01:58
【问题描述】:

我需要创建一个 MongoDB 的快照,在没有卷的特定状态下,用于自动测试建议。

明确地说,我需要将所有数据保存在容器内存中并持久化,而不是使用卷,然后通过提交,我可以拍摄快照。

在 Jenkins 将从存储库部署此映像后,其中包含初始数据以在其上运行集成测试,并且测试的不同执行将在我们想要的数据库的确切点上运行。没有脚本或类似的东西。

我尝试更改容器内 mongo 的 conf,docker compose。

任何想法或示例将不胜感激。

--------------解决方案------------------ ------------

如果您需要具有初始数据的图像用于沙盒/测试目的,您可以使用所有 conf 和没有卷声明的 docker 文件,这将强制保存在容器的内层内存中,然后您可以访问并正常工作,直到您拥有您喜欢的状态,下一步是制作快照。

始终启动容器,您会在 MongoDB 中找到用于测试的具体状态。

【问题讨论】:

    标签: mongodb docker docker-compose automated-tests docker-volume


    【解决方案1】:

    使用 Docker commit 将正在运行的容器的状态保存为镜像:

    https://docs.docker.com/engine/reference/commandline/commit/

    【讨论】:

    • thx,但是数据量很大,就像我说的那样,需要容器本身上的数据才能提交成功
    • 是的,但是您必须使用 -tmpfs /data/db 作为参数在内存中运行它。然后,您可以对其进行 docker commit 以保存。请注意,我尚未对此进行测试,但它应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2019-12-10
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2020-12-16
    相关资源
    最近更新 更多