Cómo hacer persistente un contenedor e imagen con Oracle 21 en Docker. Cómo crear un volumen y asignárselo para que los datos que se inserten/modifiquen en la base de datos Oracle 21 se guarden y queden persistentes.
- Requisitos para establecer persistencia en contenedor e imagen Oracle 21 con Docker.
- Crear volumen para persistencia y asignar a imagen Docker de Oracle 21c.
- Conectar con Oracle 21 externamente y crear tabla para probar persistencia.
- Probar persistencia de imagen Docker de Oracle 21c.
- Configurar contenedor para que se inicie cuando se inicie el servicio de Docker.
Requisitos para establecer persistencia en contenedor e imagen Oracle 21 con Docker
En este caso desplegaremos una imagen Docker de Oracle 21c a partir del contenedor con Oracle 21c, por ello, necesitaremos descargar y desplegar este contenedor. En el siguiente tutorial explicamos cómo desplegarlo paso a paso:
Crear volumen para persistencia y asignar a imagen Docker de Oracle 21c
Abriremos una consola de shell de comandos, en el equipo donde tengamos Docker instalado y el contenedor con Oracle 21c (sea Linux o Windows, el proceso es idéntico en ambos casos).
Para crear un volumen en Docker, ejecutaremos el siguiente comando Docker:
1 |
docker volume create oracle |

Para iniciar el contenedor usando el volumen creado anteriormente «oracle», y para hacer accesible la base de datos externamente (por el puerto 1521), ejecutaremos el siguiente comando Docker:
1 |
docker run -d --name bdproyectoaext -p 1521:1521 -v oracle:/orabd container-registry.oracle.com/database/enterprise:latest |

Como podemos observar en el comando anterior, se despliega la imagen «bdproyectoaext» con el puerto 1521 (interno y externo) y guardando los datos en el volumen «oracle», en la carpeta «orabd».
Una vez iniciado el contenedor, para el caso de Oracle 21c, estableceremos una configuración inicial con el comando:
1 |
docker logs bdproyectoaext |

Tras establecer la configuración inicial, estableceremos la contraseña para los usuarios de Oracle, con el comando Docker:
1 |
docker exec bdproyectoaext ./setPassword.sh "contraseña" |

Conectar con Oracle 21 externamente y crear tabla para probar persistencia
Para probar la conexión externa a Oracle 21c y crear una tabla usaremos Oracle SQL Developer. Realizaremos la conexión con la base de datos:

Y crearemos una tabla llamada «FACTURAS»:
1 2 3 4 5 6 7 8 9 |
CREATE TABLE FACTURAS ( CODIGO INTEGER NOT NULL , CLIENTE VARCHAR2(150) , FECHA DATE , IMPORTE DECIMAL(12) ); CREATE UNIQUE INDEX FACTURAS_CODIGO ON FACTURAS (CODIGO); |

Insertaremos algún registro de prueba en la tabla FACTURAS:

Probar persistencia de imagen Docker de Oracle 21c
Detendremos ahora la imagen Docker (para comprobar que, efectivamente, la información ha quedado guardada):
1 |
docker stop bdproyectoaext |

Iniciaremos la imagen:
1 |
docker start bdproyectoaext |

Volveremos a conectar a Oracle y comprobaremos que, efectivamente, los datos han quedado guardados:

Configurar contenedor para que se inicie cuando se inicie el servicio de Docker
Si queremos que el contenedor se inicie de forma automática cuando se arranque el equipo, ejecutaremos el siguiente comando Docker (una vez iniciado el contenedor):
1 |
docker update --restart unless-stopped bdproyectoaext |
