Në CoreOS, konfiguroni Regjistrin tuaj Docker

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.

Ja se si të shikoni kontejnerët Hyper-V në Windows 10 Insider

Ja se si të shikoni kontejnerët Hyper-V në Windows 10 Insider

Microsoft ka shpjeguar në një postim të ri në blog se si Windows Insiders mund të testojë kontejnerët Hyper-V në Windows 10, një zgjidhje e re virtualizimi për të lejuar që aplikacionet të funksionojnë pa ndikuar në pjesën tjetër të sistemit tuaj operativ.

Si të instaloni Harbor në CentOS 7

Si të instaloni Harbor në CentOS 7

Harbor është një server regjistri me burim të hapur të klasës së ndërmarrjes që ruan dhe shpërndan imazhet e Docker. Harbor zgjeron Shpërndarjen Docker me burim të hapur b

Instaloni Rancher OS nëpërmjet iPXE

Instaloni Rancher OS nëpërmjet iPXE

Rancher OS është një shpërndarje Linux shumë e lehtë e ndërtuar rreth Docker. Vetë OS peshon rreth 20 MB. Ky tutorial do t'ju vërë në punë

Në CoreOS, konfiguroni Regjistrin tuaj Docker

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 t

Instalimi i docker-compose në CoreOS

Instalimi i docker-compose në CoreOS

Ky artikull shpjegon se si të instaloni docker-compose në CoreOS. Në CoreOS, dosja /usr/ është e pandryshueshme kështu që shtegu standard /usr/local/bin nuk është i disponueshëm për

Instaloni Rancher në CentOS 7

Instaloni Rancher në CentOS 7

Përdorimi i një sistemi të ndryshëm? Hyrje Rancher është një platformë me burim të hapur për drejtimin e kontejnerëve dhe ndërtimin e një shërbimi privat të kontejnerëve. Rancher është bazë

Instaloni Docker CE në Ubuntu 18.04

Instaloni Docker CE në Ubuntu 18.04

Hyrje Docker është një aplikacion që na lejon të vendosim programe që ekzekutohen si kontejnerë. Është shkruar në gjuhën popullore të programimit Go

Krijo një Swarm Docker në Alpine Linux 3.9.0

Krijo një Swarm Docker në Alpine Linux 3.9.0

Hyrje Ky udhëzues do t'ju tregojë se si të krijoni dhe konfiguroni një tufë Docker duke përdorur shumë serverë Alpine Linux 3.9.0 dhe Portainer. Ju lutemi kini parasysh se

Vendosni një aplikacion PHP duke përdorur Docker-compose

Vendosni një aplikacion PHP duke përdorur Docker-compose

Aplikacionet PHP zakonisht përbëhen nga një server në internet, një sistem bazë të dhënash relacionale dhe vetë përkthyesi i gjuhës. Në këtë tutorial ne do të jemi leveragin

Ngarkoni balancën me Docker

Ngarkoni balancën me Docker

Kur ekzekutoni një aplikacion ueb, zakonisht dëshironi të përfitoni sa më shumë nga burimet tuaja pa pasur nevojë të konvertoni softuerin tuaj për të përdorur multithreading o

Vendosni një aplikacion Node.js duke përdorur Docker

Vendosni një aplikacion Node.js duke përdorur Docker

Ky artikull do t'ju tregojë se si të vendosni aplikacionin tuaj Node brenda një kontejneri Docker. Shënim: Ky udhëzues supozon që ju keni instaluar dhe lexuar Docker

Instalimi i Docker CE në CentOS 7

Instalimi i Docker CE në CentOS 7

Teknologjia e kontejnerëve Docker ju lejon të ekzekutoni aplikacione në një mjedis specifik dhe të izoluar. Docker Community Edition (CE) është emri i ri për fre

Instalimi i Docker në CentOS 7

Instalimi i Docker në CentOS 7

Përdorimi i një sistemi të ndryshëm? Docker është një aplikacion që lejon vendosjen e softuerit brenda kontejnerëve virtualë. Ishte shkruar në programin Go

Instalimi i Docker CE në Debian 9

Instalimi i Docker CE në Debian 9

Përdorimi i një sistemi të ndryshëm? Hyrje Docker është një aplikacion që lejon vendosjen e softuerit brenda kontejnerëve virtualë. Ishte shkruar në G

Filloni me SQL Server 2017 (MS-SQL) në CentOS 7 me Docker

Filloni me SQL Server 2017 (MS-SQL) në CentOS 7 me Docker

Parakushtet Docker engine 1.8+. Minimumi 4 GB hapësirë ​​në disk. Minimumi 4 GB RAM. Hapi 1. Instalo Docker Për të instaluar SQL-Server, Docker mus

Sesion ngjitës me Docker Swarm (CE) në Debian 9

Sesion ngjitës me Docker Swarm (CE) në Debian 9

Përdorimi i një sistemi të ndryshëm? Hyrje Docker Swarm i kthen serverët tuaj individualë në një grup kompjuterash; lehtësimi i shkallëzimit, disponueshmëria e lartë dhe

Dy Mjete Menaxhimi Grafik Docker: DockerUI dhe Kantieri i anijeve

Dy Mjete Menaxhimi Grafik Docker: DockerUI dhe Kantieri i anijeve

Me ndihmën e aplikacionit Vultr Docker, ju mund të vendosni lehtësisht Docker në shembullin e serverit tuaj Vultr. Ndërkohë, ju mund të lehtësoni detyrën e menaxhimit të Docker

Instaloni serverin Rancher në RancherOS

Instaloni serverin Rancher në RancherOS

Përmbledhje RancherOS është një sistem operativ tepër i lehtë (vetëm rreth 60 MB) që drejton një sistem Docker daemon si PID 0 për ekzekutimin e shërbimeve të sistemit

Fillimi me Kubernetes në CentOS 7

Fillimi me Kubernetes në CentOS 7

Kubernetes është një platformë me burim të hapur e zhvilluar nga Google për menaxhimin e aplikacioneve me kontejnerë nëpër një grup serverësh. Ajo ndërtohet mbi një dekadë dhe

Instaloni Rancher në Ubuntu 16.04

Instaloni Rancher në Ubuntu 16.04

Përdorimi i një sistemi të ndryshëm? Hyrje Rancher është një platformë me burim të hapur për drejtimin e kontejnerëve dhe ndërtimin e një shërbimi privat të kontejnerëve. Rancher është bazë

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.

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.

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

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ë