我必须使用私有Docker注册表来保持我的源私有吗?

时间:2018-01-11 08:26:19

标签: docker docker-compose

我最近刚开始玩Docker并想知道我是否打算公开我的代码,这是否意味着我将不得不支付私有Docker注册表?

我问的原因是因为从我正在关注的教程看起来,在将我的容器部署到生产时,我将不得不以某种方式从Docker注册表中提取它。除非我可以将容器从我的本地计算机直接推送到生产环境,否则我首先要将容器推送到公共Docker注册表。但是,我的容器通常已经有我的源的副本,它是从我的开发机器上的卷复制的。所以我可能不希望在注册表中公开每个源代码。

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

3 个答案:

答案 0 :(得分:0)

您无需将映像推送到Dockerhub等公共注册表。您可以部署自己的docker注册表(它是自封装在docker容器中)并使用该私有注册表来推送和提取图像。

可以在official docs

中找到注册表的部署过程

或者,您可以将图像打包为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.

答案 1 :(得分:0)

您可以设置自己的"私人" docker注册表并且不必支付。 以下是此解决方案的一个很好的教程: Setting up a private docker registry.

小步骤概述:

  1. 运行Docker Registry Image(注册表:2)
  2. 创建自签名证书
  3. 使用TLS运行私有Docker注册表
  4. 从本地客户端访问远程注册表
  5. 现在,您可以将图像拉出并推送到私人注册表。

答案 2 :(得分:0)

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

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

但是,如果您想从互联网上提取图像,您可以上市或者必须拥有私人注册表。