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.
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
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.
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.
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.
É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:
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.
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.
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
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.
Utm
hace 2 mesesFernando Merino
hace 2 meses