To have multiple docker repositories in Artifactory, you’ll need to setup different SSL ports (e.g have several VirtualHosts) on your Apache configuration. For example, your default-ssl.conf file may look similar to this -
<VirtualHost *:443>
ServerName dockerone.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/docker-registry
SSLCertificateKeyFile /etc/ssl/private/docker-registry.key
ProxyRequests off
ProxyPreserveHost on
ProxyPass / http://localhost:9999/artifactory/api/docker/docker-local/
ProxyPassReverse / http://localhost:9999/artifactory/api/docker/docker-local/
</VirtualHost>
<VirtualHost *:442>
ServerName dockertwo.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/docker-registry
SSLCertificateKeyFile /etc/ssl/private/docker-registry.key
ProxyRequests off
ProxyPreserveHost on
ProxyPass / http://localhost:9999/artifactory/api/docker/docker-local-2/
ProxyPassReverse / http://localhost:9999/artifactory/api/docker/docker-local-2/
</VirtualHost>
To use a non-standard SSL port on a VirtualHost (like 442 in the above example), it is also required to add this to your /etc/apache2/ports.conf file with -
NameVirtualHost *:442
Listen 442
Finally, you need to setup your .dockercfg to manage your credentials per each of the registries, e.g -
{
"https://localhost:442" : {
"auth" : "YWRtaW46QVAzSEZ4UnFhemhoUzlVV2trTFZCMnNHTmlE",
"email" : ""
},
"https://localhost:443" : {
"auth" : "YWRtaW46QVAzSEZ4UnFhemhoUzlVV2trTFZCMnNHTmlE",
"email" : ""
}
}