我有一个运行的Mongo DB容器,名为xyz,来自官方Mongo图像。我用docker run-d-p 21707:21707 mongo
创建了这个容器,在这个容器中,我创建了两个带有样本数据的集合。
现在我想在dockerhub上的新图像中提取这个容器。
我使用了docker commit,创建了一个新图像,并将其推送到docker hub上。如果我在另一个系统上提取图像,并从该图像创建一个新的容器,那么在我的原始容器xyz中就没有类似的数据。
经过研究,我发现mongo图像可以使用一个卷,但我错过了这一步在过去...我认为容器使用 /data/db作为标准卷(docker检查
),在提交这个卷不附加到新图像?!
我还尝试了docker导出/导入
,遇到了上面提到的同样问题!
现在,我的问题是,如何将这个“xyz”运行容器和我的样本数据迁移到一个新的映像/容器中?谢谢!
我想制作一个图像来测试身份验证,我也有同样的问题。我是这样解决的:
Dockerfile
FROM mongo
COPY setup.sh /
RUN chmod +x /setup.sh
RUN /setup.sh
ENTRYPOINT ["/usr/bin/mongod"]
CMD ["--auth", "--dbpath=/containerdb"]
setup.sh
#!/bin/bash
mkdir containerdb
mongod --auth --dbpath=/containerdb &
until mongo admin --eval 'db.createUser({"user":"root", "pwd":"password", "roles": [ "root" ] })'
do
echo 'Mongo not yet ready, waiting 1 sec until retry'
sleep 1
done
mongod --shutdown --dbpath=/containerdb
当您运行这个映像时,您有一个身份验证激活的mongoDB和一个root用户。关键是通过将数据存储在其他地方来解决基础Dockerfile中的音量问题。
我使用docker提交并创建了一个新映像,将其推送到docker中心。如果我在其他系统上拉取映像并从该映像创建一个新容器,则没有像我的原始容器xyz中那样的数据。
mongo docker映像将其数据写入卷。因此,这些数据不会保存到使用docker commit
创建的新docker映像中docker export
出于同样的原因不会生成您的数据。
我怎么能达到迁移这个"xyz"运行容器与我的样本数据在一个新的图像/容器?
你想要的是:
此外,这个问题可能会帮助你计算出数量。
我正在按照有关将ASP.NET MVC应用程序迁移到Windows容器的说明进行操作 我用过 而且似乎下载正确。 然后看到与前面相同的内容,但以“Service'w3svc'was started”行结尾 因此,-it命令似乎有助于让我感觉我已经成功启动了容器。 我实际上无法获得关于“-it”的帮助,因为当我运行时它没有列出
问题内容: 这是我的问题: 我有一个任务在Amazon ECS上运行docker映像,但我想从容器的运行实例中创建一个新的docker映像。 我在Amazon Ecs上看到了实例的ID,我已经创建了AMI,但是我想创建一个新的docker image,可以从Amazon中提取它。 有任何想法吗 ? 问候和感谢 问题答案: 除了@Ben Whaley提供的答案外,我个人建议您 使用Docker AP
问题内容: 我从dockerfile构建了Docker映像。我看到映像已成功构建,但是该如何处理?它不应该能够作为容器运行吗? 问题答案: 运行它的具体方法取决于您是否为图像指定了标签/名称。 使用名称(让我们使用 Ubuntu ): 没有名称,只需使用ID: 请参阅 Docker运行参考 以获取更多信息。
问题内容: 我有一个以结尾的Dockerfile 该可以采取一些不同的论点,我也需要暴露口容器,所以如果我运行手动我做这样的事情: 如何在Jenkinsfile中执行此操作?我的测试将与此容器通信,因此它需要在运行测试之前运行。我在测试运行之前先让它运行,但我看不到如何指定 问题答案: 您可以使用withRun的第二个参数
我想删除这两个图像 如何走出圈子?