Antes que nada vamos instalar docker : https://docs.docker.com/install/
Luego de instalar docker, se debe hacer una cuenta y aceptar los términos y condiciones de uso de la imagen de Oracle 12.2.1c en el siguiente link:
https://hub.docker.com/u/emanuelpeg/content/sub-58a32504-c6af-4941-8558-061121a0243d
Luego debemos correr docker, para ello podemos ejecutar esta comando en Fedora :
sudo systemctl start docker
Luego debemos loguearnos por consola con el siguiente comando:
docker login
Con este comando, nos logiamos, y docker va a saber que aceptamos los términos y condiciones.
Luego debemos bajar la imagen con :
docker pull store/oracle/database-enterprise:12.2.0.1
Con este comando, bajamos la imagen de oracle, la imagen sería un template con el cual podemos crear containers que tengan base de datos propiamente dichas.
Luego tenemos que crear un container que es la instancia propia de la base, vamos a llamar ejemplo a nuestro container.
docker run -d -it --name ejemplo -p 1521:1521 store/oracle/database-enterprise:12.2.0.1
Como se puede ver se mapeo el puerto 1521 con el 1521 del equipo, esto se puede cambiar si el puerto esta siendo utilizado.
Con docker ps podemos ver si levanto el container con :
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c8aea60c0230 store/oracle/database-enterprise:12.2.0.1 "/bin/sh -c '/bin/ba…" 38 seconds ago Up 36 seconds (health: starting) 0.0.0.0:1521->1521/tcp, 5500/tcp ejemplo
Docker creo un container con la base de datos oracle y publico el puerto 1521 para que podamos conectarnos.
Los datos de conexión son :
User : SYS (dba user)
Password : Oradoc_db1
Oracle-sid : ORCLCDB
Estos datos son creados a partir de la imagen de oracle, y simplemente son datos por defecto.
Debemos conectarnos con estos datos para utilizar la base. Para ello utilizamos sqlplus :
$ docker exec -it ejemplo bash -c "source /home/oracle/.bashrc; sqlplus sys/Oradoc_db1@ORCLCDB as sysdba"
Con sqlplus podemos crear usuarios, base de datos, tablas, etc...
Para importar base de datos necesitamos tener un .dmp de la base a importar, yo importaré baseDeEjemplo.dmp
Creamos una carpeta para guardar los backups :
docker exec -it ejemplo mkdir /home/oracle/backups
Debemos copiar este archivo al container :
docker cp baseDeEjemplo.dmp ejemplo:/home/oracle/backups
Ahora debemos importar el dump, con el siguiente comando:
docker exec -it ejemplo bash -c "source /home/oracle/.bashrc; impdp usario/pass@ORCLCDB remap_schema=origen:destino directory= backups dumpfile=baseDeEjemplo.dmp logfile=unLog.log”
Se debe tener la carpeta backup registrada en oracle.
Para conectarnos con un cliente debemos utilizar los siguientes datos :
host=0.0.0.0:1521
SID=ORCLCDB
password = sys
username = Oradoc_db1
Por último, si dejamos de utilizar docker podemos parar el container con
docker stop ejemplo
y podemos iniciar la instancia con start
docker start ejemplo
Dejo link: https://hub.docker.com/u/emanuelpeg/content/sub-58a32504-c6af-4941-8558-061121a0243d?ref=login