Hvordan sette opp et privat Docker-register på Ubuntu 22.04

Hvordan sette opp et privat Docker-register på Ubuntu 22.04

Docker er en populær plattform for containerisering av applikasjoner. Den gir et konsistent miljø for å kjøre applikasjoner uavhengig av den underliggende infrastrukturen. For å lagre og administrere Docker-bilder, kan du sette opp et privat Docker-register. Dette gir deg større kontroll og sikkerhet over bildene dine.

Denne veiledningen vil guide deg gjennom trinnene for å sette opp et privat Docker-register på Ubuntu 22.04. Vi vil bruke Docker Distribution (Distribution) som en enkel og åpen kildekode Docker-registeroppløsning.

Krav

Før du begynner, må du sørge for at du har følgende:

* En Ubuntu 22.04-server
* En installert Docker-motor
* En domenenavnkoblet til serverens IP-adresse

Konfigurere Docker-distribusjon

1. Installere Docker-distribusjon

Kjør følgende kommando for å installere Docker-distribusjon:


sudo apt update
sudo apt install docker-distribution

2. Opprette et registreringssenter

Opprett et registreringssenter ved å kjøre følgende kommando:

  De beste 3D-skriverne under $500 i 2019


sudo mkdir /var/lib/registry
sudo chown 1000:1000 /var/lib/registry

3. Kjør distribusjonstjenesten

Kjør distribusjonstjenesten ved å bruke følgende kommando:


sudo docker run -d -p 5000:5000 --restart=always --name registry \
-v /var/lib/registry:/var/lib/registry \
registry:2

Stille inn SSL/TLS

For å sikre kommunikasjonen mellom Docker-klienten og registeret, bør du sette opp SSL/TLS.

1. Generere et SSL-sertifikat

Kjør følgende kommando for å generere et selvsignert SSL-sertifikat:


sudo openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/registry.key -out /etc/ssl/certs/registry.crt -days 365 -nodes

2. Konfigurere Docker-distribusjon

Rediger docker-distribution-konfigurasjonsfilen på /etc/docker/registry/config.yml og legg til følgende seksjon:


version: 0.12
storage:
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
tls:
certificate: /etc/ssl/certs/registry.crt
key: /etc/ssl/private/registry.key

3. Start distribusjonstjenesten på nytt

Start Docker-distribusjonstjenesten på nytt for å bruke de nye endringene:


sudo systemctl restart registry

Konfigurere Docker-klienten

For å bruke det private registeret ditt, må du konfigurere Docker-klienten til å peke til det.

1. Finne registernavnet

Finn ut navnet på registeret ditt ved å kjøre følgende kommando:


sudo docker inspect registry | grep Hostname

2. Legg til registeret i Docker-konfigurasjonen

Legg til registernavnet i Docker-konfigurasjonsfilen på ~/.docker/config.json. Hvis filen ikke eksisterer, kan du opprette den.

json
{
"registries": {
"mitt-register": {
"location": "https://mitt-register.eksempel.no:5000"
}
}
}

3. Logg på til registeret

Logg på til det private registeret ditt ved å bruke følgende kommando:


sudo docker login mitt-register.eksempel.no

Testing registeret

1. Lagre et bilde i registeret

Lag et Docker-bilde og skyv det til det private registeret ditt:

  7 beste unturned server hosting for alle


sudo docker build -t mitt-register.eksempel.no/mitt-bilde .
sudo docker push mitt-register.eksempel.no/mitt-bilde

2. Trekke et bilde fra registeret

Trekk bildet fra registeret ditt:


sudo docker pull mitt-register.eksempel.no/mitt-bilde

Konklusjon

Du har nå satt opp et privat Docker-register på Ubuntu 22.04. Dette gir deg en sikker og sentralisert måte å lagre og administrere Docker-bilder. Du kan nå enkelt dele og bruke bilder i hele organisasjonen din.

Å ha et privat register gir deg følgende fordeler:

* Kontroll: Du har full kontroll over bildene dine og kan bestemme hvem som har tilgang til dem.
* Sikkerhet: Bildene dine er lagret på en sikker måte, og tilgangen er begrenset til autoriserte brukere.
* Effektivitet: Et privat register reduserer behovet for å laste ned bilder fra eksterne kilder, noe som forbedrer bygge- og distribusjonstiden.

Vanlige spørsmål

1. Hva er fordelene med å bruke Docker-distribusjon?
Docker-distribusjon er et åpent kildekode Docker-registeroppløsning som er enkelt å sette opp og bruke. Det gir et grunnleggende register som kan utvides med plugins.

2. Hvordan kan jeg lagre bilder i registeret mitt fra en ekstern server?
Du kan bruke Docker-kommandoen docker save for å lagre et bilde i et TAR-arkiv og deretter laste det inn i registeret ditt ved hjelp av kommandoen docker load.

3. Kan jeg bruke et domenenavn for registeret mitt?
Ja, du kan bruke et domenenavn for registeret ditt ved å sette opp et DNS-record (A-record) som peker til serverens IP-adresse.

  Hvordan installere Genesis Framework på WordPress?

4. Hvordan kan jeg begrense tilgangen til registret mitt?
Du kan begrense tilgangen til registeret ditt ved å konfigurere ACL-er (Access Control Lists) på servernivå eller bruke LDAP- eller OIDC-autentisering.

5. Hva er forskjellen mellom et privat og et offentlig Docker-register?
Et privat Docker-register er kun tilgjengelig for autoriserte brukere, mens et offentlig Docker-register er åpent for alle.

6. Kan jeg bruke mitt privat-register med andre Docker-verktøy?
Ja, du kan bruke ditt private register med andre Docker-verktøy, for eksempel Docker Compose og Kubernetes.

7. Hvordan kan jeg overvåke registeret mitt?
Du kan overvåke registeret ditt ved å bruke Docker-statistikkkommandoen eller ved å integrere det med et overvåkingssystem, for eksempel Prometheus.

8. Hvordan kan jeg feilsøke problemer med registeret mitt?
Du kan feilsøke problemer med registeret ditt ved å sjekke Docker-loggene eller ved å bruke verktøyet docker container ls for å se om registreringsbeholderen kjører.

9. Er det mulig å sikkerhetskopiere og gjenopprette registeret mitt?
Ja, du kan sikkerhetskopiere og gjenopprette registeret ditt ved hjelp av Docker-kommandoene docker save og docker load.

10. Er det best praksis å bruke et privat Docker-register for alle prosjekter?
Det kan være best praksis å bruke et privat Docker-register for prosjekter som inneholder sensitive data eller som trenger streng tilgangskontroll. For mindre prosjekter eller prosjekter der sikkerhet ikke er en bekymring, kan det være hensiktsmessig å bruke Docker Hub eller et annet offentlig register.