docker - 如何从容器中获取 docker 快照?
问题描述
从容器本身拍摄容器快照的好方法是什么?
语境:
我有一个容器 Foo
当容器 Foo 上发生某些事件时,我想拍摄容器 Foo 的快照,标记图像,并可选择将该快照推送到存储库。
我已经看到了这个答案,它可以让我从容器运行任意命令到主机系统,但我宁愿避免这种情况,因为这给 Foo 在主机系统上提供了太多的自由。
我希望你们都可以提供一个更简单的选择。
关于安全性:在我的场景中,安全问题不是太大的问题(相信我),但我不想让我的用户很容易自取其辱。
解决方案
将 docker 套接字安装到您的容器中(-v /var/run/docker.sock:/var/run/docker.sock)并使用 docker api。
从容器内部通过调用提交 api 从您的容器创建一个图像:
curl -v --unix-socket /var/run/docker.sock -X POST "http:/v1.40/commit?container=[YOUR CONTAINER NAME OR ID]&repo=[IMAGE NAME]&tag=[IMAGE TAG]&pause=false"
例如:
curl -v --unix-socket /var/run/docker.sock -X POST "http:/v1.40/commit?container=dummy&repo=my-dummy-image-2&tag=1&pause=false"
然后,您可以使用 push api 将该图像推送到存储库:
curl -v --unix-socket /var/run/docker.sock -X POST "http:/v1.40/images/[IMAGE NAME]/push"
推荐阅读
- javascript - 如何将 Vimeo 播放列表转换为视频地址数组?
- azure - 如何通过 VM 大小 az cli 获取 azure VM 系列
- logstash - 索引时间与记录时间不同 - kibana
- laravel - laravel 8 中的绑定解析异常
- python - 熊猫在列中写入和读取并保持领先0
- php - 在 ajax 成功部分中显示数组对象值
- html - 在运行时在 Next.js 中插入基于环境的不同脚本
- python - python pandas数据框将所有元素变异为(行中的元素/最大元素)
- swift - 如何在 SwiftUI 中结合旋转和淡出动画
- python - 如何在具有多处理的for循环中获取不同函数的返回值