Изменение, которое вы внесли в / etc / default / docker, возможно, включало синтаксическую ошибку, поэтому Docker не запустился.Чтобы найти причину, по которой он не запустился, вы должны взглянуть на вывод "systemctl status docker.service" и "journalctl -xe".
Я бы предпочел пойти на ваш второй подход, а неизмените / etc / default / docker, но вместо этого выдайте настоящий сертификат.Перейдите на letsencrypt.org и выдайте подстановочный сертификат для artifactory.your.domain и * .artifactory.your.domain, затем настройте реестр Docker с помощью метода домена.
И вам, вероятно, не нуженреестр v1, если у вас нет явной причины для этого.Попробуйте curl -L -u ... https://artifactory.your.domain/v2/_catalog
, чтобы проверить, работает ли ваш реестр.404 ошибки, подобные приведенной выше, указывают на неправильно настроенный обратный прокси-сервер.
Моя конфигурация выглядит следующим образом.Это позволяет мне связаться с artifactory по адресу artifactory.my.domain, докер регистрируется на WHATEVER.artifactory.mydomain и мой виртуальный реестр докеров под названием 'docker' на docker.my.domain, чтобы получить подходящее имя;)
server {
listen [2a01:...]:443 http2;
listen ...7:443 http2;
server_name artifactory.my.domain;
include tls.conf;
location / {
proxy_set_header X-Artifactory-Override-Base-Url https://artifactory.my.domain;
include proxy.conf;
proxy_pass http://.../artifactory/;
}
}
server {
listen [2a01:...]:443 http2;
listen ...:443 http2;
server_name ~(?<repo>.+)\.artifactory.my.domain docker.my.domain;
include tls.conf;
if ($repo = '') {
set $repo docker;
}
location / {
proxy_set_header X-Artifactory-Override-Base-Url https://artifactory.my.domain;
include proxy.conf;
proxy_pass http://.../artifactory/api/docker/$repo$request_uri;
}
}
Где tls.conf выглядит следующим образом, чтобы получить рейтинг + на ssllabs.com:
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.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;