Instrucciones y fichero de configuración para arrancar una base de datos Oracle Database Express Edition en local mediante Docker.
-
Instalar Docker Desktop para Windows y macOS o Linux.
-
En Windows, instalar Scoop usando PowerShell:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
Y después instalar los comandos necesarios:
scoop install make
-
En Macs con procesador Apple Silicon (M1, M2...), instalar Colima usando Homebrew:
brew install colima
-
Instalar Oracle SQL Developer (requiere iniciar sesión con una cuenta de Oracle) o JetBrains DataGrip (requiere una suscripción).
-
Clonar este repositorio:
git clone https://github.com/ijaureguialzo/oracle-docker.git
Si el comando anterior no funciona, habrá que instalar Git en el sistema.
-
En un terminal, situarse en la carpeta que contiene el fichero
docker-compose.yml
.cd oracle-docker
-
Copiar el fichero
env-example
a.env
:En macOS y Linux:
cp env-example .env
En Windows:
copy env-example .env
⚠️ Es recomendable cambiar las contraseñas por defecto.La versión de Oracle a utilizar se puede configurar en el fichero
.env
y se corresponde con las etiquetas disponibles aquí y aquí. -
Arrancar el servidor:
make start
Si al arrancar da error porque el puerto está ocupado, se puede elegir otro editando el fichero
.env
. -
Cuando haya arrancado (tarda unos minutos) aparecerá
(healthy)
en la salida del comandomake ps
.Se puede ver el progreso de arranque mediante el comando
make logs
.Para parar el servidor hay que utilizar el comando
make stop
.
Clave | Valor |
---|---|
Usuario | SYS |
Contraseña | La configurada en el fichero .env |
Tipo de conexión | Básico |
Rol | SYSDBA |
Host | localhost |
Puerto | 1521 |
SID | XE (hasta la versión 21) o FREE (a partir de la versión 23) |
Para crear un usuario normal con el que trabajar, el fichero crear_usuario.sql contiene un script
que se puede adaptar y ejecutar estando conectado como SYS
al servidor.