CoreOS rendszeren állítsa be saját Docker-nyilvántartását

CoreOS rendszeren állítsa be saját Docker-nyilvántartását

Mindannyian ismerjük és szeretjük a Dockert, az alkalmazástárolók létrehozására, kezelésére és több gépen való terjesztésére szolgáló platformot. A Docker Inc. szolgáltatást nyújt a letölthető (vagy lehívható) nyílt forráskódú tárolók tárolására, mint egy „Docker Registry” néven ismert git-tárhely. Gondoljon úgy, mint egy GitHub Docker-tárolókhoz.

De mi van akkor, ha saját nyilvántartását szeretné tárolni a nyilvánostól elkülönítve? Nos, a Docker Inc. nyílt forráskódú rendszerleíró alkalmazását a GitHubon.

Ez az oktatóanyag végigvezeti Önt egy privát Docker-nyilvántartás beállításán a CoreOS használatával egy új VPS-en.

CoreOS + Docker

Nem fogunk sok időt tölteni azzal, hogy a Docker és a CoreOS pontosan mire képes, mivel ez kívül esik ennek az oktatóanyagnak a hatókörén. A CoreOS lényegében hatalmas szerverfürtökhöz készült, kicsi, gyors és rendszeres biztonsági frissítéseket kap automatikusan. A gyökérfájlrendszere is csak olvasható, ami azt jelenti, hogy a Dockert kell használnia minden olyan szoftver futtatásához, amelyet az alaptelepítés nem tartalmaz.

Ez teszi a Core OS-t tökéletes hosztrendszerré a Docker számára!

A legfrissebb rendszerleíró adatbázis lehívása és futtatása

A Docker Inc. felső szintű képként biztosította a Registry-t, ami azt jelenti, hogy egy egyszerű művelettel le tudjuk húzni:

docker pull registry

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

A legfelső szintű kép plusz azt is jelenti, hogy rendszeres támogatást és frissítéseket kap.

Most teszteljük a rendszerleíró adatbázist. Létrehozhatunk egy új tárolót a rendszerleíró kép segítségével:

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

Azok számára, akik nem használták túl sokat a Dockert, a -pzászló a következőt jelenti PORT, ami azt jelenti, hogy a tároló 5000-es portját a tároló 5000-es portjára tesszük.

A -djelző a következőt jelenti: daemonez azt eredményezi, hogy a konténer a háttérben fut, és nem nyomtatja ki a kimenetet az aktuális SSH-munkamenetbe, ezt az alapvető teszttárolót is szeretnénk az --nameopció használatával elnevezni , hogy később könnyen kezelhessük.

Győződjön meg arról, hogy az alapvető beállításjegyzék-tároló a következővel fut docker ps. A kimenetnek ehhez hasonlóan kell kinéznie:

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

Ezenkívül látogasson http://YOUR_IP:5000el webböngészőjében, és a következőhöz hasonló üzenetet kell kapnia:

"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.

Most már saját (nagyon egyszerű) konténer-nyilvántartása fut! De még nem végeztünk.

Talán meg akarja őrizni a kíváncsiskodó szemek elől, vagy esetleg az Amazon S3-on tárolja a képeit a helyi tárhely helyett. Nézzük át a különféle konfigurációs lehetőségeket a következő részben.

Mielőtt továbblépnénk, öljük meg a tesztkonténert, hogy ne ütközzünk ütköző portokba.

docker kill basic_registry

Registry konfiguráció

Kétféleképpen adhatjuk át a konfigurációt a Docker Registry-nek. Az egyik módja a környezeti változók átadása egy új tárolónak, a másik pedig egy konfigurációs fájl hozzáadása.

Íme néhány gyakori konfigurációs lehetőség, amelyet használni fogunk:

  • loglevel- A konzolra bejelentkezni kívánt információ minimális mennyisége. Az alapértelmezett a info.
  • standalone- Ennek a nyilvántartónak önállóan kell cselekednie? (Soha nem kérdezi le a nyilvános nyilvántartást.) Az alapértelmezés a true.
  • index_endpoint- Ha nem önálló, milyen más indexet fogunk lekérdezni? Alapértelmezett index.docker.io.
  • cacheés cache_lru- A Redis gyorsítótár használatával kapcsolatos lehetőségek kis fájlok esetén, erre később térünk ki.
  • storage- Milyen háttértárat használjunk ehhez a szerverhez? (Ebben az oktatóanyagban a helyi nyelvet fogjuk használni).
  • storage_path - Ha helyi tárhelyet használunk, milyen könyvtárban tároljuk a fájlokat?

Mielőtt elkezdenénk a konfigurációval dolgozni, szükségünk van egy alapfájlra. A GitHubon található Docker Registry tárolóból származó fájl jól fog működni:

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

A fájlt sikeresen kell menteni egy olyan kimenettel, mint például:

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

Nagy! Most már módosíthatjuk ezt a fájlt igényeinknek megfelelően.

Az egyetlen szövegszerkesztő, amely a Core OS-hez tartozik vim, de ne aggódjon, ha még soha nem használta, ez lépésről lépésre elmagyarázza, mit és hogyan kell szerkeszteni.

vim config_sample.yml

Miután megnyitotta a fájlt, nyomja meg a gombot, Iés a jobb alsó sarokban meg kell jelennie: -- INSERT --beszúrási módhoz. Görgessen le egészen a fájl aljáig a nyílbillentyűkkel, és egy címkével ellátott részt kell látnia prod.

A két sort módosítani fogjuk, a változások alább láthatók

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

Amit tettünk, megváltoztattuk a prodkonfigurációt úgy, hogy a localszakasz helyett a s3szakaszból származzon. Ezután felülírtuk az új tárolón belüli storage_pathelérési utat használva /data.

Miután meggyőződött arról, hogy az összes módosítás helyes, nyomja meg ESCa gombot a beszúrási módból való kilépéshez, és írja be :wq(ez azt jelenti, hogy írja be a módosításokat a fájlba, és lépjen ki a vim-ből.)

Most nevezzük át a fájlt, hogy csak config.yml

mv config_sample.yml config.yml

Redis gyorsítótár (opcionális)

Ha a redis segítségével szeretné felgyorsítani a tároló-nyilvántartást, akkor egyszerűen húzzon ki egy új tárolót a nyilvános nyilvántartásból, és adjon hozzá néhány további konfigurációs sort.

Először húzza ki a Redis legfelső szintű képét:

docker pull redis

Ha a kép sikeresen le van húzva, futtathatjuk és elnevezhetjük, ugyanúgy, mint a tesztnyilvántartással:

docker run -d --name registry-redis redis

Mivel a redis a memóriában van, nem kell konfigurálnunk, mivel a későbbi lépésekben összekapcsoljuk a regisztrációs tárolóval.

Még egyszer győződjön meg arról, hogy fut, a következő használatával 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

Most nyissa meg újra a beillesztést config.yml, vimés lépjen be a beszúrási módba, ugyanúgy, mint az első alkalommal, amikor szerkesztette.

Adja hozzá a következő sorokat a prodszakasz alá, ügyelve a megfelelő behúzásra. Ezúttal csak a cacheés 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

A környezeti változók REDIS_PORT_6379_TCP_ADDRés REDIS_PORT_6379_TCP_PORTátadásra kerül a regisztrációs tartályból kapcsolódással Redis tartályba.

Ezzel beállított egy Redis-tárolót, amely kéz a kézben fog működni a rendszerleíró adatbázis-tárolóval. Most pedig térjünk rá a nyilvántartás felépítésére!

A konténer építése

Megvan az összes konfiguráció, és készen állunk, most meg kell építenünk a tényleges regisztrációs tárolót.

Tűz ki vim Dockerfile, hogy hozzon létre egy új Dockerfile. Lépjen be a beszúrási módba, és kövesse az alábbi módosításokat.

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

Amit fent tettünk, lényegében kiterjesztettük a rendszerleíró adatbázis képét, hogy az a konfigurációs fájlunkat és beállításainkat használja. A Dockerfile egy összeállítási utasításkészlet a Docker számára, hogy elolvassa és összeállítsa. Ha többet szeretne megtudni a Dockerfilesről és szintaxisukról, tekintse meg a hivatalos Docker webhely dokumentációját.

Ezután meg kell építenünk a tárolót a használatra.

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

Most futásra készen állunk!

Hozzon létre egy könyvtárat a gazdagép rendszerünkön, amelyet /datakötetként a tárolóba kell csatlakoztatni .

mkdir registry-data

Most felpörgethetünk egy új tartályt. Ha a Redis gyorsítótár használatát tervezi, használja az alábbi 2. parancsot.

# 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

A szerver megfelelő működésének biztosításához keresse fel a webhelyet http://YOUR_IP:5000. A következő üzenetet fogja látni:

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

Figyelje meg, (prod)hogy a konfigurációs módosításaink sikeresek voltak!

Konfigurálja a helyi Docker-klienst

Most, hogy saját futó rendszerleíró adatbázisunk van, szeretnénk, ha a helyi gépeinken lévő Docker-kliens elkezdené használni. Általában a következő parancsot docker loginkell használni:

docker login YOUR_IP:5000

Adjon meg egy felhasználónevet és jelszót (gondoljon erre úgy, mint egy új fiók létrehozására), és hagyja figyelmen kívül azt az üzenetet, amely szerint aktiválnia kell.

Ezután készítsünk egy stock képet, és toljuk fel a saját tárolónkba.

# 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

Ha minden megfelelően működik, a végső üzenetnek a következőképpen kell lennie:

Pushing tag for rev [a9eb17255234] on 

Gratulálunk! Ön beállította saját docker tárolóját.

Mi a következő lépés?

Íme néhány ötlet az új privát regisztrációs adatbázis javításához:

  • Fordítsa meg a proxyt Nginx vagy Apache használatával, hogy további biztonságot helyezzen elébe, például az egyszerű HTTP-hitelesítést.
  • Szerezzen be egy domaint a szerveréhez, és állítsa be, hogy hozzáférhessen a rendszerleíró adatbázisához, például: registry.mysite.com
  • Vásároljon (vagy írjon alá egy SSL-tanúsítványt), hogy még nagyobb védelmet biztosítson, ha tárolói érzékeny információkat tartalmaznak.

A Harbor telepítése CentOS 7 rendszeren

A Harbor telepítése CentOS 7 rendszeren

A Harbor egy nyílt forráskódú, vállalati szintű rendszerleíró adatbázis-kiszolgáló, amely Docker-képfájlokat tárol és terjeszt. A Harbor kiterjeszti a nyílt forráskódú Docker Distribution b

CoreOS rendszeren állítsa be saját Docker-nyilvántartását

CoreOS rendszeren állítsa be saját Docker-nyilvántartását

Mindannyian ismerjük és szeretjük a Dockert, az alkalmazástárolók létrehozására, kezelésére és több gépen való terjesztésére szolgáló platformot. A Docker Inc. szolgáltatást nyújt t

A docker-compose telepítése CoreOS rendszerre

A docker-compose telepítése CoreOS rendszerre

Ez a cikk a docker-compose telepítését ismerteti CoreOS rendszeren. A CoreOS rendszerben az /usr/ mappa megváltoztathatatlan, így a szabványos /usr/local/bin elérési út nem érhető el

Telepítse a Ranchert a CentOS 7 rendszeren

Telepítse a Ranchert a CentOS 7 rendszeren

Más rendszert használ? Bevezetés A Rancher egy nyílt forráskódú platform konténerek futtatására és privát konténerszolgáltatás kiépítésére. Rancher alap

PHP-alkalmazás üzembe helyezése a Docker-compose használatával

PHP-alkalmazás üzembe helyezése a Docker-compose használatával

A PHP-alkalmazások általában egy webszerverből, egy relációs adatbázis-rendszerből és magából a nyelvi értelmezőből állnak. Ebben az oktatóanyagban hasznosak leszünk

Terhelésegyensúly a Dockerrel

Terhelésegyensúly a Dockerrel

Webalkalmazás futtatásakor általában a legtöbbet szeretné kihozni az erőforrásaiból anélkül, hogy a szoftverét többszálú o-ra kell konvertálnia.

Node.js alkalmazás üzembe helyezése a Docker használatával

Node.js alkalmazás üzembe helyezése a Docker használatával

Ez a cikk bemutatja, hogyan telepítheti a Node alkalmazást egy Docker-tárolóban. Megjegyzés: Ez az oktatóanyag feltételezi, hogy telepítette és olvasta a Dockert

Telepítse a Kuberneteset a Kubeadm segítségével a CentOS 7 rendszeren

Telepítse a Kuberneteset a Kubeadm segítségével a CentOS 7 rendszeren

Áttekintés Ennek a cikknek az a célja, hogy segítsen egy Kubernetes-fürtöt a kubeadm segítségével pillanatok alatt üzembe helyezni. Ez az útmutató két kiszolgáló üzembe helyezését tartalmazza

A Docker CE telepítése Debian 9 rendszerre

A Docker CE telepítése Debian 9 rendszerre

Más rendszert használ? Bevezetés A Docker egy olyan alkalmazás, amely lehetővé teszi a szoftverek virtuális konténereken belüli telepítését. A G-ben volt írva

Kezdje el az SQL Server 2017 (MS-SQL) használatát a CentOS 7 with Docker rendszeren

Kezdje el az SQL Server 2017 (MS-SQL) használatát a CentOS 7 with Docker rendszeren

Előfeltételek Docker engine 1.8+. Minimum 4 GB lemezterület. Minimum 4 GB RAM. 1. lépés: A Docker telepítése Az SQL-Server telepítéséhez a Docker mus

Sticky Session with Docker Swarm (CE) Debian 9-en

Sticky Session with Docker Swarm (CE) Debian 9-en

Más rendszert használ? Bevezetés A Docker Swarm az egyes szervereket számítógépek fürtjévé alakítja; méretezés megkönnyítése, magas rendelkezésre állás an

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket