如何使用应部署到Azure集群的数据为Mongodb创建Docker容器

时间:2019-03-11 05:56:11

标签: azure docker

谁能知道如何为复制的mongo db数据库文件创建docker容器。我确实看到了使用转储和还原机制,如果我需要将容器部署到azure集群,那将无济于事。就我而言,Mongodb数据库的更改非常频繁。

这是我当前的docker文件:

FROM microsoft/windowsservercore:ltsc2016

SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]

ENV MONGO_VERSION 3.4.19

COPY mongo.msi mongo.msi
COPY MongoData/db C:\\data\\db

RUN Write-Host 'Installing ...'; \

Start-Process msiexec -Wait \
    -ArgumentList @( \
        '/i', \
        'mongo.msi', \
        '/quiet', \
        '/qn', \
        'INSTALLLOCATION=C:\mongodb', \
        'ADDLOCAL=all' \
    ); \
$env:PATH = 'C:\mongodb\bin;' + $env:PATH; \
[Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine); \
\
Write-Host 'Verifying install ...'; \
Write-Host '  mongo --version'; mongo --version; \
Write-Host '  mongod --version'; mongod --version; \
\
Write-Host 'Removing ...'; \
Remove-Item C:\mongodb\bin\*.pdb -Force; \
Remove-Item C:\windows\installer\*.msi -Force; \
Remove-Item mongo.msi -Force; \
\
Write-Host 'Complete.';


EXPOSE 27017
CMD ["mongod", "--bind_ip_all"]

非常感谢您的帮助。

谢谢, 佛

1 个答案:

答案 0 :(得分:0)

感谢@Charles Xu的快速回复。我找到了解决方案。我们应该做的是:

  1. 创建docker容器
  2. 使用Mongo服务,转储从mongodb文件中提取bson和json文件的数据库。在Powershell中以管理员模式运行 mongodump --host“ localhost:27017” 命令
  3. 将提取的数据恢复到容器中。运行命令 mongorestore --host localhost:27030 (使用此端口运行的Docker容器)。
  4. 提交docker更改,将步骤3中完成的数据更改推送到docker image。
  5. 将docker映像发布/推送到azure,以确保数据持久化

希望这对某人有帮助。