我知道Docker hub在那里,但它只允许1个私有存储库。我可以把这些图像放在Github / Bitbucket上吗?
答案 0 :(得分:8)
一般情况下,您不希望对大型二进制图像(如视频或编译文件)使用版本控制作为git,因此用于“源控制”,强调源。从技术上讲,这并没有阻止你这样做并将docker镜像文件放入git(超出你正在使用的服务的限制)。但是,Github至少强烈建议你不要这样做:http://www.kdnuggets.com/2016/04/recommender-systems-textbook.html
你将遇到的一个主要问题是git / bitubucke没有与Docker集成,因为它们都没有为Docker主机提供所需的Docker Registry api能够根据需要下拉图像。这意味着如果要使用图像文件,则需要手动拉出包含图像文件的版本控制系统。
如果您打算这样做,为什么不使用S3或类似的东西?
如果您真的想要对图像进行“版本控制”(码头集线器没有这样做......),您需要查看以下内容:https://about.gitlab.com/2015/02/17/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git/
最后,docker hub只允许一个 FREE 私人回购。你可以支付更多。
答案 1 :(得分:4)
所以要走的路是:
如果您需要私密版本,您可以自行托管Gitlab或GOGS等git服务,当然您也可以自动托管docker registry service图片。
答案 2 :(得分:3)
GitHub正在发布类似于ECR或Docker Hub的东西。在撰写本文时,它处于Alpha阶段,您可以请求访问权限。
从GitHub:
“ GitHub Package Registry是一个软件包托管服务,类似于npmjs.org,rubygems.org或hub.docker.com,它允许您将软件包和代码托管在一个位置。您可以私下托管软件包或公开使用它们作为您项目中的依赖项。”
https://help.github.com/en/articles/about-github-package-registry
答案 3 :(得分:2)
我猜你说的是码头图片。您可以设置自己的private registry,其中包含泊坞窗图像。如果你不是只推动dockerfiles,而是有兴趣推送整个图像,那么将图像作为一个整体推送到github是一个非常糟糕的主意。考虑一个你拥有600 MB docker镜像的情况,将它推送到github就像把600 MB的数据放到github repo中一样,如果你继续在那里推出更多的图像,它将变得非常糟糕。
此外,docker注册表执行仅存储图层的单个副本的智能映射(此图层可以由多个图像引用)。如果你使用github,你将不会使用这个用例。你最终会存储多个大文件的副本,这真的很糟糕。
我绝对建议您使用私有码头注册表,而不是使用github。
答案 4 :(得分:0)
如果确实需要将docker镜像放到github / bitbucket中,您可以尝试将其保存到存档中(使用https://docs.docker.com/engine/reference/commandline/save/)并将其提交/推送到您的存储库。
答案 5 :(得分:0)
我也想知道。 与此同时,我使用gitlab,它有一个内置的docker镜像注册表。
答案 6 :(得分:0)
是的,自2020年9月以来。
请参见 Introducing GitHub Container Registry 中的“ Kayla Ngan”:
自发布GitHub Packages last year(2019年5月)以来,已经从GitHub下载了数亿个软件包,其中Docker是仅次于npm的Packages中第二受欢迎的生态系统。
GitHub Container Registry现已作为公共Beta发布,它改进了我们在GitHub Packages中处理容器的方式。
通过今天推出的新功能,您可以更好地实施访问策略,鼓励使用标准的基本映像,并通过在整个组织中更轻松地共享来促进内部采购。
我们的用户要求对公共容器图像进行匿名访问,类似于我们今天启用对匿名源代码公共存储库的匿名访问的方式。
如今,GitHub Container Registry可以使用匿名访问,而今天,我们通过发布我们自己的超级lint的公共图像来开始工作。
GitHub Container Registry免费提供公共图像。使用GitHub Actions, publishing to GitHub Container Registry is easy。 Actions会根据您的工作自动为您建议工作流程,并且我们更新了“ Publish Docker Container”工作流程模板以使发布变得简单。