docker - 我可以将已经存在的 docker 容器导出到 dockerfile 中吗?
问题描述
我相信我可能没有遵循最佳实践,我有点想纠正自己
我从一个项目的 Rust docker 映像开始创建了一个容器。我一直在使用这个容器,更像是一个小型 VM,而不是一个容器。通过 docker 仪表板,我每天早上都会启动它并通过脚本docker -it exec my-container bash
或使用docker exec
脚本来处理它。自从我从 Rust 映像创建它以来,我已经添加了用户、安装了 crates 和包等。
有没有办法从现有的 docker 容器创建一个 Dockerfile,它将包含所有这些,所以我可以用它来创建这个容器的临时副本来运行特定的作业?
解决方案
不,你不能。由于 Docker 不会在交互模式下跟踪您执行的命令,因此它无法生成包含您的历史记录的 Dockerfile。但是,您可以做的是docker commit
将更改保存为图像,或者docker export
将容器保存为 tarball,以后可以使用docker import
命令将其转换为图像。整个过程如下:
CONTAINER ID
使用命令从您希望导出的容器中获取docker ps
。- 如果要导出容器:
- 导出你的容器
$ docker export CONTAINERID > img.tar
- 将容器作为图像导入
$ docker import img.tar my-new-image:latest
- 导出你的容器
- 如果您只想将更改保存为新图像:
- 跑
$ docker commit CONTAINERID my-new-image:latest
- 跑
推荐阅读
- android - 无法在“PATH”中找到“ANDROID_HOME”和“android”命令
- laravel - 使用变量名呈现 js 变量的附加表单构建器 - laravel
- java - 使用 PDFBox 打印 PDF 永远不会完成
- c# - 当一个线程完成任务而另一个线程正在运行时,有没有办法更新 Web 表单 UI
- go - 如何修复 linter 警告“未检查错误返回值”?
- prolog - 析取算子的等价与多条规则的定义
- javabeans - 在 Elementor 中进行实时编辑时禁用整个字符串
- python - 尝试在python中做“1-x+x^2-x^3+x^4-x^5 ...”系列,有人有什么想法吗?
- reactjs - 使用 jest 和 react-testing-library 测试对象属性时出错
- javascript - 检查元素是否具有特定的类 JQUERY