如何坚持MongoDB - 新图像中正在运行的Docker容器的数据?

imm*_*mae 8 mongodb docker

我有一个正在运行的Mongo数据库容器,名为xyz,来自官方的Mongo Image.我用docker run -d -p 21707:21707 mongo 这个容器创建了容器,我用样本数据创建了2个集合.

现在我想在dockerhub上的新图像中提取此容器.

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

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

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

现在我的问题,我如何能够在新的图像/容器中使用我的样本数据迁移这个"xyz"运行容器?非常感谢!

Tho*_*eil 6

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

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

我怎样才能在新的图像/容器中使用我的样本数据迁移这个"xyz"运行容器?

你想要的是:

  • 创建一个新容器重新使用第一个容器的卷→查看 --volumes-from
  • 将第一个容器的卷数据保存到docker主机上的目录中,并创建一个将此目录安装到容器中的新容器→ docker run -v选项

此外,这个SO问题可能会帮助您计算出数量.