Oracle19c corriendo en Docker.
Intentamos siempre que los posts sean fáciles de reproducir, aunque en este caso la descarga del ZIP de Oracle con ORA Database 19c no es sencillo, también usamos un repo GIT de una persona (Marcelo Ochoa) en la que confiamos, aunque en el mundo de empresas no se debería hacer ya que no podemos certificar que contienen todos esos ficheros descargados.
Fuera de estos temas, en este post mostraremos como hacer funcionar Oracle 19 con contenedores, utilizaremos un entorno preparado por Marcelo para el que tuvimos que descargar la versión de Oracle 19c para Linux, algo que no fue fácil. (Dejamos un Link esperando que les sirva)
Para los que necesiten el ZIP ( [email protected] ), enviar un email que le pasamos un link de descarga directa.
Pasos para poner en marcha la imágen y el contenedor.
mkdir Download/ora19
cd Download/ora19
git clone https://github.com/marcelo-ochoa/docker-images.git
cd docker-images/OracleDatabase/SingleInstance/dockerfiles
Guardar el ZIP descargado de Oracle (3 gb aprox.) en la carpeta 19.2.0
3032822863 feb 18 09:28 V981623-01.zip
En nuestro ejemplo
ora19/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.2.0
Estando parados en la carpeta Databases, construimos nuestra imágen ORA19.
El proceso demora unos cuantos minutos y descarga mas imágenes desde Internet.
cd docker-images/OracleDatabase/SingleInstance/dockerfiles
./buildDockerImage.sh -v 19.2.0 -e
Checking if required packages are present and valid...
V981623-01.zip: OK
==========================
DOCKER info:
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 15
Server Version: 18.06.1-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: (expected: 468a545b9edcd5932818eb9de8e72413e616e86e)
runc version: N/A (expected: 69663f0bd4b60df09991c08812a60108003fa340)
init version: v0.18.0 (expected: fec3683b971d9c3ef73f284f176672c44b448662)
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.18.0-15-generic
Operating System: Ubuntu 18.10
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.25GiB
Name: chocialdellad
ID: MLBT:ABGE:52LV:MFYZ:QM44:2KQA:DNTF:HMUE:RD2Q:4AOQ:Q5IO:L7IW
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Finalmente levantaremos un contenedor (19c) usando esa imágen recién creada (database:19.2.0-ee).
docker run -d --name 19c -p 1521:1521 -p 5500:5500 -v carpetalocal:carpetadocker oracle/database:19.2.0-ee
Y accederemos a la interfaz de gestión web con el puerto 5500, compartiremos una carpeta de nuestro equipo real en ese contenedor.
En las pruebas realizadas el motor funciona perfectamente y muy rápido. En otros posts haremos comparaciones con versiones anteriores para verificar nuestro código plsql en distintos motores.