Docker. Soluciones (1)

En esta lección se proponen soluciones detalladas de los ejercicios de Docker (1). Se recomienda intentar realizarlos primero sin recurrir a estas soluciones.

Docker (1) 4 - Instalar phpMyAdmin

En construcciónPor completar

En este ejercicio se pide instalar phpMyAdmin en un contenedor Docker.

  1. La imagen Docker de phpMyAdmin de Bitnami se encuentra en https://github.com/bitnami/bitnami-docker-phpmyadmin.
  2. Para crear un contenedor phpMyAdmin:
    sudo docker run -d -p 8802:80 --name phpmyadmin --net=opencart_network bitnami/phpmyadmin
  3. Este phpMyAdmin se abriría escribiendo en el navegador del host http://AAAA.BBB.CCC.DDD:8802
  4. El nombre de usuario de MariaDB creado para OpenCart y su contraseña se encuentran en el fichero de configuración de OpenCart (el usuario es siempre bn_opencart, pero la contraseña se genera al azar cada vez que se crea un contenedor.
  5. El MariaDB instalado desde la imagen de Bitnami tiene usuario root sin contraseña.

Docker (1) 5 - Instalar dos aplicaciones (OPTATIVO)

  1. Primero habría que detener y borrar los contenedores anteriores.
  2. Contenedor de phpMyAdmin
    sudo docker run -d -p 8802:80 --name phpmyadmin --net=opencart_network bitnami/phpmyadmin
  3. Contenedor de OpenCart
    • Cree la imagen de OpenCart
      sudo docker run -d -e OPENCART_HOST=AAA.BBB.CCC.DDD -p 8801:80 --name opencart --net=opencart_network bitnami/opencart
    • A continuación es necesario modificar los archivos de configuración de OpenCart para que los enlaces de la aplicación contengan el puerto.

      Nota: He tenido que modificar los archivos de configuración a mano porque si incluía el puerto al crear la imagen de OpenCart el fichero de configuración no se creaba correctamente.

    • Copie el archivo de configuración de la imagen para poderlo modificar:
      sudo docker cp opencart:/bitnami/opencart/config.php /tmp/config.php
    • Edite el archivo de configuración:
      sudo vi /tmp/config.php

      Incluya el puerto PUERTO1 en las direcciones de base:

      /* config.php */
      // HTTP
      define('HTTP_SERVER', 'http://AAA.BBB.CCC.DDD:PUERTO2/');
      define('HTTP_ADMIN', 'http://AAA.BBB.CCC.DDD:PUERTO2/admin/');
      
      // HTTPS
      define('HTTPS_SERVER', 'http://AAA.BBB.CCC.DDD:PUERTO2/');
      
       ...
    • Repita la operación con el otro archivo de configuración.
  4. Contenedor de nginx

    En construcciónEste apartado no he llegado a hacerlo, se supone que es posible hacerlo