Operētājsistēmā CoreOS iestatiet savu Docker reģistru

Mēs visi zinām un mīlam Docker — platformu lietojumprogrammu konteineru izveidei, pārvaldībai un izplatīšanai vairākās iekārtās. Docker Inc. nodrošina lejupielādējamo (vai izvelkamo) atvērtā pirmkoda konteineru mitināšanas pakalpojumu, piemēram, git repozitoriju, kas pazīstams kā "Docker Registry". Padomājiet par to kā par GitHub Docker konteineriem.

Bet ko darīt, ja vēlaties mitināt savu reģistru, kas ir atdalīts no publiskā? Nu, Docker Inc. ir atvērta pirmkoda reģistra lietojumprogramma vietnē GitHub.

Šī apmācība palīdzēs jums izveidot privātu Docker reģistru, izmantojot CoreOS jaunā VPS.

CoreOS + Docker

Mēs netērēsim daudz laika, lai pārdomātu, ko tieši Docker un CoreOS spēj paveikt, jo tas neietilpst šīs apmācības ietvaros. Būtībā CoreOS ir paredzēts masveida serveru klasteriem, tas ir mazs, ātrs un automātiski saņem regulārus drošības atjauninājumus. Tās saknes failu sistēma ir arī tikai lasāma, kas nozīmē, ka jums ir jāizmanto Docker, lai palaistu jebkāda veida programmatūru, kas nav iekļauta pamata instalācijā.

Tas padara Core OS par ideālu Docker resursdatora sistēmu!

Jaunākā reģistra izvilkšana un palaišana

Docker Inc. ir nodrošinājis reģistru kā augstākā līmeņa attēlu, tas nozīmē, ka mēs varam to noņemt, veicot vienkāršu:

docker pull registry

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

Augstākā līmeņa attēla pluss nozīmē arī to, ka tas saņem regulāru atbalstu un atjauninājumus.

Tagad izmēģināsim reģistru. Mēs varam izveidot jaunu konteineru, izmantojot reģistra attēlu:

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

Tiem, kuri nav izmantojuši Docker pārāk daudz, -pkarodziņš apzīmē PORT, kas nozīmē, ka mēs pakļaujam 5000. portu no konteinera uz resursdatora portu 5000.

-dKarogs nozīmē daemon, tas radīs konteiners darboties fonā un nevar drukāt izejas uz pašreizējo SSH sesiju, mēs arī vēlamies nosaukt šo pamata testa konteineru, izmantojot --nameiespēju, lai mēs varētu viegli pārvaldīt to vēlāk.

Pārliecinieties, vai jūsu pamata reģistra konteiners darbojas, izmantojot docker ps. Izvadei vajadzētu izskatīties līdzīgi:

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

Apmeklējiet http://YOUR_IP:5000arī savā tīmekļa pārlūkprogrammā, un jums vajadzētu saņemt šādu ziņojumu:

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

Tagad jums darbojas savs (ļoti vienkāršs) konteineru reģistrs! Bet mēs vēl neesam pabeiguši.

Varbūt vēlaties to aizsargāt no ziņkārīgo acīm vai saglabāt attēlus vietnē Amazon S3, nevis vietējā krātuvē. Nākamajā sadaļā apskatīsim dažādas konfigurācijas opcijas.

Pirms ejam tālāk, nogalināsim testa konteineru, lai nesanāktu konfliktējošās pieslēgvietās.

docker kill basic_registry

Reģistra konfigurācija

Ir divi veidi, kā mēs varam nodot konfigurāciju Docker reģistram. Viens veids ir vides mainīgo nodošana jaunam konteineram, bet otrs ir konfigurācijas faila pievienošana.

Šeit ir dažas no izplatītākajām konfigurācijas opcijām, kuras mēs izmantosim:

  • loglevel- Minimālais informācijas apjoms, kas jāpiesakās konsolē. Noklusējums ir info.
  • standalone- Vai šim reģistram būtu jārīkojas pašam? (Nekad neprasa publisko reģistru.) Noklusējums ir true.
  • index_endpoint- Ja ne atsevišķs rādītājs, kādu citu indeksu mēs pieprasīsim? Noklusējums index.docker.io.
  • cacheun cache_lru- Opcijas, kas attiecas uz Redis kešatmiņas izmantošanu maziem failiem. Mēs to aplūkosim vēlāk.
  • storage- Kādu krātuves aizmugursistēmu vajadzētu izmantot šim serverim? (Šajā apmācībā mēs izmantosim vietējo).
  • storage_path - Ja izmantojat vietējo krātuvi, kurā direktorijā ir jāizmanto faili?

Pirms sākam strādāt ar konfigurāciju, mums ir nepieciešams bāzes fails, ar kuru strādāt. Fails no Docker reģistra repozitorija vietnē GitHub darbosies lieliski:

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

Fails ir veiksmīgi jāsaglabā ar tādu izvadi kā:

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

Lieliski! Tagad mēs varam modificēt šo failu, lai tas atbilstu mūsu vajadzībām.

Vienīgais teksta redaktors, kas tiek piegādāts kopā ar Core OS, ir vim, taču neuztraucieties, ja jūs to nekad iepriekš neesat izmantojis. Šeit soli pa solim tiks paskaidrots, ko rediģēt un kā to izdarīt.

vim config_sample.yml

Kad fails ir atvērts, nospiediet Iun apakšējā labajā stūrī vajadzētu parādīties: -- INSERT --ievietošanas režīmam. Ritiniet līdz faila apakšdaļai, izmantojot bulttaustiņus; jums vajadzētu redzēt sadaļu ar nosaukumu prod.

Mēs mainīsim abas rindiņas, izmaiņas ir norādītas zemāk

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

Mēs esam mainījuši prodkonfigurāciju, lai to iegūtu no localsadaļas, nevis s3sadaļas. Pēc tam mēs pārrakstījām, storage_pathlai izmantotu ceļu /datajaunajā konteinerā.

Kad esat apstiprinājis, ka visas izmaiņas ir pareizas, nospiediet , ESClai izietu no ievietošanas režīma un ierakstiet :wq(tas nozīmē, ierakstiet izmaiņas failā un aizveriet vim).

Tagad pārdēvēsim failu uz tikai config.yml

mv config_sample.yml config.yml

Atkārtota kešatmiņa (pēc izvēles)

Ja vēlaties izmantot redis, lai paātrinātu konteinera reģistru, tas ir tik vienkārši, kā izņemt jaunu konteineru no publiskā reģistra un pievienot vēl dažas konfigurācijas rindas.

Vispirms izvelciet Redis augšējā līmeņa attēlu:

docker pull redis

Kad attēls ir veiksmīgi izvilkts, mēs varam to palaist un nosaukt tāpat kā ar testa reģistru:

docker run -d --name registry-redis redis

Tā kā redis atrodas atmiņā, mums nav jāveic nekāda konfigurācija, jo mēs to saistīsim ar reģistra konteineru turpmākajās darbībās.

Vēlreiz pārliecinieties, ka tas darbojas, izmantojot 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

Tagad no jauna atvērtu config.ymlin vimun ievadiet ievietot režīmā, tāpat kā mēs pirmo reizi rediģēja to.

Pievienojiet tālāk norādītās rindiņas zem prodsadaļas, pārliecinieties, ka tās ir pareizi atkāpes. Šoreiz mēs tikai pievienojam cacheun 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

Vides mainīgie REDIS_PORT_6379_TCP_ADDRun REDIS_PORT_6379_TCP_PORTtiek nodoti reģistra konteineram pēc saistīšanas ar Redis konteineru.

Tādējādi tagad esat iestatījis Redis konteineru, kas darbosies roku rokā ar jūsu reģistra konteineru. Tagad pie reģistra izveides!

Konteinera būvēšana

Mums ir iestatīta visa konfigurācija, un tagad mums ir jāizveido faktiskais reģistra konteiners.

Fire up vim Dockerfile, lai izveidotu jaunu Dockerfile. Ieejiet ievietošanas režīmā un izpildiet tālāk norādītos labojumus.

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

Tas, ko esam paveikuši iepriekš, būtībā ir paplašinājuši reģistra attēlu, lai tas izmantotu mūsu konfigurācijas failu un iestatījumus. Dockerfile ir veidošanas instrukciju kopums, ko Docker var lasīt un veidot. Ja vēlaties uzzināt vairāk par Dockerfiles un to sintaksi, skatiet oficiālo Docker vietnes dokumentāciju.

Tālāk mums ir jāizveido konteiners lietošanai.

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

Tagad esam gatavi skriet!

Izveidosim direktoriju mūsu resursdatora sistēmā, ko ievietot konteinerā kā /datasējumu.

mkdir registry-data

Tagad mēs varam izveidot jaunu konteineru. Ja plānojat izmantot Redis kešatmiņu, izmantojiet tālāk esošo 2. komandu.

# 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

Lai pārliecinātos, ka jūsu serveris darbojas pareizi, apmeklējiet http://YOUR_IP:5000. Jūs redzēsit šādu ziņojumu:

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

Ņemiet vērā, (prod)ka mūsu konfigurācijas izmaiņas bija veiksmīgas!

Konfigurējiet savu vietējo Docker klientu

Tagad, kad mums ir savs darbojošais reģistrs, mēs vēlamies, lai Docker klients mūsu vietējās iekārtās sāktu to lietot. Parasti jūs izmantotu komandu: docker login, bet mūsu lietošanai pieteikšanās komandai jāpievieno vēl viens arguments:

docker login YOUR_IP:5000

Ievadiet lietotājvārdu un paroli (domājiet par to kā par jauna konta izveidi) un ignorējiet ziņojumu, kurā teikts, ka tas ir jāaktivizē.

Pēc tam izvelkam krājuma attēlu un virzīsim to uz mūsu pašu krātuvi.

# 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

Ja viss notiek pareizi, galīgajam ziņojumam jābūt šādam:

Pushing tag for rev [a9eb17255234] on 

Apsveicam! Jūs esat iestatījis savu docker repozitoriju.

Ko tālāk?

Šeit ir dažas idejas, kā uzlabot savu jauno privāto reģistru:

  • Apgrieziet starpniekserveri, izmantojot Nginx vai Apache, lai novietotu tai priekšā papildu drošību, piemēram, vienkāršu HTTP autentifikāciju.
  • Iegūstiet savam serverim domēnu un iestatiet to, lai varētu piekļūt savam reģistram, izmantojot kaut ko līdzīgu: registry.mysite.com
  • Iegādājieties (vai pašparakstieties) SSL sertifikātu, lai nodrošinātu vēl lielāku aizsardzību, ja jūsu konteineros ir sensitīva informācija.

Atstājiet komentāru

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk