Comunidad de diseño web y desarrollo en internet

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.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate