English English French French Spanish Spanish German German
Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

¿Cómo configurar el registro privado de Docker en Ubuntu 18?

registro privado de Docker
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Docker Registry es una aplicación de software que le permite crear y almacenar sus imágenes dentro de su organización.

También puede crear y cargar sus imágenes en el Docker Registro público Hub. Sin embargo, estas imágenes se vuelven públicas y cualquiera puede acceder a ellas y utilizarlas. Por lo tanto, se recomienda utilizar el registro privado de Docker que le permite controlar y proteger sus imágenes.

En este tutorial, voy a explicar cómo configurar un registro privado de Docker en Ubuntu 18.04.

Requirements

  • Dos servidores Ubuntu con las credenciales raíz
  • Una dirección IP estática en ambos servidores

Getting Started

Antes de comenzar, deberá configurar la resolución de nombres de host en ambos sistemas. Entonces, ambos sistemas pueden comunicarse entre sí por nombre de host.

Para hacerlo, ejecute el siguiente comando en ambos sistemas:

echo "192.168.0.100 server" >> /etc/hosts
echo "192.168.0.102 client" >> /etc/hosts

Una vez que haya terminado, puede continuar con el siguiente paso.

Install Docker

A continuación, deberá instalar el paquete Docker en ambos sistemas. De forma predeterminada, Docker no está disponible en el repositorio predeterminado de Ubuntu 18.04. Por lo tanto, deberá agregarlos.

Primero, instale los paquetes requeridos con el siguiente comando:

apt-get install apt-transport-https software-properties-common ca-certificates curl -y

A continuación, agregue el repositorio de Docker con el siguiente comando:

wget https://download.docker.com/linux/ubuntu/gpg 
apt-key add gpg
echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" | tee /etc/apt/sources.list.d/docker.list

A continuación, actualice el repositorio e instale Docker con el siguiente comando:

apt-get update -y
apt-get install docker-ce -y

Una vez que se haya completado la instalación, verifique el estado de la ventana acoplable con el siguiente comando:

systemctl status docker

Debería ver el siguiente resultado:

docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-05-01 15:08:45 UTC; 7min ago
Docs: https://docs.docker.com
Main PID: 2658 (dockerd)
Tasks: 8
CGroup: /system.slice/docker.service
└─2658 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Install Docker Registry Container

Primero, deberá instalar el contenedor de registro en su sistema de servidor. Puede hacerlo ejecutando el siguiente comando:

docker pull registry

Una vez que se haya descargado la imagen de registro, debería ver el siguiente resultado:

Using default tag: latest
latest: Pulling from library/registryc
87736221ed0: Pull complete 
1cc8e0bb44df: Pull complete 
54d33bcb37f5: Pull complete 
e8afc091c171: Pull complete 
b4541f6d3db6: Pull complete 
Digest: sha256:3b00e5438ebd8835bcfa7bf5246445a6b57b9a50473e89c02ecc8e575be3ebb5
Status: Downloaded newer image for registry:latest

A continuación, inicie el contenedor de registro con el siguiente comando:

docker run -d -p 5000:5000 --restart=always --name registry registry

Puede ver el contenedor de registro en ejecución con el siguiente comando:

docker ps

Debería ver el siguiente resultado:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4912e461745f registry "/entrypoint.sh /etc…" About a minute ago Up About a minute 0.0.0.0:5000->5000/tcp registry

Create a Docker Container Image on the Client System

Su servidor de registro ya está listo para usarse. Es hora de crear una imagen de contenedor de Docker en el sistema cliente.

Primero, inicie sesión en el sistema del Cliente y cree un archivo docker para construir la imagen del servidor web Nginx:

mkdir Image
cd Image
nano dockerfile

Agregue las siguientes líneas:

FROM ubuntu:18.04
LABEL project="Nginx Web Server Image"
LABEL maintainer "hitjethva@gmail.com"
RUN \a
pt-get update && \
apt-get install -y nginx && \
rm -rf /var/lib/apt/lists/* && \
echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \
chown -R www-data:www-data /var/lib/nginx
# Define mountable directories.
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
# Define working directory.WORKDIR /etc/nginx
# Define default command.CMD ["nginx"]
# Expose ports.
EXPOSE 80
EXPOSE 443

Guarde y cierre el archivo. Luego, cree una imagen de Nginx ejecutando el siguiente comando:

docker build -t ubuntu:nginx .

Después de crear la imagen de Nginx correctamente, debería ver el siguiente resultado:

---> bc6e61406108
Step 5/9 : VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
---> Running in 30832b7ff816
Removing intermediate container 30832b7ff816
---> 1940ec1c2225Step 6/9 : WORKDIR /etc/nginx
---> Running in 88755ef2d7c8
Removing intermediate container 88755ef2d7c8
---> 4fe930c96a73Step 7/9 : CMD ["nginx"]
---> Running in c8d492317d88
Removing intermediate container c8d492317d88
---> 3218acfd15f8Step 8/9 : EXPOSE 80
---> Running in 35921ef45db9Removing intermediate container 35921ef45db9
---> a6a299b86a6dStep 9/9 : EXPOSE 443
---> Running in 755441cefe2f
Removing intermediate container 755441cefe2f
---> 9be7dc6b0825
Successfully built 9be7dc6b0825
Successfully tagged ubuntu:nginx

A continuación, puede verificar la imagen generada con el siguiente comando:

docker images

Debería ver su imagen nginx en el siguiente resultado:

REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu nginx 9be7dc6b0825 About a minute ago 161MB
ubuntu 18.04 d131e0fa2585 4 days ago 102MB
registry latest f32a97de94e1 7 weeks ago 25.8MB

A continuación, deberá cambiar el nombre de su imagen nginx en formato “registryserver: número de puerto / nombre de imagen: etiqueta”.

Puedes hacerlo con el siguiente comando:

docker tag ubuntu:nginx server:5000/ubuntu:nginx

Upload Nginx Image on Private Registry Server

Ahora puede cargar su imagen Nginx generada en el servidor de registro privado usando el comando push:

docker push server:5000/ubuntu:nginx

Una vez que la imagen se cargó correctamente, debería ver el siguiente resultado:

The push refers to repository [server:5000/ubuntu]
2e5us8en4s9d: Pushed 
l1is9e9d8j7e: Pushed 
nginx: digest: sha256:aa0d8fi49dir0d7rn33nee122b size: 1862

También puede descargar la imagen cargada desde el servidor de registro con el siguiente comando:

docker pull server:5000/ubuntu:nginx

Espero que ahora tenga el conocimiento suficiente para configurar su propio servidor de registro Docker privado en un servidor de producción. Si está buscando obtener más experiencia en Docker, consulte este curso en línea.

Gracias a nuestros patrocinadores
Más lecturas excelentes sobre computación en la nube
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Trata Intruder