GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit soukromý registr dockerů na Ubuntu 20.04

Pro hladký vývoj CI/CD pomocí platformy docker zvažte použití samostatně hostovaného serveru registru dockeru. Registr Docker je úložiště, kde můžete ukládat obrázky dockerů a stahovat je, abyste spouštěli aplikace na serveru. Pro rychlejší doručování a bezpečnou infrastrukturu se doporučuje nastavit vlastní soukromý registr dockerů pro ukládání obrázků dockerů a jejich distribuci mezi organizace. V tomto článku se naučíme, jak nastavit soukromý registr dockeru na Ubuntu 20.04

Předpoklady

  • Uživatelský účet s právy sudo
  • Server pro registr Docker
  • Nginx na serveru registru Docker
  • Klientský server
  • Docker a Docker-Compose na obou serverech.

Soukromý registr dockerů

Docker Registry je aplikace na straně serveru, která vám umožňuje ukládat obrázky dockeru lokálně do jednoho centralizovaného umístění. Nastavením vlastního serveru registru dockerů můžete stahovat a odesílat obrazy dockerů, aniž byste se museli připojovat k centru Docker, šetříte šířku pásma a chráníte před bezpečnostními hrozbami.

Přečtěte si také :Jak nainstalovat a používat Docker na Ubuntu 20.04 / 20.10

Než začnete

Před zahájením se ujišťuji, že jste nainstalovali Docker a Docker-Compose na klientský server i server místního registru. Pro ověření, že jste nainstalovali požadovaný software, můžete spustit následující příkazy a zkontrolovat verzi softwaru.

Verze $ docker

Verze $ docker-compose

Také se musíte ujistit, že služba dockeru je spuštěna a je nastavena tak, aby byla povolena při spouštění:

$ sudo systemctl spustit docker$ sudo systemctl povolit docker

Nainstalujte a nakonfigurujte soukromý registr dockerů

Chcete-li nakonfigurovat soukromý registr dockeru, postupujte takto:

Vytvořit adresáře registru

Nakonfigurujte svůj server, který bude hostitelem soukromého registru. Vytvořte nový adresář, do kterého budou uloženy všechny požadované konfigurační soubory.

Pomocí následujícího příkazu vytvořte nový adresář projektu „my-registry“ a dva podadresáře „nginx“ a „auth“. Pro název projektu můžete mít svůj vlastní předpoklad.

$ mkdir -p můj-registr/{nginx, auth}

Nyní přejděte do adresáře projektu a vytvořte nové adresáře v nginx jako:

$ cd my-registry/$ mkdir -p nginx/{conf.d/, ssl}

Vytvořte skript a služby Docker-Compose

Musíte vytvořit nový skript docker-compose.yml, který definuje verzi docker-compose a služby potřebné k nastavení soukromého registru.

Vytvořte nový soubor „docker-compose.yml“ v adresáři „my-registry“ pomocí editoru vi.

$ vi docker-compose.yml

Definujte svou službu v souboru docker-compose jako:

 Služby:#registry Registry:Image:Registry:2 Restart:Vždy porty:- "5000:5000" Životní prostředí:Registry_Auth:HTPSWD Registry_Auth_htpasswd_realm:Registry-realm Registry_Auth_htpasswd_path:/Auth/registry.passwd registru_storage_filesystem_rootdirectory:/ myregistrydata:/data      - ./auth:/auth    sítě:      - mynet#Nginx Service  nginx:    image:nginx:alpine    název_kontejneru:nginx    restart:dokud nezastaví     tty:true     :4:4 " - 4  4 " -  4 svazky:      - ./nginx/conf.d/:/etc/nginx/conf.d/      - ./nginx/ssl/:/etc/nginx/ssl/    sítě:      - mynet#Docker Networksnetworks:  mynet:    ovladač:bridge Volumesvolumes:  myregistrydata:    driver:local

Uložte a zavřete soubor

Nastavení přesměrování portu nginx

Potřebujeme vytvořit konfiguraci virtuálního hostitele nginx pro webovou službu nginx. Přejděte do adresáře nginx/conf.d/ vytvořeného ve výše uvedeném kroku.

$ cd nginx/conf.d/

Nyní vytvořte soubor virtuálního hostitele nginx pomocí textového editoru. V tomto příkladu jej pojmenuji myregistry.conf. Můžete mít svůj vlastní předpoklad.

$ vi myregistry.conf

Přidejte následující obsah:

upstream docker-registry {    server registry:5000;}server {    listen 80; název_serveru registry.linuxtechi.com; return 301 https://registry.linuxtechi.com$request_uri;}server {    listen 443 ssl http2; název_serveru registry.linuxtechi.com; ssl_certificate /etc/nginx/ssl/certificate.crt; ssl_certificate_key /etc/nginx/ssl/private.key; # Soubory protokolu pro Debug    error_log  /var/log/nginx/error.log; access_log /var/log/nginx/access.log; umístění / {        if ($http_user_agent ~ "^(docker\/1\.(3|4|5(?!\.[0-9]-dev))|Go ).*$" )  {            return 404; }        proxy_pass                          http://docker-registry; proxy_set_header  Host              $http_host; proxy_set_header  X-Real-IP         $remote_addr; proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for; proxy_set_header  X-Forwarded-Proto $scheme; proxy_read_timeout                  900; }}

Nahraďte název své domény parametrem server_name a uložte soubor.

Zvětšit velikost nahrávaného souboru nginx

Ve výchozím nastavení má nginx pro nahrávání souborů limit 1 MB. Protože obrázky dockerů překračují tento limit, musíte zvětšit velikost nahrávání v konfiguračním souboru nginx. V tomto příkladu vytvořím další konfigurační soubor nginx s limitem pro nahrávání 2 GB.

Přejděte do konfiguračního adresáře nginx

$ cd myregistry/nginx/conf.d$ vi Additional.conf

Přidejte následující řádek a uložte soubor

client_max_body_size 2G;

Konfigurace certifikátu SSL a ověřování

Po vytvoření konfiguračního souboru nginx nyní musíme nastavit certifikát ssl . Měli byste mít platný soubor certifikátu ssl se soukromým klíčem. Zkopírujte soubor certifikátu a soukromý klíč do adresáře nginx/ssl jako:

$ cd myregistry/nginx/ssl$ cp /vaše-ssl-cesta-certifikátu/certificate.crt .$ cp /vaše-soukromá-cesta-klíče/private.key .

Pokud nemáte platný zakoupený ssl certifikát, můžete si vygenerovat vlastní ssl certifikát s vlastním podpisem. Nezapomeňte, že certifikát SSL s vlastním podpisem se nedoporučuje pro produkční prostředí. Chcete-li vygenerovat certifikát ssl s vlastním podpisem, spusťte následující příkaz:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout \ /etc/ssl/private/nginx-private.key -out /etc/ssl/certs/nginx-certificate.crt 

Budete požádáni o zadání některých podrobností, jako je kód země, název domény, e-mailové ID. Vyplňte údaje a pokračujte.

Nyní nastavte základní ověřování jako:

Přejděte do adresáře auth

$ cd auth

Požádejte pro svého uživatele o nový soubor hesel s názvem registry.password. V tomto příkladu použiji uživatele linuxtechi.

$ htpasswd -Bc registry.password linuxtechi

Pokud se zobrazí „příkaz htpasswd nenalezen“, spusťte ve svém terminálu následující příkaz a zkuste to znovu.

$  sudo apt install apache2-utils -y

Zadejte silné heslo a potvrďte heslo znovu. Přidali jste základního ověřovacího uživatele pro registr dockerů.

Spusťte registr Docker

Dokončili jste nastavení. Registr můžete vytvořit pomocí příkazu docker-compose.

Přejděte do adresáře, kde vytvoříme soubor docker-compose.yml

$ cd myregistry

Nyní spusťte následující příkaz:

$ docker-compose up -d

Registr Docker je nyní aktivní, běžící kontejnery můžete ověřit pomocí následujícího příkazu:

$ docker ps -a

Získáte následující výstup:

Stáhnout obrázek z Docker Hub do soukromého registru

Chcete-li uložit bitovou kopii z centra Docker do soukromého registru, použijte příkaz docker pull k načtení obrázků dockeru z centra dockeru. V tomto příkladu vytáhnu docker image centos.

$ docker pull centos

Po úspěšném stažení obrázků z docker hubu označte obrázek a označte jej pro soukromý registr.

V tomto příkladu označím obrázky centos jako:registry.linuxtechi.com/linuxtechi-centos

$ docker image tag [název obrázku] registry.linuxtechi.com/[new-image-name]

Příklad:

$ tag docker images centos registry.linuxtechi.com/linuxtechi-centos

Chcete-li zkontrolovat, zda je obraz dockeru lokálně dostupný nebo ne, spusťte následující příkaz.

$ obrázky docker

Odeslání obrazu dockeru do soukromého registru

Stáhli jste obrázek dockeru z centra dockeru a vytvořili značku pro soukromý registr. Nyní musíte odeslat místní bitovou kopii dockeru do soukromého registru.

Nejprve se přihlaste do svého soukromého registru pomocí následujícího příkazu:

Přihlášení $ docker https://registry.linuxtechi.com/v2/

Místo „https://registry.linuxtechi.com“

použijte svou vlastní adresu URL registru

Budete vyzváni k zadání uživatelského jména a hesla; obdržíte zprávu o úspěšném přihlášení jako:

Nyní můžete poslat svůj docker image do soukromého registru. Chcete-li odeslat obrázek, spusťte následující příkaz:

$ docker push registry.linuxtechi.com/linuxtechi-centos

Nahraďte název obrázku za „docker push“

Po dokončení push můžete přejít do prohlížeče a zadat adresu URL:

https://registry.linuxtechi.com/v2/_catalog

Nahraďte registry.linuxtechi.com svou vlastní adresou URL a poskytněte základní ověření. Seznam repozitářů najdete jako :

Stahování obrazu dockeru ze soukromého registru

Vložili jste svůj místní docker image do vašeho soukromého registru dockeru. Stejným způsobem můžete stáhnout obrazy dockeru ze soukromého registru dockeru na místní server.

Spuštěním následujícího příkazu se přihlaste k serveru soukromého registru.

Přihlášení $ docker https://registry.linuxtechi.com

Nahraďte registry.linuxtechi.com svou vlastní adresou URL soukromého registru a poskytněte základní ověřování. Jakmile je přihlášení úspěšné, spusťte následující příkaz a stáhněte obraz dockeru ze soukromého registru. V tomto příkladu vytáhnu dříve vložený obrázek dockeru na místním serveru. Můžete mít svůj vlastní předpoklad pro název obrázku dockeru.

$ docker pull registry.linuxtechi.com/linuxtechi-centos

Budete mít výstup podobný jako:

Závěr:

V článku jste se dozvěděli, jak hostovat svůj vlastní soukromý registr dockerů. Také máte představu o tom, jak stáhnout obrázky z docker hubu na místní server, označit obrázek a odeslat do soukromého registru. Také jste se naučili, jak stahovat obrazy dockeru ze soukromého registru na místním serveru.

Přečtěte si také :Jak nainstalovat KVM na Ubuntu 20.04 LTS Server (Focal Fossa)


Ubuntu
  1. Jak nastavit soukromý registr dockerů na Rocky Linux 8

  2. Jak nastavit HAProxy v Ubuntu 16.04

  3. Jak čistě nastavit síťový docker v Ubuntu Gnome 15.10?

  1. Jak nastavit a používat soukromý registr dockerů

  2. Jak nainstalovat Docker na Ubuntu 18.04

  3. Jak nainstalovat Docker na Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  1. Jak nainstalovat Kubernetes na Ubuntu 18.04

  2. Jak nainstalovat Docker Compose na Ubuntu 18.04

  3. Jak nainstalovat Rancher na Ubuntu