8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 1/43
IES Gran Capitán
Departamento de Informática
Ciclo Formativo de Grado Superior deAdministración de Sistemas Informáticos
Módulo de Proyecto Integrado
José Povedano Francisco Portavella y Emanuel
Adrian Gabriel Stasiuc - 2 A.S.I.R.
Proyecto: Proxy inverso Máquinas Virtuales y
Docker
Curso: 2014/2015
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 2/43
Índice
1.- Introducción
2.- Objetivos y requisitos del proyecto
3.- Estudio previo
3.1.- Estado actual
3.2.- Estudio de soluciones existentes
Encapsulamiento de proyectos integrados
Máquina Virtual Proxmox
Contenedor Proxmox
Contenedor Docker
Software de proxy inverso
NGinx
4.- Plan de trabajo
5.- Diseño 5.1.- Diseño general
5.2.- Diseño detallado
6.- Implantación
7.1.- Herramientas hardware
7.2.- Herramientas software
7.3.- Personal
7.4.- Presupuesto
8.- Conclusiones
8.1.- Grado de consecución de objetivos
8.2.- Problemas encontrados
8.3.- Futuras mejoras
9.- Referencias / bibliografía
10.- Anexos
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 3/43
1.- Introducción
Los administradores de Sistemas Informáticos tenemos como tarea prioritaria el mantenimiento de Hardware/Software de los Sistemas informáticos. Tenemos
presente la responsabilidad de implementar, configurar, mantener, monitorizar y
asegurar el correcto funcionamiento de los sistemas informáticos.
Una de nuestras necesidades más urgentes es el mantenimiento de los Proyectos
Integrados que se montan cada año por los diferentes alumnos del centro.
Para poder asegurar un correcto funcionamiento de los diferentes sistemas
informáticos/Servidores en los que se encuentran montados los Proyectos, tenemos
que implementar un sistema que facilite el mantenimiento y la seguridad de todos
los Proyectos Integrados que tenemos implementados.
Nuestro proyecto consistirá en agrupar los presentes y futuros Proyectos Integrados
en Contenedores Proxmox y Contenedores Docker y la implementación de un
Proxy Inverso que tenga la función de redireccionar mediante direcciones
“amigables” el acceso a los Proyectos Integrados que hay en diferentes máquinas.
2.- Objetivos y requisitos del proyecto
Gestión de Proyectos Integrados en servidores del departamento mediante el
encapsulamiento en entidades independientes
Estudio de Máquinas Virtuales bajo Proxmox como entidades
independientes
Estudio de Contenedores bajo Proxmox como entidades independientes
Estudio de Contenedores Docker bajo Máquinas/Contenedores
Proxmox como entidades independientes
Implementación de los tres tipos de entidades independientes
Acceso a los proyectos integrados desde tanto el exterior como interior
mediante “URLs” amigables
Configuración de servicio DNS exterior
Configuración de servicio DNS del departamento
Implementación de un proxy inverso en los servidores del
departamento
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 4/43
3.- Estudio previo
3.1. Estado actual
Como se puede observar en el esquema, esta sería la topología de red del centro, donde el router principal de fibra óptica estaría en conserjería.
Desde conserjería la red iría cableada por ethernet hasta el DACE, donde están los
servidores de Calisto y Ganímedes.
No hemos hablado del servidor Ganímedes, pero para hacernos con una idea global
es un servidor de contenidos y recursos compartidos en red.
En el servidor Calisto, estará configurado en una MV nuestro proxy inverso.
Posteriormente desde el DACE, la red va hacia el armario de comunicaciones del
departamento donde estará alojado el servidor Júpiter que contendrá todos los
proyectos.
Actualmente, algunos Proyectos Integrados están implementados en Máquinas
Virtuales en el Servidor Júpiter y la mayoría de los Proyectos se encuentran en un
Servidor VPS que actualmente está en medio de una migración desarrollada por dos
de nuestros compañeros.
El Servidor VPS actual tiene una serie de limitaciones o desventajas; por una serie
de dependencias extrañas llega un momento en el cuál ya no se puede actualizar el
Sistema.
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 5/43
Esta máquina (Titán) ofrece los siguientes servicios:
Servidor proxy Squid: servidor proxy y dominio cache para páginas web.
Portal Cautivo: De forma que los usuarios necesiten autenticarse con usuario y
contraseña para poder conectarse a la red, estas sesiones duran un tiempo, al
acabarse ese tiempo se debe de volver a autenticar.
Sarg (Squid Analysis Report Generator): permite generar reportes sobre la
actividad de todos los usuarios dentro de la red de área local.
DNS Caché: un respaldo o registro de las direcciones IP de las páginas web
visitadas, estas son almacenadas en el ordenador, a fin de realizar la traducción mas
rápida se usa este registro interno.
DHCP: es un protocolo de red que permite a los clientes de una red IP obtener sus
parámetros de configuración automáticamente.
La red está dividida en VLANs de las cuales en la VLAN 12 se encuentra ubicado un servidor de máquinas virtuales (Jupiter), que va conectado a través de un switch
a Titán, además de un punto de acceso el cual provee de internet a la red.
3.2. Estudio de soluciones existentes
Encapsulamiento de proyectos integrados
Máquina Virtual Proxmox
Proxmox es una distribución basada en Debian, la cual puede ser instalada y
utilizada en poco tiempo. Es una solución completa de virtualización de servidores
basada en sistemas de código abierto. Permite la virtualización tanto sobre KVM
como contenedores y gestiona máquinas virtuales, almacenamiento, redes
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 6/43
virtualizadas y clústeres HA.
La ventaja de Proxmox es que ya resuelve el manejo de máquinas virtuales a través
de su interfaz web, lo que lo hace muy sencillo de administrar. Además hanincorporado soporte para SPICE, Por lo que se puede acceder a las máquinas
virtuales desde cualquier otra PC simplemente utilizando un cliente SPICE.
Proxmox ofrece también una cantidad de “plantillas” de máquinas virtuales para
descargar desde la propia interfaz de administración.
Hemos decidido implementar Proxmox y descartar como vía alternativa la
implementación de VmWare por el tema del presupuesto y la falta de Servidores
necesarios para poder implementar correctamente VmWare.
Proxmox no deja de ser una alternativa libre a VmWare que puede resultar
determinante a la hora de la implementación de un sistema u otro.
Ventajas
Aprovechamiento de recursos, reparto equitativo de procesador y memoria.
Disminución del consumo eléctrico, un servidor virtual consume menos que
varios físicos.
Flexibilidad para testing.
Seguridad para producción.
Backups y snapshots en caliente.
Restauración prácticamente inmediata.
Fácil de administrar.
Clustering.
Alta disponibilidad.
Migración sencilla.
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 7/43
Inconvenientes
Mayor probabilidad de fallos fatales, al ser un único equipo, si el disco falla o
la energía se pierde. La posibilidad de implementarlo en VmWare como vía alternativa.
Contenedor Proxmox
OpenVZ es la virtualización basada en contenedores para Linux. OpenVZ crea
múltiples contenedores seguros y aislados de Linux en un único servidor físico
permitiendo una mejor utilización de los servidores y la garantía de que las
aplicaciones no entren en conflicto.
Ventajas
Cada Entorno virtual trabaja independientemente.
La administración de los recursos del servidor físico en los entornos virtuales
de openvz se pueden modificar sin necesidad de reiniciar la máquina.
Poder migrar entornos virtuales en caliente sin necesidad de apagar el
servidor.
La escalabilidad en Openvz es una habilidad para poder manejar el
crecimiento continuo del servidor físico sin perder calidad en los entornos
virtuales. Openvz pude trabajar con cientos de entornos virtuales en el servidor físico
pero teniendo en cuenta las especificaciones del hardware.
Administración masiva de todos los entornos virtuales.
El ahorro de tiempo a la hora de hacer los procesos de instalación de la
virtualización.
Se puede trabajar en diferentes escenarios: seguridad, consolidación de
servidores, hosting,educativo, desarrollo y prueba.
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 8/43
Inconvenientes
Solamente puede trabajar con el sistema operativo Linux, pero se pueden
instalar diferentes distribuciones de GNU/Linux; en cuanto a contenedores
OpenVZ (contenedores proxmox) solo se pueden implementar distribuciones
linux cierto, pero eso no quita que proxmox si pueda trabajar con windows en
modo KVM, pero no es aconsejable ya que si implementamos tanto windows
como linux el rendimiento de proxmox baja)
Los entornos virtuales por defecto no tienen entorno gráfico, pero se podría
llegar a implementar si así se desea posteriormente aunque no es lo habitual
ya que los contenedores Proxmox destacan por su ligereza y es algo complejo
(KDE,LXDE,Fluxbox,etc..).
Contenedor Docker
Docker nos permite crear contenedores, lo cual son aplicaciones empaquetadas
autosuficientes, muy livianas que son capaces de funcionar en prácticamente
cualquier ambiente, ya que tiene su propio sistema de archivos, librerías, terminal,
etc. Nos permite empaquetar para más tarde desplegar en cualquier sistema
operativo Linux.
Ventajas
Una de las grandes ventajas de Docker es la confianza que enormes empresas
y empresarios están depositando en ésta nueva tecnología y están invirtiendomucho dinero y esfuerzo en el desarrollo de Docker.
Portabilidad porque el contenedor se puede desplegar en cualquier sistema
que soporte Docker.
Ligereza y autosuficiencia porque únicamente empaquetamos la parte del
sistema operativo, aplicaciones y las librerías necesarias para su
funcionamiento.
Ubuntu, en una de sus próximas versiones, vendrá preparado para desplegar
Docker sin ningún problema.
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 9/43
Inconvenientes
No es multiplataforma, solo se puede implementar en Linux.
Si deseamos implementar Docker en Windows necesitamos ejecutar una
máquina Virtual Ligera y mediante unas herramientas podemos administrarlo.
No soporta sistemas x86, al menos hasta la fecha
Una de las ' desventajas' que puede tener un contenedor docker, es que, al no
ser un sistema en si, no se puede configurar como se haría en un sistema
operativo basado en linux, toda la configuración del contenedor docker reside
en un único archivo llamado dockerfile.
Software de proxy inverso
NGinx
Nginx es un servidor web y proxy inverso multiplataforma de alto rendimiento. Es
Open Source licenciado bajo la ‘Licencia BSD simplificada’. Es más ligero que
otros servidores web y además se puede usar como proxy inverso para contenido
web o para protocolos de correo electrónico como IMAP o POP3. Es multiplataforma, por lo que corre en sistemas tipo Unix y Windows.
Ventajas
Multiplataforma, se puede instalar en diferentes sistemas Unix y también en
Windows.
Ligero, consume menos recursos para realizar la misma función que otros
servidores web.
Alto rendimiento, responde más rápido comparado con otros servidores web.
Proxy inverso, se puede usar como proxy inverso para cachear el contenido
de nuestras webs.
Proxy Inverso implementado en Contenedor Proxmox presenta mayor
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 10/43
rendimiento que en una máquina Virtual.
Inconvenientes
Módulos dinámicos: No se pueden instalar nuevos módulos en caliente sin
tener que compilar Nginx con el módulo deseado y volver a instalarlo.
Documentación: No existe mucha información para resolver según qué
problemas.
Apache
El servidor Apache HTTP , también llamado Apache, es un servidor web HTTP de
código abierto para la creación de páginas y servicios web. Es un servidor
multiplataforma, gratuito, muy robusto y que destaca por su seguridad y
rendimiento.
Ventajas
Multiplataforma, se puede instalar tanto en sistemas Unix como Windows.
Documentación y soporte amplio.
Gran conjunto de funcionalidades.
Código abierto.
Altamente configurable.
Inconvenientes
Incluye formatos de configuración no estándar. Si ciertas reglas no están bien
configuradas, es posible engañar a los servidores para que realicen solicitudes
de acceso no autorizadas a los recursos internos (falta de seguridad).
No cuenta con una buena administración.
Falta integración.
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 11/43
3.3. Solución Elegida
A continuación analizamos las distintas soluciones dependiendo de la
implementación del hardware:
SOLUCIÓN ÓPTIMA
POSIBLE SOLUCIÓN CON INCONVENIENTES
NO SE PUEDE IMPLEMENTAR
MV proxmox Contenedor
proxmox
Contenedor
Docker
Proyectos en sistema
GNU/Linux
Proyectos en sistema
Windows
Proxy Inverso
Gestor de Contenidos
Docker
Explicaremos lo que hemos querido reflejar con esta tabla.
Proyectos en sistema GNU/Linux
En primer lugar, los proyectos que funcionan bajo sistemas GNU/Linux podrían ser
implementados en cualquiera de las soluciones que proponemos:
En Máquinas Virtuales de Proxmox: los proyectos funcionarían a la perfección,
pero no estarían optimizados con respecto al espacio en Disco Duro.
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 12/43
Crear una máquina virtual completa supondría un gran gasto de espacio en el disco
duro.
En contenedores Proxmox: lo que disminuiría considerablemente el espacio usado
por máquinas virtuales en el Disco Duro.
En Contenedores Docker: finalmente, la mejor solución que planteamos es la
creación de contenedores docker, ya que reducen el tamaño con respecto a los
contenedores proxmox y se podrían incluir varios en una misma máquina virtual
con la posibilidad de lanzarlos independientemente.
Proyectos en sistema Windows
Cuando hablamos de proyectos que trabajan bajo sistemas Windows no nos queda
otra solución que la de implementarlos en máquinas virtuales dentro de Proxmox ya
que no existen contenedores de Windows, y Docker no soporta este sistema
operativo.
La solución elegida es montar los proyectos en distintos contenedores Docker
y máquinas virtuales en Proxmox (Servidor Júpiter).
Contenedores Docker para la implementación de proyectos sobre sistemas
operativos GNU/Linux.
A su vez para la utilización de Docker creemos que es mejor utilizar
máquinas virtuales proxmox (KVM) en lugar de contenedores proxmox
(OpenVZ) ya que a más niveles de virtualización peor rendimiento.
Máquinas virtuales Proxmox (KVM) para la implementación de proyectos
sobre Windows.
Comentar que docker funciona un poco distinto a Openvz; puedes tener los
contenedores y puedes tener distintas versiones de éstos (se hacen copias
incrementales).
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 13/43
Puedes tener un contenedor con varios programas ya preinstalados y a partir
de ahí tener una base para hacer las configuraciones específicas de cada uno,
incluso puedes tener varias versiones del mismo por si quieres realizar
cambios.
Así que la horrorosa tarea de crear contenedores que había en openvz se
soluciona y es mucho más versátil.
Proxy Inverso: en una máquina virtual independiente dentro de Proxmox
(Servidor Calisto). Hemos decidido implementarlo en Calisto para no
redireccionar el tráfico innecesario de la Red.
Se puede instalar el Proxy Inverso en Contenedor de Proxmox para una
mejora de Rendimiento, pero para que pueda funcionar correctamente,
tenemos que configurar un fichero en el contenedor de Proxmox para su
correcto funcionamiento. No es complicado, pero no deja de ser una
configuración adicional.
Finalmente hemos decidido implementarlo en una Máquina Virtual dentro de
Proxmox.
Gestor de Contenedores Docker: la mejor solución es implementarlo en
Máquina Virtual Linux dentro de Proxmox ya que al tratarse de una
herramienta que gestiona contenedores, no es conveniente implementarlo en
contenedores Proxmox, ni mucho menos en Contenedores Docker.
Ventajas
Hemos decidido implementar el Proxy Inverso en el Servidor Calisto ya que a nivel
Físico se nota una mejoría de rendimiento en la redirección y se evitan tráficos de
redireccionamientos innecesarios.
El Proxy Inverso no tiene porqué ir en la misma máquina que los contenedores
Docker ya que los contenedores nos interesa montarlos en un servidor con más
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 14/43
espacio en Disco Duro y menor carga de CPU. Mientras que el Proxy Inverso se
puede implementar con unos recursos mínimos para su correcto funcionamiento.
Consideramos que es muy importante por seguridad tener en cuenta el aislamiento
entre la red pública y la red privada.
Inconvenientes
Debido al uso de máquinas virtuales necesitamos más espacio en disco duro y
puede producir limitaciones en el Rendimiento general del Servidor Júpiter.
A la hora de implementar el Proxy Inverso en el Servidor Calisto, tenemos que
ejecutar un Script adaptado con las nuevas IP’s y puertos.
4.- Plan de trabajo
Semana Tareas Realizadas
29/09/14-03/10/14 Búsqueda de información sobre Proxy Inverso, Proxmox y
Docker para realizar el Proyecto Final
06/10/14-10/10/14 Búsqueda de soluciones existentes para implementar el
Proyecto en los Servidores y desarrollo de la documentación
13/10/14-17/10/14 Implementación de la Solución elegida de forma Local
Revisión del Proyecto en el Centro para concretar y avanzar
el Proyecto y la Documentación
20/10/14-24/10/14 Desarrollo del Diseño del Proyecto
27/10/14-31/10/14 Implementación del Proxy Inverso en el Servidor Calisto
Revisión del funcionamiento del Proxy en el Centro
03/11/14-07/11/14 Implementación de la herramienta Docker en el Servidor
10/11/14-14/11/14 Investigación sobre la creación, el borrado y la exportación
de los Contenedores Docker
17/11/14-21/11/14 Implementación de diferentes contenedores de forma Local
con diferentes Proyectos de prueba
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 15/43
Corrección de algunos puntos de la documentación
24/11/14-28/11/14 Implementación de los Contenedores Docker en el Servidor
01/12/14-05/12/14 Revisión del funcionamiento de los Proyectos Docker
08/12/14-12/12/14 Finalización de la Implementación del Proyecto en los
Servidores del Centro
5.- Diseño
5.1. Diseño general
A continuación, vamos a mostrar el Diseño Conceptual General con los Servidores,
Máquinas y Servicios que componen nuestro Proyecto:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 16/43
5.2. Diseño detallado
Proxy Inverso
Sistema operativo: Debian 7 32bits sin interfaz gráfica
Espacio en disco: 1 GB
Memoria ram: 512 MB
IP: 192.168.12.106
Es una máquina virtual que se encuentra dentro del servidor Calisto y a su vez
dentro de Proxmox.En ella instalaremos el servidor web Nginx, que a su vez posee un proxy inverso.
Para configurar los sitios a los que apuntará el proxy inverso utilizaremos la carpeta
/etc/nginx/sites-availables y mediante un enlace simbólico los añadiremos a
/etc/nginx/sites-enabled.
Cada sitio tendrá su propio archivo de configuración en la que se indicará el puerto
de escucha, el puerto de destino, la ip del recurso y la url por la que se accederá.
Esta máquina también contiene un script iptables que debemos lanzar para acceder a
los recursos que no sean web.
Gestor de contenedores docker
Sistema operativo: Debian 7 64bits sin interfaz gráfica
Espacio en disco: 40 GB
Memoria ram: 1024 MB
IP: 192.168.12.110
Es una máquina virtual que se encuentra dentro del servidor Júpiter y a su vez
dentro de Proxmox.
En ella instalaremos docker para gestionar los contenedores que crearemos
posteriormente.
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 17/43
Crearemos un contenedor docker con el sistema operativo debian básico, donde
instalaremos un proyecto web con los servicios de apache y mysql para poder
implementar un wordpress, y un segundo contenedor de la misma forma pero con
un proyecto web joomla, a cada uno de los proyectos le asignaremos un puerto
diferente para acceder a cada uno de ellos.
En cada contenedor también nos hará falta implementar un supervisor que nos
permita iniciar el contenedor con más de un servicio.
Máquina virtual Windows
Sistema operativo: Windows 2008 Server
Espacio en disco: 8 GB
Memoria ram: 1024 MB
IP: 192.168.12.104
Contenedor Proxmox
Sistema operativo: Debian 7 32bits
Espacio en disco: 10 GB
Memoria ram: 512 MB
IP: 192.168.12.129
Es un Contenedor proxmox creado en el servidor de Júpiter y que contiene la
aplicación de inventario.
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 18/43
6.- Implantación
Configuración e Instalación del Proxy Inverso
Primero empezamos configurando la Máquina Virtual dedicada al Proxy Inverso:
Actualizamos la lista de paquetes con el comando “apt-get update”
Actualizamos los servicios instalados con el comando “apt-get upgrade”
Ahora vamos a instalar “nginx” como Servidor Web/Proxy Inverso en la máquina:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 19/43
Nos dirigimos a la carpeta donde podemos crear los diferentes sitios disponibles
para nuestro Servidor Web/Proxy Inverso y creamos los sitios que se corresponden
a los diferentes proyectos implantados:
Podemos ver por ejemplo la estructura del fichero que se corresponde al sitio
“inventario”:
En el fichero creado para el Sitio “inventario” seguimos la siguiente estructura:
listen; Indicamos el puerto de escucha, en nuestro caso, el puerto 80
server_name; establecemos la dirección de acceso al Sitio creado:
“inventario.iesgrancapitan.org”
proxy_pass; ponemos la IP que apunta al proyecto de inventario, junto con el puerto:
Sitio Inventario
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 20/43
Creamos un enlace simbólico al Sitio creado “inventario” para que nuestro sitio
aparezca en la carpeta de Sitios activados:
De la misma forma creamos los distintos sitios respetando la misma estructura,
cambiando la dirección de acceso junto con la IP y el puerto:
Sitio Joomla
Sitio Wordpress
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 21/43
Sitio Windows
Una vez que tenemos todos los sitios
Reiniciamos el Servicio “nginx” con el comando “service nginx restart”:
DNS
Definición de los alias en el DNS para los sitios:
cpd IN CNAME informatica-gcap2.no-ip.org.
inventario IN CNAME informatica-gcap2.no-ip.org.
wordpress IN CNAME informatica-gcap2.no-ip.org.
joomla IN CNAME informatica-gcap2.no-ip.org.
windows IN CNAME informatica-gcap2.no-ip.org.
moodle-old IN CNAME informatica-gcap2.no-ip.org.
gestordecocina IN CNAME informatica-gcap2.no-ip.org.
Dentro del proxy inverso hay un cliente de no-ip que actualiza cada 5 minutos la IP que vaa ir recogiendo la dirección no-ip que hemos definido arriba (informatica-gcap2.no-ip.org).
Como se puede apreciar en la siguiente captura del Cortafuegos, la resolución de los
siguientes sitios pasan al proxy inverso que es el que redirecciona y nos permite elacceso a los siguientes proyectos:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 22/43
Realizamos una prueba de conexión a la dirección de acceso que hemos asignado al
Proyecto “Inventario”:
Comprobamos que podemos acceder al Sitio Inventario poniendo la dirección:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 23/43
Comprobamos que podemos acceder al Sitio Wordpress poniendo la dirección:
Comprobamos que podemos acceder al Sitio Joomla poniendo la dirección:
Comprobamos que podemos acceder al Sitio Windows poniendo la dirección:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 24/43
Configuración e Instalación de Contenedores Docker
Primero instalamos el cliente Curl que sirve para obtener ficheros desde servidoresFTP y HTTP, en nuestro caso para obtener la instalación de “Docker”:
Una vez instalado “curl” obtenemos la instalación de “Docker”:
Una vez descargado e instalado el Servicio Docker, Pasaremos a la creación de los
contenedores.
En Primer lugar cargaremos a docker las imágenes con el entorno que utilizaremos
para cada contenedor, estas imágenes se encuentran en un repositorio que tiene
docker.
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 25/43
En este caso elegiremos Debian (podemos especificar la versión de Debian que
queremos, pero por defecto nos instala la última versión de Debian disponible):
Comienza la descarga e instalación de la imagen debian:
Una vez finalizado el proceso, tendremos nuestra imagen de Debian en docker.
Con la imagen ya creada, lanzamos el contenedor con esa imagen en una nueva
estancia y accedemos al contenedor:
Por defecto al lanzar el contenedor, se nos asigna un ID y un nombre aleatorio, pero
si queremos que el nombre del contenedor sea el que deseemos tendremos que
lanzarlo con la opción --name:
docker -i -t --name contenedor1 debian /bin/bash
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 26/43
Una vez dentro del contenedor podremos configurar nuestro proyecto.
En primer lugar instalaremos una serie de paquetes necesarios para montar un proyecto web, como por ejemplo Joomla.
Actualizamos el repositorio de paquetes y realizamos la instalación de los siguientes
paquetes:
apt-get update
apt-get apache2 curl mysql-server php5 php5-mysql
apt-get install nanoapt-get install wget
apt-get install unzip
Una vez que tengamos todos estos paquetes instalados, ya tendremos instalados los
servicios de apache y mysql necesarios para la instalación de un proyecto web como
Joomla.
Creamos en nuestro servidor mysql la base de datos que utilizará Joomla:
Reiniciamos el servidor mysql:
service mysql restart
Con mysql y apache ya configurados para nuestro proyecto web joomla, nos
descargamos la última versión de joomla disponible con el comando wget:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 27/43
Una vez descargado lo descomprimimos en /var/www
Una vez descargado y descomprimido joomla salimos del contenedor presionando
lo siguiente:
Control+q+p
y guardamos todos los cambios realizados hasta ahora con todos los servicios
instalados y configurados en una nueva imagen de ese contenedor con el siguiente
comando:
docker commit nombre_contenedor nombre_nueva_imagen
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 28/43
Una vez tengamos modificado el contenedor con todo los cambios que hayamos
hecho, si queremos que el contenedor sea lanzado tanto con el servicio de apache
como con el servicio de mysql, instalamos dentro del contenedor un supervisor:
Creamos un script “run.sh” que nos lanzará la herramienta supervisord que
acabamos de instalar:
Ahora vamos a crear un script para cada servicio que deseamos iniciar con
“supervisord”, en nuestro caso para wordpress y joomla necesitamos los servicios
apache y mysql.
Creamos un script que nos inicie el servicio “apache2”:
Y creamos otro script que nos inicie el servicio “mysql”:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 29/43
Por último, creamos un fichero de configuración para nuestro supervisord que nos
permite ejecutar varios servicios con su correspondiente script:
Creamos el fichero para el servicio apache:
Creamos el fichero para el servicio mysql:
Con esto ya tenemos la imagen de nuestro contenedor preparada para ser lanzada
con el script que permite que tanto apache como mysql se inicien con el comando:
Comprobamos que tenemos el contenedor iniciado y con el puerto asignado:
Para crear un segundo contenedor de wordpress seguimos los mismos pasos
descritos anteriormente.
Tenemos que crear un segundo contenedor que contiene los ficheros de instalación
de Wordpress.
Y una vez lanzado el contenedor, nos tienen que salir los dos contenedores iniciados
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 30/43
si ponemos el siguiente comando:
A la hora de implementar los contenedores, primero hemos creado los contenedores
con todo lo necesario de forma local (un contenedor con joomla configurado y otro
contenedor con wordpress configurado).
Primero hemos guardado todos los cambios realizados en los contenedores en dos
nuevas imágenes que luego serán exportadas y usadas en otro sistema.
Hemos exportado las imágenes creadas de los contenedores finales en un fichero
comprimido con el comando:
docker save nombreimagen > nombrefichero.tar
Por ejemplo:
Hemos copiado los ficheros a la máquina donde hemos tenido que implantarlofinalmente y con el siguiente comando hemos importado las imágenes:
docker load < wordpress.tar
docker load < joomla.tar
Ejemplo:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 31/43
Por último comprobamos que las imágenes con todos los servicios instalados yconfigurados se han importado correctamente:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 32/43
7.- Recursos
7.1. Herramientas hardware
- Servidor Jupiter:
- Servidor Calisto:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 33/43
7.2. Herramientas software
- Proxmox VE 3.3
- Docker v1.3- Debian GNU/Linux 7
- Ubuntu 12.04
- Nginx 1.2.1
7.3. Personal
Las personas que se han dedicado a la creación del Proyecto son:
Francisco Portavella Zamorano
Jose Povedano Romero
Emanuel Adrian Gabriel Stasiuc
Durante la fase de investigación del Proyecto, se ha dedicado todo el Personal para
encontrar información relevante para la implementación del Proyecto de una forma
adecuada y eficiente.
Para la implementación de forma local de las diferentes partes del Proyecto se ha
ocupado Francisco Portavella Zamorano.Durante el desarrollo de la documentación del Proyecto hemos asignado diferentes
puntos de la documentación para cada uno de nosotros con posibilidad de trabajo en
grupo para sugerir cambios y aplicar modificaciones.
En la fase de Implementación del Proyecto en el Centro todo el personal se ha
conectado de forma Remota para instalar servicios, realizar cambios, etc.
7.4. Presupuesto
A continuación exponemos el presupuesto orientado al proyecto, destacando elnúmero de horas que hemos empleado en cada una de las fases del proyecto:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 34/43
8.- Conclusiones
8.1. Grado de consecución de objetivos
- Estudio de Máquinas Virtuales bajo Proxmox como entidades
independientes
TOTALMENTE TERMINADO
- Estudio de Contenedores bajo Proxmox como entidades
independientes
TOTALMENTE TERMINADO
- Estudio de Contenedores Docker bajo Máquinas/Contenedores
Proxmox como entidades independientes
TOTALMENTE TERMINADO
- Implementación de los tres tipos de entidades independientes
TOTALMENTE TERMINADO
- Configuración de servicio DNS exterior
TOTALMENTE TERMINADO
- Configuración de servicio DNS del departamento
TOTALMENTE TERMINADO
- Implementación de un proxy inverso en los servidores deldepartamento
TOTALMENTE TERMINADO
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 35/43
8.2. Problemas encontrados
El mayor problema que hemos encontrado y que nos ha costado varios días resolver
es el arranque de más de un servicio en los contenedores docker.En la red casi todas las fuentes de información emplean un contenedor por servicio
(ejemplo contenedor para mysql y otro para wordpress) que van relacionándose
entre sí para utilizar más de un servicio.
Como este no era nuestro caso hemos intentado a toda costa lanzar un contenedor
con más de un servicio propio.
El problema viene al montar un proyecto wordpress/joomla (que utilizan apache y
mysql) en un contenedor, a la hora de lanzar este contenedor solo podemos iniciarlo
con un servicio a través de la línea de comandos, es por ello que hemos tenido problemas con mysql, porque apache nos iniciaba pero apache no tenia conexion al
servidor de base de datos porque este se encontraba parado.
Tras mucho esfuerzo conseguimos dar con la solución a este problema.
La solución fue la implementación de un supervisor en el propio contenedor que
mediante un script podemos indicar qué servicios arrancarán cuando el contenedor
se lanze. Gracias a esta solución cuando lanzamos el contenedor, tanto el servicio
de apache como el de mysql están iniciados.
8.3. Futuras mejoras
En cuanto a la implementación de contenedores en la actualidad Docker sigue
siendo una tecnología aún en fase de desarrollo y seguramente con el tiempo nos
ofrecerá más soluciones y herramientas.
En este proyecto hemos utilizado todo lo que hay referente a la utilización de
docker hoy en dia.
Una de las posibles futuras mejoras se encuentra en el Desarrollo de Docker que en
un futuro próximo podría permitir la ejecución de dos servicios simultáneos en un
mismo contenedor Docker sin la utilización de un script.
Otra posible mejora en Docker sería la posibilidad de guardar los cambios de un
contenedor como una imagen, con el mismo nombre, sobreescribiendo los cambios
sin necesidad de asignarle un nombre diferente.
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 36/43
9.- Referencias / Webgrafía
http://www.systerminal.com/2014/05/08/instalacion-y-uso-de-docker-en-debian-7-
wheezy/
http://www.cristalab.com/tutoriales/instalacion-y-primeros-pasos-en-docker-c11408
1l/
http://picodotdev.github.io/blog-bitix/2014/11/inicio-basico-de-docker/
http://www.rubenjgarcia.es/2014/09/18/instalando-wordpress-con-docker/
http://codehero.co/como-instalar-y-usar-docker/
http://blackhold.nusepas.com/2014/03/debian-7-wheezy-lxc-docker/
https://docs.docker.com/articles/using_supervisord/
http://nginx.com/resources/admin-guide/reverse-proxy/
http://slopjong.de/2014/09/17/install-and-run-a-web-server-in-a-docker-container/
http://www.centurylinklabs.com/build-a-2-container-app-with-docker/?hvid=tMFAJ
http://es.slideshare.net/dotCloud/dockerizing-wordpress-27181463
https://www.digitalocean.com/community/tutorials/how-to-dockerise-and-deploy-multiple-wordpress-applications-on-ubuntu
https://www.linode.com/docs/websites/nginx/basic-nginx-configuration
https://github.com/ricardoamaro/docker-drupal
https://github.com/Odiobill/docker.wordpress
https://eltioe1000.wordpress.com/2014/03/05/docker-y-nginx/
http://otherlinuxblog.blogspot.com.es/2012/05/proxy-inverso-con-nginx.html
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 37/43
10.- Anexos
Tutorial de Instalación y configuración de un Proxy Inverso (Nginx)
Primero vamos a instalar el Proxy Inverso, en nuestro caso: Nginx
Una vez instalado, podemos ir a la carpeta de instalación donde se encuentran los
sitios disponibles y los sitios que activamos, muy parecido con Apache:
Creamos un fichero con un sitio de prueba con la siguiente estructura:
listen; Indicamos el puerto de escucha, en nuestro caso, el puerto 80
server_name; establecemos la dirección de acceso al Sitio creado:
“sitioprueba.prueba.com”
proxy_pass; ponemos la IP que apunta al contenido o proyecto, junto con el puerto:
Ahora tenemos que crear un enlace simbólico al fichero para que aparezca dentro de
los sitios activados:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 38/43
ln -s /etc/nginx/sites-available /etc/nginx/sites-enabled/
Una vez realizados todos los cambios, reiniciamos el servicio nginx:
apt-get install nginx restart
Tutorial de Instalación y configuración de Contenedores Docker
Primero instalamos el servicio “curl”:
Una vez descargado e instalado “curl” obtenemos la herramienta docker con el
siguiente comando:
Una vez instalado, podemos mirar la versión de nuestro Docker con el comando:
Una vez instalado, Docker es como cualquier otro servicio que puede pararse o
iniciarse; ahora mismo está en ejecución:
Repositorio de Imágenes
Una de las grandes ventajas que tiene Docker es un gran repositorio de imágenesque tiene disponibles para su descarga con las que podemos crear contenedores.
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 39/43
Para descargar por ejemplo una imagen Ubuntu del repositorio, tenemos que poner
el siguiente comando:
De ésta forma nos bajamos la última versión de Ubuntu disponible.
Si por el contrario queremos una versión específica, indicamos tras los dos puntos la
versión del sistema operativo que queremos bajar:
Para comprobar las imágenes que tenemos descargadas y disponibles usamos:
Podemos observar las imágenes que tenemos descargadas, el tamaño que ocupan, el
ID que tiene asignado y la fecha de creación/descarga.
Creación y utilización de Contenedores Docker
Para crear un contenedor a partir de una imagen descargada tenemos que usar el
siguiente comando:
Comprobamos que ya estamos dentro del contenedor y que tenemos el sistema de
archivos habitual de un sistema Debian:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 40/43
Si ponemos “exit” dentro del contenedor nos salimos y el contenedor ya no seejecuta comprobando con el comando “docker ps” los que están en ejecución:
Sin embargo, tenemos un atajo de Teclado:
Ctrl. + q + p
que nos permite salirnos del contenedor sin que deje de ejecutarse.
Podemos comprobarlo con el comando “docker ps”:
Gracias a éste comando podemos ver la información de los contenedores que
tenemos en ejecución.
Podemos ver el ID, el nombre aleatorio y el tiempo de ejecución que tiene cada
contenedor.
Podemos observar que por defecto, a cada contenedor creado se le asigna un
nombre aleatorio formado por dos palabras.
Tanto el nombre aleatorio asignado como el ID serán utilizados para iniciar, parar o
borrar un contenedor.
Si queremos evitar que nos asignen un nombre aleatorio para nuestro contenedorDocker, podemos asignarle nosotros un nombre al crear el contenedor con la
función --name:
docker run -i -t --name miprimercontenedor debian:7.7 /bin/bash
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 41/43
Una vez que tenemos uno o varios contenedores ejecutados podemos volver a
meternos dentro del mismo si nos hemos salido sin cerrarlo con el comando:
Si queremos parar el contenedor ejecutado, ponemos el siguiente comando y
comprobamos que el contenedor ya no se ejecuta:
Si queremos volver a iniciar el contenedor, usamos el comando:
Una vez que estamos dentro de un contenedor creado, podemos actualizar los
servicios que vienen por defecto o instalar nuevos servicios como en un sistema
operativo linux habitual:
Si instalamos servicios o configuramos el contenedor y luego lo cerramos,
perderemos todos los cambios realizados en el mismo.
¿Significa ésto que tenemos que empezar desde cero cada vez que iniciamos un
contenedor?
La respuesta es NO, porque antes de cerrar el contenedor podemos guardar los
cambios realizados.
Una vez que hemos instalado y configurado nuestro contenedor con los servicios
deseados podemos guardar los cambios del mismo como una imagen más dentro de
nuestra lista de imágenes descargadas con el siguiente comando:
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 42/43
Comprobamos que nos aparece una nueva imagen con el nombre que nosotros le
hemos asignado con los cambios que hemos realizado; instalación de apache:
Observamos que ya tenemos una imagen creada con el nombre “debianconapache”
que realmente es una imagen de un Debian 7.7 pero con el servicio de apache que
no viene por defecto; ahora podemos ejecutar un contenedor a partir de ésta imagen
y ya tenemos apache2 instalado, sin necesidad de hacerlo de nuevo.
Borrado de imágenes y contenedores
Si queremos borrar una imagen creada, tenemos que usar el siguiente comando:
docker rmi nombreimagen
Comprobamos que la imagen creada anteriormente ya se ha borrado:
Si queremos borrar algún contenedor ya creado, primero tenemos que pararlo y
luego usamos el comando:
docker rm nombrecontenedor
IES Gran Capitán -- C/. Arcos de la Frontera, S/N -- 14014 Córdoba -- 957-379710
http://www.iesgrancapitan.org – http://www.iesgrancapitan.org/blog04 -- [email protected]
8/10/2019 Proxy Inverso, Mvs y Docker
http://slidepdf.com/reader/full/proxy-inverso-mvs-y-docker 43/43
Exportación/Importación de Contenedores Docker
Si queremos realizar Copias de Seguridad de los diferentes contenedores
periódicamente podemos usar la función de exportar/importar para guardar los proyectos y la configuración que se encuentra en los contenedores.
Si queremos exportar un contenedor creado y con los últimos cambios guardados y
luego cargarlo en otro equipo o sistema, primero tenemos que exportarlo en un
fichero “.tar” con el siguiente comando:
docker save debianconapache > contenedorapache.tar
Una vez exportado en un fichero “.tar”, copiamos el fichero al equipo deseado y
ponemos el siguiente comando:
docker load < contenedorapache.tar