Public | Automated Build

Last pushed: 4 days ago
Short Description
Oracle Standard Edition 12c Release 1 with data mount support and etc
Full Description

Oracle Standard Edition 12c Release 1

Oracle Standard Edition 12c Release 1 on Ubuntu
This Dockerfile is a trusted build of Docker Registry.


docker pull sath89/oracle-12c

Run with 8080 and 1521 ports opened:

docker run -d -p 8080:8080 -p 1521:1521 sath89/oracle-12c

Run with data on host and reuse it:

docker run -d -p 8080:8080 -p 1521:1521 -v /my/oracle/data:/u01/app/oracle sath89/oracle-12c

Run with Custom DBCA_TOTAL_MEMORY (in Mb):

docker run -d -p 8080:8080 -p 1521:1521 -v /my/oracle/data:/u01/app/oracle -e DBCA_TOTAL_MEMORY=1024 sath89/oracle-12c

Connect database with following setting:

hostname: localhost
port: 1521
sid: xe
service name: xe
username: system
password: oracle

To connect using sqlplus:

sqlplus system/oracle@//localhost:1521/xe

Password for SYS & SYSTEM:


Connect to Oracle Application Express web management console with following settings:

workspace: INTERNAL
user: ADMIN
password: 0Racle$

Apex upgrade up to v 5.*

docker run -it --rm --volumes-from ${DB_CONTAINER_NAME} --link ${DB_CONTAINER_NAME}:oracle-database -e PASS=YourSYSPASS sath89/apex install

Details could be found here:

Connect to Oracle Enterprise Management console with following settings:

user: sys
password: oracle
connect as sysdba: true

By Default web management console is enabled. To disable add env variable:

docker run -d -e WEB_CONSOLE=false -p 1521:1521 -v /my/oracle/data:/u01/app/oracle sath89/oracle-12c
#You can Enable/Disable it on any time

Start with additional init scripts or dumps:

docker run -d -p 1521:1521 -v /my/oracle/data:/u01/app/oracle -v /my/oracle/init/SCRIPTSorSQL:/docker-entrypoint-initdb.d sath89/oracle-12c

By default Import from docker-entrypoint-initdb.d is enabled only if you are initializing database (1st run).

To customize dump import use IMPDP_OPTIONS env variable like -e IMPDP_OPTION="REMAP_TABLESPACE=FOO:BAR"
To run import at any case add -e IMPORT_FROM_VOLUME=true

In case of using DMP imports dump file should be named like ${IMPORT_SCHEME_NAME}.dmp

User credentials for imports are ${IMPORT_SCHEME_NAME}/${IMPORT_SCHEME_NAME}

If you have an issue with database init like DBCA operation failed, please reffer to this issue


  • Web management console HTTPS port
  • Add functionality to run custom scripts on startup, for example User creation
  • Add Parameter that would setup processes amount for database (Currently by default processes=300)
  • Spike with clustering support
  • Spike with DB migration from 11g

In case of any issues please post it here.

Docker Pull Command
Source Repository

Comments (27)
4 days ago

Just committed Dockerfile with USE_UTF8_IF_CHARSET_EMPTY=true by default

15 days ago

Ok, got it working:


The Database worked fine all the time, but my app did not pick up the correct values.

16 days ago

Hi, first: Thanks for this great container!

Has anyone got UTF8 to work?

a month ago

How to start sql developer in docker.?

2 months ago

vvaka17 do not run entry point in Dockerfile....

3 months ago

I am trying to build an image using sath89/oracle-12c as base image.
My dockerfile looks something like
FROM sath89/oracle-12c
RUN ["","run"]
when I run docker build , the image creation stops at the and does not proceed further in the docker file.
Any means to make it work?

3 months ago


I was able to successfully pull the image by writing the docker file FROM:sath89 and than RUN I want to extend the docker file with more commands like copying few more softwares and RUN. But doesnot exit with out CTRL+C which makes the image creation fail. Can you please how i can extend and write docker file.

4 months ago

Are you still planning to add the functionality to run custom scripts on startup, for example User creation?

4 months ago

Kewl!, Works like a Charm!

5 months ago

I can get this to run fine and connect to it. However, I am really interested in how I can load a dump file made with exp into a DB running in this container. I see the notes above about it, but struggling to make it work. Are there some more details examples elsewhere?