Indholdsfortegnelse
Sådan konfigureres et privat Docker-register på Ubuntu 22.04
Docker-registre er vigtige komponenter i enhver moderne softwareudviklingsproces. De giver en central placering til at lagre, administrere og distribuere Docker-images, hvilket gør det nemt for udviklingshold at dele og genbruge kode. I denne vejledning vil vi guide dig gennem trinene til at konfigurere et privat Docker-register på Ubuntu 22.04.
Introduktion
Et privat Docker-register er en værdifuld ressource for organisationer, der ønsker at have kontrol over deres Docker-images og sikre, at de kun er tilgængelige for autoriserede brugere. Ved at oprette dit eget private register kan du:
– Styre adgangen til dine Docker-images
– Sikre, at kun betroede brugere kan trække og skubbe images
– Oprette flere opbevaringssteder for billeder til forskellige projekter eller teams
Forudsætninger
Før du går i gang, skal du sikre, at du har følgende på plads:
– En Ubuntu 22.04-server med root-adgang
– Et domænenavn eller en offentlig IP-adresse til dit register
– En SSL-certifikat for dit domænenavn
Trin 1: Installer Docker
Hvis Docker ikke allerede er installeret på din server, kan du installere det ved at køre følgende kommandoer:
sudo apt update
sudo apt install docker.io
Trin 2: Opret et Docker-register
Vi vil bruge Notary Server til at oprette vores private Docker-register. Notary er et værktøj til at administrere signering og verificering af Docker-images.
Kør følgende kommandoer for at installere Notary:
sudo apt install notary
sudo systemctl enable --now notary-server
Trin 3: Konfigurer Notary Server
Nu skal vi konfigurere Notary Server til at lytte på en offentlig IP-adresse eller et domænenavn. Åbn konfigurationsfilen for Notary:
sudo nano /etc/notary/notary-server.conf
Find afsnittet [server]
og rediger følgende linjer:
hostname = <dit_domænenavn_eller_offentlige_ip>
tls_port = 443
Gem og luk filen.
Trin 4: Opret et certifikatudstedende myndighed (CA)
En CA bruges til at signere certifikater, som vil blive brugt til at sikre kommunikation med dit register. Kør følgende kommandoer for at oprette en CA:
sudo mkdir -p /etc/pki/CA
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/pki/CA/ca.key -out /etc/pki/CA/ca.crt
Trin 5: Opret et TLS-certifikat for dit register
Nu skal vi oprette et TLS-certifikat for vores register. Kør følgende kommandoer:
sudo mkdir -p /etc/docker/certs.d/<dit_domænenavn>
sudo openssl req -newkey rsa:4096 -nodes -keyout /etc/docker/certs.d/<dit_domænenavn>/server-key.pem -out /etc/docker/certs.d/<dit_domænenavn>/server.csr
sudo openssl x509 -req -days 3650 -in /etc/docker/certs.d/<dit_domænenavn>/server.csr -CA /etc/pki/CA/ca.crt -CAkey /etc/pki/CA/ca.key -CAcreateserial -out /etc/docker/certs.d/<dit_domænenavn>/server.crt
Trin 6: Konfigurer Docker til at bruge Notary
Åbn Docker-daemonkonfigurationsfilen:
sudo nano /etc/docker/daemon.json
Tilføj følgende JSON-blok:
json
{
"registry-mirrors": ["https://<dit_domænenavn>:443"],
"insecure-registries": ["<dit_domænenavn>"],
"runtimes": {
"runc": {
"options": [
"--log-level=debug",
"--debug"
]
}
}
}
Gem og luk filen.
Genstart Docker-daemon:
sudo systemctl restart docker
Trin 7: Opret et Docker-lager
Nu skal vi oprette et Docker-lager, som vil lagre vores Docker-images. Kør følgende kommando:
docker volume create docker-registry
Trin 8: Start et Docker-register
Nu er vi klar til at starte et Docker-register. Kør følgende kommando:
docker run -d --name registry --restart=always -v docker-registry:/var/lib/registry -p 5000:5000 -e REGISTRY_STORAGE_DELETE_ENABLED=true registry:2
Trin 9: Verificer dit register
Åbn din webbrowser og gå til din registrerings-URL (f.eks. https://
Konklusion
Tillykke! Du har nu konfigureret et privat Docker-register på Ubuntu 22.04. Dette giver dig kontrol over dine Docker-images og sikrer, at de kun er tilgængelige for autoriserede brugere. Brug dit register til at forbedre din softwareudviklingsproces, samarbejde effektivt og beskytte dit intellektuelle ejendom.
Ofte stillede spørgsmål
Q: Kan jeg bruge et eksisterende SSL-certifikat til mit register?
A: Ja, du kan bruge et eksisterende SSL-certifikat. Du skal bare placere certifikat- og nøglefilerne i /etc/docker/certs.d/
Q: Hvad er fordelene ved at bruge et privat Docker-register?
A: Fordelene inkluderer kontrol over dine images, forbedret sikkerhed, øget samarbejde og bedre performance.
Q: Kan jeg bruge Docker Hub sammen med mit private register?
A: Ja, du kan bruge begge dele. Konfigurer Docker til at bruge dit private register som standard og træk og skub images fra Docker Hub efter behov.
Q: Hvordan opdaterer jeg Docker-images i mit private register?
A: Du kan bruge docker push
-kommandoen til at skubbe opdaterede images til dit register.
Q: Hvordan administrerer jeg brugere og adgang til mit register?
A: Notary understøtter ikke brugerstyring. Du kan overveje at bruge et tredjepartsværktøj såsom Harbor eller JFrog Artifactory til at håndtere brugerstyring.
Q: Hvor kan jeg få mere information om Docker-registre?
A: Du kan finde yderligere oplysninger i Docker-dokumentationen.
Q: Hvordan fejlsøger jeg problemer med mit private Docker-register?
A: Tjek Docker-logfiler (/var/log/docker), Notary-logfiler (/var/log/notary) og systemlogfiler (/var/log/syslog) for at finde potentielle fejl.
Q: Er det sikkert at bruge et selvsigneret SSL-certifikat til mit register?
A: Selvsignerende certifikater er ikke sikre for produktionsbrug. Det anbefales at bruge et certifikat udstedt af en betroet certifikatautoritet.