A CoreOS, configureu el vostre propi registre Docker

A CoreOS, configureu el vostre propi registre Docker

Tots coneixem i estimem Docker, una plataforma per crear, gestionar i distribuir contenidors d'aplicacions a diverses màquines. Docker Inc. ofereix un servei per allotjar contenidors de codi obert que es poden descarregar (o extreure) com un repositori git conegut com a "Registre Docker". Penseu-hi com un GitHub per a contenidors Docker.

Però, què passa si voleu allotjar el vostre propi registre separat del públic? Bé, Docker Inc. ha obert la seva aplicació de registre a GitHub.

Aquest tutorial us guiarà pel procés de configuració d'un registre Docker privat amb CoreOS en un nou VPS.

CoreOS + Docker

No passarem molt de temps repassant exactament què poden fer Docker i CoreOS, ja que està fora de l'abast d'aquest tutorial. En essència, CoreOS està dissenyat per a clústers de servidors massius, és petit, ràpid i obté actualitzacions de seguretat regulars automàticament. El seu sistema de fitxers arrel també és de només lectura, el que significa que heu d'utilitzar Docker per executar qualsevol tipus de programari que no estigui inclòs amb la instal·lació base.

Això fa que Core OS sigui un sistema amfitrió perfecte per a Docker!

Tirant i executant l'últim registre

Docker Inc. ha proporcionat el Registre com a imatge de nivell superior, això vol dir que el podem treure amb un senzill:

docker pull registry

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

Un avantatge de ser una imatge de primer nivell també significa que rep suport i actualitzacions periòdiques.

Ara provem el registre. Podem crear un nou contenidor mitjançant la imatge de registre:

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

Per a aquells que no han utilitzat massa Docker, la -pbandera PORTsignifica , és a dir, estem exposant el port 5000 des del contenidor al port amfitrió 5000.

La -dbandera significa daemon, això farà que el contenidor s'executi en segon pla i no imprimeixi la sortida a la sessió SSH actual, també volem anomenar aquest contenidor de prova bàsic mitjançant l' --nameopció perquè puguem gestionar-lo fàcilment més endavant.

Assegureu-vos que el vostre contenidor de registre bàsic s'està executant amb docker ps. La sortida hauria de ser semblant a:

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

A més, visiteu http://YOUR_IP:5000el vostre navegador web i haureu de rebre un missatge com el següent:

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

Ara teniu el vostre propi registre de contenidors (molt bàsic) en funcionament! Però encara no hem acabat.

Potser voleu mantenir això privat de mirades indiscretes, o potser emmagatzemar les vostres imatges a Amazon S3 en lloc d'emmagatzemar localment. Anem a repassar les diferents opcions de configuració a la secció següent.

Abans de seguir endavant, matem el contenidor de prova perquè no ens trobem amb ports conflictius.

docker kill basic_registry

Configuració del registre

Hi ha dues maneres de passar la configuració al registre Docker. Una manera és passant variables d'entorn a un contenidor nou i l'altra és afegir un fitxer de configuració.

A continuació es mostren algunes de les opcions de configuració habituals que farem servir:

  • loglevel- La quantitat mínima d'informació per iniciar sessió a la consola. El valor per defecte és info.
  • standalone- Aquest Registre hauria d'actuar per si mateix? (Mai consulteu el registre públic.) El valor per defecte és true.
  • index_endpoint- Si no és autònom, quin altre índex consultarem? Per defecte index.docker.io.
  • cachei cache_lru- Opcions relacionades amb l'ús d'una memòria cau de Redis per a fitxers petits, en parlarem més endavant.
  • storage- Quin backend d'emmagatzematge hem d'utilitzar per a aquest servidor? (En aquest tutorial farem servir local).
  • storage_path - Si utilitzeu emmagatzematge local, quin directori hem d'utilitzar per guardar els fitxers?

Abans de començar a treballar amb la configuració, necessitem un fitxer base per treballar. El fitxer del dipòsit del registre de Docker a GitHub funcionarà bé:

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

El fitxer s'ha de desar correctament amb una sortida com ara:

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

Genial! Ara podem modificar aquest fitxer per adaptar-lo a les nostres necessitats.

L'únic editor de text que inclou Core OS és vim, però no us preocupeu si no l'heu utilitzat mai abans, això us explicarà pas a pas què heu d'editar i com fer-ho.

vim config_sample.yml

Un cop tingueu el fitxer obert, premeu Ii l'extrem inferior dret hauria de mostrar: -- INSERT --per al mode d'inserció. Desplaceu-vos fins al final del fitxer amb les tecles de fletxa, hauríeu de veure una secció amb l'etiqueta prod.

Anirem canviant les dues línies, els canvis són a continuació

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

El que hem fet és canviar la prodconfiguració perquè es derivi de la localsecció en lloc de la s3secció. A continuació, vam sobreescriure storage_pathper utilitzar el camí /datadins del nou contenidor.

Un cop hàgiu confirmat que tots els canvis són correctes, premeu ESCper sortir del mode d'inserció i escriviu :wq(això vol dir escriure els canvis al fitxer i sortir de vim).

Ara canviem el nom del fitxer a just config.yml

mv config_sample.yml config.yml

Redis caché (opcional)

Si voleu utilitzar redis per accelerar el vostre registre de contenidors, és tan senzill com treure un contenidor nou del registre públic i afegir unes quantes línies més de configuració.

Primer, estireu la imatge de nivell superior de Redis:

docker pull redis

Un cop s'ha extret la imatge correctament, podem executar-la i anomenar-la tal com hem fet amb el registre de prova:

docker run -d --name registry-redis redis

Com que redis està a la memòria, no cal que en fem cap configuració, ja que l'enllaçarem amb el contenidor del registre en passos posteriors.

Una vegada més, assegureu-vos que s'està executant utilitzant 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

Ara torni a obrir la config.ymlen vimi introduïu la manera d'inserció a l'igual que la primera vegada que vam editar.

Afegiu les línies següents a sota de la prodsecció, assegurant-vos de sagnar correctament. Aquesta vegada només estem afegint cachei 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

Les variables d'entorn REDIS_PORT_6379_TCP_ADDRi REDIS_PORT_6379_TCP_PORTes passen al contenidor del registre quan es connecten amb el contenidor Redis.

Amb això, ara heu configurat un contenidor Redis que funcionarà de la mà amb el vostre contenidor de registre. Ara a construir el registre!

Construcció del contenidor

Ja tenim tota la configuració preparada, ara hem de construir el contenidor del registre real.

Enceneu vim Dockerfileper crear un nou Dockerfile. Entreu al mode d'inserció i seguiu les edicions següents.

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

El que hem fet anteriorment és essencialment ampliar la imatge del registre perquè utilitzi el nostre fitxer de configuració i la nostra configuració. Un Dockerfile és un conjunt d'instruccions de compilació perquè Docker pugui llegir i crear. Si voleu obtenir més informació sobre Dockerfiles i la seva sintaxi, feu una ullada a la documentació oficial del lloc de Docker.

A continuació, hem de construir el contenidor per utilitzar-lo.

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

Ara estem preparats per córrer!

Fem un directori al nostre sistema amfitrió per muntar-lo al contenidor com a /datavolum.

mkdir registry-data

Ara podem girar un nou contenidor. Si teniu previst utilitzar la memòria cau Redis, feu servir la segona ordre a continuació.

# 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

Per assegurar-vos que el vostre servidor funciona correctament, visiteu http://YOUR_IP:5000. Veureu el missatge següent:

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

Tingueu en compte que els (prod)nostres canvis de configuració han tingut èxit!

Configureu el vostre client Docker local

Ara que tenim el nostre propi registre en execució, volem que el client Docker de les nostres màquines locals comenci a utilitzar-lo. Normalment utilitzareu l'ordre: docker login, però per al nostre ús, hem d'afegir un argument més a l'ordre d'inici de sessió:

docker login YOUR_IP:5000

Introduïu un nom d'usuari i una contrasenya (penseu en això com fer un compte nou) i ignoreu el missatge que indica que heu d'activar-lo.

A continuació, traguem una imatge d'estoc i la introduïm al nostre propi dipòsit.

# 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

Si tot funciona correctament, el missatge final hauria de ser de la següent manera:

Pushing tag for rev [a9eb17255234] on 

Felicitats! Heu configurat el vostre propi dipòsit docker.

Que segueix?

Aquí teniu algunes idees sobre com millorar el vostre registre privat nou:

  • Proxy invers que utilitza Nginx o Apache per posar seguretat addicional al davant, com ara una simple autenticació HTTP.
  • Obteniu un domini per al vostre servidor i configureu-lo perquè pugueu accedir al vostre registre amb alguna cosa com: registry.mysite.com
  • Compreu (o autosigna) un certificat SSL per afegir encara més protecció si els vostres contenidors contenen informació sensible.

A continuació, es mostra com comprovar els contenidors Hyper-V a Windows 10 Insider

A continuació, es mostra com comprovar els contenidors Hyper-V a Windows 10 Insider

Microsoft ha explicat en una nova publicació al bloc com els Windows Insiders poden provar contenidors Hyper-V a Windows 10, una nova solució de virtualització per permetre que les aplicacions s'executin sense afectar la resta del vostre sistema operatiu.

Com instal·lar Harbour a CentOS 7

Com instal·lar Harbour a CentOS 7

Harbour és un servidor de registre de codi obert de classe empresarial que emmagatzema i distribueix imatges de Docker. Harbour amplia la distribució Docker de codi obert b

Instal·leu Rancher OS mitjançant iPXE

Instal·leu Rancher OS mitjançant iPXE

Rancher OS és una distribució Linux molt lleugera construïda al voltant de Docker. El sistema operatiu en si pesa uns 20 MB. Aquest tutorial us posarà en funcionament

A CoreOS, configureu el vostre propi registre Docker

A CoreOS, configureu el vostre propi registre Docker

Tots coneixem i estimem Docker, una plataforma per crear, gestionar i distribuir contenidors d'aplicacions a diverses màquines. Docker Inc. ofereix un servei t

Instal·lació de docker-compose a CoreOS

Instal·lació de docker-compose a CoreOS

Aquest article explica com instal·lar docker-compose a CoreOS. A CoreOS, la carpeta /usr/ és immutable, de manera que la ruta estàndard /usr/local/bin no està disponible per

Instal·leu Rancher a CentOS 7

Instal·leu Rancher a CentOS 7

Utilitzeu un sistema diferent? Introducció Rancher és una plataforma de codi obert per executar contenidors i crear un servei privat de contenidors. El rancher és la base

Instal·leu Docker CE a Ubuntu 18.04

Instal·leu Docker CE a Ubuntu 18.04

Introducció Docker és una aplicació que ens permet desplegar programes que s'executen com a contenidors. Va ser escrit en el popular llenguatge de programació Go

Creeu un Docker Swarm a Alpine Linux 3.9.0

Creeu un Docker Swarm a Alpine Linux 3.9.0

Introducció Aquesta guia us mostrarà com crear i configurar un eixam Docker utilitzant diversos servidors Alpine Linux 3.9.0 i Portainer. Si us plau, tingueu en compte que

Desplegueu una aplicació PHP amb Docker-compose

Desplegueu una aplicació PHP amb Docker-compose

Les aplicacions PHP solen estar compostes per un servidor web, un sistema de bases de dades relacionals i el propi intèrpret de llenguatge. En aquest tutorial farem palanca

Balanç de càrrega amb Docker

Balanç de càrrega amb Docker

Quan executeu una aplicació web, normalment voleu treure el màxim profit dels vostres recursos sense haver de convertir el vostre programari per utilitzar multithreading o

Desplegueu una aplicació Node.js mitjançant Docker

Desplegueu una aplicació Node.js mitjançant Docker

Aquest article us mostrarà com implementar la vostra aplicació Node dins d'un contenidor Docker. Nota: aquest tutorial suposa que teniu Docker instal·lat i llegit

Instal·lació de Docker CE a CentOS 7

Instal·lació de Docker CE a CentOS 7

La tecnologia de contenidors Docker us permet executar aplicacions en un entorn específic i aïllat. Docker Community Edition (CE) és el nou nom del fre

Desplegueu Kubernetes amb Kubeadm a CentOS 7

Desplegueu Kubernetes amb Kubeadm a CentOS 7

Visió general Aquest article està pensat per ajudar-vos a posar en funcionament un clúster de Kubernetes amb kubeadm en molt poc temps. Aquesta guia desplegarà dos servidors activats

Instal·lació de Docker a CentOS 7

Instal·lació de Docker a CentOS 7

Utilitzeu un sistema diferent? Docker és una aplicació que permet el desplegament de programari dins de contenidors virtuals. Va ser escrit al programa Go

Instal·lació de Docker CE a Debian 9

Instal·lació de Docker CE a Debian 9

Utilitzeu un sistema diferent? Introducció Docker és una aplicació que permet el desplegament de programari dins de contenidors virtuals. Va ser escrit en G

Comenceu amb SQL Server 2017 (MS-SQL) a CentOS 7 amb Docker

Comenceu amb SQL Server 2017 (MS-SQL) a CentOS 7 amb Docker

Requisits previs del motor Docker 1.8+. Mínim de 4 GB d'espai en disc. Mínim de 4 GB de RAM. Pas 1. Instal·leu Docker Per instal·lar SQL-Server, Docker mus

Sessió enganxosa amb Docker Swarm (CE) a Debian 9

Sessió enganxosa amb Docker Swarm (CE) a Debian 9

Utilitzeu un sistema diferent? Introducció Docker Swarm converteix els vostres servidors individuals en un clúster d'ordinadors; facilitant l'escalat, alta disponibilitat an

Dues eines de gestió gràfica de Docker: DockerUI i Shipyard

Dues eines de gestió gràfica de Docker: DockerUI i Shipyard

Amb l'ajuda de l'aplicació Vultr Docker, podeu implementar fàcilment Docker a la vostra instància del servidor Vultr. Mentrestant, podeu facilitar la tasca de gestió de Docker

Instal·leu Rancher Server a RancherOS

Instal·leu Rancher Server a RancherOS

Visió general RancherOS és un sistema operatiu increïblement lleuger (només uns 60 MB) que executa un dimoni Docker del sistema com a PID 0 per executar serveis del sistema

Com començar amb Kubernetes a CentOS 7

Com començar amb Kubernetes a CentOS 7

Kubernetes és una plataforma de codi obert desenvolupada per Google per gestionar aplicacions en contenidors en un clúster de servidors. Es basa en una dècada i

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.

Atacs DDOS: una breu visió general

Atacs DDOS: una breu visió general

També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.

Us heu preguntat mai com guanyen diners els pirates informàtics?

Us heu preguntat mai com guanyen diners els pirates informàtics?

Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.

Invents revolucionaris de Google que us facilitaran la vida.

Invents revolucionaris de Google que us facilitaran la vida.

Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.

Divendres essencial: què va passar amb els cotxes impulsats per IA?

Divendres essencial: què va passar amb els cotxes impulsats per IA?

El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...

Singularitat tecnològica: un futur llunyà de la civilització humana?

Singularitat tecnològica: un futur llunyà de la civilització humana?

A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.

Evolució de lemmagatzematge de dades – Infografia

Evolució de lemmagatzematge de dades – Infografia

Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.

Funcionalitats de les capes darquitectura de referència de Big Data

Funcionalitats de les capes darquitectura de referència de Big Data

Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació