docker - 如何复制整个容器?
问题描述
我在 3 台机器中的一台上运行容器(由管道动态拾取),我遇到了服务器启动问题并分析故障,我需要另一个人的帮助,但考虑到他的可用性,我不能说他什么时候有空.
而且我不能一直占用运行容器的主机,因为团队中的其他成员需要它。
下一次,当开发人员可用时,我将不得不触发构建并将其带到可以向开发人员显示问题的阶段,但这需要时间。
在这种情况下,有什么办法,我可以停止该容器并获取它的整个副本,并在下次需要时运行它,这样我就可以让容器处于需要的状态,而且这也更省时。
解决方案
您可以使用 ,基于现有容器创建 Docker 映像docker commit
,例如:
docker commit my-container image-from-my-container
# return an image SHA
然后,您可以根据提交的图像运行容器(与提交时的容器状态匹配)
docker run [OPTIONS] image-from-my-container
如果您还需要将图像导出到另一台机器(因为其他团队成员可能需要原始机器),您可以:
- 将图像推送到远程注册表
docker image push
并从另一台机器运行它 - 使用 将图像导出到 TAR 文件
docker image save image-from-my-container > saved-image.tar
,将存档下载到另一台机器,然后使用docker image load -i saved-image.tar
推荐阅读
- python - 如何使用 boto3 从 Amazon S3 获取 .stl 文件?
- mongodb - NodeJS + mongo:池中实际使用了多少个连接?
- python - Postgres 返回 .strftime 无法识别的 datetime.date 类型列表
- mysql - 在单个 SQL 查询中进行计数
- entity-framework-6 - 实体框架迁移中复合主键顺序的意外更改
- javascript - 将创建的元素附加到 Javascript 中的不同 div
- python-3.x - Matlab 和 python 对 sind() 函数给出了不同的答案
- sql - 将 sql 查询转换为 laravel eloquent
- pandas - 使用字典方法在 Python 中重新编码?
- scala - 了解 Seq[AnyVal] 和 Seq[String] 的混合上下文边界