使用最新版本?
JFrog容器注册指南
开始使用JFrog容器注册表云
使用Docker存储库云版本是快速和容易使用。
因为,使用JFrog容器注册中心云,你是在使用JFrog容器注册中心作为托管服务,所以不需要用反向代理配置JFrog容器注册中心。
本节末尾的示例展示了创建Docker存储库、登录、提取图像和推送图像的完整过程。
使用Docker客户端与JFrog容器注册表云
要将Docker客户端与你的一个JFrog容器注册云Docker存储库一起使用,你可以使用本机Docker客户端登录到每个Docker存储库,拉取和推送图像,如下例所示:
使用JFrog容器注册中心云证书使用以下命令登录到您的存储库。
Docker登录${server-name}-{repo-name}.jfrog.io
使用以下命令提取图像
Docker拉${server-name}-{repo-name}.jfrog。io / <图像名称>
要推送图像,首先标记它,然后使用push命令
Docker标签<镜像名称> ${server-name}-{repo-name}.jfrog. Docker标签。io / <图像名称>docker push ${server-name}-{repo-name}.jfrog.io/
测试你的设置
你可以用这个例子来测试你的设置,假设你正在使用一个名为“JFrog容器注册表云服务器”的JFrog容器注册表云服务器。acme".
它演示的场景是:
- 拉出“hello-world”Docker图像
- 登录到虚拟Docker存储库
- 重新标记“hello-world”映像,然后将其推入虚拟Docker存储库
首先创建一个虚拟Docker存储库被称为dockerv2-virtual
.
拉出“hello-world”图像
Docker拉hello-world
登录到存储库dockerv2-virtual
Docker登录acme-dockerv2-virtual.jfrog.io
标记“hello-world”图像
Docker标签hello-world acme-dockerv2-virtual.jfrog.io/hello-world
将带标记的“hello-world”图像推到dockerv2-virtual
Docker推送acme-dockerv2-virtual.jfrog.io/hello-world
开始使用JFrog容器注册表On-Prem
Docker客户端有以下两个限制:
- 你不能在提供注册表路径时使用上下文路径(例如
localhost: 8081 / artifactory
无效) - 当使用HTTPS主机时,Docker将只发送基本的HTTP身份验证
JFrog Container Registry为这些限制提供了解决方案,允许您创建和使用任意数量的Docker注册表。
- 使用反向代理
当使用时,反向代理将Docker命令映射到JFrog容器注册表中的多个Docker注册表之一 - 没有反向代理
JFrog容器注册表支持使用Docker而不使用反向代理,允许你在JFrog容器注册表中创建和使用多个Docker注册表。
使用反向代理
测试还是评估?
如果您目前只使用Docker使用JFrog容器注册表进行测试或评估,我们建议您这样做将JFrog容器注册表作为Docker容器运行它很容易安装,并附带一个代理服务器和预配置的开箱即用Docker注册表。您可以在几分钟内启动并运行。
使用ports方法,端口号被映射到每个JFrog Container Registry Docker注册表。虽然这是一种简单的入门方法,但你需要修改反向代理配置,并为你在JFrog Container registry中定义的每个新的Docker注册表添加一个新的映射。此外,您的IT部门的防火墙和其他限制可能会限制端口号,从而使端口方法不可行的。
使用子域方法,你只需要配置你的反向代理一次,从那时起,从Docker命令到JFrog Container Registry中的Docker注册表的映射是动态的,不需要进一步修改你的反向代理配置。
我们建议使用子域方法,因为它需要一次性的工作。
子域法
使用子域方法开始Docker和JFrog容器注册表安装包括四个基本步骤:
配置JFrog容器注册表
To使用子域方法配置JFrog容器注册表和反向代理,执行以下步骤:
- 确保JFrog容器注册表是开始运行.
- 创建您的虚拟Docker存储库(以及它应该聚合的本地和远程Docker存储库)。在下面的例子中,我们将使用一个名为docker-virtual.
- 确保您有一个反向代理服务器并正在运行。
配置反向代理
JFrog容器注册表可以为受支持的服务器生成完整的反向代理配置文件。
去反向代理配置生成器并根据反向代理的设置方式填写字段,同时确保:
- 使用正确的JFrog容器注册中心主机名在公共服务器名称字段(在我们的例子中,这将是art.local).
- 选择子域名随着反向代理法下Docker反向代理设置.
NGINX
方法生成的代码段配置发电机到你的artifactory-nginx.conf
归档,并把它放在你的/etc/nginx/sites-available
目录中。
创建以下符号链接。
Sudo ln -s /etc/nginx/sites-available/artifactory-nginx.conf /etc/nginx/sites-enabled/artifactory-nginx.conf
Apache HTTPD
方法生成的代码段配置发电机到你的artifactory-apache.conf
把它归档,放进你的肚子里/etc/apache2/sites-available
目录中。
创建以下符号链接:
Sudo ln -s /etc/apache2/sites-available/artifactory-apache.conf /etc/apache2/sites-enabled/artifactory-apache.conf
配置Docker客户端
要配置Docker客户端,请执行以下步骤
将以下内容添加到您的DNS或客户端的DNS中
设置
文件:< ip地址> docker-virtual.art.local
由于证书是自签名的,您需要将其导入到Docker证书信任存储区,如码头工人的文档.或者,您可以配置Docker客户端以使用不安全的注册表,如码头工人的文档.
重新启动Docker守护进程/引擎以应用不安全注册表标志(如果导入了自签名证书,则不需要重新启动Docker守护进程/引擎)。
测试你的设置
要验证您的反向代理配置正确,请运行以下命令,确保返回码为200:
curl -I -k -v https:///api/system/ping
运行以下命令,确保您的代理配置是有效的,并可以与JFrog容器注册表通信:
拉出“hello-world”图像
Docker拉hello-world
登录到存储库docker-virtual
Docker登录Docker -virtual.art.local
标记“hello-world”图像
Docker标签hello-world Docker -virtual.art.local/hello-world
将带标记的“hello-world”图像推到docker-virtual
Docker push Docker -virtual.art.local/hello-world
端口方法
使用ports方法开始Docker和JFrog容器注册表的安装包括两个基本步骤:
配置JFrog容器注册表和反向代理
要使用ports方法配置JFrog容器注册表和反向代理,请执行以下步骤:
- 确保JFrog容器注册表是开始运行.
- 创建您的虚拟Docker存储库(以及它应该聚合的本地和远程Docker存储库)。在下面的例子中,我们将使用一个名为docker-virtual.
- 确保您有一个反向代理服务器并正在运行。
获取SSL证书或使用在本例之后生成的自签名证书。
确保您的证书与JFrog容器注册中心主机名在反向代理配置中使用。在下面的例子中,我们将使用art.local.
- 配置反向代理。JFrog容器注册反向代理配置生成器可以为受支持的服务器生成完整的反向代理配置文件。你所需要做的就是根据反向代理的设置方式填写字段,同时确保:
- 使用正确的JFrog容器注册中心主机名在公共服务器名称场
- 选择港口随着反向代理法下Docker反向代理设置.在下面的示例中,我们将使用port5001绑定存储库docker-virtual。
NGINX
要让JFrog容器注册表与Docker一起工作,首选的web服务器是NGINX v1.3.9及以上。
首先,你需要为NGINX创建一个自签名证书就像这里描述的Ubuntu.
然后使用JFrog容器注册表反向代理配置生成器为您生成配置代码片段。
将代码片段复制到您的artifactory-nginx.conf
把它归档,放在你的/etc/nginx/sites-available
目录中。
最后,创建以下符号链接:Sudo ln -s /etc/nginx/sites-available/artifactory-nginx.conf /etc/nginx/sites-enabled/artifactory-nginx.conf
Apache HTTPD安装Apache HTTP服务器作为反向代理然后安装需要的模块.
创建以下符号链接:
Sudo ln -s /etc/apache2/mods-available/slotmem_shm。负载/etc/apache2/mods-enabled / slotmem_shm.load
类似地,为以下内容创建相应的符号链接:
- 头
- proxy_balancer
- proxy_load
- proxy_http
- proxy_connect
- proxy_html
- rewrite.load
- ssl.load
- lbmethod_byrequests.load
然后使用JFrog容器注册表反向代理配置生成器为您生成配置代码片段。
将代码片段复制到您的artifactory.conf
把它归档,放在你的/etc/apache2/sites-available
目录中。HAProxy
首先,您需要为HAProxy创建一个自签名证书就像这里描述的Ubuntu.然后,将下面的代码片段复制到您的
/etc/haproxy/haproxy.cfg
文件。在编辑代码片段中描述的文件后,您可以使用以下命令测试您的配置:Haproxy -f /etc/haproxy/haproxy.cfg -c
配置Docker客户端
要配置Docker客户端,请执行以下步骤
将以下内容添加到您的DNS或客户端的DNS中
设置
文件:< ip地址> art.local
由于证书是自签名的,您需要将其导入到Docker证书信任存储区,如码头工人的文档.或者,您可以将Docker客户端配置为使用不安全的注册表,方法是将以下行添加到您的
/etc/default/docker
文件(如果文件不存在,您可能需要创建该文件):DOCKER_OPTS="$DOCKER_OPTS——insecure-registry art.local:5001"
重新启动Docker引擎。
测试你的设置
执行以下命令验证反向代理配置是否正确:
//确保返回代码200 curl -I -k -v https:///api/system/ping
运行以下命令以确保您的代理配置是有效的,并且可以与JFrog容器注册表通信。在这个例子中,我们将下拉一个Docker图像,标记它,然后将它部署到我们的docker-virtual绑定到的存储库端口5001:
//拖动“hello-world”图像docker Pull hello-world //登录到存储库docker-virtual docker Login art-local:5001/ /标记“hello-world”图像docker Tag hello-world art-local:5001/hello-world //将标记好的“hello-world”图像推送到docker-virtual docker Push art-local:5001/hello-world
使用自签名证书进行测试
由于证书是自签名的,您需要将其导入到Docker证书信任存储区,如码头工人的文档.或者,您可以配置Docker客户端以使用不安全的注册表,如码头工人的文档.
重新启动Docker守护进程/引擎以应用不安全注册表标志(如果导入了自签名证书,则不需要重新启动Docker守护进程/引擎)。
运行美元的码头工人信息
将列出已在“不安全注册表”条目下应用的不安全注册表。- 使用上面的步骤与JFrog容器注册表Docker注册表进行交互
没有反向代理
JFrog容器注册中心引入了一种新方法,称为“存储库路径”方法,因为它使用Docker存储库路径前缀(
需要Docker API v2
你只能在为Docker API v2配置的JFrog Container Registry Docker注册表中使用Repository Path方法。
生产中建议使用子域方法
配置JFrog容器注册表
要将JFrog容器注册表配置为使用存储库路径方法,请执行以下步骤:
确保JFrog容器注册表是开始运行.
- 创建您的虚拟Docker存储库(以及它应该聚合的本地和远程Docker存储库)。在下面的例子中,我们将使用一个名为docker-virtual.
去HTTP的设置屏幕从管理模块下| HTTP设置。
在码头工人设置面板中,选择库路径作为Docker访问方法。
在反向代理设置面板中选择嵌入式Tomcat随着服务器提供程序(表示您没有使用反向代理)。您必须使用嵌入式Tomcat
你只能使用JFrog容器注册表作为Docker注册表,而不需要使用内部嵌入式Tomcat来反向代理
配置Docker客户端
使用存储库路径方法,你可以使用JFrog容器注册表作为Docker注册表,而不需要在不安全的连接上使用反向代理(即只支持HTTP,不支持HTTPS)。您需要配置Docker客户端以使用不安全的注册表如在码头工人的文档.
重新启动Docker守护进程/引擎以应用不安全注册表标志(如果导入了自签名证书,则不需要重新启动Docker守护进程/引擎)。运行美元的码头工人信息
将列出已在“不安全注册表”条目下应用的不安全注册表。
测试你的设置
不要使用localhost 127.0.0.1或/artifactory
由于Docker客户端的限制,您不能以localhost或127.0.0.1的身份访问JFrog Container Registry Docker注册表。如果您需要访问本地安装的JFrog容器注册表,请确保指定其完整的IP地址。
另外,当指定JFrog容器注册表的URL时,你应该省略通常使用的“/artifactory”后缀。
例如,如果您的本地计算机的IP地址是10.1.16.114,那么您必须将JFrog容器注册中心URL指定为http://
10.1.16.114:8081
(使用http://localhost
: 8081
不会起作用)。
下面的代码片段假设您有一个虚拟Docker存储库docker-virtual
在IP 10.1.16.114的JFrog容器注册表安装中。
首先,您应该通过运行以下命令来验证Docker客户端是否可以访问JFrog容器注册表。确保返回码为200:
curl -I -k -v http://10.1.16.114:8081/artifactory/api/system/ping
现在可以继续测试Docker注册表了。
登录到JFrog容器注册表作为Docker注册表
Docker登录-u admin -p password 10.1.16.114:8081
中的“hello-world”图像
docker-virtual
存储库Docker pull 10.1.16.114:8081/ Docker -virtual/hello-world:latest
标记Docker图像
Docker tag 10.1.16.114:8081/ Docker -virtual/hello-world:latest 10.1.16.114:8081/ Docker -virtual/
将标记的图像推到
docker-virtual
Docker push 10.1.16.114:8081/ Docker -virtual/