På CoreOS skal du konfigurere dit eget Docker-register

På CoreOS skal du konfigurere dit eget Docker-register

Vi kender og elsker alle Docker, en platform til at skabe, administrere og distribuere applikationscontainere på tværs af flere maskiner. Docker Inc. leverer en service til at være vært for open source-containere, der skal downloades (eller trækkes) som et git-lager kendt som "Docker Registry". Tænk på det som en GitHub til Docker-containere.

Men hvad hvis du vil være vært for dit eget register adskilt fra det offentlige? Nå, Docker Inc. har open source deres Registry-applikation på GitHub.

Denne vejledning vil tage dig igennem processen med at konfigurere et privat Docker-register ved hjælp af CoreOS på en ny VPS.

CoreOS + Docker

Vi kommer ikke til at bruge et væld af tid på at gennemgå præcis, hvad Docker og CoreOS kan gøre, da det er uden for denne tutorials rammer. I det væsentlige er CoreOS designet til massive serverklynger, det er lille, hurtigt og får regelmæssige sikkerhedsopdateringer automatisk. Dets rodfilsystem er også skrivebeskyttet, hvilket betyder, at du skal bruge Docker til at køre enhver form for software, der ikke er inkluderet i basisinstallationen.

Dette gør Core OS til et perfekt værtssystem til Docker!

Trækker og kører det seneste register

Docker Inc. har leveret registreringsdatabasen som et billede på øverste niveau, det betyder, at vi kan trække det ned med en simpel:

docker pull registry

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

Et plus ved at være et billede på øverste niveau betyder også, at det får regelmæssig support og opdateringer.

Lad os nu teste registreringsdatabasen. Vi kan oprette en ny container ved hjælp af registreringsdatabasen:

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

For dem, der ikke har brugt Docker for meget, -pstår flaget for PORT, hvilket betyder, at vi eksponerer port 5000 på fra containeren til værtsport 5000.

Den -dflag står for daemon, vil dette medføre, at beholderen til at køre i baggrunden og ikke udskrive output til den aktuelle SSH session, ønsker vi også at nævne dette grundlæggende test beholder ved hjælp af den --nameindstilling, så vi nemt kan administrere det senere.

Sørg for, at din grundlæggende registreringsbeholder kører med docker ps. Outputtet skal ligne:

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

Besøg også http://YOUR_IP:5000i din webbrowser, og du skulle få en besked som følgende:

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

Du har nu dit eget (meget grundlæggende) containerregister kørende! Men vi er ikke færdige endnu.

Måske vil du holde dette privat fra nysgerrige øjne, eller måske gemme dine billeder på Amazon S3 i stedet for lokal lagring. Lad os gennemgå de forskellige konfigurationsmuligheder i næste afsnit.

Før vi går videre, lad os dræbe testcontaineren, så vi ikke løber ind i modstridende havne.

docker kill basic_registry

Registry konfiguration

Der er to måder, hvorpå vi kan overføre konfiguration til Docker Registry. Den ene måde er at overføre miljøvariabler til en ny container, og den anden er at tilføje en konfigurationsfil.

Her er et par af de almindelige konfigurationsmuligheder, vi vil bruge:

  • loglevel- Den mindste mængde information for at logge på konsollen. Standard er info.
  • standalone- Skal dette register handle på egen hånd? (Forespørger aldrig i det offentlige register.) Standard er true.
  • index_endpoint- Hvis ikke selvstændigt, hvilket andet indeks vil vi forespørge på? Standard index.docker.io.
  • cacheog cache_lru- Muligheder vedrørende brug af en Redis-cache til små filer, vi vil komme ind på dette senere.
  • storage- Hvilken storage-backend skal vi bruge til denne server? (I dette selvstudie bruger vi lokalt).
  • storage_path - Hvis vi bruger lokal lagring, hvilken mappe skal vi så bruge til at opbevare filer i?

Før vi begynder at arbejde med konfigurationen, har vi brug for en basisfil at arbejde med. Filen fra Docker Registry repository på GitHub fungerer fint:

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

Filen skal gemme med succes med et output som:

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

Store! Nu kan vi ændre denne fil, så den passer til vores behov.

Den eneste teksteditor, der følger med Core OS, er vim, men bare rolig, hvis du aldrig har brugt det før, dette vil forklare trin for trin, hvad du skal redigere, og hvordan du gør det.

vim config_sample.yml

Når du har filen åben, skal du trykke på Iog nederst i højre hjørne skal vises: -- INSERT --for indsættelsestilstand. Rul hele vejen til bunden af ​​filen ved hjælp af dine piletaster, du skulle se en sektion mærket prod.

Vi vil ændre de to linjer, ændringerne er nedenfor

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

Det, vi har gjort, er at ændre prodkonfigurationen, så den stammer fra localsektionen i stedet for s3sektionen. Så overskrev vi for storage_pathat bruge stien /datainde i den nye container.

Når du har bekræftet, at alle ændringerne er korrekte, skal du trykke for ESCat afslutte indsætningstilstand og indtaste :wq(det betyder, at du skal skrive ændringerne til filen og afslutte vim.)

Lad os nu omdøbe filen til bare config.yml

mv config_sample.yml config.yml

Redis caching (valgfrit)

Hvis du gerne vil bruge redis til at fremskynde dit containerregister, er det så simpelt som at trække en ny container fra det offentlige register og tilføje et par flere linjer med konfiguration.

Træk først billedet på øverste niveau af Redis:

docker pull redis

Når billedet er trukket med succes, kan vi køre det og navngive det, ligesom vi gjorde med testregistret:

docker run -d --name registry-redis redis

Fordi redis er i hukommelsen, behøver vi ikke at lave nogen konfiguration for det, da vi vil linke det til registreringsdatabasen i senere trin.

Endnu en gang skal du sikre dig, at den kører ved at bruge 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

Nu genåbne den config.ymli vimog indtaste indsætningstilstand ligesom første gang vi redigeret det.

Tilføj følgende linjer under prodafsnittet, og sørg for at indrykke korrekt. Denne gang tilføjer vi kun cacheog 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

Miljøvariablerne REDIS_PORT_6379_TCP_ADDRog REDIS_PORT_6379_TCP_PORTvideregives til registreringsdatabasen ved sammenkobling med Redis-beholderen.

Med det har du nu opsat en Redis-container, der vil arbejde hånd i hånd med din registreringscontainer. Nu til at bygge registreringsdatabasen!

Opbygning af container

Vi har al konfigurationen sat og klar, nu skal vi bygge den faktiske registreringsbeholder.

vim DockerfileTænd op for at oprette en ny Dockerfile. Gå ind i indsættelsestilstand, og følg nedenstående redigeringer.

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

Det, vi har gjort ovenfor, er i det væsentlige at udvide registreringsdatabasen, så det bruger vores konfigurationsfil og indstillinger. En Dockerfile er et sæt byggeinstruktioner, som Docker kan læse og bygge. Hvis du gerne vil lære mere om Dockerfiles og deres syntaks, så tag et kig på den officielle Docker-webstedsdokumentation.

Dernæst skal vi bygge beholderen til brug.

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

Nu er vi klar til at løbe!

Lad os lave en mappe på vores værtssystem til at montere i containeren som /datavolumen.

mkdir registry-data

Nu kan vi skrue en ny container op. Hvis du planlægger at bruge Redis-cachen, skal du bruge den 2. kommando nedenfor.

# 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

Besøg for at sikre, at din server kører korrekt http://YOUR_IP:5000. Du vil se følgende besked:

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

Læg mærke til (prod)betydningen af, at vores konfigurationsændringer var vellykkede!

Konfigurer din lokale Docker-klient

Nu hvor vi har vores eget kørende register, vil vi have Docker-klienten på vores lokale maskiner til at begynde at bruge det. Normalt ville du bruge kommandoen: docker login, men til vores brug skal vi tilføje endnu et argument til login-kommandoen:

docker login YOUR_IP:5000

Indtast et brugernavn og en adgangskode (tænk på dette som at oprette en ny konto) og ignorer meddelelsen, der siger, at du skal aktivere den.

Lad os derefter trække et lagerbillede og skubbe det op til vores eget lager.

# 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

Hvis alt skubber korrekt, skal den endelige besked være i stil med:

Pushing tag for rev [a9eb17255234] on 

Tillykke! Du har opsat dit helt eget docker-lager.

Hvad er det næste?

Her er nogle ideer til, hvordan du forbedrer dit nye private register:

  • Omvendt proxy ved hjælp af Nginx eller Apache for at placere yderligere sikkerhed foran den, som simpel HTTP-godkendelse.
  • Få et domæne til din server og opsæt det, så du kan få adgang til dit register med noget som: registry.mysite.com
  • Køb (eller underskriv selv) et SSL-certifikat for at tilføje endnu mere beskyttelse, hvis dine containere indeholder følsomme oplysninger.

Sådan tjekker du Hyper-V-containere på Windows 10 Insider

Sådan tjekker du Hyper-V-containere på Windows 10 Insider

Microsoft har i et nyt blogindlæg forklaret, hvordan Windows Insiders kan teste Hyper-V-containere på Windows 10, en ny virtualiseringsløsning, der giver applikationer mulighed for at køre uden at påvirke resten af ​​dit operativsystem.

Sådan installeres Harbor på CentOS 7

Sådan installeres Harbor på CentOS 7

Harbor er en open source-registreringsserver i virksomhedsklassen, der gemmer og distribuerer Docker-billeder. Harbor udvider open source Docker Distribution b

Installer Rancher OS via iPXE

Installer Rancher OS via iPXE

Rancher OS er en meget let Linux-distribution bygget op omkring Docker. Selve operativsystemet vejer omkring 20 MB. Denne tutorial får dig op at køre med

På CoreOS skal du konfigurere dit eget Docker-register

På CoreOS skal du konfigurere dit eget Docker-register

Vi kender og elsker alle Docker, en platform til at skabe, administrere og distribuere applikationscontainere på tværs af flere maskiner. Docker Inc. leverer en service t

Installation af docker-compose på CoreOS

Installation af docker-compose på CoreOS

Denne artikel forklarer, hvordan du installerer docker-compose på CoreOS. I CoreOS er mappen /usr/ uforanderlig, så standardstien /usr/local/bin er ikke tilgængelig for

Installer Rancher på CentOS 7

Installer Rancher på CentOS 7

Bruger du et andet system? Introduktion Rancher er en open source-platform til at køre containere og bygge en privat containerservice. Rancher er base

Installer Docker CE på Ubuntu 18.04

Installer Docker CE på Ubuntu 18.04

Introduktion Docker er et program, der giver os mulighed for at implementere programmer, der køres som containere. Det er skrevet i det populære Go-programmeringssprog

Opret en Docker Swarm på Alpine Linux 3.9.0

Opret en Docker Swarm på Alpine Linux 3.9.0

Introduktion Denne guide viser dig, hvordan du opretter og konfigurerer en Docker-sværm ved hjælp af flere Alpine Linux 3.9.0-servere og Portainer. Vær venligst opmærksom på det

Implementer en PHP-applikation ved hjælp af Docker-compose

Implementer en PHP-applikation ved hjælp af Docker-compose

PHP-applikationer er normalt sammensat af en webserver, et relationsdatabasesystem og selve sprogfortolkeren. I denne tutorial vil vi være gearing

Load Balance med Docker

Load Balance med Docker

Når du kører en webapplikation, vil du normalt få mest muligt ud af dine ressourcer uden at skulle konvertere din software til at bruge multithreading o

Implementer en Node.js-applikation ved hjælp af Docker

Implementer en Node.js-applikation ved hjælp af Docker

Denne artikel viser dig, hvordan du implementerer din Node-applikation i en Docker-container. Bemærk: Denne vejledning forudsætter, at du har Docker installeret og læst

Installation af Docker CE på CentOS 7

Installation af Docker CE på CentOS 7

Docker container teknologi giver dig mulighed for at køre applikationer i et specifikt og isoleret miljø. Docker Community Edition (CE) er det nye navn for fre

Implementer Kubernetes med Kubeadm på CentOS 7

Implementer Kubernetes med Kubeadm på CentOS 7

Oversigt Denne artikel er beregnet til at hjælpe dig med at få en Kubernetes-klynge op at køre med kubeadm på ingen tid. Denne vejledning vil implementere to servere på

Installation af Docker på CentOS 7

Installation af Docker på CentOS 7

Bruger du et andet system? Docker er et program, der giver mulighed for implementering af software i virtuelle containere. Det blev skrevet i Go-programmet

Installation af Docker CE på Debian 9

Installation af Docker CE på Debian 9

Bruger du et andet system? Introduktion Docker er et program, der giver mulighed for udrulning af software i virtuelle containere. Det blev skrevet i G

Kom godt i gang med SQL Server 2017 (MS-SQL) på CentOS 7 med Docker

Kom godt i gang med SQL Server 2017 (MS-SQL) på CentOS 7 med Docker

Forudsætninger Docker-motor 1.8+. Minimum 4 GB diskplads. Minimum 4 GB RAM. Trin 1. Installer Docker For at installere SQL-Server skal Docker mus

Sticky Session With Docker Swarm (CE) på Debian 9

Sticky Session With Docker Swarm (CE) på Debian 9

Bruger du et andet system? Introduktion Docker Swarm forvandler dine individuelle servere til en klynge af computere; letter skalering, høj tilgængelighed og

To Docker grafiske styringsværktøjer: DockerUI og Shipyard

To Docker grafiske styringsværktøjer: DockerUI og Shipyard

Ved hjælp af Vultr Docker-applikationen kan du nemt implementere Docker på din Vultr-serverinstans. I mellemtiden kan du lette Docker-administrationsopgaven

Installer Rancher Server på RancherOS

Installer Rancher Server på RancherOS

Oversigt RancherOS er et utroligt let operativsystem (kun omkring 60 MB), der kører en system Docker-dæmon som PID 0 til at køre systemtjenester

Kom godt i gang med Kubernetes på CentOS 7

Kom godt i gang med Kubernetes på CentOS 7

Kubernetes er en open source-platform udviklet af Google til styring af containeriserede applikationer på tværs af en klynge af servere. Det bygger på et årti og

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere