(mac)docker工人,在mongo中提交更改不起作用

新来的docker工人。 在mac上使用boot2docker运行。

  1. 运行一个没有数据的容器docker run --name mongodb -p 27017:27017 -d mongo
  2. 将数据导入到它mongorestore --host 192.168.59.104 -d dest source导入工作,我看到在容器中的数据。
  3. 提交(不推)容器到图像docker commit mongdb mongo
  4. 在停止,删除和重新启动时,数据不会被保存。 docker stop mongodb; docker rm mongdb; docker run --name mongodb -p 27017:27017 -d mongo

注意:导入后的docker commit在数据中不显示任何diff:

 docker diff mongodb ✱ C /root C /root/.bash_history C /root/.dbshell C /tmp C /tmp/mongodb-27017.sock 

看起来问题是mongo的Dockerfile包含的问题

 VOLUME /data/db 

因此,数据不会被存储在映像中,而是存储在boot2docker中。 一个解决scheme是使用mongo Dockerfile来构build自己的图像,但不包括VOLUME选项。