繁体   English   中英

我是否必须使用私有Docker注册表将我的源代码保持私有状态?

[英]Must I use a private Docker registry to keep my source private?

我最近才刚开始使用Docker,并且想知道是否不打算公开我的代码,这是否意味着我将需要为私有Docker注册中心付费?

我问的原因是,从我关注的教程看来,当将容器部署到生产环境时,我将不得不以某种方式将其从Docker注册表中拉出。 除非我可以直接从本地计算机将容器推送到生产环境,否则必须首先将容器推送到公共Docker注册表。 但是,我的容器通常已经有我的源的副本,该副本是从我的开发机上的卷中复制的。 因此,我可能不想在注册表上公开每个源代码。

从这个意义上说,这是否意味着如果我不希望公开我的源代码,我肯定需要付费使用Docker吗? 是否可以不通过Docker注册表将容器直接从本地计算机推送到生产服务器? 还是我以错误的方式使用Docker?

您无需将映像推送到Dockerhub等公共注册表。 您可以部署自己的Docker注册表(将其自身打包在Docker容器中),然后使用该私有注册表来推送和拉取映像。

注册表的部署过程可以在官方文档中找到。

或者,您可以将映像打包为tar球,将tarball上载到生产服务器,再将tarball导入到docker映像中并启动容器。

docker save --output image.tar IMAGE // save the image into a tar ball
docker import image.tar IMAGE // on another server, import the image back from tar.

您可以设置自己的“私有” Docker注册表,而不必付费。 这是此解决方案的一个很好的教程: 设置私有Docker注册表。

小步骤概述:

  1. 运行Docker Registry Image(registry:2)
  2. 创建自签名证书
  3. 使用TLS运行私有Docker注册表
  4. 从本地客户端访问远程注册表

现在,您可以将映像拉入专用注册表。

对于大多数语言(也许bash和其他脚本:)除外),您不必添加源代码,而只需添加二进制文件。

除此之外,您还可以使用docker export或docker save在本地/ usb棒上存储图像。

但是,如果您想从互联网上提取图像,则要么公开,要么必须拥有一个私有注册表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM