Esta lección es una introducción a la instalación de aplicaciones mediante Docker, utilizando las imágenes proporcionadas por Bitnami. Esta lección tiene un carácter "experimental". Los dos primeros ejercicios están planteados como actividades guiadas, por lo que no se ofrece una página de soluciones. Se pueden consultar las soluciones de los demás ejercicios de Docker (2), aunque se recomienda intentar realizarlos primero sin recurrir a estas soluciones.
En este ejercicio instalaremos OpenCart en un contenedor Docker.
Los repositorios de las imágenes de Bitnami son Bitnami Docker MariaDB, Bitnami Docker OpenCart.
sudo docker network create opencart-network
sudo docker run -d --name=mariadb \
-e ALLOW_EMPTY_PASSWORD=yes -e MARIADB_USER=bn_opencart -e MARIADB_DATABASE=bitnami_opencart \
--net=opencart-network bitnami/mariadb
Nota: El nombre mariadb se puede cambiar, pero tenga en cuenta que las imágenes de bitnami suponen de forma predeterminada que ese es el nombre del contenedor de la base de datos. Si utiliza otro nombre de contenedor, deberá añadir la opción de configuración correspondiente al crear el contenedor de la aplicación.
Nota: Algunas de las variables disponibles (y su valores predeterminados entre corchetes) son MARIADB_EXTRA_FLAGS, MARIADB_ROOT_USER [root], MARIADB_ROOT_PASSWORD [], ALLOW_EMPTY_PASSWORD, MARIADB_USER, MARIADB_PASSWORD, MARIADB_DATABASE.
sudo docker run -d --name=opencart \
-e ALLOW_EMPTY_PASSWORD=yes -e OPENCART_DATABASE_NAME=bitnami_opencart -e OPENCART_HOST=AAA.BBB.CCC.DDD \
-p 80:80 -p 443:443 --net=opencart-network bitnami/opencart
Nota: Las variables disponibles (y su valores predeterminados entre corchetes) son OPENCART_USERNAME [user], OPENCART_PASSWORD [bitnami1], OPENCART_EMAIL [user@example.com], OPENCART_HOST, MARIADB_PASSWORD, MARIADB_HOST [mariadb], MARIADB_PORT_NUMBER [3306].
El usuario administrador predeterminado de OpenCart es user con contraseña bitnami1:
En este ejercicio se trabaja con el OpenCart instalado en el ejercicio anterior.
Puede consultar la Docker Cheat Sheet para obtener información sobre los comandos básicos de Docker.
Para ver los contenedores existentes (en marcha o detenidos):
sudo docker ps -a
Para detener un contenedor:
sudo docker stop CONTENEDOR
Para poner en marcha un contenedor detenido:
sudo docker start CONTENEDOR
Para borrar un contenedor (debe estar detenido primero):
sudo docker rm CONTENEDOR
Nota: La base de datos no se ha borrado, así que se podría cambiar el usuario y contraseña de la tienda para usar la antigua base de datos y recuperar la tienda antigua.
Si cambiara la IP de la máquina virtual, OpenCart dejaría de funcionar correctamente porque en los archivos de configuración de OpenCart se guarda la URL de OpenCart. En clase esto ocurre de vez en cuando, ya que el router de aula está continuamente asignando direcciones.
La forma más fácil es copiar los dos archivos de configuración de OpenCart del contenedor a la máquina virtual, modificarlos y volverlos a copiar a la imagen
sudo docker cp CONTENEDOR:ORIGEN DESTINO
Para averiguar el directorio del sistema de ficheros del contenedor en el que se encuentra opencart, puede abrir una sesión en la imagen y después buscarlo:
sudo docker exec -it CONTENEDOR /bin/bash
Los ficheros de configuración están en /bitnami/opencart/config.php y /bitnami/opencart/admin/config.php. Los ficheros se pueden copiar en cualquier carpeta fuera del contenedor. Por ejemplo,
sudo docker cp opencart:/bitnami/opencart/config.php /tmp/config.php
En este ejercicio se pide instalar phpMyAdmin en un contenedor Docker.
El repositorio de las imágenes de Bitnami es Bitnami phpMyAdmin OpenCart.
En este ejercicio se pide instalar la misma aplicación dos veces (por ejemplo, dos instalaciones de WordPress), pero que utilicen el mismo contenedor con la base de datos, con el objetivo de hacerlos accesibles mediante las URLs http://AAA.BBB.CCC.DDD:8802 y http://AAA.BBB.CCC.DDD:8803.