开始使用人工云
使用Docker存储库Artifactory云又快又容易。W使用Artifactory Cloud,您将Artifactory用作托管服务,并且不需要使用反向代理配置Artifactory。
本节末尾的示例展示了创建Docker存储库、登录、提取映像和推送映像的完整过程。
使用Docker客户端与人工云
要将Docker客户端与您的Artifactory Cloud Docker存储库之一一起使用,您可以使用本机Docker客户端登录每个Docker存储库,拉取和推送映像。
使用以下命令和Artifactory Cloud凭据登录到存储库。
Docker登录${server-name}.jfrog.io
使用以下命令拉取图像。
Docker pull ${server-name}.jfrog。io / {repo-name} / <图像名称>
通过首先标记图像,然后使用Push命令来推送图像。
Docker标签
${server-name}.jfrog。io / {repo-name} / <图像名称>docker push ${server-name}.jfrog.io/{repo-name}/
测试你的设置
以下示例演示了以下场景:
- 把
hello world
码头工人形象 - 登录到虚拟Docker存储库
- 重新贴标签的
hello world
镜像,然后将其推送到虚拟Docker存储库中
在本例中,Artifactory Cloud服务器被命名acme.
- 首先创建一个虚拟Docker存储库被称为
dockerv2-virtual
. 把
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 push acme-dockerv2-virtual.jfrog.io/hello-world
开始使用Artifactory Pro On-Prem
Docker客户端有以下两个限制:
- 当提供注册表路径时,不能使用上下文路径
localhost: 8082 / artifactory
无效) - Docker只会在HTTPS主机上工作时发送基本的HTTP认证不安全的注册表国旗
Artifactory为这些限制提供了解决方案,允许您创建和使用任意数量的Docker注册表。
- 使用反向代理
当使用反向代理时,它会将Docker命令映射到Artifactory中的多个Docker注册表之一 - 没有反向代理
从5.8版开始,Artifactory支持使用Docker而不使用反向代理,允许您在Artifactory中开箱即用地创建和使用多个Docker注册表。
使用反向代理
当将Artifactory与反向代理一起使用时,你需要使用子域法,端口的方法或存储库路径法.
测试还是评估?
如果您目前只是在使用Docker进行Artifactory测试或评估,我们建议使用将Artifactory作为Docker容器运行它很容易安装,并且附带了一个代理服务器和预先配置好的Docker注册表。您可以在几分钟内启动并运行。
使用ports方法,一个端口号被映射到每个Artifactory Docker注册表。虽然这是一种简单的入门方法,但您需要修改反向代理配置,并为您在Artifactory中定义的每个新Docker注册表添加新的映射。此外,防火墙和IT部门的其他限制可能会限制端口号,使端口方法不可行。
使用子域方法,你只需要配置一次反向代理,从那时起,从Docker命令到Artifactory中的Docker注册表的映射是动态的,不需要进一步修改反向代理配置。
存储库路径方法允许单一入口点(URL)访问不同的存储库。这是通过将要访问的存储库的名称嵌入到映像路径中来实现的。
如果通配符证书可用,我们建议使用子域方法,因为它只需要一次操作,并且更符合Docker惯例。
子域方法
使用子域方法开始使用Docker和本地Artifactory Pro安装包括四个基本步骤:
配置Artifactory
T若要使用子域方法配置Artifactory和反向代理,请执行以下步骤:
- 确保Artifactory启动并运行,是使用有效的许可证激活.
- 创建您的虚拟Docker存储库(以及它应该聚合的本地和远程Docker存储库)。在下面的示例中,我们将使用一个名为docker-virtual.
- 确保您有一个启动并运行的反向代理服务器。
获得一个通配符SSL证书或使用通配符自签名证书。要创建自签名证书,可以执行以下操作Ubuntu使用说明.
确保您的证书与Artifactory主机名在反向代理配置中使用。在下面的示例中,我们将使用art.local.
配置反向代理
Artifactory可以为支持的服务器生成完整的反向代理配置文件。
去反向代理配置生成器并根据您的反向代理设置方式填写字段,同时确保:
- 使用正确的Artifactory主机名在公共服务器名称字段(在我们的示例中,这将是)
art.local
) - 选择子域名随着反向代理方法下Docker反向代理设置.
Nginx
方法生成的代码片段配置发电机到你的artifactory-nginx.conf
归档,并把它放在你的/etc/nginx/sites-available
目录中。
创建以下符号链接。
/etc/nginx/sites-enabled/artifactory-nginx.conf
Apache HTTPD
方法生成的代码片段配置发电机到你的artifactory-apache.conf
把它归档并放在你的/etc/apache2/sites-available
目录中。
创建以下符号链接:
/etc/apache2/sites-enabled/artifactory-apache.conf
的httpd . conf头文件应该使用这些值来调整以正确工作,以避免错误:
# Apache库位置(应该调整)定义APACHE_LIB_DIR /usr/lib/apache2/modules <----在UI中输入可能是伟大的# Apache日志(默认:在其他Artifactory日志旁边)定义APACHE_LOG_DIR /[TheArtifactoryHome]/ Logs <---- ErrorLog/CustomLog可以不加注释,输入在UI中可能是伟大的LoadModule proxy_module ${APACHE_LIB_DIR}/mod_proxy。所以LoadModule rewrite_module ${APACHE_LIB_DIR}/mod_rewrite。所以LoadModule proxy_ajp_module ${APACHE_LIB_DIR}/mod_proxy_ajp。所以LoadModule proxy_http_module ${APACHE_LIB_DIR}/mod_proxy_http。所以LoadModule ssl_module ${APACHE_LIB_DIR}/mod_ssl。so <----仅当HTTPS使用Listen 443 <----仅当HTTPS使用Listen XXX <——所有端口用作Docker注册表
配置Docker客户端
要配置Docker客户端,请执行以下步骤
将以下内容添加到您的DNS或客户端的DNS中
设置
文件:< ip地址> docker-virtual.art.local
由于证书是自签名的,因此需要将其导入到Docker证书信任存储库中,如码头工人的文档.或者,您可以配置Docker客户端使用不安全的注册表,如码头工人的文档.
重新启动Docker守护进程/引擎,使用不安全的注册表标志(如果导入的是自签名证书,则不需要重新启动Docker守护进程/引擎)。
测试你的设置
要验证反向代理配置正确,请运行以下命令,确保返回码为200:
curl -I -k -v https:///api/system/ping
运行以下命令确保您的代理配置功能正常,并且可以与Artifactory通信:
拉出“hello-world”图像
码头拉你好,世界
登录到存储库docker-virtual
Docker -virtual.art.local
标记“hello-world”图像
Docker -virtual.art.local/hello-world
将标记的“hello-world”图像推送到docker-virtual
Docker -virtual.art.local/hello-world
存储库路径方法
使用路径方法开始使用Docker和本地Artifactory Pro安装包括四个基本步骤:
配置Artifactory
T要使用路径方法配置Artifactory和反向代理,请执行以下步骤:
- 确保Artifactory启动并运行,是使用有效的许可证激活.
- 创建您的虚拟Docker存储库(以及它应该聚合的本地和远程Docker存储库)。在下面的示例中,我们将使用一个名为docker-virtual.
- 确保您有一个启动并运行的反向代理服务器。
获取有效的SSL证书或使用自签名证书。要创建自签名证书,可以执行以下操作Ubuntu使用说明.
确保您的证书与Artifactory主机名在反向代理配置中使用。在下面的示例中,我们将使用art.local.
配置反向代理
Artifactory可以为支持的服务器生成完整的反向代理配置文件。
去反向代理配置生成器并根据您的反向代理设置方式填写字段,同时确保:
- 使用正确的Artifactory主机名在公共服务器名称字段(在我们的示例中,这将是)
art.local
) - 选择库路径随着反向代理方法下Docker反向代理设置.
Nginx
方法生成的代码片段配置发电机到你的artifactory-nginx.conf
归档,并把它放在你的/etc/nginx/sites-available
目录中。
创建以下符号链接。
/etc/nginx/sites-enabled/artifactory-nginx.conf
Apache HTTPD
方法生成的代码片段配置发电机到你的artifactory-apache.conf
把它归档并放在你的/etc/apache2/sites-available
目录中。
创建以下符号链接:
/etc/apache2/sites-enabled/artifactory-apache.conf
配置Docker客户端
要配置Docker客户端,请执行以下步骤
将以下内容添加到您的DNS或客户端的DNS中
设置
文件:< ip地址> art.local
由于证书是自签名的,因此需要将其导入到Docker证书信任存储库中,如码头工人的文档.或者,您可以配置Docker客户端使用不安全的注册表,如码头工人的文档.
重新启动Docker守护进程/引擎,使用不安全的注册表标志(如果导入的是自签名证书,则不需要重新启动Docker守护进程/引擎)。
测试你的设置
要验证反向代理配置正确,请运行以下命令,确保返回码为200:
curl -I -k -v https:///api/system/ping
运行以下命令确保您的代理配置功能正常,并且可以与Artifactory通信:
拉出“hello-world”图像
码头拉你好,世界
登录到存储库docker-virtual
Docker登录art.local
标记“hello-world”图像
Docker标签hello-world art.local/ Docker -virtual/hello-world
将标记的“hello-world”图像推送到docker-virtual
art.local/ Docker -virtual/hello-world
Ports方法
使用ports方法开始使用Docker和本地Artifactory Pro安装包括两个基本步骤:
配置Artifactory和反向代理
要使用ports方法配置Artifactory和反向代理,请执行以下步骤:
- 确保Artifactory启动并运行,并使用有效的许可证激活。
- 创建您的虚拟Docker注册表(以及它应该聚合的本地和远程Docker存储库)。在下面的示例中,我们将使用一个名为docker-virtual.
- 确保您有一个启动并运行的反向代理服务器。
获取SSL证书或使用自签名证书,该证书可以按照本示例生成。
确保您的证书与Artifactory主机名在反向代理配置中使用。在下面的示例中,我们将使用
art.local
.- 配置反向代理。Artifactory的反向代理配置生成器可以为支持的服务器生成完整的反向代理配置文件。您所需要做的就是根据反向代理的设置方式填写字段,同时确保:
- 使用正确的Artifactory主机名在公共服务器名称场
- 选择港口随着反向代理方法下Docker反向代理设置.在下面的示例中,我们将使用port
5001
绑定存储库docker-virtual
.
NGINX
要让Artifactory与Docker一起工作,首选的web服务器是
NGINX v1.3.9
及以上。
首先,您需要为NGINX创建一个自签名证书这里描述的是Ubuntu.
然后使用Artifactory的反向代理配置生成器为您生成配置代码片段。
将代码片段复制到artifactory-nginx.conf
把它归档并放在你的/etc/nginx/sites-available
目录中。
最后,创建以下符号链接:/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
然后使用Artifactory的反向代理配置生成器为您生成配置代码片段。
将代码片段复制到artifactory.conf
把它归档并放在你的/etc/apache2/sites-available
目录中。HAProxy
首先,您需要为HAProxy创建一个自签名证书这里描述的是Ubuntu.然后,将下面的代码片段复制到
/etc/haproxy/haproxy.cfg
文件。按照代码片段中的描述编辑完文件后,您可以使用以下命令测试配置:/etc/haproxy/haproxy.cfg
配置Docker客户端
要配置Docker客户端,请执行以下步骤
将以下内容添加到您的DNS或客户端的DNS中
设置
文件:< ip地址> art.local
由于证书是自签名的,因此需要将其导入到Docker证书信任存储库中,如码头工人的文档.或者,您可以将Docker客户端配置为使用不安全的注册表,方法是在您的
/etc/default/docker
文件(如果该文件不存在,您可能需要创建该文件):DOCKER_OPTS="$DOCKER_OPTS -不安全-注册表art.local:5001"
重新启动Docker引擎。
测试你的设置
验证反向代理配置是否正确,使用如下命令:
//确保返回代码为200 curl -I -k -v https:///api/system/ping
运行以下命令以确保您的代理配置是正常的,并且可以与Artifactory通信。在这个例子中,我们将拉下一个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守护进程/引擎)。
运行美元的码头工人信息
将列出已在“不安全注册表”项下应用的不安全注册表。- 使用上面的步骤与Artifactory Docker Registry进行交互
没有反向代理
以前,Artifactory在使用反向代理时支持上面描述的Ports和子域方法。从5.8版。Artifactory引入了一个新方法,称为“存储库路径”方法,因为它使用了Docker存储库路径前缀(< REPOSITORY_KEY /图片>
)从Docker客户端访问指定的Artifactory Docker注册表。请注意,由于其他原因,您可能仍然需要为Artifactory配置一个反向代理,但是当配置为使用Repository Path方法时,对Artifactory中Docker注册表的请求将由Artifactory的嵌入式Tomcat处理,而不是反向代理。
需要Docker API v2
你只能在为Docker API v2配置了人工Docker注册表的情况下使用Repository Path方法。
建议使用子域方法进行生产
配置Artifactory
要配置Artifactory使用Repository Path方法,请执行以下步骤:
确保Artifactory启动并运行,并使用有效的许可证激活。
- 创建您的虚拟Docker存储库(以及它应该聚合的本地和远程Docker存储库)。在下面的示例中,我们将使用一个名为
docker-virtual
. 去HTTP的设置从政府模块下Artifactory |通用| HTTP设置.
在码头工人设置面板中,选择库路径作为Docker访问方法。
在反向代理设置面板中选择嵌入式Tomcat随着服务器提供程序(这表明您没有使用反向代理)。必须使用嵌入式Tomcat
您只能使用Artifactory作为Docker注册表,而不需要使用内部嵌入式Tomcat的反向代理。
配置Docker客户端
使用Repository Path方法,你可以使用Artifactory作为Docker注册表,而不需要在不安全的连接上使用反向代理(即只支持HTTP,不支持HTTPS)。你需要将Docker客户端配置为使用不安全的注册表如《码头工人的文档.
重新启动Docker守护进程/引擎,使用不安全的注册表标志(如果导入的是自签名证书,则不需要重新启动Docker守护进程/引擎)。运行美元的码头工人信息
将列出已在“不安全注册表”项下应用的不安全注册表。
测试你的设置
不要使用localhost或127.0.0.1或"/artifactory"
由于Docker客户端的限制,您不能以localhost或127.0.0.1.
如果您需要访问Artifactory的本地安装,请确保指定其完整的IP地址。
此外,在指定Artifactory的URL时,应该省略/ artifactory
通常使用的后缀。
例如,如果您的本地机器的IP地址是10.1.16.114,那么您必须将Artifactory URL指定为http://
10.1.16.114:8082
(使用http://localhost
: 8082
不会起作用)。
下面的代码片段假设您有一个名为docker-virtual
在IP 10.1.16.114的人工安装中。
首先,您应该通过运行以下命令来验证Docker客户端是否可以访问Artifactory。确保返回码为200:
旋度-I -k -v http://10.1.16.114:8082/artifactory/api/system/ping
现在可以继续测试Docker注册表了。
作为Docker注册表登录到Artifactory
Docker登录-u admin -p password 10.1.16.114:8082
把
hello world
图片来自docker-virtual
存储库Docker pull 10.1.16.114:8082/ Docker -virtual/hello-world:latest
标记Docker映像
Docker tag 10.1.16.114:8082/ Docker -virtual/hello-world:最新10.1.16.114:8082/ Docker -virtual/
将标记的图像推到
docker-virtual
Docker push 10.1.16.114:8082/ Docker -virtual/