如果您希望托管自己的Docker注册表,您需要考虑的一件事是在一定程度上信任它。有些应用程序能够处理Docker内容信任,有些则不能。使用Content Trust,您可以对Docker图像进行签名,这样它们就可以被信任。但如何?一种方法是部署港口。
Harbor是一个开源的可信云本地注册表项目,它存储、签名和扫描要存储在本地注册表中的内容。
参见:混合云:IT专业人员指南(TechRepublic下载)我将带你经历在Ubuntu服务器18.04上安装Harbor的过程。成功的安装并没有很好的文档记录,但是我已经为您解决了这个问题。
成功安装只需要:
说到这里,让我们来安装。
首先要做的是安装docker和docker-compose。Docker可以通过以下命令从标准库中安装:
安装Docker后,需要使用以下命令将用户添加到Docker组:
注销并重新登录,以便更改生效。
处理好Docker后,使用以下命令安装Docker -compose:
接下来我们必须安装NGINX。如果你的Ubuntu服务器实例仍然安装了Apache,使用以下命令停止并禁用它:
使用以下命令安装NGINX:
启动和启用NGINX与命令:
接下来我们需要下载Harbor离线安装与命令:
下载该文件后,用以下命令解压:
这将创建一个名为harbor的新目录。使用以下命令切换到该目录:
为了使Harbor正常工作,您需要将其设置为使用SSL。在生产环境中,必须使用来自受信任的证书颁发机构的证书。对于测试环境,您可以使用自签名证书。下面是生成自签名证书的步骤。
使用以下命令生成自签名证书:
使用以下命令生成签名请求:
注意:用您的服务器域或服务器IP地址替换上述IP地址。
使用以下命令为主题替代名称创建配置文件:
在该文件中,粘贴以下内容:
同样,将Harbor服务器的IP地址替换为192.168.1.75。
使用以下命令生成证书:
同样,将上面的IP地址替换为您的服务器域或服务器IP地址。
使用以下命令创建客户端证书:
使用以下命令将新生成的证书复制到适当的目录中:
请确保将上面的IP地址替换为您的Harbor服务器的IP地址。如果你发现/etc/docker/certd目录不存在,用命令创建:
您可能还必须以相同的方式创建IP地址子目录。
在运行安装之前,需要考虑一些配置。用以下命令打开配置文件:
在该文件中,您需要编辑以下选项:
还需要取消以下SSL行注释,确保编辑它们以反映以下更改:
确保将SSL证书的路径更改为:
保存并关闭该文件。
现在运行安装程序脚本。我们将安装有克莱尔支持的Harbor。没有安装Clair支持,您将无法扫描图像的漏洞,这是使用Harbor的部分原因。从harbor目录中发出以下命令:
安装将需要一些时间,但应完成无错误。
安装完成后,您可以将web浏览器指向https://SERVER_IP(其中SERVER_IP是您的Harbor服务器的IP地址)。您将看到一个登录屏幕,您将使用admin作为用户,并使用为harbor_admin_password配置的密码。登录之后,就可以开始使用Harbor注册表了。
我在安装过程中遇到了一些问题——我已经通过上面的说明解决了大部分问题。但是,如果您使用的Ubuntu服务器实例已经安装了docker和部署的容器,那么您可能会收到一个警告,说明需要的端口正在使用。如果是这种情况,你可以停止和删除所有运行的容器与以下命令:
停止并移除这些现有的容器后,再次运行安装程序,以查看它是否完全没有问题。
下一个警告是关于自签名证书的。如果您选择这样做,那么在生成证书之前,您需要修改/etc/ssl/openssl.cnf文件。用以下命令打开该文件进行编辑:
在该文件中,找到[v3_ca]部分并添加以下行:
请确保将IP地址更改为您的Harbor服务器的IP地址。保存并关闭该文件,然后生成自签名证书。
最后,请注意以下错误时,试图登录到您的新注册表:
你可以通过以下命令安装两个应用程序来解决这个问题:
现在可以开始使用自己的本地docker注册表了——该注册表提供对内容的安全性和漏洞分析。
关于AWS、Microsoft Azure、谷歌云平台、Docker、SaaS、IaaS、云安全、容器、公共云、混合云、行业云等的最新知识库。星期一交付