Instalación de Docker en Ubuntu 14.04
¿Usando un sistema diferente? Docker es una aplicación que permite implementar programas que se ejecutan como contenedores. Fue escrito en el popular programa Go
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:
¿Usando un sistema diferente? Docker es una aplicación que permite implementar programas que se ejecutan como contenedores. Fue escrito en el popular programa Go
Using a Different System? Introduction Sentry is an open source solution for error tracking. Sentry tracks exceptions and other useful messages fro
Descripción general RancherOS es un sistema operativo increíblemente liviano (solo unos 60 MB) que ejecuta un demonio Docker del sistema como PID 0 para ejecutar servicios del sistema
Este tutorial explica los conceptos básicos para comenzar a usar Docker. Supongo que ya tienes instalado Docker. Los pasos de este tutorial funcionarán en un
Al ejecutar una aplicación web, normalmente desea aprovechar al máximo sus recursos sin tener que convertir su software para usar subprocesos múltiples o
Introduction This guide will show you how to create and configure a Docker swarm using multiple Alpine Linux 3.9.0 servers and Portainer. Please be aware tha
Este artículo le mostrará cómo implementar su aplicación Node dentro de un contenedor Docker. Nota: Este tutorial asume que tienes Docker instalado y leído
Rancher OS es una distribución de Linux muy ligera construida alrededor de Docker. El sistema operativo en sí pesa alrededor de 20 MB. Este tutorial lo pondrá en funcionamiento con
Overview This article is meant to help you get a Kubernetes cluster up and running with kubeadm in no time. This guide will be deploying two servers, on
Este artículo explica cómo instalar docker-compose en CoreOS. En CoreOS, la carpeta / usr / es inmutable, por lo que la ruta estándar / usr / local / bin no está disponible para
Harbor es un servidor de registro de clase empresarial de código abierto que almacena y distribuye imágenes de Docker. Harbor extiende el código abierto Docker Distribution b
Introduction Docker is an application that allows us to deploy programs that are run as containers. It was written in the popular Go programming language
Requisitos previos Docker engine 1.8+. Mínimo de 4 GB de espacio en disco. Mínimo de 4 GB de RAM. Paso 1. Instalar Docker Para instalar SQL-Server, Docker mus
Kubernetes es una plataforma de código abierto desarrollada por Google para administrar aplicaciones en contenedores en un grupo de servidores. Se basa en una década y
Las aplicaciones PHP generalmente están compuestas por un servidor web, un sistema de base de datos relacional y el propio intérprete de idiomas. En este tutorial estaremos apalancando
¿Usando un sistema diferente? Introducción Rancher es una plataforma de código abierto para ejecutar contenedores y crear un servicio de contenedor privado. Ranchero es base
Using a Different System? Introduction Docker Swarm turns your individual servers into a cluster of computers; facilitating scaling, high-availability an
La tecnología de contenedores Docker le permite ejecutar aplicaciones en un entorno específico y aislado. Docker Community Edition (CE) es el nuevo nombre para el fre
¿Usando un sistema diferente? Introducción Docker es una aplicación que permite la implementación de software en contenedores virtuales. Fue escrito en el G
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.
A medida que la ciencia evoluciona a un ritmo rápido, asumiendo muchos de nuestros esfuerzos, también aumentan los riesgos de someternos a una singularidad inexplicable. Lea, lo que la singularidad podría significar para nosotros.
Una mirada a 26 técnicas analíticas de Big Data: Parte 1
La IA en la salud ha dado grandes pasos desde las últimas décadas. Por tanto, el futuro de la IA en el sector sanitario sigue creciendo día a día.