Ricerca…


introduzione

Un registro docker privato e sicuro invece di un Docker Hub. Sono richieste le abilità di docker di base.

Parametri

Comando Spiegazione
sudo docker run -p 5000: 5000 Avviare un contenitore di finestra mobile e collegare la porta 5000 dal contenitore alla porta 5000 della macchina fisica.
--nome registro Nome del contenitore (utilizzare per migliorare la leggibilità di "docker ps").
-v 'pwd' / certs: / certs Collega CURRENT_DIR / certs della macchina fisica su / certs del contenitore (come una "cartella condivisa").
-e REGISTRY_HTTP_TLS_CERTIFICATE = / certs / server.crt Specifichiamo che il registro dovrebbe usare il file /certs/server.crt per iniziare. (variabile env)
-e REGISTRY_HTTP_TLS_KEY = / certs / server.key Lo stesso per la chiave RSA (server.key).
-v / root / images: / var / lib / registry / Se si desidera salvare tutte le immagini del registro, è necessario farlo sul computer fisico. Qui salviamo tutte le immagini su / root / images sulla macchina fisica. Se si esegue questa operazione, è possibile interrompere e riavviare il registro senza perdere alcuna immagine.
Registro di sistema: 2 Specifichiamo che vorremmo estrarre l'immagine del registro dall'hub docker (o localmente), e aggiungiamo «2» perché vogliamo installare la versione 2 del registro.

Osservazioni

Come installare un motore mobile (chiamato client in questo tutorial)

Come generare un certificato autofirmato SSL

Generazione di certificati

Genera una chiave privata RSA: openssl genrsa -des3 -out server.key 4096

Openssl dovrebbe chiedere una passphrase in questo passaggio. Si noti che verrà utilizzato solo il certificato per la comunicazione e l'autenticazione, senza passphrase. Basta usare 123456 per esempio.

Genera la richiesta di firma del certificato: openssl req -new -key server.key -out server.csr

Questo passaggio è importante perché ti verranno chieste alcune informazioni sui certificati. Le informazioni più importanti sono "Nome comune", ovvero il nome del dominio, che può essere utilizzato per le comunicazioni tra il registro di posta elettronica privato e tutte le altre macchine. Esempio: mydomain.com

Rimuovi la passphrase dalla chiave privata RSA: cp server.key server.key.org && openssl rsa -in server.key.org -out server.key

Come ho detto, ci concentreremo sul certificato senza passaparola. Quindi fai attenzione con tutti i file della tua chiave (.key, .csr, .crt) e conservali in un posto sicuro.

Genera il certificato autofirmato: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Sono ora disponibili due file essenziali, server.key e server.crt , necessari per l'autenticazione del registro privato.

Esegui il registro con un certificato autofirmato

Per eseguire il registro privato (in modo sicuro) è necessario generare un certificato autofirmato, è possibile fare riferimento all'esempio precedente per generarlo.

Per il mio esempio ho messo server.key e server.crt in / root / certs

Prima di eseguire il comando finestra mobile devi essere posizionato (usa cd ) nella directory che contiene la cartella certs . Se non lo sei e provi a eseguire il comando riceverai un errore come

level = fatal msg = "apri /certs/server.crt: nessun file o directory"

Quando sei ( cd /root nel mio esempio), puoi fondamentalmente avviare il registro sicuro / privato usando: sudo docker run -p 5000:5000 --restart=always --name registry -v `pwd`/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt -e REGISTRY_HTTP_TLS_KEY=/certs/server.key -v /root/Documents:/var/lib/registry/ registry:2
Spiegazioni sul comando sono disponibili sulla parte Parametri.

Tirare o spingere da un client finestra mobile

Quando si ottiene un registro di lavoro in esecuzione, è possibile trascinare o spingere le immagini su di esso. Per questo è necessario il file server.crt in una cartella speciale sul client docker. Il certificato consente di autenticare con il registro e quindi crittografare la comunicazione.

Copia server.crt dalla macchina del registro in /etc/docker/certs.d/mydomain.com:5000/ sul computer client. Quindi rinominarlo in ca-certificates.crt : mv /etc/docker/certs.d/mydomain.com:5000/server.crt /etc/docker/certs.d/mydomain.com:5000/ca-certificates.crt

A questo punto puoi tirare o spingere le immagini dal tuo registro privato:
PULL: docker pull mydomain.com:5000/nginx o
SPINGERE :

  1. Ottieni un'immagine ufficiale da hub.docker.com: docker docker pull nginx
  2. Contrassegna questa immagine prima di passare al registro privato: docker tag IMAGE_ID mydomain.com:5000/nginx (usa le docker images per ottenere IMAGE_ID)
  3. Spingere l'immagine nel registro: docker push mydomain.com:5000/nginx


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow