Saltar al contenido principal

Docker

Docker es una plataforma de software libre que permite crear, desplegar y ejecutar aplicaciones en contenedores.

Un contenedor es una unidad de software que incluye todo lo necesario para que una aplicación se ejecute de manera aislada en cualquier sistema operativo. Esto permite que una aplicación se pueda ejecutar en cualquier entorno sin tener que preocuparse por la configuración del sistema operativo o de las dependencias del software.

Imágenes y contenedores en Docker

Los contenedores se obtienen a partir de una imagen. Una imagen es una plantilla de solo lectura que contiene un sistema de archivos con todos los componentes necesarios para ejecutar una aplicación, como bibliotecas, dependencias, código y configuración. Una imagen se utiliza como base para crear uno o varios contenedores que se ejecutan de manera aislada, cada uno con su propia copia del sistema de archivos de la imagen.

Cada imagen de Docker tiene un identificador único que se utiliza para referirse a ella y descargarla de un repositorio central de Docker, como Docker Hub.

Un contenedor, por otro lado, es una instancia en ejecución de una imagen de Docker. Los contenedores proporcionan un ambiente aislado para ejecutar aplicaciones y permiten que las aplicaciones se ejecuten de manera consistente en diferentes entornos de infraestructura. Cada contenedor tiene su propio sistema de archivos y recursos aislados, incluyendo CPU, memoria y almacenamiento.

Las imágenes y los contenedores son dos conceptos fundamentales en Docker, y ambos son esenciales para ejecutar aplicaciones en entornos aislados y portátiles. Por ello, es necesario tener claro lo siguiente:

  • Una imagen de Docker es la plantilla que se utiliza para crear uno o varios contenedores que se ejecutan de manera aislada.
  • Cada contenedor es una instancia en ejecución de una imagen.
  • Cada contenedor tiene su propio sistema de archivos y recursos aislados.

Instalación de Odoo

Para instalar Odoo con Docker, primero es necesario tener Docker instalado en el sistema operativo donde se desea ejecutar Odoo. Es posible instalar Docker en Linux, Windows y MacOS, aunque lo más recomendable es hacerlo en alguna distribución de Linux, ya que su comportamiento es más estable en esta plataforma.

Además, se debe instalar Docker Compose, software que nos facilitará la instalación de la aplicación de todos los componentes desde un único archivo.

Una vez que Docker y Docker Compose estén instalados, se debe crear un fichero docker-compose.yml (en cualquier directorio) con el siguiente contenido:

version: '3.1'

services:
web:
image: odoo:16.0
depends_on:
- mydb
ports:
- "80:8069"
volumes:
- odoo-web-data:/var/lib/odoo
environment:
- HOST=mydb
- USER=odoo
- PASSWORD=myodoo
networks:
- odoo_network
mydb:
image: postgres:15
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=myodoo
- POSTGRES_USER=odoo
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- odoo-db-data:/var/lib/postgresql/data/pgdata
networks:
- odoo_network

volumes:
odoo-web-data:
odoo-db-data:

networks:
odoo_network:

En este ejemplo, se utilizan volúmenes Docker para mantener la persistencia de los datos de la base de datos y de los archivos de Odoo. También se ha definido una red de Docker para conectar los contenedores de Odoo y PostgreSQL.

Para iniciar los contenedores, dentro del directorio donde se encuentra el archivo docker-compose.yml, se debe ejecutar el siguiente comando:

docker compose up -d

Una vez ejecutado, se arranca un servidor web. Si hemos instalado Odoo en la propia máquina, se puede acceder a través de http://localhost. Si accedemos a la URL, se podrá visualizar una pantalla similar a la siguiente:

En este apartado, como mínimo, debemos rellenar los siguientes datos:

  • Database name: nombre de la base de datos. Se debe indicar uno diferente a postgres como, por ejemplo, odoo.
  • Email: correo electrónico del administrador.
  • Password: contraseña del administrador.