Në CoreOS, konfiguroni Regjistrin tuaj Docker

Ne të gjithë e njohim dhe e duam Docker, një platformë për të krijuar, menaxhuar dhe shpërndarë kontejnerë aplikacionesh nëpër makina të shumta. Docker Inc. ofron një shërbim për të pritur kontejnerë me burim të hapur për t'u shkarkuar (ose tërhequr) si një depo git i njohur si "Regjistri i Docker". Mendoni si një GitHub për kontejnerët Docker.

Por, çka nëse dëshironi të organizoni regjistrin tuaj të ndarë nga ai publik? Epo, Docker Inc. ka aplikacionin e tyre të Regjistrit me burim të hapur në GitHub.

Ky tutorial do t'ju çojë në procesin e konfigurimit të një regjistri privat Docker duke përdorur CoreOS në një VPS të ri.

CoreOS + Docker

Ne nuk do të shpenzojmë shumë kohë duke analizuar saktësisht se çfarë mund të bëjnë Docker dhe CoreOS, pasi është jashtë fushëveprimit të këtij tutoriali. Në thelb, CoreOS është krijuar për grupe masive serverësh, është i vogël, i shpejtë dhe merr përditësime të rregullta sigurie automatikisht. Sistemi i tij i skedarëve rrënjë është gjithashtu vetëm për lexim, që do të thotë se duhet të përdorni Docker për të ekzekutuar çdo lloj softueri që nuk përfshihet me instalimin bazë.

Kjo e bën Core OS një sistem të përsosur pritës për Docker!

Tërheqja dhe ekzekutimi i regjistrit më të fundit

Docker Inc. ka ofruar Regjistrin si një imazh të nivelit të lartë, kjo do të thotë se ne mund ta heqim atë me një të thjeshtë:

docker pull registry

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

Një plus i të qenit një imazh i nivelit të lartë do të thotë gjithashtu se ai merr mbështetje dhe përditësime të rregullta.

Tani le të testojmë regjistrin. Ne mund të krijojmë një enë të re duke përdorur imazhin e regjistrit:

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

Për ata që nuk e kanë përdorur shumë Docker, -pflamuri qëndron për PORT, që do të thotë se ne po ekspozojmë portin 5000 nga kontejneri në portin pritës 5000.

-dFlamuri qëndron për daemon, kjo do të shkaktojë enë për të kandiduar në sfond dhe jo të shtypura prodhimit të seancës aktuale SSH, ne gjithashtu duam për të përmendur këtë enë bazë provë duke përdorur --nameopsionin në mënyrë që ne mund të menaxhoni me lehtësi më vonë.

Sigurohuni që kontejneri juaj bazë i regjistrit po funksionon duke përdorur docker ps. Prodhimi duhet të duket i ngjashëm me:

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

Gjithashtu, vizitoni http://YOUR_IP:5000në shfletuesin tuaj të internetit dhe duhet të merrni një mesazh si më poshtë:

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

Tani keni regjistrin tuaj (shumë themelor) të kontejnerëve që funksionon! Por ne nuk kemi mbaruar ende.

Ndoshta ju dëshironi ta mbani këtë privat nga sytë kureshtarë, ose ndoshta t'i ruani imazhet tuaja në Amazon S3 në vend të ruajtjes lokale. Le të shqyrtojmë opsionet e ndryshme të konfigurimit në seksionin tjetër.

Përpara se të vazhdojmë, le të vrasim kontejnerin e provës në mënyrë që të mos hasim në porte konfliktuale.

docker kill basic_registry

Konfigurimi i regjistrit

Ka dy mënyra se si mund të kalojmë konfigurimin në Regjistrin Docker. Një mënyrë është duke kaluar variablat e mjedisit në një kontejner të ri dhe tjetra është të shtoni një skedar konfigurimi.

Këtu janë disa nga opsionet e zakonshme të konfigurimit që do të përdorim:

  • loglevel- Sasia minimale e informacionit për të hyrë në tastierë. Parazgjedhja është info.
  • standalone- A duhet të veprojë vetë ky Regjistr? (Asnjëherë nuk pyet regjistrin publik.) Parazgjedhja është true.
  • index_endpoint- Nëse jo i pavarur, çfarë indeksi tjetër do të kërkojmë? E paracaktuar index.docker.io.
  • cachedhe cache_lru- Opsionet që kanë të bëjnë me përdorimin e një cache Redis për skedarë të vegjël, do t'i prekim më vonë.
  • storage- Çfarë backend ruajtëse duhet të përdorim për këtë server? (Në këtë tutorial ne do të përdorim lokal).
  • storage_path - Nëse përdorim memorie lokale, çfarë drejtorie duhet të përdorim për të mbajtur skedarët?

Përpara se të fillojmë të punojmë me konfigurimin, na duhet një skedar bazë për të punuar. Skedari nga depoja e Docker Registry në GitHub do të funksionojë mirë:

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

Skedari duhet të ruhet me sukses me një dalje të tillë si:

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

E madhe! Tani mund ta modifikojmë këtë skedar për t'iu përshtatur nevojave tona.

I vetmi redaktues teksti që vjen me Core OS është vim, por mos u shqetësoni nëse nuk e keni përdorur kurrë më parë, kjo do të shpjegojë hap pas hapi se çfarë të modifikoni dhe si ta bëni atë.

vim config_sample.yml

Pasi të keni hapur skedarin, shtypni Idhe këndi i poshtëm djathtas duhet të shfaqet: -- INSERT --për modalitetin e futjes. Lëvizni deri në fund të skedarit duke përdorur tastet me shigjeta, duhet të shihni një seksion të etiketuar prod.

Ne do të ndryshojmë dy rreshtat, ndryshimet janë më poshtë

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

Ajo që kemi bërë është të ndryshojmë prodkonfigurimin për të nxjerrë nga localseksioni në vend të s3seksionit. Më pas ne shkruajmë storage_pathpër të përdorur shtegun /databrenda kontejnerit të ri.

Pasi të keni konfirmuar që të gjitha ndryshimet janë të sakta, shtypni ESCpër të dalë nga modaliteti i futjes dhe shkruani :wq(kjo do të thotë të shkruani ndryshimet në skedar dhe të dilni nga vim.)

Tani le ta riemërtojmë skedarin në just config.yml

mv config_sample.yml config.yml

Redis memorie (opsionale)

Nëse dëshironi të përdorni redis për të shpejtuar regjistrin e kontejnerëve, është po aq e thjeshtë sa të tërhiqni një kontejner të ri nga regjistri publik dhe të shtoni disa rreshta të tjerë konfigurimi.

Së pari, tërhiqni imazhin e nivelit të lartë të Redis:

docker pull redis

Pasi imazhi të jetë tërhequr me sukses, ne mund ta ekzekutojmë atë dhe ta emërtojmë ashtu siç bëmë me regjistrin e provës:

docker run -d --name registry-redis redis

Për shkak se redis është në memorie, nuk kemi nevojë të bëjmë ndonjë konfigurim për të, pasi do ta lidhim me kontejnerin e regjistrit në hapat e mëvonshëm.

Edhe një herë, sigurohuni që të funksionojë duke përdorur 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

Tani rihapni config.ymlin vimdhe futni modalitetin e futjes ashtu si herën e parë që e modifikuam.

Shtoni rreshtat e mëposhtëm poshtë prodseksionit, duke u siguruar që të keni hyrë siç duhet. Këtë herë ne vetëm po shtojmë cachedhe 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

Variablat e mjedisit REDIS_PORT_6379_TCP_ADDRdhe REDIS_PORT_6379_TCP_PORTkalohen në kontejnerin e regjistrit pas lidhjes me kontejnerin Redis.

Me këtë, ju tani keni konfiguruar një enë Redis që do të funksionojë krah për krah me kontejnerin tuaj të regjistrit. Tani në ndërtimin e regjistrit!

Ndërtimi i kontejnerit

Ne i kemi të gjitha konfigurimet të vendosura dhe gati, tani duhet të ndërtojmë kontejnerin aktual të regjistrit.

Zjarr deri vim Dockerfilepër të krijuar një Dockerfile re. Hyni në modalitetin e futjes dhe ndiqni modifikimet më poshtë.

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

Ajo që kemi bërë më sipër është në thelb zgjerimi i imazhit të regjistrit në mënyrë që ai të përdorë skedarin dhe cilësimet tona të konfigurimit. Një Dockerfile është një grup udhëzimesh ndërtimi për Docker për t'i lexuar dhe ndërtuar. Nëse dëshironi të mësoni më shumë për Dockerfiles dhe sintaksën e tyre, hidhini një sy dokumentacionit zyrtar të faqes Docker.

Më pas duhet të ndërtojmë enën për përdorim.

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

Tani jemi gati të vrapojmë!

Le të krijojmë një direktori në sistemin tonë pritës për ta montuar në kontejner si /datavëllim.

mkdir registry-data

Tani mund të rrotullojmë një enë të re. Nëse planifikoni të përdorni cache Redis, përdorni komandën e dytë më poshtë.

# 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

Për t'u siguruar që serveri juaj po funksionon siç duhet, vizitoni http://YOUR_IP:5000. Do të shihni mesazhin e mëposhtëm:

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

Vini re (prod)kuptimin që ndryshimet tona të konfigurimit ishin të suksesshme!

Konfiguro klientin tuaj lokal Docker

Tani që kemi regjistrin tonë të ekzekutimit, duam që klienti Docker në makinat tona lokale të fillojë ta përdorë atë. Zakonisht ju do të përdorni komandën: docker login, por për përdorimin tonë, ne duhet të shtojmë një argument më shumë në komandën e hyrjes:

docker login YOUR_IP:5000

Futni një emër përdoruesi dhe fjalëkalim (mendoni këtë si krijimi i një llogarie të re) dhe injoroni mesazhin që thotë se duhet ta aktivizoni atë.

Më pas, le të tërheqim një imazh të aksioneve dhe ta shtyjmë atë në depon tonë.

# 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

Nëse çdo gjë shtyn siç duhet, mesazhi përfundimtar duhet të jetë në vijat e:

Pushing tag for rev [a9eb17255234] on 

urime! Ju keni konfiguruar depon tuaj të dokerit.

Ç'pritet më tej?

Këtu janë disa ide se si të përmirësoni regjistrin tuaj të ri privat:

  • Përfaqësuesi i kundërt duke përdorur Nginx ose Apache për të vendosur siguri shtesë përpara tij, si vërtetimi i thjeshtë HTTP.
  • Merrni një domen për serverin tuaj dhe konfiguroni atë në mënyrë që të mund të hyni në regjistrin tuaj me diçka si: registry.mysite.com
  • Blini (ose vetë-nënshkruani) një certifikatë SSL për të shtuar edhe më shumë mbrojtje nëse kontejnerët tuaj përmbajnë informacione të ndjeshme.

Lëreni një koment

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë