ros*_*s-u 7 git repository organization docker docker-registry
我试图更好地理解 Docker 最佳实践并阐明以下内容之间的区别:
Dockerfile
(规格/构建配置),包括特定于语言的配置文件(例如requirements.txt
Python 或package.json
Node )。和
在第一种情况下,用户需要克隆存储库以获取规格并运行docker build
以创建图像。
_
当开始使用 Docker 或处理个人项目时,存储和共享“Docker 代码”(由于缺乏更好的术语)的一般最佳实践是什么?
在什么情况下最好通过注册表共享构建的映像?
将其推image
送到公共存储库将使其他人能够pull
构建image
它run
。提供对源代码的访问,Dockerfile
并使其他人能够build
在本地访问图像。它们并不相互排斥。
例如,我将公共映像发布到Docker Hub,以便在 Kubernetes 中运行自托管的 GitHub Actions Runner。这些发布是使用公共GitHub 存储库中的GitHub Actions完成的。我计划支持发布版本(ged 从 a 构建)(即,如果有人安装发布版本并报告问题),但同时,如果人们也愿意的话,一切都可以供人们破解(开源+1 ),而无需限制你可以做的事情(麻省理工学院许可证) - 假设你想向运行者图像添加一些包,只需执行 eeet 然后构建并使用你自己的图像(...如果这对其他用户有意义,那么也许考虑创建包含更改的拉取请求)。tag
git tag
apt
您也许能够使用专有许可证托管公共存储库,但需要确认其合法性。
你绝对可以托管一个私人存储库并发布公共图像,但要注意,如果你试图隐藏你的图像codez
,那么你应该期待像我这样的人,inspect
如果image
我得到了它,所以我建议构建编译的二进制文件(即go
构建的程序)FROM scratch
)。
您也绝对可以托管私有存储库并将图像发布到私有 docker 注册表,然后控制对图像的访问(即分发配置docker-compose.yml
有您的私有图像并要求该客户docker login
使用pull
图像)。