(mac) dockers, фиксация изменений в монго не работает

новое для докеров. работает с использованием boot2docker на mac.

  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 diff mongodb                                                                                              ✱
C /root
C /root/.bash_history
C /root/.dbshell
C /tmp
C /tmp/mongodb-27017.sock

person WebQube    schedule 14.05.2015    source источник


Ответы (1)


Похоже, проблема в том, что Dockerfile монго содержит

VOLUME /data/db

Поэтому данные хранятся не в образе, а в boot2docker. Одним из решений было бы создать свой собственный образ, используя в качестве примера Dockerfile mongo, но исключив параметр VOLUME.

person JD Trout    schedule 19.08.2015
comment
это одинаково для всех хостов докеров, включая ubuntu. Другой вариант — отследить, куда был смонтирован том, и скопировать данные туда, где находится том для другого контейнера. В докере 1.8 вы можете сделать это с помощью docker inspect в первом контейнере, найдите свойство Mounts в возвращаемом json. Затем проделайте то же самое со вторым докер-контейнером, чтобы узнать, куда копировать данные. - person Ed Sykes; 12.11.2015