
Cómo desplegar rápidamente un entorno de desarrollo en Ubuntu
Docker es una plataforma para desarrolladores y administradores de sistemas que desarrollan, despliegan y ejecutan aplicaciones con contenedores. Cuando trabajamos con dockers lo que hacemos es crear contenedores ligeros a nivel de aplicación con todos los elementos necesarios para que nuestra aplicación pueda ser ejecutada: librerías, java, servidor, bases de datos… consiguiendo abstraernos de los entornos y versiones de software, y asegurándonos de tener todos los elementos necesarios para que la aplicación funcione correctamente. De esta forma, conseguimos portabilidad para la ejecución de las aplicaciones en cualquier máquina que tenga Docker instalado; a diferencia de las Máquinas Virtuales, en las cuales debemos instalar un Sistema Operativo y el resto de elementos necesarios, en sus versiones correctas, para poder ejecutar nuestra aplicación. (En la página oficial de Docker podéis encontrar más información y documentación relacionada con Dockers).

Tenemos claro entonces que es mucho más cómodo usar Docker que una Máquina Virtual para el desarrollo de nuestras aplicaciones, puesto que nos permite montar más rápidamente el entorno necesario para ellas. Pero esto no implica que dentro de una Máquina Virtual no podamos usar Docker, puesto que como desarrolladores muchas veces necesitamos tener montados en nuestro equipo diferentes Sistemas Operativos (Windows, Ubuntu, Debian…) y poder hacer uso de estos de forma rápida, sin cerrar nuestro actual entorno. Para ello, instalaremos en nuestra Máquina Virtual únicamente el Sistema Operativo que queramos, el software necesario para programar y Docker. De esta forma, podremos crear diferentes contenedores con las configuraciones necesarias para poder ejecutar los diferentes entornos para nuestras aplicaciones.
Hay que tener en cuenta que si nuestro Sistema Operativo es Windows y en la Máquina Virtual es Linux (o viceversa), puede que tengamos problemas si instalamos Docker en ambos entornos. Se aconseja instalar Docker en un único entorno, que será dónde realicemos el desarrollo y pruebas para la aplicación.A continuación, vamos a explicar cómo instalar Docker CE y ejecutar un contenedor en un entorno Ubuntu. El proceso de instalación se puede seguir, si se desea, en la página oficial de Docker.
A continuación, vamos a explicar cómo instalar Docker CE y ejecutar un contenedor en un entorno Ubuntu. El proceso de instalación se puede seguir, si se desea, en la página oficial de Docker
CONFIGURANDO EL REPOSITORIO
1.- Acceder a nuestra Máquina Virtual y abrir un terminal
2.- Actualizar el repositorio
$ sudo apt-get update
3.- Instalar los siguientes paquetes:
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
4.- Instalar la Clave GPG oficial de Docker
(consultar en su página de instalación para asegurarse que es correcta)
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
5.- Verificar que tienes la clave (hay que añadir los últimos 8 caracteres de la clave:
(Ejemplo → Clave GPG: 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
$ sudo apt-key fingerprint 0EBFCD88
6.- Instalando el repositorio stable para x86_64/amd64 (para instalar otros repositorios o arquitecturas, consultar instalación en la página oficial de Docker)
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
INSTALANDO DOCKER CE
7.- Actualizar el repositorio
$ sudo apt-get update
8.- Instalar la última versión de Docker CE disponible (para instalar otra versión consultar la página oficial de Docker)
$ sudo apt-get install docker-ce
9.- Instalar docker-compose, para poder usar ficheros docker-compose.yml dentros de nuestros proyectos.
$ sudo apt-get install docker-compose
10.- Para ejecutar los comandos para Docker sin necesidad de indicar el sudo:
$ sudo usermod -aG docker $(whoami)
11.- Verificar la instalación ejecutando la imagen “hello-world”
$ sudo docker run hello-world
Se descargará una imagen de test y la ejecutará en un contenedor. Si todo es correcto, imprimirá el mensaje y se saldrá.
Con estos pasos ya tenemos instalado Docker en nuestra máquina. A partir de aquí, cuando creemos un proyecto, en la raíz de este, únicamente habría que añadirle un fichero docker-compose.yml y, si se cree necesario, un Dockerfile (en caso de querer personalizar la imagen que queremos instalarle) y ya podríamos ejecutar nuestra aplicación dentro de un contenedor.
Dockerfile es un archivo de texto que contiene todos los comandos que se puedan considerar necesarios para poder construir una imagen Docker según tus necesidades.
El Docker Compose es una herramienta que nos permite definir y ejecutar aplicaciones Docker en múltiples contenedores, es decir, Docker creará un contenedor para cada servicio y los enlazará según las dependencias especificadas. De esta forma, Docker Compose provee una forma de documentar y configurar todos los servicios dependientes de la aplicación para los desarrolladores.
Para configurarlo se hace a través de archivos YAML, en ellos indicaremos todos los elementos necesarios para definir el entorno de nuestra aplicación: WebServer, DataBase… Este archivo se guardará en la carpeta raíz de la aplicación con el nombre de docker-compose.yml.
Si queréis saber más cosas sobre Docker-Compose, podéis consultar su Documentación Oficial.Pasos básicos para usar Docker Compose:
Pasos básicos para usar Docker Compose:
- Definir el entorno de tu aplicación. Este paso se puede realizar de dos formas:
- Definiendo un Dockerfile para construir nuestra imagen (usaríamos la instrucción build en el docker-compose.yml)
- Usando una imagen ya predefinida en Docker Hub (usaríamos la instrucción image en el docker-compose.yml)
- Definir los servicios necesarios para tu aplicación en docker-compose.yml
- Ejecutar/Detener el Docker, con los siguientes comandos podemos realizar las acciones de arrancar o detener el docker:
- $ docker-compose up → Si el Docker no ha sido creado anteriormente y no existe, para construir la imagen para crear el docker.
- $ docker-compose start → Si el Docker ya existe, no hace falta volver a construir su imagen, simplemente ejecutarlo.
- $ docker-compose stop → Para detener la ejecución del contenedor, sin destruir el contenedor.
- $ docker-compose down → Para detener su ejecución y, además, destruir el contenedor.
Muy buena