V systému CoreOS nastavte svůj vlastní registr Docker

V systému CoreOS nastavte svůj vlastní registr Docker

Všichni známe a milujeme Docker, platformu pro vytváření, správu a distribuci aplikačních kontejnerů na více počítačích. Docker Inc. poskytuje službu pro hostování kontejnerů s otevřeným zdrojovým kódem, které lze stáhnout (nebo stáhnout) jako úložiště git známé jako „Docker Registry“. Představte si to jako GitHub pro kontejnery Docker.

Ale co když chcete hostit svůj vlastní registr oddělený od veřejného? No, společnost Docker Inc. otevřela svou aplikaci Registry na GitHubu.

Tento tutoriál vás provede procesem nastavení soukromého registru Docker pomocí CoreOS na novém VPS.

CoreOS + Docker

Nebudeme trávit spoustu času procházením toho, co přesně Docker a CoreOS umí, protože to je mimo rozsah tohoto návodu. CoreOS je v podstatě navržen pro masivní serverové clustery, je malý, rychlý a automaticky dostává pravidelné aktualizace zabezpečení. Jeho kořenový souborový systém je také pouze pro čtení, což znamená, že ke spuštění jakéhokoli softwaru, který není součástí základní instalace, musíte použít Docker.

Díky tomu je Core OS dokonalým hostitelským systémem pro Docker!

Stažení a spuštění nejnovějšího registru

Společnost Docker Inc. poskytla registr jako obraz nejvyšší úrovně, což znamená, že jej můžeme stáhnout pomocí jednoduchého:

docker pull registry

This can take a few minutes depending on the connection speed.

Výhodou obrazu nejvyšší úrovně je také pravidelná podpora a aktualizace.

Nyní otestujeme registr. Můžeme vytvořit nový kontejner pomocí obrazu registru:

docker run -p 5000:5000 -d --name=basic_registry registry

Pro ty, kteří Docker příliš nepoužívali, -ppříznak znamená PORT, což znamená, že zpřístupňujeme port 5000 z kontejneru na hostitelský port 5000.

-dVlajka znamená daemon, to způsobí, že kontejner běžet na pozadí a nelze tisknout výstup do aktuálního SSH, chceme také pojmenovat základní zkušební nádobu s použitím --namevolby, takže ji můžeme snadno spravovat později.

Ujistěte se, že váš základní kontejner registru běží pomocí docker ps. Výstup by měl vypadat podobně jako:

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                    NAMES
edfb54e4a8c4        registry:0.8.1      "/bin/sh -c 'exec do   7 seconds ago       Up 6 seconds        0.0.0.0:5000->5000/tcp   basic_registry

Navštivte také http://YOUR_IP:5000ve svém webovém prohlížeči a měli byste obdržet zprávu, jako je tato:

"docker-registry server (dev) (v0.8.1)"

Notice the word dev in the parenthesis. This means that the server is currently running the dev config. We'll look over more configuration soon.

Nyní máte spuštěný svůj vlastní (velmi základní) registr kontejnerů! Ale ještě jsme neskončili.

Možná to chcete udržet v soukromí před zvědavýma očima, nebo možná ukládat své obrázky na Amazon S3 místo místního úložiště. V další části si projdeme různé možnosti konfigurace.

Než budeme pokračovat, zabijme testovací kontejner, abychom nenarazili na konfliktní porty.

docker kill basic_registry

Konfigurace registru

Existují dva způsoby, jak předat konfiguraci do registru Docker. Jedním ze způsobů je předání proměnných prostředí do nového kontejneru a druhým je přidání konfiguračního souboru.

Zde je několik běžných možností konfigurace, které budeme používat:

  • loglevel- Minimální množství informací pro přihlášení do konzole. Výchozí je info.
  • standalone- Měl by tento rejstřík jednat samostatně? (Nikdy se nedotazuje na veřejný registr.) Výchozí hodnota je true.
  • index_endpoint- Pokud ne samostatný, jaký další index budeme dotazovat? Výchozí index.docker.io.
  • cachea cache_lru- Možnosti týkající se použití mezipaměti Redis pro malé soubory, tím se dotkneme později.
  • storage- Jaký backend úložiště bychom měli použít pro tento server? (V tomto tutoriálu budeme používat místní).
  • storage_path - Pokud používáme místní úložiště, jaký adresář bychom měli použít k uchovávání souborů?

Než začneme pracovat s konfigurací, potřebujeme základní soubor, se kterým budeme pracovat. Soubor z úložiště registru Docker na GitHubu bude fungovat dobře:

wget https://raw.githubusercontent.com/docker/docker-registry/0.8/config/config_sample.yml

Soubor by se měl úspěšně uložit s výstupem, jako je:

2014-09-14 14:09:01 (156 MB/s) - 'config_sample.yml' saved [5384/5384]

Skvělý! Nyní můžeme tento soubor upravit tak, aby vyhovoval našim potřebám.

Jediný textový editor, který je dodáván s Core OS, je vim, ale nebojte se, pokud jste jej nikdy předtím nepoužili, krok za krokem vám vysvětlí, co a jak upravit.

vim config_sample.yml

Jakmile budete mít soubor otevřený, stiskněte Ia v pravém dolním rohu by se mělo zobrazit: -- INSERT --pro režim vkládání. Přejděte úplně na konec souboru pomocí kláves se šipkami, měli byste vidět část označenou prod.

Budeme měnit dva řádky, změny jsou níže

prod:
    <<: *local
    storage_path: _env:STORAGE_PATH:/data

Udělali jsme změnu prodkonfigurace tak, aby byla odvozena od localsekce místo s3sekce. Potom jsme přepsali, storage_pathabychom použili cestu /datauvnitř nového kontejneru.

Jakmile se ujistíte, že jsou všechny změny správné, stisknutím ESCukončete režim vkládání a zadejte :wq(to znamená zapište změny do souboru a ukončete vim.)

Nyní přejmenujme soubor na just config.yml

mv config_sample.yml config.yml

Ukládání do mezipaměti Redis (volitelné)

Chcete-li použít redis k urychlení registru kontejnerů, je to stejně jednoduché jako stažení nového kontejneru z veřejného registru a přidání několika dalších řádků konfigurace.

Nejprve vytáhněte obrázek nejvyšší úrovně Redis:

docker pull redis

Jakmile je obraz úspěšně stažen, můžeme jej spustit a pojmenovat stejně jako u testovacího registru:

docker run -d --name registry-redis redis

Protože je redis v paměti, nemusíme pro něj provádět žádnou konfiguraci, protože jej propojíme s kontejnerem registru v pozdějších krocích.

Ještě jednou se ujistěte, že běží pomocí docker ps:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
54f65641eccf        redis:2.8           "redis-server"      2 seconds ago       Up 1 seconds        6379/tcp            registry-redis

Nyní znovu otevřít config.ymlv vima vstoupí vložka režimu, stejně jako poprvé jsme ho upravovat.

Přidejte následující řádky pod prodčást a ujistěte se, že jsou odsazeny správně. Tentokrát přidáváme pouze cachea cache_lru.

cache:
    host: _env:REDIS_PORT_6379_TCP_ADDR
    port: _env:REDIS_PORT_6379_TCP_PORT
    db: 0

cache_lru:
    host: _env:REDIS_PORT_6379_TCP_ADDR
    port: _env:REDIS_PORT_6379_TCP_PORT
    db: 1

Proměnné prostředí REDIS_PORT_6379_TCP_ADDRa REDIS_PORT_6379_TCP_PORTjsou předány do kontejneru registru po propojení s kontejnerem Redis.

S tím máte nyní nastaven kontejner Redis, který bude fungovat ruku v ruce s vaším kontejnerem registru. Nyní k budování registru!

Stavba kontejneru

Veškerou konfiguraci máme nastavenou a připravenou, nyní musíme vytvořit skutečný kontejner registru.

Spusťte vim Dockerfilea vytvořte nový soubor Dockerfile. Vstupte do režimu vkládání a postupujte podle níže uvedených úprav.

FROM registry:latest

# Add the custom configuration file we made 
ADD ./config.yml /docker-registry/config/config.yml

# Create the data directory
RUN mkdir /data

# Set the configuration file to config.yml
env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml

# Make sure we use the prod configuration settings 
env SETTINGS_FLAVOR prod

To, co jsme udělali výše, je v podstatě rozšířit obraz registru tak, aby používal náš konfigurační soubor a nastavení. Dockerfile je sada instrukcí pro sestavení, které má Docker číst a sestavit. Pokud se chcete dozvědět více o Dockerfiles a jejich syntaxi, podívejte se na oficiální dokumentaci webu Docker.

Dále musíme postavit kontejner pro použití.

docker build -t my_registry .


Sending build context to Docker daemon 13.82 kB
Sending build context to Docker daemon 
Step 0 : FROM registry
 ---> e42d15ec8417
Step 1 : ADD ./config.yml /docker-registry/config/config.yml
 ---> 4339f026d459
Removing intermediate container 2d5138fbcd34
Step 2 : RUN mkdir /data
 ---> Running in a090f0bdbfd1
 ---> 8eb27ba6e12a
Removing intermediate container a090f0bdbfd1
Step 3 : env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
 ---> Running in 565b5bfb2b22
 ---> 914462e46dc0
Removing intermediate container 565b5bfb2b22
Step 4 : env SETTINGS_FLAVOR prod
 ---> Running in 31a92847b851
 ---> b5949575c374
Removing intermediate container 31a92847b851
Successfully built b5949575c374

Nyní jsme připraveni běžet!

Vytvoříme adresář na našem hostitelském systému, který připojíme do kontejneru jako /datasvazek.

mkdir registry-data

Nyní můžeme roztočit nový kontejner. Pokud plánujete používat mezipaměť Redis, použijte 2. příkaz níže.

# For a non-Redis cache registry
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg my_registry

# For a Redis cached registry (Must have followed Redis Caching section above)
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg --link registry-redis:redis my_registry

Chcete-li se ujistit, že váš server běží správně, navštivte http://YOUR_IP:5000. Zobrazí se následující zpráva:

"docker-registry server (prod) (v0.8.1)"

Všimněte si, že (prod)naše změny konfigurace byly úspěšné!

Nakonfigurujte místního klienta Docker

Nyní, když máme vlastní běžící registr, chceme, aby jej klient Docker na našich místních počítačích začal používat. Obvykle byste použili příkaz: docker login, ale pro naše použití musíme k příkazu login přidat ještě jeden argument:

docker login YOUR_IP:5000

Zadejte uživatelské jméno a heslo (představte si to jako vytvoření nového účtu) a ignorujte zprávu, která říká, že jej musíte aktivovat.

Dále vytáhneme obrázek ze skladu a posuneme ho do našeho vlastního úložiště.

# Pull the busybox image from the public registry
docker pull busybox

# Tag it with our IP/URL
docker tag busybox YOUR_IP:5000/busybox

# Push it to our newly made registry
docker push YOUR_IP:5000/busybox

Pokud vše funguje správně, konečná zpráva by měla vypadat takto:

Pushing tag for rev [a9eb17255234] on 

Gratulujeme! Nastavili jste své vlastní úložiště dockerů.

Co bude dál?

Zde je několik nápadů, jak zlepšit svůj nový soukromý registr:

  • Reverzní proxy pomocí Nginx nebo Apache, abyste před něj umístili další zabezpečení, jako je jednoduché HTTP auth.
  • Získejte doménu pro svůj server a nastavte ji, abyste mohli přistupovat k registru pomocí něčeho jako: registry.mysite.com
  • Pokud vaše kontejnery obsahují citlivé informace, kupte si (nebo podepište) certifikát SSL, abyste získali ještě větší ochranu.

Zde je návod, jak zkontrolovat kontejnery Hyper-V na Windows 10 Insider

Zde je návod, jak zkontrolovat kontejnery Hyper-V na Windows 10 Insider

Společnost Microsoft v novém příspěvku na blogu vysvětlila, jak mohou Windows Insiders testovat kontejnery Hyper-V na Windows 10, nové virtualizační řešení, které umožňuje běh aplikací bez ovlivnění zbytku operačního systému.

Jak nainstalovat Harbor na CentOS 7

Jak nainstalovat Harbor na CentOS 7

Harbor je open source server registru podnikové třídy, který ukládá a distribuuje obrazy Docker. Harbor rozšiřuje open source Docker Distribution b

Nainstalujte Rancher OS přes iPXE

Nainstalujte Rancher OS přes iPXE

Rancher OS je velmi lehká linuxová distribuce postavená na Dockeru. Samotný OS váží kolem 20 MB. Tento tutoriál vám pomůže začít

V systému CoreOS nastavte svůj vlastní registr Docker

V systému CoreOS nastavte svůj vlastní registr Docker

Všichni známe a milujeme Docker, platformu pro vytváření, správu a distribuci aplikačních kontejnerů na více počítačích. Společnost Docker Inc. poskytuje službu t

Instalace docker-compose na CoreOS

Instalace docker-compose na CoreOS

Tento článek vysvětluje, jak nainstalovat docker-compose na CoreOS. V CoreOS je složka /usr/ neměnná, takže standardní cesta /usr/local/bin není k dispozici pro

Nainstalujte Docker CE na Ubuntu 18.04

Nainstalujte Docker CE na Ubuntu 18.04

Úvod Docker je aplikace, která nám umožňuje nasazovat programy, které jsou spouštěny jako kontejnery. Byl napsán v populárním programovacím jazyce Go

Vytvořte Docker Swarm na Alpine Linux 3.9.0

Vytvořte Docker Swarm na Alpine Linux 3.9.0

Úvod Tato příručka vám ukáže, jak vytvořit a nakonfigurovat Docker swarm pomocí několika serverů Alpine Linux 3.9.0 a Porttaineru. Prosím, uvědomte si to

Nasaďte aplikaci PHP pomocí Docker-compose

Nasaďte aplikaci PHP pomocí Docker-compose

PHP aplikace jsou obvykle tvořeny webovým serverem, relačním databázovým systémem a samotným jazykovým interpretem. V tomto tutoriálu budeme využívat

Vyvážení zatížení pomocí Dockeru

Vyvážení zatížení pomocí Dockeru

Když spouštíte webovou aplikaci, obvykle chcete ze svých zdrojů vytěžit maximum, aniž byste museli převádět software, aby používal více vláken nebo

Nasaďte aplikaci Node.js pomocí Dockeru

Nasaďte aplikaci Node.js pomocí Dockeru

Tento článek vám ukáže, jak nasadit aplikaci Node v kontejneru Docker. Poznámka: Tento kurz předpokládá, že máte nainstalovaný a přečtený Docker

Instalace Docker CE na CentOS 7

Instalace Docker CE na CentOS 7

Technologie kontejnerů Docker umožňuje spouštět aplikace ve specifickém a izolovaném prostředí. Docker Community Edition (CE) je nový název pro free

Nasaďte Kubernetes s Kubeadm na CentOS 7

Nasaďte Kubernetes s Kubeadm na CentOS 7

Přehled Tento článek vám má pomoci během okamžiku zprovoznit a spustit cluster Kubernetes s kubeadm. Tato příručka bude nasazovat dva servery, na

Instalace Dockeru na CentOS 7

Instalace Dockeru na CentOS 7

Používáte jiný systém? Docker je aplikace, která umožňuje nasazení softwaru v rámci virtuálních kontejnerů. Bylo to napsáno v programu Go

Instalace Docker CE na Debian 9

Instalace Docker CE na Debian 9

Používáte jiný systém? Úvod Docker je aplikace, která umožňuje nasazení softwaru ve virtuálních kontejnerech. Bylo to napsáno v G

Sticky Session With Docker Swarm (CE) na Debianu 9

Sticky Session With Docker Swarm (CE) na Debianu 9

Používáte jiný systém? Úvod Docker Swarm promění vaše jednotlivé servery na shluk počítačů; usnadnění škálování, vysoká dostupnost an

Dva nástroje pro správu grafiky Docker: DockerUI a Shipyard

Dva nástroje pro správu grafiky Docker: DockerUI a Shipyard

Pomocí aplikace Vultr Docker můžete snadno nasadit Docker na instanci serveru Vultr. Mezitím můžete usnadnit správu Dockeru

Nainstalujte Rancher Server na RancherOS

Nainstalujte Rancher Server na RancherOS

Přehled RancherOS je neuvěřitelně lehký operační systém (jen asi 60 MB), který spouští systémového démona Docker jako PID 0 pro spouštění systémových služeb.

Začínáme s Kubernetes na CentOS 7

Začínáme s Kubernetes na CentOS 7

Kubernetes je platforma s otevřeným zdrojovým kódem vyvinutá společností Google pro správu kontejnerových aplikací napříč clusterem serverů. Staví na desetiletí a

Nastavte Sentry přes Docker na Ubuntu 16.04

Nastavte Sentry přes Docker na Ubuntu 16.04

Používáte jiný systém? Úvod Sentry je open source řešení pro sledování chyb. Sentry sleduje výjimky a další užitečné zprávy

Sticky Session With Docker Swarm (CE) na CentOS 7

Sticky Session With Docker Swarm (CE) na CentOS 7

Používáte jiný systém? Úvod Docker Swarm promění vaše jednotlivé servery na shluk počítačů, což usnadňuje škálování, vysokou dostupnost a

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více