docker - 在没有原始 Dockerfile 的情况下更新 docker 映像
问题描述
我正在开发在 docker 映像内的 ec2 服务器上运行的 Flask 应用程序。
旧的开发人员似乎已经删除了原始的 Dockerfile,我似乎找不到任何关于将我的更改推送到没有原始文件的 docker 映像的说明。
我可以使用以下方法手动复制我的更改:
docker cp newChanges.py doc:/root/doc/server_python/
但我似乎找不到重新启动烧瓶的方法。我知道这不是理想的解决方案,但这是我唯一的想法。
解决方案
有一种方法可以添加newChanges.py
到现有图像并使用新标签提交该图像,因此如果您遇到任何问题,您将有一个备用选项。
假设你运行 alpine 官方镜像并且没有 DockerFile
每次重新启动图像时,您都不会拥有newChanges.py
docker run --rm -name alpine alpine
在图像内部使用ls
可查看在 Dockerfile 中创建的现有文件的列表。
docker cp newChanges.py alpine:/
运行ls
并验证您的文件是否已复制
下一步
要将这些更改提交到正在运行的容器,请执行以下操作:
Docker ps
获取容器 ID 并运行:
docker commit 4efdd58eea8a updated_alpine_image
现在运行您的 alpine 映像,您将看到更新后的更改,如假设
docker run -it updated_alpine_image
这就是您将在具有 DockerFile 的 update_alpine_image 中看到的内容
这是您可以从现有图像重建图像的方式。您也可以尝试@uncletall 回答。
推荐阅读
- python - 使用来自整数数组的列相关结束索引的 numpy 切片
- python - 在请求中连接 Jinja2 值?
- java - 使用 polyglot 查询 GRPC 服务并将时间戳作为请求参数之一传递
- cron - Cronjob 有结果的标题
- php - 无法在 codeingiter 的实时服务器中发送电子邮件
- networking - 支持 Kubernetes NodePort 服务的 SSL/TLS
- bash - 具有可能超时的多个卷曲的脚本
- angular - FormGroup 不是表单的已知属性
- php - 我在 Linux 中执行命令时遇到问题
- c++ - 引用您不拥有的“std::unique_ptr”(使用原始指针?)