Crear imagen de Oracle Database 18c en Docker

Por Skant Gupta
Publicado en Febrero 2019

Revisado por Juan Pablo Guizado

En este artículo, vamos a utilizar el servicio Docker para crear una imagen predefinida de Oracle Database 18c.  Es necesario ya tener instalado el servicio Docker.

En el servidor virtual o Bare Metal, revisamos el estado y la versión del servicio Docker instalado.



[root@docker ~]# docker info

[root@docker ~]# docker version
Client:
 Version:           18.06.0-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        0ffa825
 Built:             Wed Jul 18 19:08:18 2018
 OS/Arch:           linux/amd64
 Experimental:      false
 
Server:
 Engine:
  Version:          18.06.0-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       0ffa825
  Built:            Wed Jul 18 19:10:42 2018
  OS/Arch:          linux/amd64
  Experimental:     false
[root@docker ~]#
			

Si se desea saber como instalar Docker en un servidor, por favor revisar la siguiente página: https://docs.docker.com/install/.

Con el servicio Docker activo, necesitamos tomar la imagen Oracle Database 18c desde el Hub de Docker



[root@docker ~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
 
[root@docker ~]# docker pull dockerhelp/docker-oracle-ee-18c
Using default tag: latest
latest: Pulling from dockerhelp/docker-oracle-ee-18c
cd6653735b10: Pull complete
9ed4a4faa080: Pull complete
809aa6552a32: Pull complete
1469e0c4da9e: Pull complete
0da6621780be: Pull complete
7c463fb30567: Pull complete
c5af9969d03c: Pull complete
3fe5b75f1f5e: Pull complete
b6aaa9fe99cf: Pull complete
d020acd3a5f5: Pull complete
ee54854d3c05: Pull complete
Digest: sha256:915c4b61722ed0af6d94f2b41e1434c281f97fca57e9de209a2c9744181f5191
Status: Downloaded newer image for dockerhelp/docker-oracle-ee-18c:latest
 
[root@docker ~]# 
			

Nota: Verificar que el filesystem root tenga el espacio suficiente para cargar la imagen.

Una vez que la imagen es cargada, nos podemos conectar al Contenedor Docker



[root@docker ~]# docker images
REPOSITORY                        TAG           IMAGE ID         CREATED          SIZE

dockerhelp/docker-oracle-ee-18c   latest        e5ded5e048aa     45 hours ago     20.8GB
 
[root@docker ~]# docker run -it dockerhelp/docker-oracle-ee-18c

[root@c42c43a508fe /]#
			

En el servidor podremos encontrar el motor Oracle Database 18c instalado y una base de datos por defecto ya creada.

El nombre de la base de datos es ORCL18; contiene una base de datos Pluggable llamada PDB18c

El password administrador es Welcome_1

Para iniciar la base de datos y configurar el Listener y el archivo TNS, es necesario ejecutar el siguiente script dentro del contenedor.



[root@c42c43a508fe /]# sh post_install.sh

Setting ENV
Starting default listener
 
Parsing command line arguments:
    Parameter "silent" = true
    Parameter "responsefile" = /u01/app/oracle/product/18.0.0/dbhome_1/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Configuring Listener:LISTENER_ORCL18
Listener configuration complete.
Oracle Net Listener Startup:
    Running Listener Control:
      /u01/app/oracle/product/18.0.0/dbhome_1/bin/lsnrctl start LISTENER_ORCL18
    Listener Control complete.
    Listener started successfully.
Profile configuration complete.
Oracle Net Services configuration successful. The exit code is 0
Configuring the TNS
Testing Database
 
SQL*Plus: Release 18.0.0.0.0 - Production on Mon Aug 13 20:07:36 2018
Version 18.3.0.0.0
 
Copyright (c) 1982, 2018, Oracle.  All rights reserved.
 
Connected to an idle instance.
 
SQL> ORACLE instance started.
 
Total System Global Area 1610612704 bytes
Fixed Size                  8896480 bytes
Variable Size             520093696 bytes
Database Buffers         1073741824 bytes
Redo Buffers                7880704 bytes
Database mounted.
Database opened.
SQL>
System altered.
 
SQL> alter pluggable database PDB18C open
*
ERROR at line 1:
ORA-65019: pluggable database PDB18C already open
 
 
SQL>
NAME      OPEN_MODE
--------- --------------------
ORCL18    READ WRITE
 
SQL>
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB18C                         READ WRITE NO
SQL> Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
Cleaning up
DataBase Installed!!!

[oracle@c42c43a508fe /]$
			

El script define las variables de entorno Oracle y muestra el estado de la base de datos. Finalmente devuelve el control de consola con el usuario Oracle.

La arquitectura de Oracle con Docker se utiliza mucho para ambientes de desarrollo o educación.  No se recomienda utilizarlo para bases de datos en Producción.


Skant Gupta es un Oracle ACE, Maximum Availability OCM, OCM Cloud & OCM12c/11g, Oracle 12c & 11g RAC Certified, se desempeña como Senior DBA en Etisalat, Dubai. Más de 5 años en diversas tecnologías de Oracle, focalizado principalmente en bases de datos, soluciones de alta disponibilidad, weblogic y GoldenGate. Podrá seguirlo en su blog: http://oracle-help.com

Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.