ZPanel y Sentora en CentOS 6 x64
ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.
Todos conocemos y amamos Docker, una plataforma para crear, administrar y distribuir contenedores de aplicaciones en múltiples máquinas. Docker Inc. proporciona un servicio para alojar contenedores de código abierto para descargar (o extraer) como un repositorio git conocido como el "Registro Docker". Piense en ello como un GitHub para contenedores Docker.
Pero, ¿qué sucede si desea alojar su propio registro separado del público? Bueno, Docker Inc. ha abierto su aplicación de registro en GitHub.
Este tutorial lo llevará a través del proceso de configuración de un registro Docker privado usando CoreOS en un nuevo VPS.
No pasaremos mucho tiempo repasando exactamente lo que Docker y CoreOS pueden hacer, ya que está fuera del alcance de este tutorial. En esencia, CoreOS está diseñado para clústeres de servidores masivos, es pequeño, rápido y recibe actualizaciones de seguridad periódicas automáticamente. Su sistema de archivos raíz también es de solo lectura, lo que significa que debe usar Docker para ejecutar cualquier tipo de software que no esté incluido en la instalación base.
¡Esto hace que Core OS sea un sistema host perfecto para Docker!
Docker Inc. ha proporcionado el Registro como una imagen de nivel superior, esto significa que podemos desplegarlo con un simple:
docker pull registry
Esto puede demorar unos minutos dependiendo de la velocidad de conexión.
Una ventaja de ser una imagen de nivel superior también significa que recibe soporte y actualizaciones regulares.
Ahora probemos el registro. Podemos crear un nuevo contenedor utilizando la imagen de registro:
docker run -p 5000:5000 -d --name=basic_registry registry
Para aquellos que no han usado Docker demasiado, la -p
bandera significa PORT
, lo que significa que estamos exponiendo el puerto 5000 desde el contenedor al puerto host 5000.
La -d
bandera significa daemon
, esto hará que el contenedor se ejecute en segundo plano y no imprima la salida a la sesión SSH actual, también queremos nombrar este contenedor de prueba básico usando la --name
opción para que podamos administrarlo fácilmente más tarde.
Asegúrese de que su contenedor de registro básico se esté utilizando docker ps
. El resultado debería ser similar 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
Además, visite http://YOUR_IP:5000
su navegador web y debería recibir un mensaje como el siguiente:
"docker-registry server (dev) (v0.8.1)"
Observe la palabra
dev
entre paréntesis. Esto significa que el servidor está ejecutando actualmente la configuración de desarrollo. Veremos más configuraciones pronto.
¡Ahora tiene su propio registro de contenedor (muy básico) en ejecución! Pero aún no hemos terminado.
Tal vez desee mantener esto privado de miradas indiscretas, o tal vez almacenar sus imágenes en Amazon S3 en lugar de almacenamiento local. Repasemos las diversas opciones de configuración en la siguiente sección.
Antes de continuar, eliminemos el contenedor de prueba para que no nos encontremos con puertos en conflicto.
docker kill basic_registry
Hay dos formas en que podemos pasar la configuración al Registro de Docker. Una forma es pasar variables de entorno a un nuevo contenedor, y la otra es agregar un archivo de configuración.
Estas son algunas de las opciones de configuración comunes que usaremos:
loglevel
- La cantidad mínima de información para iniciar sesión en la consola. Por defecto es info
.standalone
- ¿Debería este registro actuar por sí solo? (Nunca consulta el registro público). El valor predeterminado es true
.index_endpoint
- Si no es independiente, ¿qué otro índice consultaremos? Por defecto index.docker.io
.cache
y cache_lru
- Opciones relacionadas con el uso de un caché de Redis para archivos pequeños, tocaremos esto más adelante.storage
- ¿Qué backend de almacenamiento deberíamos usar para este servidor? (En este tutorial usaremos local).storage_path
- Si usa almacenamiento local, ¿qué directorio debemos usar para guardar los archivos?Antes de comenzar a trabajar con la configuración, necesitamos un archivo base para trabajar. El archivo del repositorio de Docker Registry en GitHub funcionará bien:
wget https://raw.githubusercontent.com/docker/docker-registry/0.8/config/config_sample.yml
El archivo debe guardarse correctamente con una salida como:
2014-09-14 14:09:01 (156 MB/s) - 'config_sample.yml' saved [5384/5384]
¡Excelente! Ahora podemos modificar este archivo para adaptarlo a nuestras necesidades.
El único editor de texto que viene con Core OS es vim
, pero no se preocupe si nunca lo ha usado antes, esto explicará paso a paso qué editar y cómo hacerlo.
vim config_sample.yml
Una vez que tenga el archivo abierto, presione I
y la esquina inferior derecha debería aparecer: -- INSERT --
para el modo de inserción. Desplácese hasta el final del archivo con las teclas de flecha, debería ver una sección etiquetada prod
.
Vamos a cambiar las dos líneas, los cambios están debajo
prod:
<<: *local
storage_path: _env:STORAGE_PATH:/data
Lo que hemos hecho es cambiar la prod
configuración para derivar de la local
sección en lugar de la s3
sección. Luego sobrescribimos el storage_path
para usar la ruta /data
dentro del nuevo contenedor.
Una vez que haya confirmado que todos los cambios son correctos, presione ESC
para salir del modo de inserción y escriba :wq
(esto significa escribir los cambios en el archivo y salir de vim).
Ahora cambiemos el nombre del archivo a solo config.yml
mv config_sample.yml config.yml
Si desea utilizar redis para acelerar su registro de contenedor, es tan simple como extraer un nuevo contenedor del registro público y agregar algunas líneas más de configuración.
Primero, extraiga la imagen de nivel superior de Redis:
docker pull redis
Una vez que la imagen se extrae con éxito, podemos ejecutarla y nombrarla tal como lo hicimos con el registro de prueba:
docker run -d --name registry-redis redis
Debido a que redis está en la memoria, no necesitamos realizar ninguna configuración, ya que lo vincularemos al contenedor del registro en pasos posteriores.
Una vez más, asegúrese de que se esté ejecutando usando 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
Ahora vuelva a abrir la config.yml
en vim
e introduzca el modo de inserción al igual que la primera vez que editamos.
Agregue las siguientes líneas debajo de la prod
sección, asegurándose de sangrar correctamente. Esta vez solo estamos agregando cache
y 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
Las variables de entorno REDIS_PORT_6379_TCP_ADDR
y REDIS_PORT_6379_TCP_PORT
se pasan al contenedor de registro al vincularse con el contenedor de Redis.
Con eso, ahora ha configurado un contenedor Redis que funcionará de la mano con su contenedor de registro. ¡Ahora sobre la construcción del registro!
Tenemos todo el conjunto de configuración y listo, ahora necesitamos construir el contenedor de registro real.
Pon en marcha vim Dockerfile
para crear un nuevo Dockerfile. Ingrese al modo de inserción y siga las modificaciones a continuación.
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
Lo que hemos hecho anteriormente es esencialmente extender la imagen del registro para que use nuestro archivo de configuración y configuraciones. Un Dockerfile es un conjunto de instrucciones de compilación para que Docker las lea y compile. Si desea obtener más información sobre Dockerfiles y su sintaxis, consulte la documentación oficial del sitio de Docker.
Luego necesitamos construir el contenedor para su uso.
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
¡Ahora estamos listos para correr!
Hagamos un directorio en nuestro sistema host para montar en el contenedor como el /data
volumen.
mkdir registry-data
Ahora podemos girar un nuevo contenedor. Si planea usar el caché de Redis, use el segundo comando a continuación.
# 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
Para asegurarse de que su servidor esté funcionando correctamente, visite http://YOUR_IP:5000
. Verá el siguiente mensaje:
"docker-registry server (prod) (v0.8.1)"
¡Observe el (prod)
significado de nuestros cambios de configuración fueron exitosos!
Ahora que tenemos nuestro propio registro en ejecución, queremos que el cliente Docker en nuestras máquinas locales comience a usarlo. Por lo general, usaría el comando: docker login
pero para nuestro uso, necesitamos agregar un argumento más al comando de inicio de sesión:
docker login YOUR_IP:5000
Ingrese un nombre de usuario y contraseña (piense en esto como hacer una nueva cuenta) e ignore el mensaje que indica que debe activarlo.
A continuación, extraigamos una imagen de archivo y la subamos a nuestro propio repositorio.
# 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 todo funciona correctamente, el mensaje final debe estar en la línea de:
Pushing tag for rev [a9eb17255234] on
¡Felicidades! Has configurado tu propio repositorio de Docker.
Aquí hay algunas ideas sobre cómo mejorar su nuevo registro privado:
ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.
Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.
Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.
Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición
ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.
Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+
Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.
Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información
13 Herramientas comerciales de extracción de datos de Big Data
Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.