V CoreOS nastavite svoj lasten register Docker

V CoreOS nastavite svoj lasten register Docker

Vsi poznamo in imamo radi Docker, platformo za ustvarjanje, upravljanje in distribucijo aplikacijskih vsebnikov na več računalnikih. Docker Inc. ponuja storitev za gostovanje odprtokodnih vsebnikov, ki jih je treba prenesti (ali potegniti), kot je git repozitorij, znan kot »Docker Registry«. Pomislite na to kot na GitHub za vsebnike Docker.

Kaj pa, če želite gostiti svoj lasten register, ločen od javnega? No, Docker Inc. je odprl svojo aplikacijo Registry na GitHub.

Ta vadnica vas bo popeljala skozi postopek nastavitve zasebnega registra Docker z uporabo CoreOS na novem VPS.

CoreOS + Docker

Ne bomo porabili veliko časa za pregledovanje, kaj točno zmoreta Docker in CoreOS, saj je to izven obsega te vadnice. V bistvu je CoreOS zasnovan za velike strežniške gruče, je majhen, hiter in samodejno prejema redne varnostne posodobitve. Njegov korenski datotečni sistem je tudi samo za branje, kar pomeni, da morate uporabiti Docker za zagon katere koli vrste programske opreme, ki ni vključena v osnovno namestitev.

Zaradi tega je Core OS popoln gostiteljski sistem za Docker!

Vlečenje in zagon najnovejšega registra

Docker Inc. je zagotovil register kot sliko najvišje ravni, kar pomeni, da ga lahko povlečemo navzdol s preprostim:

docker pull registry

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

Plus, da je slika najvišje ravni, pomeni tudi, da dobiva redno podporo in posodobitve.

Zdaj pa preizkusimo register. S sliko registra lahko ustvarimo nov vsebnik:

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

Za tiste, ki Dockerja niso uporabljali preveč, -pzastavica pomeni PORT, kar pomeni, da razkrivamo vrata 5000 iz vsebnika na vrata gostitelja 5000.

Oznaka -dpomeni daemon, to bo povzročilo, da se vsebnik izvaja v ozadju in ne tiska izhodnih podatkov v trenutno sejo SSH, prav tako želimo poimenovati ta osnovni testni vsebnik z --namemožnostjo, da ga bomo lahko pozneje zlahka upravljali.

Prepričajte se, da se vaš osnovni vsebnik registra izvaja z uporabo docker ps. Izhod bi moral izgledati podobno:

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

Obiščite tudi http://YOUR_IP:5000v svojem spletnem brskalniku in prejeli bi naslednje sporočilo:

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

Zdaj imate zagnan lasten (zelo osnovni) register vsebnikov! Ampak še nismo končali.

Morda želite to ohraniti zasebno pred radovednimi očmi ali morda shranite svoje slike na Amazon S3 namesto v lokalno shranjevanje. Oglejmo si različne možnosti konfiguracije v naslednjem razdelku.

Preden nadaljujemo, uničimo testni vsebnik, da ne naletimo na konfliktna vrata.

docker kill basic_registry

Konfiguracija registra

Obstajata dva načina, kako lahko konfiguracijo prenesemo v register Docker. Eden od načinov je prenos spremenljivk okolja v nov vsebnik, drugi pa je, da dodate konfiguracijsko datoteko.

Tukaj je nekaj pogostih konfiguracijskih možnosti, ki jih bomo uporabljali:

  • loglevel- Najmanjša količina informacij za prijavo v konzolo. Privzeto je info.
  • standalone- Ali naj ta register deluje samostojno? (Nikoli ne poizveduje po javnem registru.) Privzeto je true.
  • index_endpoint- Če ni samostojen, kateri drugi indeks bomo poizvedovali? Privzeto index.docker.io.
  • cachein cache_lru- Možnosti, ki se nanašajo na uporabo predpomnilnika Redis za majhne datoteke, se bomo dotaknili pozneje.
  • storage– Kakšno zaledno zaledno shrambo naj uporabimo za ta strežnik? (V tej vadnici bomo uporabljali lokalno).
  • storage_path - Če uporabljate lokalno shranjevanje, kateri imenik naj uporabimo za shranjevanje datotek?

Preden začnemo delati s konfiguracijo, potrebujemo osnovno datoteko za delo. Datoteka iz skladišča registra Docker na GitHubu bo delovala čisto v redu:

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

Datoteka se mora uspešno shraniti z izhodom, kot je:

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

Super! Zdaj lahko to datoteko spremenimo tako, da ustreza našim potrebam.

Edini urejevalnik besedil, ki je priložen Core OS, je vim, vendar ne skrbite, če ga še nikoli niste uporabljali, to bo korak za korakom razložilo, kaj urejati in kako to storiti.

vim config_sample.yml

Ko odprete datoteko, pritisnite Iin v spodnjem desnem kotu naj se prikaže: -- INSERT --za način vstavljanja. S puščičnimi tipkami se pomaknite do dna datoteke in videti bi morali razdelek z oznako prod.

Spremenili bomo dve vrstici, spremembe so spodaj

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

Kar smo naredili, smo spremenili prodkonfiguracijo, da izhaja iz localrazdelka namesto iz s3razdelka. Nato smo prepisali, da storage_pathbi uporabili pot /dataznotraj novega vsebnika.

Ko potrdite, da so vse spremembe pravilne, pritisnite ESCza izhod iz načina vstavljanja in vnesite :wq(to pomeni, da zapišite spremembe v datoteko in zaprite vim.)

Zdaj pa preimenujmo datoteko v just config.yml

mv config_sample.yml config.yml

Predpomnjenje Redis (izbirno)

Če želite uporabiti redis za pospešitev registra vsebnikov, je to tako preprosto, kot da povlečete nov vsebnik iz javnega registra in dodate še nekaj vrstic konfiguracije.

Najprej povlecite sliko najvišje ravni Redis:

docker pull redis

Ko je slika uspešno potegnjena, jo lahko zaženemo in jo poimenujemo tako, kot smo to storili s testnim registrom:

docker run -d --name registry-redis redis

Ker je redis v pomnilniku, nam zanj ni treba narediti nobene konfiguracije, saj ga bomo v kasnejših korakih povezali z vsebnikom registra.

Še enkrat se prepričajte, da deluje, tako da uporabite 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

Zdaj ponovno odpre config.ymlv vimin začne vložek način, tako kot prvič smo ga uredili.

Dodajte naslednje vrstice pod prodrazdelek, pri čemer pazite, da so pravilno zamaknjene. Tokrat dodajamo le cachein 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

Spremenljivke okolja REDIS_PORT_6379_TCP_ADDRin REDIS_PORT_6379_TCP_PORTse prenesejo v vsebnik registra po povezavi z vsebnikom Redis.

S tem imate zdaj nastavljen vsebnik Redis, ki bo deloval z roko v roki z vašim vsebnikom registra. Zdaj pa na gradnjo registra!

Gradnja posode

Vso konfiguracijo imamo in pripravljeno, zdaj moramo zgraditi dejanski vsebnik registra.

Razvneti vim Dockerfile, da ustvarite nov Dockerfile. Vstopite v način vstavljanja in sledite spodnjim urejanjem.

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

Zgoraj smo v bistvu razširili sliko registra, tako da bo uporabljala našo konfiguracijsko datoteko in nastavitve. Datoteka Docker je niz navodil za gradnjo, ki jih Docker lahko bere in gradi. Če želite izvedeti več o datotekah Docker in njihovi sintaksi, si oglejte uradno dokumentacijo spletnega mesta Docker.

Nato moramo zgraditi posodo za uporabo.

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

Zdaj smo pripravljeni na tek!

Naredimo imenik v našem gostiteljskem sistemu, ki ga vgradimo v vsebnik kot /datanosilec.

mkdir registry-data

Zdaj lahko zavrtimo novo posodo. Če nameravate uporabiti predpomnilnik Redis, uporabite 2. ukaz spodaj.

# 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

Če želite zagotoviti, da vaš strežnik deluje pravilno, obiščite http://YOUR_IP:5000. Videli boste naslednje sporočilo:

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

Upoštevajte, kaj (prod)pomeni, da so bile naše spremembe konfiguracije uspešne!

Konfigurirajte lokalnega odjemalca Docker

Zdaj, ko imamo lasten tekoči register, želimo, da ga začne uporabljati odjemalec Docker na naših lokalnih strojih. Običajno bi uporabili ukaz: docker login, za našo uporabo pa moramo ukazu za prijavo dodati še en argument:

docker login YOUR_IP:5000

Vnesite uporabniško ime in geslo (mislite na to, kot da bi ustvarili nov račun) in prezrite sporočilo, ki pravi, da ga morate aktivirati.

Nato potegnimo sliko in jo potisnemo v naše lastno skladišče.

# 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

Če vse poteka pravilno, bi moralo biti končno sporočilo naslednje:

Pushing tag for rev [a9eb17255234] on 

Čestitam! Nastavili ste svoje lastno skladišče dockerjev.

Kaj je naslednje?

Tukaj je nekaj idej, kako izboljšati svoj novi zasebni register:

  • Povratni proxy z uporabo Nginxa ali Apacheja za dodatno zaščito pred njim, kot je preprosto overjanje HTTP.
  • Pridobite domeno za svoj strežnik in jo nastavite, tako da lahko dostopate do svojega registra z nečim kot je: registry.mysite.com
  • Kupite (ali sami podpišite) potrdilo SSL, da dodate še večjo zaščito, če vaši vsebniki vsebujejo občutljive podatke.

Tukaj je opisano, kako preveriti vsebnike Hyper-V v sistemu Windows 10 Insider

Tukaj je opisano, kako preveriti vsebnike Hyper-V v sistemu Windows 10 Insider

Microsoft je v novi objavi v spletnem dnevniku pojasnil, kako lahko Windows Insiders testirajo vsebnike Hyper-V v sistemu Windows 10, novi virtualizacijski rešitvi, ki omogoča izvajanje aplikacij, ne da bi to vplivalo na preostali del vašega operacijskega sistema.

Kako namestiti Harbor na CentOS 7

Kako namestiti Harbor na CentOS 7

Harbor je odprtokodni registrski strežnik poslovnega razreda, ki shranjuje in distribuira slike Docker. Harbor razširi odprtokodno Docker Distribution b

Namestite Rancher OS prek iPXE

Namestite Rancher OS prek iPXE

Rancher OS je zelo lahka distribucija Linuxa, zgrajena okoli Dockerja. Sam OS tehta približno 20 MB. Ta vadnica vas bo pripravila na začetek

V CoreOS nastavite svoj lasten register Docker

V CoreOS nastavite svoj lasten register Docker

Vsi poznamo in imamo radi Docker, platformo za ustvarjanje, upravljanje in distribucijo aplikacijskih vsebnikov na več računalnikih. Docker Inc. ponuja storitev t

Namestitev docker-compose na CoreOS

Namestitev docker-compose na CoreOS

Ta članek pojasnjuje, kako namestiti docker-compose v CoreOS. V CoreOS-u je mapa /usr/ nespremenljiva, zato standardna pot /usr/local/bin ni na voljo za

Namesti Rancher na CentOS 7

Namesti Rancher na CentOS 7

Uporaba drugega sistema? Uvod Rancher je odprtokodna platforma za vodenje kontejnerjev in izgradnjo zasebne storitve kontejnerja. Rancher je osnova

Namestite Docker CE na Ubuntu 18.04

Namestite Docker CE na Ubuntu 18.04

Uvod Docker je aplikacija, ki nam omogoča uvajanje programov, ki se izvajajo kot vsebniki. Napisana je bila v priljubljenem programskem jeziku Go

Ustvarite Docker Swarm na Alpine Linux 3.9.0

Ustvarite Docker Swarm na Alpine Linux 3.9.0

Uvod Ta priročnik vam bo pokazal, kako ustvariti in konfigurirati Docker roj z uporabo več strežnikov Alpine Linux 3.9.0 in Portainerja. Prosimo, da se zavedate, da

Namestite aplikacijo PHP z uporabo Docker-compose

Namestite aplikacijo PHP z uporabo Docker-compose

PHP aplikacije običajno sestavljajo spletni strežnik, sistem relacijske baze podatkov in sam tolmač jezika. V tej vadnici bomo vzvod

Uravnoteženost obremenitve z Dockerjem

Uravnoteženost obremenitve z Dockerjem

Ko zaženete spletno aplikacijo, običajno želite kar najbolje izkoristiti svoje vire, ne da bi morali svojo programsko opremo pretvoriti v uporabo večnitnega o

Namestite aplikacijo Node.js z uporabo Dockerja

Namestite aplikacijo Node.js z uporabo Dockerja

Ta članek vam bo pokazal, kako namestiti aplikacijo Node v vsebniku Docker. Opomba: Ta vadnica predpostavlja, da imate nameščen in prebran Docker

Namestitev Docker CE na CentOS 7

Namestitev Docker CE na CentOS 7

Tehnologija vsebnika Docker vam omogoča zagon aplikacij v določenem in izoliranem okolju. Docker Community Edition (CE) je novo ime za fre

Namestite Kubernetes s Kubeadmom na CentOS 7

Namestite Kubernetes s Kubeadmom na CentOS 7

Pregled Namen tega članka je pomagati, da gručo Kubernetes zaženete in zaženete s kubeadmom. Ta vodnik bo namestil dva strežnika na

Namestitev Dockerja na CentOS 7

Namestitev Dockerja na CentOS 7

Uporaba drugega sistema? Docker je aplikacija, ki omogoča namestitev programske opreme znotraj virtualnih vsebnikov. Napisano je v programu Go

Namestitev Docker CE v Debian 9

Namestitev Docker CE v Debian 9

Uporaba drugega sistema? Uvod Docker je aplikacija, ki omogoča namestitev programske opreme znotraj virtualnih vsebnikov. Zapisano je bilo v G

Začnite uporabljati SQL Server 2017 (MS-SQL) na CentOS 7 z Dockerjem

Začnite uporabljati SQL Server 2017 (MS-SQL) na CentOS 7 z Dockerjem

Predpogoji Docker engine 1.8+. Najmanj 4 GB prostora na disku. Najmanj 4 GB RAM-a. 1. korak. Namestite Docker Za namestitev SQL-Serverja je potrebno Docker

Sticky Session with Docker Swarm (CE) na Debianu 9

Sticky Session with Docker Swarm (CE) na Debianu 9

Uporaba drugega sistema? Uvod Docker Swarm spremeni vaše posamezne strežnike v gručo računalnikov; olajšanje skaliranja, visoka razpoložljivost an

Dve Dockerjevi grafični orodji za upravljanje: DockerUI in ladjedelnica

Dve Dockerjevi grafični orodji za upravljanje: DockerUI in ladjedelnica

S pomočjo aplikacije Vultr Docker lahko preprosto namestite Docker na vaš primerek strežnika Vultr. Medtem lahko olajšate nalogo upravljanja Dockerja

Namesti Rancher Server na RancherOS

Namesti Rancher Server na RancherOS

Pregled RancherOS je neverjetno lahek operacijski sistem (le približno 60 MB), ki poganja sistemski demon Docker kot PID 0 za izvajanje sistemskih storitev

Kako začeti uporabljati Kubernetes na CentOS 7

Kako začeti uporabljati Kubernetes na CentOS 7

Kubernetes je odprtokodna platforma, ki jo je razvil Google za upravljanje kontejnerskih aplikacij v gruči strežnikov. Gradi na desetletju in

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več