Contexto

En los artículos anteriores se mostró cómo instalar y configurar docker en fedora 37 y cómo descargar la imagen de la base de datos de oracle ahora en éste nuevo post, se mostrará cómo crear un contenedor (container) a partir de la imagen previamente descargada, así como configurar el acceso desde dbeaver y poder acceder a la base de datos.

  • Aún NO se realizarán configuraciones de IP, o de acceso remoto, o configuraciones más complejas, para evitar extender el artículo.

1.- Pasos previos a realizar

2.- Crear el contenedor

De acuerdo con la guía de github de docker-images de oracle es necesario establecer algunos parámetros al comando de docker, sin embargo no se realizará o creará una imagen con todos los parámetros, sino sólo los básicos e indispensable, si en su caso se requiere configurar un parámetro adicional, entonces revisar la guía o bien preconfigurar los parámetros deseados

En este ejemplo se creará un contenedor con las siguientes características

  • Puerto de 1521
  • Puerto local de 5500
  • Contraseña (establecer una)
  • Nombre del contenedor será dbOracle193
  • Nombre de la imagen oracle/database
  • Versión de la imagen 19.3.0-ee

Iniciar docker previamente a ejecutar los comandos, suponiendo que no inicie automácamente con el sistema:

sudo systemctl start docker

Para verificar que esté activo el servicio de docker, usar el siguiente comando:

sudo systemctl status docker

Y debe mostrar un mensaje similar al siguiente:

Para revisar o ver las imágenes descargadas y disponibles en docker, usar el siguiente comando:

sudo docker images

Y mostrará el listado de imágenes disponibles:

REPOSITORY        TAG         IMAGE ID       CREATED          SIZE
oracle/database   21.3.0-ee   38ea426ea2be   2 minutes ago    8.15GB
oracle/database   19.3.0-ee   5aea4e91ea70   35 minutes ago   7.89GB
oraclelinux       7-slim      19d1d44a7ad1   7 weeks ago      135MB
hello-world       latest      feb5d9fea6a5   16 months ago    13.3kB

El comando completo para crear el contenedor a partir de la imagen de oracle/database quedará de la siguiente manera:

docker run --name dbOracle193 -p 1521:1521 -p 5500:5500 -e ORACLE_PWD=holamundo -e ORACLE_SID=ORCLCDB oracle/database:19.3.0-ee

Una vez que se ejecute el comando mostrará una salida similar a la siguiente:

ORACLE EDITION: ENTERPRISE

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 28-JAN-2023 04:54:09

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait...

Éste proceso suele tardar entre 20~40min, solo queda esperar.

3.- Verificar la instalación

Para verificar la instalación, es necesario iniciar el contenedor (container) y se realiza con el siguiente comando:

sudo docker start dbOracle193

**Reemplazar dbOracle193 por el nombre que se le haya asignado al contenedor

Una vez iniciado el contenedor, abrir el navegador con la la url https://localhost:5500/em/ posiblemente marque un mensaje de advertencia sobre el uso de https, simplemente agregarlo a excepciones y click en continuar, a continuación aparecerá una página como la siguiente:

En ésta página ingresar el usuario sys y contraseña ingresar la contraseña que se ingresó el comando de la creación del contenedor del paso 2. El nombre del contenedor es opcional.

Al iniciar sesión les deberá redirigir a la siguiente página:

Si se puede ver éstas páginas, entonces la creación del contenedor es exitosa.

4.- Crear un usuario dentro del contenedor y conectarse desde dbeaver

Hasta aquí se ha creado el contenedor, y se tiene acceso al monitor de todos los procesos y conexiones al mismo. Ahora se debe proceder a crear un usuario extra para acceder a la base de datos y comenzar a trabajar.

Se usará debeaver como editor sql para manejar oracle database, porque es el que prefiero utilizar, se puede utilizar sqldeveloper, o en general cualquiera que soporte conexiones a oracle.

a) Iniciar en modo bash dentro del contenedor

Éste modo nos permitirá iniciar sessión dentro de sqlplus y crear el usuario, así como también asignarle permisos

docker exec -it dbOracle193 /bin/bash

Al ejecutar el comando, iniciará en modo en modo bash (terminal), y ejecutamos los siguiente:

sqlplus / as sysdba

Una vez realizado el inicio, permitirá ejecutar comandos de oracle para la creación del usuario

alter session set "_ORACLE_SCRIPT"=TRUE;

Cambiar el nombre de usuario linuxitos por el nombre del usuario deseado:

create user linuxitos identified by holAmund0;
GRANT DBA TO linuxitos;

Para salir del modo sql, escribir exit, y para salir del modo bash, escribir exit de nuevo.

Ahora que ya se ha creado el usuario, se podrá utilizar para conectarlo desde dbeaver:

Para crear la conexión es necesario recordar que los parámetros que se establecieron al crear el contenedor, en éste ejemplo, no se especificó el puerto IP, o el SID de oracle, por lo que se quedaron por defecto, por ende: los datos para crear o establecer una conexión con la base de datos alojada en el contenedor se tomarán de la siguiente manera:

  1. IP: La IP corresponderá a la que tenga asignado el equipo en cuestión, en éste ejemplo se tienen la IP que se muestra en el ejemplo, si requieren conocer su IP escribir en la terminal ipconfig y con ello podrán visualizarla
  2. El puerto por defecto de la base de datos es 1521
  3. El nombre de la base de datos por defecto es ORCLCDB
  4. Se debe especificar que es SID
  5. El nombre del usuario que se creó en el paso anterior
  6. La contraseña del usuario que se estableció en el paso anterior

Para corroborar que todo esté bien, clic en el botón Test Connection y deberá mostrar un mensaje como el siguiente:

Si por alguna razón no funciona, verificar que todos los datos sean los correctos.

5.- Detener la ejecución de un contenedor y el servicio de docker

a) Detener o iniciar la ejecución de un contenedor

Previo a detener el servicio de docker, se debe detener la ejecución de los contenedores y para ésta acción se usa el comando:

sudo docker stop dbOracle193
sudo docker start dbOracle193

** Reemplazar dbOracle193 por el nombre del contenedor que se desee detener.

Se puede utilizar una app de gnome llamada Whaler, ésta permite ver gráficamente los contenedores e imágenes de docker y se puede iniciar o detener directamente.

b) Detener el servicio de docker

El servicio de docker se inicia con el siguiente comando:

sudo systemctl start docker

El servicio de docker se detiene con el siguiente comando:

sudo systemctl stop docker

Si se necesita verificar el estado actual del servicio de docker, se puede utilizar el siguiente comando:

sudo systemctl status docker

6.- Conclusión

Con éste tutorial finaliza la configuración de docker, descarga y creación de un contenedor a partir de la imagen de oracle database, obviamente son los pasos más básicos, pero con ésto se puede utilizar como base para mejorar los procesos, configurar las IP de acceso, contraseñas, etc. Posteriormente se publicarán más artículos donde se realicen dichas configuraciones y permitan un mayor control de acceso a la base datos.

Y en conclusión se tiene un contenedor con la base de datos de oracle funcionando, y con conexión desde un editor, y ya se puede utilizar para laravel, codeigniter o cualquier otro framework que se desee.

Enlaces de consulta:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *