如何让Artifactory充当Docker注册表?

如何让Artifactory充当Docker注册表?,docker,docker-compose,artifactory,Docker,Docker Compose,Artifactory,我希望Artifactory成为Docker注册表。我试着按照指示去做 更新/etc/default/docker文件时,无法重新启动docker服务。尝试重新启动Docker服务时出错 Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. 调

我希望Artifactory成为Docker注册表。我试着按照指示去做

更新/etc/default/docker文件时,无法重新启动docker服务。尝试重新启动Docker服务时出错

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
调查这个错误对我没有帮助。因此,我试图通过不修改此文件来解决这个问题

当我尝试此命令“docker login docker.artifactory”时,我得到以下结果:

Error response from daemon: Get https://docker.artifactory/v1/users/: x509: certificate is valid for localhost, not docker.artifactory
因此,我尝试了这个命令“”。但结果是:

Error response from daemon: Login: {
  "errors" : [ {
    "status" : 404,
    "message" : "Not Found"
  } ]
} (Code: 404; Headers: map[Server:[Artifactory/5.11.0] X-Artifactory-Id:[fc560f4748814da2:18461899:1635019eb47:-8000] Date:[Fri, 11 May 2018 20:15:27 GMT] Content-Type:[application/json]])
我正在运行Ubuntu 16、Docker 1.13.1和Artifactory 5.11版。我可以从Docker容器中运行的GUI登录到Artifactory。我无法让Artifactory作为Docker注册表工作,尽管我尝试在两个不同的Linux发行版上遵循说明

我的第二次尝试涉及尝试重新部署Artifactory,将docker compose作为CentOS服务器上的docker注册表。但这也失败了。由于我不清楚的原因,本应支持注册表的三个Docker容器(Postgres、Artifactory和Nginx)仍处于“重新启动”状态。我无法使Artifactory web UI在CentOS上正常工作


我试过很多方法来为自己找到工作的方向。我做错了什么?如何使Artifactory成为docker注册表?

您对/etc/default/docker所做的修改可能包含语法错误,这就是docker没有启动的原因。要找到它没有启动的原因,您应该查看“systemctl status docker.service”和“journalctl-xe”的输出

我宁愿使用第二种方法,而不是修改/etc/default/docker,而是发布一个真正的证书。转到letsencrypt.org,向artifactory.your.domain和*.artifactory.your.domain颁发通配符证书,然后使用domain方法设置Docker注册表

您可能不需要v1注册表,除非您有明确的理由。试试旋度-L-u。。。https://artifactory.your.domain/v2/_catalog检查您的注册表是否正常工作。404类似上述错误表示反向代理配置错误

我的配置如下所示。这一切都使我能够访问artifactory.my.domain上的artifactory、WHATEVER.artifactory.mydomain上的docker注册表以及docker.my.domain上名为“docker”的虚拟docker注册表,以获得一个好名字;)

proxy.conf如下所示:

proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cookie_path  ~*^/.* /;
proxy_read_timeout  900;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;

您必须编辑docker选项以允许docker.artifactory不安全,如说明所示。因为您没有,所以您得到了x509错误。请编辑文件,然后显示systemctl状态,如错误消息所示,以便我们可以查看错误是什么。
ssl on;
ssl_certificate           /etc/letsencrypt/live/.../fullchain.pem;
ssl_certificate_key       /etc/letsencrypt/live/.../privkey.pem;
ssl_dhparam               dhparam.pem;
ssl_ecdh_curve            secp384r1;
ssl_protocols             TLSv1.2;
ssl_prefer_server_ciphers on;
#ssl_ciphers               'EECDH+ECDSA+AESGCM:!AES128';
#ssl_ciphers               'EECDH+AESGCM';

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
add_header Public-Key-Pins 'pin-sha256="Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys="; pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg="; pin-sha256="sRHdihwgkaib1P1gxX8HFszlD+7/gTfNvuAybgLPNis="; max-age=31536000; includeSubDomains; preload';

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;


ssl_stapling on;
ssl_stapling_verify on;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cookie_path  ~*^/.* /;
proxy_read_timeout  900;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;