2015-05-14 6 views
2

новый для докеров. используя boot2docker на mac.(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 

ответ

0

Выглядит как вопрос является Dockerfile Mongo содержит

VOLUME /data/db 

Таким образом, данные не сохраняются на изображении, а в boot2docker. Одним из решений было бы создание собственного изображения с использованием файла Mongo Dockerfile в качестве примера, но исключить параметр VOLUME.

+0

Это то же самое для всех докеров, включая ubuntu. Другой вариант - отследить, где был установлен том, и скопировать данные туда, где объем для другого контейнера. В докере 1.8 вы можете сделать это с проверкой докера в первом контейнере, найти свойство Mounts в json, который он возвращает. Затем сделайте то же самое на втором контейнере докера, чтобы узнать, где скопировать данные в –

Смежные вопросы