2016-07-11 6 views
5

Ich bin auf Artefakt Version 4.6 und haben die folgende Voraussetzung für die Docker-Registrierung.Anonyme Pull-Andock-Repository in Artefakte

Anonyme Schieber an Docker Repository Force-Authentifizierung auf dem gleichen Docker Repository

Ich weiß, das aus der Box auf den späteren Versionen von artifactory avaliable ist. Upgrade ist jedoch für uns keine Option.

Funktioniert die folgende Arbeit?

  1. Erstellen Sie ein virtuelles Docker Repository auf Port 8443 und Authentifizierung nicht mit Gewalt, nennen es Andockfenster-virtual
  2. eine lokale Authentifizierungs Docker Repository und Kraft erzeugen, rufen sie Andockfenster-local auf Port 8444
  3. konfigurieren 'docker-virtuelle' mit dem Standard-Bereitstellungsverzeichnis als 'docker-local'

    docker pull docker-virtual should work docker push docker-virtual should ask for credentials

Bei einem Ausfall, sollte ich in der Lage sein, das Sie ohne Anmeldeinformationen auf Docker Push können Andockfenster login docker-virtual und docker push docker-virtual/myImage

Antwort

1

Die nächste Sache erreichen ausfällt (während mit Pull nachfolgenden).

+0

was passiert, wenn ein virtuelles Docker Repository geschieht mit einem Standard-Bereitstellungsverzeichnis, das Kräfte-Authentifizierung konfiguriert ist? –

+0

Wenn der Benutzer nicht angemeldet ist, schlägt der Push fehl. Docker unterstützt keine interaktive Anmeldung. Sie loggen sich entweder mit dem Befehl 'docker login' vor oder nicht. – JBaruch

+0

Gibt es eine Möglichkeit, den Port umzuleiten, sich irgendwie als 'doker login virtual-docker-repo' anzumelden, aber dies leitet es nur für Pushs an das eigentliche lokale Docker Deployment Repo weiter? –

2

Nicht sicher über die Artefaktseite, aber vielleicht hilft der folgende Docker Rat.

Sie können zwei Register laufen beginnen, ein RW mit Authentifizierung und eine zweite RO ohne Authentifizierung, in Docker:

docker run -d -p 5000:5000 --restart=always --name registry \ 
    -v `pwd`/certs:/certs:ro \ 
    -v `pwd`/auth/htpasswd:/auth/htpasswd:ro \ 
    -v `pwd`/registry:/var/lib/registry \ 
    -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/host-cert.pem" \ 
    -e "REGISTRY_HTTP_TLS_KEY=/certs/host-key.pem" \ 
    -e "REGISTRY_AUTH=htpasswd" \ 
    -e "REGISTRY_AUTH_HTPASSWD_REALM=My Registry" \ 
    -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \ 
    -e "REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry" \ 
    registry:2 

docker run -d -p 5001:5000 --restart=always --name registry-ro \ 
    -v `pwd`/certs:/certs:ro \ 
    -v `pwd`/auth/htpasswd:/auth/htpasswd:ro \ 
    -v `pwd`/registry:/var/lib/registry:ro \ 
    -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/host-cert.pem" \ 
    -e "REGISTRY_HTTP_TLS_KEY=/certs/host-key.pem" \ 
    -e "REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry" \ 
    registry:2 

Hinweis der Lautstärkeeinstellungen für/var/lib/Registrierung in jeden Behälter. Um dann aus der anonymen Registrierung zu ziehen, müssen Sie nur den Port ändern. Da das Dateisystem RO ist, wird jeder Versuch, zu 5001 zu gelangen, fehlschlagen.

+0

Ich möchte nicht zwei Endpunkte –

0

Keine Ahnung, ob dies mit artefactory funktioniert sorry .... Sie könnten dieses handliche Projekt für docker Registry Auth versuchen.

Konfigurieren Sie die Registrierung dieses https://hub.docker.com/r/cesanta/docker_auth/

# registry config.yml 
... 
auth: 
    token: 
    # can be the same as your docker registry if you use nginx to proxy /auth to docker_auth 
    # https://docs.docker.com/registry/recipes/nginx/ 
    realm: "example.com:5001/auth" 
    service: "Docker registry" 
    issuer: "Docker Registry auth server" 
    rootcertbundle: /certs/domain.crt 

zu verwenden und anonym erlauben, mit dem entsprechenden ACL

# cesanta/docker_auth auth_config.yml 
... 

users: 
    # Password is specified as a BCrypt hash. Use htpasswd -B to generate. 
    "admin": 
    password: "$2y$05$LO.vzwpWC5LZGqThvEfznu8qhb5SGqvBSWY1J3yZ4AxtMRZ3kN5jC" # badmin 
    "": {} # Allow anonymous (no "docker login") access. 


ldap_auth: 
    # See: https://github.com/cesanta/docker_auth/blob/master/examples/ldap_auth.yml 

acl: 
    # See https://github.com/cesanta/docker_auth/blob/master/examples/reference.yml#L178 
    - match: {account: "/.+/"} 
    actions: ["*"] 
    comment: "Logged in users do anything." 
    - match: {account: ""} 
    actions: ["pull"] 
    comment: "Anonymous users can pull anything." 
    # Access is denied by default. 
+0

Ich habe das nicht verwendet, aber es sieht ähnlich aus wie ich: https://the.binbashtheory.com/creating-private-docker-registry-2-0-with-token-authentication- Bedienung/ – KCD