SlideShare a Scribd company logo
1 of 54
Download to read offline
Dockerizing
Oracle Database
Gerald Venzl
Senior Principal Product Manager
Oracle Database Development
Twitter: @GeraldVenzl
Copyright	©	2017	Oracle	and/or	its	affiliates.	All	 rights	reserved.		| 3
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Program	Agenda
What	is	Docker
Installing	Docker
Building	an	Oracle	Database	Docker	image
Running	an	Oracle	Database	inside	Docker
Tips	and	Tricks
1
2
3
4
5
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Program	Agenda
What	is	Docker
Installing	Docker
Building	an	Oracle	Database	Docker	image
Running	an	Oracle	Database	inside	Docker
Tips	and	Tricks
1
2
3
4
5
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
What	is	Docker?
• A	software	container	platform
• Originated	from	Linux	/	Linux	Containers
– Also	available	on	Windows	and	Mac	OS	X
• Part	of	the	Linux	Open	Container	Initiative	(OCI)
– Part	of	Open	Source	Linux
• Editions:
– Commercial	Edition	(EE)	– Sold	by	Docker	Corp
– Community	Edition	(CE)	– Part	of	Open	Source	Linux
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
What	is	Docker?
• docker-engine:	The	engine	running	containers
• Images:	Collection	of	software	to	be	run	as	a	container
• Containers:	A	container	on	the	Linux	host
• Registry:	Place	to	store	and	download	images
• Volumes:	Place	to	persist	data	outside	the	container
Terminology
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Docker	Key	Components
Source:	https://docs.docker.com/engine/docker-overview/
• Registry
• Images
• Containers
• Docker	
daemon/engine
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Docker	Key	Components	- Volumes
Source:	https://docs.docker.com/engine/docker-overview/
• Registry
• Images
• Containers
• Docker	
daemon/engine
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
What	is	Docker?
• Containers	are	non-persistent
– Once	a	container	is	deleted,	all	files	inside	that	container	are	gone
Concepts
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
What	is	Docker?
• Containers	are	non-persistent
– Once	a	container	is	deleted,	all	files	inside	that	container	are	gone
• Images	are	immutable
– Changes	to	an	image	require	to	build	a	new	image
– Data	to	be	persisted	has	to	be	stored	in	volumes
Concepts
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
What	is	Docker?
• Containers	are	non-persistent
– Once	a	container	is	deleted,	all	files	inside	that	container	are	gone
• Images	are	immutable
– Changes	to	an	image	require	to	build	a	new	image
– Data	to	be	persisted	has	to	be	stored	in	volumes
• Containers	are	spun	up	from	images
Concepts
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Why	is	Docker	cool?
• Abstracts	virtual	environment	(container)	creation
into	simple	steps:
– docker create	…
– docker run	…
– docker rm …
• Runs	directly	on	the	Linux	kernel	(cgroups)
– Avoids	the	hypervisor	overhead
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Why	is	Docker	cool?
• Abstracts	virtual	environment	(container)	creation
into	simple	steps:
– docker create	…
– docker run	…
– docker rm …
• Runs	directly	on	the	Linux	kernel	(cgroups)
– Avoids	the	hypervisor	overhead
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Why	is	Docker actually cool?
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Why	is	Docker actually cool?
• Allows	abstraction	of	environments	into	images
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Why	is	Docker actually cool?
• Allows	abstraction	of	environments	into	images
• Allows	creation	of	hierarchical	images
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Why	is	Docker actually cool?
• Allows	abstraction	of	environments	into	images
• Allows	creation	of	hierarchical	images
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Why	is	Docker actually cool?
• Allows	abstraction	of	environments	into	images
• Allows	creation	of	hierarchical	images
• Supports	multi-layered	image	registries
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Oracle	CDB	architecture	&	Docker	architecture
Same	concept	applied	on	DB	and	OS	level
App	B App	CApp	A
App A App B App C
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Oracle	Database	on	Docker
• Oracle	Database	is	fully	supported	on	Docker
– Oracle	Linux	7	- UEK	4
– Red	Hat	Enterprise	Linux	7
• Oracle	images	on	Oracle	Container	Registry	&	Docker	Store
• Docker	build	files	on	GitHub
• RAC	is	not	yet	supported
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Oracle	Database	on	Docker
• Docker	container	contains	single-PDB	CDB	(no	MTO	license	required)
• PDB	can	be	plugged,	unplugged,	etc.
• PDB	can	move	bi-directional
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Program	Agenda
What	is	Docker
Installing	Docker
Building	an	Oracle	Database	Docker	image
Running	an	Oracle	Database	inside	Docker
Tips	and	Tricks
1
2
3
4
5
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Installing	Docker
1) Enable	OL7	addons repo
2) Install	docker-engine
3) Enable	non-root	user	(optional)
4) Increase	base	image	size	(optional)
5) Start	and	enable	Docker	service
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Enable	OL7	addons repo
[root@localhost ~]# yum-config-manager --enable *addons
Loaded plugins: langpacks
============ repo: ol7_addons ============
[ol7_addons]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7Server
baseurl = http://public-yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/
...
...
...
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Enable	OL7	addons repo	- check
[root@localhost ~]# yum repolist
Loaded plugins: langpacks, ulninfo
repo id repo name status
ol7_UEKR4/x86_64 Latest Unbreakable Enterprise 544
ol7_addons/x86_64 Oracle Linux 7Server Add ons (x86_64) 251
ol7_latest/x86_64 Oracle Linux 7Server Latest (x86_64) 23,671
repolist: 24,466
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Install	docker-engine
[root@localhost ~]# yum install docker-engine
Loaded plugins: langpacks, ulninfo
--> Running transaction check
---> Package docker-engine.x86_64 0:17.06.2.ol-1.0.1.el7 will be installed
...
...
...
Running transaction
Installing :2:container-selinux-2.21-1.el7.noarch
Installing : docker-engine-17.06.2.ol-1.0.1.el7.x86_64
Verifying : docker-engine-17.06.2.ol-1.0.1.el7.x86_64
Verifying :2:container-selinux-2.21-1.el7.noarch
Installed:
docker-engine.x86_64 0:17.06.2.ol-1.0.1.el7
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Install	docker-engine	- check
[root@localhost ~]# docker version
Client:
Version: 17.06.2-ol
API version: 1.30
Go version: go1.8.3
Git commit: d02b7ab
Built: Fri Oct 6 00:02:23 2017
OS/Arch: linux/amd64
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the
docker daemon running?
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Enable	non-root	user	(optional)
[root@localhost ~]# id oracle
uid=1000(oracle) gid=1001(oracle) groups=1001(oracle),1000(dba)
[root@localhost ~]# usermod -a -G docker oracle
[root@localhost ~]# id oracle
uid=1000(oracle) gid=1001(oracle) groups=1001(oracle),1000(dba),981(docker)
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Increase	base	image	size	(optional)
[root@localhost ~]# cat /etc/sysconfig/docker-storage
# This file may be automatically generated by an installation program.
# By default, Docker uses a loopback-mounted sparse file in
# /var/lib/docker. The loopback makes it slower, and there are some
# restrictive defaults, such as 100GB max storage.
DOCKER_STORAGE_OPTIONS= --storage-driver devicemapper --storage-opt
dm.basesize=25G
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Start	and	enable	Docker	service
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-
user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Start	and	enable	Docker	service	- check
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor
preset: disabled)
Drop-In: /etc/systemd/system/docker.service.d
└─docker-sysconfig.conf
Active: active (running) since Mon 2018-01-15 21:21:22 EST; 49s ago
Docs: https://docs.docker.com
Main PID: 2013 (dockerd)
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Start	and	enable	Docker	service	- check
[root@localhost ~]# docker version
Client: Version: 17.06.2-ol
API version: 1.30
Go version: go1.8.3
Git commit: d02b7ab
Built: Fri Oct 6 00:02:23 2017
OS/Arch: linux/amd64
Server:
Version: 17.06.2-ol
API version: 1.30 (minimum version 1.12)
Go version: go1.8.3
Git commit: d02b7ab
Built: Fri Oct 6 00:03:48 2017
OS/Arch: linux/amd64
Experimental: false
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Program	Agenda
What	is	Docker
Installing	Docker
Building	an	Oracle	Database	Docker	image
Running	an	Oracle	Database	inside	Docker
Tips	and	Tricks
1
2
3
4
5
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Building	an	Oracle	Database	Docker	image
1) Download	GitHub	build	files
2) Download	Oracle	DB	Installer	zip	file
3) Run	image	build	script
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Download	GitHub	build	files
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Download	GitHub	build	files
[oracle@localhost docker]$ wget https://github.com/oracle/docker-
images/archive/master.zip
Length: unspecified [application/zip]
Saving to: ‘master.zip’
[oracle@localhost docker]$ unzip master.zip
[oracle@localhost OracleDatabase]$ cd docker-images-master/OracleDatabase/
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Download	Oracle	DB	Installer	zip	file
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Run	Image	build
[oracle@localhost ~]$ mv linuxx64_12201_database.zip docker/docker-images-
master/OracleDatabase/dockerfiles/12.2.0.1/
[oracle@localhost ~]$ cd docker/docker-images-
master/OracleDatabase/dockerfiles
[oracle@localhost dockerfiles]$ ./buildDockerImage.sh –e
Checking if required packages are present and valid...
linuxx64_12201_database.zip: OK
...
...
...
Successfully built 14e4a95bf3d3
Successfully tagged oracle/database:12.2.0.1-ee
Oracle Database Docker Image for 'ee' version 12.2.0.1 is ready to be
extended:
--> oracle/database:12.2.0.1-ee
Build completed in 896 seconds.
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Program	Agenda
What	is	Docker
Installing	Docker
Building	an	Oracle	Database	Docker	image
Running	an	Oracle	Database	inside	Docker
Tips	and	Tricks
1
2
3
4
5
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Running	an	Oracle	Database	inside	Docker
1) Simple
2) Reusable
3) Advanced
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Running	an	Oracle	Database	- simple
[oracle@localhost docker]$ docker run -p 1521:1521 oracle/database:12.2.0.1-ee
ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: PGWrXXpL3Us=1
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 19-JAN-2018 19:27:38
...
...
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
Completed: alter pluggable database ORCLPDB1 open
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Running	an	Oracle	Database	- reusable
[oracle@localhost ~]$ docker volume create oradata
oradata
[oracle@localhost ~]$ docker run --name oracle-ee -p 1521:1521 -v
oradata:/opt/oracle/oradata oracle/database:12.2.0.1-ee
ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: aUlBB4E0Rj4=1
...
...
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
Completed: alter pluggable database ORCLPDB1 open
[oracle@localhost ~]$ docker exec oracle-ee ./setPassword.sh LetsDocker
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
User altered.
SQL>
User altered.
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Running	an	Oracle	Database	- advanced
docker run --name <container name> 
-p <host port>:1521 -p <host port>:5500 
-e ORACLE_SID=<your SID> 
-e ORACLE_PDB=<your PDB name> 
-e ORACLE_PWD=<your database passwords> 
-e ORACLE_CHARACTERSET=<your character set> 
-v [<host mount point>:]/opt/oracle/oradata 
oracle/database:12.2.0.1-ee
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Program	Agenda
What	is	Docker
Installing	Docker
Building	an	Oracle	Database	Docker	image
Running	an	Oracle	Database	inside	Docker
Tips	and	Tricks
1
2
3
4
5
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Run	small Image	build	– requires	exper.	features
[root@localhost ~]# cat /etc/docker/daemon.json
{
"experimental": true
}
[root@localhost ~]# docker info
...
...
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: true
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Run	small Image	build	– requires	exper.	features
[oracle@localhost ~]$ mv linuxx64_12201_database.zip docker/docker-images-
master/OracleDatabase/dockerfiles/12.2.0.1/
[oracle@localhost ~]$ cd docker/docker-images-
master/OracleDatabase/dockerfiles
[oracle@localhost dockerfiles]$ ./buildDockerImage.sh –e –o --squash
Checking if required packages are present and valid...
linuxx64_12201_database.zip: OK
...
...
...
Successfully built 14e4a95bf3d3
Successfully tagged oracle/database:12.2.0.1-ee
Oracle Database Docker Image for 'ee' version 12.2.0.1 is ready to be
extended:
--> oracle/database:12.2.0.1-ee
Build completed in 896 seconds.
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Proxy	settings
[root@localhost ~]# cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://www-proxy.example.com:80”
[root@localhost ~]# cat /etc/systemd/system/docker.service.d/https-proxy.conf
[Service]
Environment="HTTPS_PROXY=https://www-proxy.example.com:80”
[root@localhost ~]# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 17
Http Proxy: http://www-proxy.example.com:80
Https Proxy: https://www-proxy.example.com:80
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
User	defined	passwords
[oracle@localhost ~]$ docker run --name <container name> 
-p <host port>:1521 -p <host port>:5500 
-e ORACLE_SID=<your SID> 
-e ORACLE_PDB=<your PDB name> 
-e ORACLE_PWD=<your database passwords> 
-e ORACLE_CHARACTERSET=<your character set> 
-v [<host mount point>:]/opt/oracle/oradata 
oracle/database:12.2.0.1-ee
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
User	defined	passwords
[oracle@localhost ~]$ docker run -p 1521:1521 
-e ORACLE_PWD=LetsDocker oracle/database:12.2.0.1-ee
ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: LetsDocker
gvenzl-mac:~ gvenzl$ sql sys/LetsDocker@//localhost:1521/ORCLCDB as sysdba
SQLcl: Release 17.2.0 Production on Sat Jan 20 13:16:47 2018
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Custom	SID	and	PDB	names
docker run --name <container name> 
-p <host port>:1521 -p <host port>:5500 
-e ORACLE_SID=<your SID> 
-e ORACLE_PDB=<your PDB name> 
-e ORACLE_PWD=<your database passwords> 
-e ORACLE_CHARACTERSET=<your character set> 
-v [<host mount point>:]/opt/oracle/oradata 
oracle/database:12.2.0.1-ee
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Custom	SID	and	PDB	names
[oracle@localhost ~]$ docker run 
--name gerald 
-p 1521:1521 
-e ORACLE_SID=GERALD 
-e ORACLE_PDB=GeraldPod1 
-v oradata:/opt/oracle/oradata oracle/database:12.2.0.1-ee
gvenzl-mac:~ gvenzl$ sql sys/OfgF4jjhB9U=1@//localhost:1521/GeraldPod1 as
sysdba
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
GERALD
Copyright	 ©	2017, Oracle	and/or	 its	affiliates.	 All	 rights	 reserved.	 	|
Passwords	reset
[oracle@localhost ~]$ docker exec -ti gerald ./setPassword.sh LetsDocker
SQL*Plus: Release 12.2.0.1.0 Production on Sat Jan 20 11:19:36 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
User altered.
SQL>
User altered.
SQL>
Session altered.
SQL>
User altered.
SQL> Disconnected from Oracle Database 12c Enterprise Edition Release
12.2.0.1.0 - 64bit Production
Copyright	©	2017	Oracle	and/or	its	affiliates.	All	 rights	reserved.		|
Dockerizing
Oracle Database

More Related Content

What's hot

Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Continuent
 

What's hot (20)

Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
 
Automating Your Clone in E-Business Suite R12.2
Automating Your Clone in E-Business Suite R12.2Automating Your Clone in E-Business Suite R12.2
Automating Your Clone in E-Business Suite R12.2
 
Pass Summit Linux Scripting for the Microsoft Professional
Pass Summit Linux Scripting for the Microsoft ProfessionalPass Summit Linux Scripting for the Microsoft Professional
Pass Summit Linux Scripting for the Microsoft Professional
 
MySQL Shell: The DevOps Tool for MySQL
MySQL Shell: The DevOps Tool for MySQLMySQL Shell: The DevOps Tool for MySQL
MySQL Shell: The DevOps Tool for MySQL
 
Best Practices - PHP and the Oracle Database
Best Practices - PHP and the Oracle DatabaseBest Practices - PHP and the Oracle Database
Best Practices - PHP and the Oracle Database
 
MySQL Enterprise Backup apr 2016
MySQL Enterprise Backup apr 2016MySQL Enterprise Backup apr 2016
MySQL Enterprise Backup apr 2016
 
Oracle Database Cloud Service
Oracle Database Cloud ServiceOracle Database Cloud Service
Oracle Database Cloud Service
 
Using MySQL Containers
Using MySQL ContainersUsing MySQL Containers
Using MySQL Containers
 
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript Developers
 
No more Big Data Hacking—Time for a Complete ETL Solution with Oracle Data In...
No more Big Data Hacking—Time for a Complete ETL Solution with Oracle Data In...No more Big Data Hacking—Time for a Complete ETL Solution with Oracle Data In...
No more Big Data Hacking—Time for a Complete ETL Solution with Oracle Data In...
 
Java 11 OMG
Java 11 OMGJava 11 OMG
Java 11 OMG
 
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
 
Camel Riders in the Cloud
Camel Riders in the CloudCamel Riders in the Cloud
Camel Riders in the Cloud
 
DEVNET-2002 Coding 201: Coding Skills 201: Going Further with REST and Python...
DEVNET-2002	Coding 201: Coding Skills 201: Going Further with REST and Python...DEVNET-2002	Coding 201: Coding Skills 201: Going Further with REST and Python...
DEVNET-2002 Coding 201: Coding Skills 201: Going Further with REST and Python...
 
Melbourne Chef Meetup: Automating Azure Compliance with InSpec
Melbourne Chef Meetup: Automating Azure Compliance with InSpecMelbourne Chef Meetup: Automating Azure Compliance with InSpec
Melbourne Chef Meetup: Automating Azure Compliance with InSpec
 
Ow
OwOw
Ow
 
Managing Oracle Solaris Systems with Puppet
Managing Oracle Solaris Systems with PuppetManaging Oracle Solaris Systems with Puppet
Managing Oracle Solaris Systems with Puppet
 
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
 

Similar to Dockerizing Oracle Database

IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM France Lab
 

Similar to Dockerizing Oracle Database (20)

Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey Boxell
 
DevOps Supercharged with Docker on Exadata
DevOps Supercharged with Docker on ExadataDevOps Supercharged with Docker on Exadata
DevOps Supercharged with Docker on Exadata
 
Oracle Database 18c Docker.pdf
Oracle Database 18c Docker.pdfOracle Database 18c Docker.pdf
Oracle Database 18c Docker.pdf
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
 
Docker handons-workshop-for-charity
Docker handons-workshop-for-charityDocker handons-workshop-for-charity
Docker handons-workshop-for-charity
 
Michigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFMichigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOF
 
Multi Stage Docker Build
Multi Stage Docker Build Multi Stage Docker Build
Multi Stage Docker Build
 
Core os dna_automacon
Core os dna_automaconCore os dna_automacon
Core os dna_automacon
 
There's More to Docker than the Container: The Docker Platform - Kendrick Col...
There's More to Docker than the Container: The Docker Platform - Kendrick Col...There's More to Docker than the Container: The Docker Platform - Kendrick Col...
There's More to Docker than the Container: The Docker Platform - Kendrick Col...
 
Oracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with DockerOracle WebLogic Server 12c with Docker
Oracle WebLogic Server 12c with Docker
 
Faster and Easier Software Development using Docker Platform
Faster and Easier Software Development using Docker PlatformFaster and Easier Software Development using Docker Platform
Faster and Easier Software Development using Docker Platform
 
Oracle database on Docker Container
Oracle database on Docker ContainerOracle database on Docker Container
Oracle database on Docker Container
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Core os dna_oscon
Core os dna_osconCore os dna_oscon
Core os dna_oscon
 
Java in a world of containers
Java in a world of containersJava in a world of containers
Java in a world of containers
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
 
Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo...
 Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo... Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo...
Intro to Docker Containers and the Oracle Platform – Database, WebLogic &Clo...
 
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with Docker
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 

Dockerizing Oracle Database

  • 2. Gerald Venzl Senior Principal Product Manager Oracle Database Development Twitter: @GeraldVenzl
  • 4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda What is Docker Installing Docker Building an Oracle Database Docker image Running an Oracle Database inside Docker Tips and Tricks 1 2 3 4 5
  • 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda What is Docker Installing Docker Building an Oracle Database Docker image Running an Oracle Database inside Docker Tips and Tricks 1 2 3 4 5
  • 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | What is Docker? • A software container platform • Originated from Linux / Linux Containers – Also available on Windows and Mac OS X • Part of the Linux Open Container Initiative (OCI) – Part of Open Source Linux • Editions: – Commercial Edition (EE) – Sold by Docker Corp – Community Edition (CE) – Part of Open Source Linux
  • 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | What is Docker? • docker-engine: The engine running containers • Images: Collection of software to be run as a container • Containers: A container on the Linux host • Registry: Place to store and download images • Volumes: Place to persist data outside the container Terminology
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Docker Key Components Source: https://docs.docker.com/engine/docker-overview/ • Registry • Images • Containers • Docker daemon/engine
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Docker Key Components - Volumes Source: https://docs.docker.com/engine/docker-overview/ • Registry • Images • Containers • Docker daemon/engine
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | What is Docker? • Containers are non-persistent – Once a container is deleted, all files inside that container are gone Concepts
  • 11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | What is Docker? • Containers are non-persistent – Once a container is deleted, all files inside that container are gone • Images are immutable – Changes to an image require to build a new image – Data to be persisted has to be stored in volumes Concepts
  • 12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | What is Docker? • Containers are non-persistent – Once a container is deleted, all files inside that container are gone • Images are immutable – Changes to an image require to build a new image – Data to be persisted has to be stored in volumes • Containers are spun up from images Concepts
  • 13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why is Docker cool? • Abstracts virtual environment (container) creation into simple steps: – docker create … – docker run … – docker rm … • Runs directly on the Linux kernel (cgroups) – Avoids the hypervisor overhead
  • 14. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why is Docker cool? • Abstracts virtual environment (container) creation into simple steps: – docker create … – docker run … – docker rm … • Runs directly on the Linux kernel (cgroups) – Avoids the hypervisor overhead
  • 15. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why is Docker actually cool?
  • 16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why is Docker actually cool? • Allows abstraction of environments into images
  • 17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why is Docker actually cool? • Allows abstraction of environments into images • Allows creation of hierarchical images
  • 18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why is Docker actually cool? • Allows abstraction of environments into images • Allows creation of hierarchical images
  • 19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why is Docker actually cool? • Allows abstraction of environments into images • Allows creation of hierarchical images • Supports multi-layered image registries
  • 20. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Oracle CDB architecture & Docker architecture Same concept applied on DB and OS level App B App CApp A App A App B App C
  • 21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Oracle Database on Docker • Oracle Database is fully supported on Docker – Oracle Linux 7 - UEK 4 – Red Hat Enterprise Linux 7 • Oracle images on Oracle Container Registry & Docker Store • Docker build files on GitHub • RAC is not yet supported
  • 22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Oracle Database on Docker • Docker container contains single-PDB CDB (no MTO license required) • PDB can be plugged, unplugged, etc. • PDB can move bi-directional
  • 23. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda What is Docker Installing Docker Building an Oracle Database Docker image Running an Oracle Database inside Docker Tips and Tricks 1 2 3 4 5
  • 24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Installing Docker 1) Enable OL7 addons repo 2) Install docker-engine 3) Enable non-root user (optional) 4) Increase base image size (optional) 5) Start and enable Docker service
  • 25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Enable OL7 addons repo [root@localhost ~]# yum-config-manager --enable *addons Loaded plugins: langpacks ============ repo: ol7_addons ============ [ol7_addons] async = True bandwidth = 0 base_persistdir = /var/lib/yum/repos/x86_64/7Server baseurl = http://public-yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/ ... ... ...
  • 26. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Enable OL7 addons repo - check [root@localhost ~]# yum repolist Loaded plugins: langpacks, ulninfo repo id repo name status ol7_UEKR4/x86_64 Latest Unbreakable Enterprise 544 ol7_addons/x86_64 Oracle Linux 7Server Add ons (x86_64) 251 ol7_latest/x86_64 Oracle Linux 7Server Latest (x86_64) 23,671 repolist: 24,466
  • 27. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Install docker-engine [root@localhost ~]# yum install docker-engine Loaded plugins: langpacks, ulninfo --> Running transaction check ---> Package docker-engine.x86_64 0:17.06.2.ol-1.0.1.el7 will be installed ... ... ... Running transaction Installing :2:container-selinux-2.21-1.el7.noarch Installing : docker-engine-17.06.2.ol-1.0.1.el7.x86_64 Verifying : docker-engine-17.06.2.ol-1.0.1.el7.x86_64 Verifying :2:container-selinux-2.21-1.el7.noarch Installed: docker-engine.x86_64 0:17.06.2.ol-1.0.1.el7
  • 28. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Install docker-engine - check [root@localhost ~]# docker version Client: Version: 17.06.2-ol API version: 1.30 Go version: go1.8.3 Git commit: d02b7ab Built: Fri Oct 6 00:02:23 2017 OS/Arch: linux/amd64 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
  • 29. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Enable non-root user (optional) [root@localhost ~]# id oracle uid=1000(oracle) gid=1001(oracle) groups=1001(oracle),1000(dba) [root@localhost ~]# usermod -a -G docker oracle [root@localhost ~]# id oracle uid=1000(oracle) gid=1001(oracle) groups=1001(oracle),1000(dba),981(docker)
  • 30. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Increase base image size (optional) [root@localhost ~]# cat /etc/sysconfig/docker-storage # This file may be automatically generated by an installation program. # By default, Docker uses a loopback-mounted sparse file in # /var/lib/docker. The loopback makes it slower, and there are some # restrictive defaults, such as 100GB max storage. DOCKER_STORAGE_OPTIONS= --storage-driver devicemapper --storage-opt dm.basesize=25G
  • 31. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Start and enable Docker service [root@localhost ~]# systemctl start docker [root@localhost ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi- user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
  • 32. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Start and enable Docker service - check [root@localhost ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/docker.service.d └─docker-sysconfig.conf Active: active (running) since Mon 2018-01-15 21:21:22 EST; 49s ago Docs: https://docs.docker.com Main PID: 2013 (dockerd)
  • 33. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Start and enable Docker service - check [root@localhost ~]# docker version Client: Version: 17.06.2-ol API version: 1.30 Go version: go1.8.3 Git commit: d02b7ab Built: Fri Oct 6 00:02:23 2017 OS/Arch: linux/amd64 Server: Version: 17.06.2-ol API version: 1.30 (minimum version 1.12) Go version: go1.8.3 Git commit: d02b7ab Built: Fri Oct 6 00:03:48 2017 OS/Arch: linux/amd64 Experimental: false
  • 34. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda What is Docker Installing Docker Building an Oracle Database Docker image Running an Oracle Database inside Docker Tips and Tricks 1 2 3 4 5
  • 35. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Building an Oracle Database Docker image 1) Download GitHub build files 2) Download Oracle DB Installer zip file 3) Run image build script
  • 36. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Download GitHub build files
  • 37. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Download GitHub build files [oracle@localhost docker]$ wget https://github.com/oracle/docker- images/archive/master.zip Length: unspecified [application/zip] Saving to: ‘master.zip’ [oracle@localhost docker]$ unzip master.zip [oracle@localhost OracleDatabase]$ cd docker-images-master/OracleDatabase/
  • 38. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Download Oracle DB Installer zip file
  • 39. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Run Image build [oracle@localhost ~]$ mv linuxx64_12201_database.zip docker/docker-images- master/OracleDatabase/dockerfiles/12.2.0.1/ [oracle@localhost ~]$ cd docker/docker-images- master/OracleDatabase/dockerfiles [oracle@localhost dockerfiles]$ ./buildDockerImage.sh –e Checking if required packages are present and valid... linuxx64_12201_database.zip: OK ... ... ... Successfully built 14e4a95bf3d3 Successfully tagged oracle/database:12.2.0.1-ee Oracle Database Docker Image for 'ee' version 12.2.0.1 is ready to be extended: --> oracle/database:12.2.0.1-ee Build completed in 896 seconds.
  • 40. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda What is Docker Installing Docker Building an Oracle Database Docker image Running an Oracle Database inside Docker Tips and Tricks 1 2 3 4 5
  • 41. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Running an Oracle Database inside Docker 1) Simple 2) Reusable 3) Advanced
  • 42. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Running an Oracle Database - simple [oracle@localhost docker]$ docker run -p 1521:1521 oracle/database:12.2.0.1-ee ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: PGWrXXpL3Us=1 LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 19-JAN-2018 19:27:38 ... ... ######################### DATABASE IS READY TO USE! ######################### The following output is now a tail of the alert.log: Completed: alter pluggable database ORCLPDB1 open
  • 43. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Running an Oracle Database - reusable [oracle@localhost ~]$ docker volume create oradata oradata [oracle@localhost ~]$ docker run --name oracle-ee -p 1521:1521 -v oradata:/opt/oracle/oradata oracle/database:12.2.0.1-ee ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: aUlBB4E0Rj4=1 ... ... ######################### DATABASE IS READY TO USE! ######################### The following output is now a tail of the alert.log: Completed: alter pluggable database ORCLPDB1 open [oracle@localhost ~]$ docker exec oracle-ee ./setPassword.sh LetsDocker Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> User altered. SQL> User altered.
  • 44. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Running an Oracle Database - advanced docker run --name <container name> -p <host port>:1521 -p <host port>:5500 -e ORACLE_SID=<your SID> -e ORACLE_PDB=<your PDB name> -e ORACLE_PWD=<your database passwords> -e ORACLE_CHARACTERSET=<your character set> -v [<host mount point>:]/opt/oracle/oradata oracle/database:12.2.0.1-ee
  • 45. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda What is Docker Installing Docker Building an Oracle Database Docker image Running an Oracle Database inside Docker Tips and Tricks 1 2 3 4 5
  • 46. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Run small Image build – requires exper. features [root@localhost ~]# cat /etc/docker/daemon.json { "experimental": true } [root@localhost ~]# docker info ... ... Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ Experimental: true
  • 47. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Run small Image build – requires exper. features [oracle@localhost ~]$ mv linuxx64_12201_database.zip docker/docker-images- master/OracleDatabase/dockerfiles/12.2.0.1/ [oracle@localhost ~]$ cd docker/docker-images- master/OracleDatabase/dockerfiles [oracle@localhost dockerfiles]$ ./buildDockerImage.sh –e –o --squash Checking if required packages are present and valid... linuxx64_12201_database.zip: OK ... ... ... Successfully built 14e4a95bf3d3 Successfully tagged oracle/database:12.2.0.1-ee Oracle Database Docker Image for 'ee' version 12.2.0.1 is ready to be extended: --> oracle/database:12.2.0.1-ee Build completed in 896 seconds.
  • 48. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Proxy settings [root@localhost ~]# cat /etc/systemd/system/docker.service.d/http-proxy.conf [Service] Environment="HTTP_PROXY=http://www-proxy.example.com:80” [root@localhost ~]# cat /etc/systemd/system/docker.service.d/https-proxy.conf [Service] Environment="HTTPS_PROXY=https://www-proxy.example.com:80” [root@localhost ~]# docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 17 Http Proxy: http://www-proxy.example.com:80 Https Proxy: https://www-proxy.example.com:80
  • 49. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | User defined passwords [oracle@localhost ~]$ docker run --name <container name> -p <host port>:1521 -p <host port>:5500 -e ORACLE_SID=<your SID> -e ORACLE_PDB=<your PDB name> -e ORACLE_PWD=<your database passwords> -e ORACLE_CHARACTERSET=<your character set> -v [<host mount point>:]/opt/oracle/oradata oracle/database:12.2.0.1-ee
  • 50. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | User defined passwords [oracle@localhost ~]$ docker run -p 1521:1521 -e ORACLE_PWD=LetsDocker oracle/database:12.2.0.1-ee ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: LetsDocker gvenzl-mac:~ gvenzl$ sql sys/LetsDocker@//localhost:1521/ORCLCDB as sysdba SQLcl: Release 17.2.0 Production on Sat Jan 20 13:16:47 2018 Copyright (c) 1982, 2018, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
  • 51. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Custom SID and PDB names docker run --name <container name> -p <host port>:1521 -p <host port>:5500 -e ORACLE_SID=<your SID> -e ORACLE_PDB=<your PDB name> -e ORACLE_PWD=<your database passwords> -e ORACLE_CHARACTERSET=<your character set> -v [<host mount point>:]/opt/oracle/oradata oracle/database:12.2.0.1-ee
  • 52. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Custom SID and PDB names [oracle@localhost ~]$ docker run --name gerald -p 1521:1521 -e ORACLE_SID=GERALD -e ORACLE_PDB=GeraldPod1 -v oradata:/opt/oracle/oradata oracle/database:12.2.0.1-ee gvenzl-mac:~ gvenzl$ sql sys/OfgF4jjhB9U=1@//localhost:1521/GeraldPod1 as sysdba SQL> select instance_name from v$instance; INSTANCE_NAME ---------------- GERALD
  • 53. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Passwords reset [oracle@localhost ~]$ docker exec -ti gerald ./setPassword.sh LetsDocker SQL*Plus: Release 12.2.0.1.0 Production on Sat Jan 20 11:19:36 2018 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> User altered. SQL> User altered. SQL> Session altered. SQL> User altered. SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production