daggerok/oracle
Oracle Database 11g Express Edition Release 2 / 12c Standard Edition Release 1 (SE2)
4.6K
Automation build for docker hub
XE (size ~ 1G)
latest
11.2.0.2-xe
xe
prebuiltdb
SE (size ~ 8G)
NOTE: you can build same image by yourselves. read more
# xe
docker run -d --rm --name oracle-xe \
--shm-size=1g \
-p 1521:1521 \
-e ORACLE_PWD=password \
daggerok/oracle
# daggerok/oracle:xe
# daggerok/oracle:11.2.0.2-xe
# se
docker run -d --rm --name oracle-se \
--shm-size=1g \
-p 1521:1521 \
-e ORACLE_SID=ORCLCDB \
-e ORACLE_PWD=password \
-e ORACLE_PDB=ORCLPDB1 \
-e ORACLE_CHARACTERSET=AL32UTF8 \
daggerok/oracle:12.1.0.2-se2
# daggerok/oracle:12.1.0.2-se
# daggerok/oracle:latest
# daggerok/oracle:se2
# daggerok/oracle:se
available parameters (from original documentation):
--name
The name of the container (default: auto generated)
--shm-size
Amount of Linux shared memory
-p
The port mapping of the host port to the container port. Two ports are exposed: 1521 (Oracle Listener), 8080 (APEX)
The port mapping of the host port to the container port. Two ports are exposed: 1521 (Oracle Listener), 5500 (OEM Express)
-e ORACLE_PWD
The Oracle Database SYS, SYSTEM and PDB_ADMIN password (default: auto generated)
-v /u01/app/oracle/oradata
-v /opt/oracle/oradata
The data volume to use for the database. Has to be writable by the Unix "oracle" (uid: 54321) user inside the container! If omitted the database will not be persisted over container recreation.
-v /u01/app/oracle/scripts/startup | /docker-entrypoint-initdb.d
-v /u01/app/oracle/scripts/setup | /docker-entrypoint-initdb.d
-v /opt/oracle/scripts/startup | /docker-entrypoint-initdb.d
-v /opt/oracle/scripts/setup | /docker-entrypoint-initdb.d
Optional: A volume with custom scripts to be run after database startup.
simple
version: "2.1"
services:
oracle-xe:
image: daggerok/oracle:xe
shm_size: 1g
environment:
ORACLE_PWD: password
ports: ["1521:1521"]
networks: [backing-services]
networks:
backing-services:
driver: bridge
advanced
version: "2.1"
services:
oracle-se:
image: daggerok/oracle:se
shm_size: 1g
environment:
ORACLE_SID: xe
ORACLE_PWD: password
ports:
- "1521:1521"
- "5500:5500"
volumes:
- "oracle-se2-data:/opt/oracle/oradata"
- "./db-startup-migration-scripts:/opt/oracle/scripts/startup"
- "./db-setup-migration-scripts:/docker-entrypoint-initdb.d/setup"
networks: [backing-services]
restart: unless-stopped
volumes:
oracle-se2-data: {}
networks:
backing-services:
driver: bridge
# 1. start container with needed configurations
docker container run \
--shm-size=1g \
-p 8080:8080 -p 1521:1521 \
-e ORACLE_PWD=password \
-it --name oracle-xe \
daggerok/oracle:prebuiltdb
# 2. wait until oracle database will be ready and gracefully stop oracle-xe container
docker container stop oracle-xe
# 3. commit container as an reusable image
docker commit -m 'Oracle XE with credentials SYSTEM / password' oracle-xe daggerok/oracle-xe:latest
# 4. docker push daggerok/oracle-xe:latest
# 5. usage (somewhere else): now you can re-use it without additional configurations, justl ike so:
docker container run \
--shm-size=1g \
-p 8080:8080 -p 1521:1521 \
-it --name oracle-xe \
daggerok/oracle-xe
docker container run \
--shm-size=1g \
-p 8080:8080 -p 1521:1521 \
-it --name oracle-xe \
daggerok/oracle-xe
NOTE 1: username: SYSTEM
, password: password
NOTE 2: using flag --shm-size=1g
from my experience is required
docker pull daggerok/oracle