$ docker login
$ git clone https://github.com/oracle/docker-images
$ cd docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0
# Download: LINUX.X64_193000_db_home.zip
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
$ cp /mnt/c/Users/****/Downloads/LINUX.X64_193000_db_home.zip .
$ grep -v ^# db_inst.rsp | grep -v ^$
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=dba
INVENTORY_LOCATION=###ORACLE_BASE###/oraInventory
ORACLE_HOME=###ORACLE_HOME###
ORACLE_BASE=###ORACLE_BASE###
oracle.install.db.InstallEdition=###ORACLE_EDITION###
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
$ grep -v ^# dbca.rsp.tmpl | grep -v ^$
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=###ORACLE_SID###
sid=###ORACLE_SID###
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=###ORACLE_PDB###
pdbAdminPassword=###ORACLE_PWD###
templateName=General_Purpose.dbc
sysPassword=###ORACLE_PWD###
systemPassword=###ORACLE_PWD###
emConfiguration=DBEXPRESS
emExpressPort=5500
dbsnmpPassword=###ORACLE_PWD###
characterSet=###ORACLE_CHARACTERSET###
nationalCharacterSet=AL16UTF16
initParams=audit_trail=none,audit_sys_operations=false
automaticMemoryManagement=FALSE
totalMemory=2048
$ cd ..
$ ./buildContainerImage.sh -h
Usage: buildContainerImage.sh -v [version] -t [image_name:tag] [-e | -s | -x] [-i] [-o] [container build option]
Builds a container image for Oracle Database.
Parameters:
-v: version to build
Choose one of: 11.2.0.2 12.1.0.2 12.2.0.1 18.3.0 18.4.0 19.3.0
-t: image_name:tag for the generated docker image
-e: creates image based on 'Enterprise Edition'
-s: creates image based on 'Standard Edition 2'
-x: creates image based on 'Express Edition'
-i: ignores the MD5 checksums
-o: passes on container build option
* select one edition only: -e, -s, or -x
LICENSE UPL 1.0
Copyright (c) 2014,2021 Oracle and/or its affiliates.
$ ./buildContainerImage.sh -v 19.3.0 -s
or
$ ./buildContainerImage.sh -v 19.3.0 -e
...
Oracle Database container image for 'se2' version 19.3.0 is ready to be extended:
--> oracle/database:19.3.0-se2
Build completed in 1037 seconds.
$ docker volume create orcdata
$ docker run \
--name oracle19 \
-p 1521:1521 \
-p 5500:5500 \
-e ORACLE_SID=orcl \
-e ORACLE_PDB=orclpdb \
-e ORACLE_PWD=***** \
-e ORACLE_MEM=2000 \
-v orcdata:/opt/oracle/oradata \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-d \
oracle/database:19.3.0-se2
$ docker ps
$ docker logs -f oracle19
...
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
ORCLPDB(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
2021-07-21T07:19:49.947382+00:00
ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORCL/control01.ctl' SCOPE=SPFILE;
2021-07-21T07:19:49.961938+00:00
ALTER SYSTEM SET local_listener='' SCOPE=BOTH;
ALTER PLUGGABLE DATABASE ORCLPDB SAVE STATE
Completed: ALTER PLUGGABLE DATABASE ORCLPDB SAVE STATE
2021-07-21T07:19:50.785974+00:00
XDB initialized.
$ docker stop oracle19
$ docker start oracle19
or
$ docker container stop oracle19
$ docker container start oracle19
$ docker volume list
DRIVER VOLUME NAME
local orcdata
$ docker volume inspect orcdata
[
{
"CreatedAt": "2021-07-21T07:01:36Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/orcdata/_data",
"Name": "orcdata",
"Options": {},
"Scope": "local"
}
]
$ docker exec -it oracle19 /bin/bash
[oracle@b6cd1293197a ~]$ lsnrctl status
...
Services Summary...
Service "ORCL" has 1 instance(s).
[oracle@b6cd1293197a ~]$ sqlplus sys@ORCL as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jul 21 06:15:07 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL>
or
[oracle@b6cd1293197a ~]$ sqlplus / as sysdba
Name: docker
Username: sys
Role: SYSDBA
Password: *****
Connection Type: Basic
Hostname: localhost
Port: 1521
Service name: ORCLCDB
SQL> SELECT STATUS FROM v$instance;
STATUS
------------
OPEN
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
SQL> alter session set container=ORCLPDB;
Session altered.
SQL> exit