Deploy de Django sobre Docker

Ya hemos hablado sobre Docker, sus ventajas y consideraciones técnicas, pero ahora vamos a dar el siguiente paso, montaremos una aplicación de Django sobre Docker, en un contenedor de Fedora Linux. Antes de comenzar a desplegar la aplicación de Django, recuerda que necesitas tener Docker instalado y conocer al menos, los comandos básicos del mismo.

Creando el contenedor

La creación del Docker es un proceso sencillo, usaremos el comando:

Código :

run

y la imagen Fedora, dentro del contenedor ejecutaremos:

Código :

/bin/bash

y así tenemos acceso a una consola.

Código :

# docker run -d -i -t -p 8000:8000 fedora /bin/bash 

Al ejecutar:

Código :

run

Se le asignan ciertos parámetros, primero:

Código :

-d

que permite la ejecución del contenedor en background y nos devuelve el ID del contenedor,

Código :

-i 

activa la salida de lo que se ejecute en el contenedo,

Código :

-t

nos activa una terminal (tty) y

Código :

-p

para publicar un puerto del contenedor al sistema host.

La salida al ejecutar el contenedor es la siguiente:

Código :

Unable to find image 'fedora' locally
Pulling repository fedora
88b42ffd1f7c: Download complete 
511136ea3c5a: Download complete 
c69cab00d6ef: Download complete 
a668b6c43a1f030de4d8ddb2ced6ee71fbece5aae65baf74b28293463be22752 # ID

Ya tenemos nuestro contenedor creado y en ejecución, ¿cómo lo sabemos?, con:

Código :

docker ps

La salida se muestra de la siguiente manera:

Código :

# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                    NAMES
a668b6c43a1f        fedora:latest       "/bin/bash"         About a minute ago   Up About a minute   0.0.0.0:8000->8000/tcp   hungry_galileo

Instalación de nuestro entorno virtual

Ya la parte de Docker está hecha, ahora falta instalar todos los componentes que necesitamos para poder ejecutar Django, para eso ingresamos al contenedor con el comando:

Código :

attach  + ID del contenedor

De esta manera podremos utilizar el shell y ejecutar:

Código :

yum

para la instalación de virtualenv y las librerías necesarias.

Código :

# docker attach a668b6c43a1fbash-4.2# 

Dentro del shell instalamos

Código :

python-devel

y

Código :

virtualenv

Código :

bash-4.2# yum install -y python-devel python-virtualenv

Luego de haber instalado las librerías necesarias, creamos una carpeta llamada:

Código :

app_django

y luego con el comando:

Código :

virtualenv

creamos nuestro entorno virtual con el mismo nombre de la carpeta, para luego instalar Django.

Código :

bash-4.2# mkdir app_django
bash-4.2# cd app_django/
bash-4.2# virtualenv app_django
New python executable in app_django/bin/python
Installing setuptools, pip...done.
bash-4.2# ls
app_django
bash-4.2# source app_django/bin/activate
(app_django)bash-4.2#

Instalación y ejecución de Django

Con el entorno virtual de Python activado, usamos la herramienta:

Código :

pip

para instalar Django en su última versión 1.7.

Código :

(app_django)bash-4.2# pip install django

Cuando termine la instalación, procedemos a crear la aplicación con el comando:

Código :

startproject

de:

Código :

django-admin

.

Código :

(app_django)bash-4.2# django-admin startproject docker-app .

En este punto ya podremos ejecutar Django y acceder desde nuestro navegador, recordando que el puerto que hemos mapeado hacia el sistema operativo host es el 8000.

Código :

(app_django)bash-4.2# python manage.py runserver 0.0.0.0:8000

En el navegador accedemos a http://localhost:8000/ y debe aparacer la siguiente pantalla.

Apartir de este momento puede seguir desarrollando sobre el proyecto creado.

Enviar comentario

via Cristalab http://ift.tt/1v1A5FG

Advertisements

Tags:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: