Oracle containers and data

Oracle containers are available in docker. The base image for Oracle is Oracle Linux and versions from Oracle 11 onwards are available in docker containers.

Oracle containers can be configured with environment variables for Oracle version number, edition, Sid, pdb names, host port, container port, and archive logging.

To run Oracle in Kubernetes, first download the Oracle installer zip file, build an Oracle image and push the image into a docker image registry. Then create a Kubernetes cluster, the deployment yaml file with the image set to the one you built and service yaml file. Then use Helm or kubectl to make the Kubernetes deployment. This will result in Oracle running in Kubernetes pods.

Data in Oracle containers

If your use case involves testing, development, reporting, support, ML or devops, typically you need multiple copies of writeable production data. A solution like Windocks instantaneously clones production data and delivers the clones into Oracle containers. Windocks orchestration co-ordinates masking of sensitive information, access controls and attaching data to the Oracle service running in the container.

If your production data is already on proprietary storage (such as NetApp, Pure, Cohesity, etc), Windocks orchestration instruments your storage service to clone the databases and deliver the clones into Oracle containers.

Steps to start with Oracle containers

1. Install Windocks Download the Windocks Community Edition or email for a full featured evaluation edition. Provision a Windows Server VM (Server 2016, 2019, or 2022), install SQL Server (for SQL database delivery) and then install Windocks as described here. For Oracle database delivery, also install the Windocks service for Linux as described here
2. Get the backup or Oradata files ready Prove a database script or bash shell script that restores an RMAN backup or provide the Oradata files on a mount point in the Windocks Linux server and provide read / write permissions to the machine running Windocks
3. Provide the spec to the Windocks orchestrator to build the image

Specify the path to a script that restores Oracle RMAN backups, or the path to Oracle oradata files, and any other SQL scripts to run. Provide the spec in the form of a dockerfile and build the image via a web application, command line or REST API.

Tutorial to build image from spec

4. Deliver Oracle containers with customized database clones From the image, deliver database clones to containers or instances. The image you built defines where the databases are delivered to. You may define an image that delivers containers with clones as well as clones to instances. To deliver containers and clones, use the web application or use the docker command line or the REST API.
5. Use the writeable clones in containers Database clones are delivered either to containers or instances based on the image you built. If you delivered to an instance, then connect to that instance for the database clone. Clones are writeable. Containers are delivered on the machine running Windocks on specified ports. Access these containers with regular database tools or command lines or connection strings.

SQL Server containers are accessed with SQL Management Studio or Azure Data Studio or SQLCMD. Connect with the instance name (such as INSTANCE10002 when the container port is 10002). Or you can use the form IPAddressOfWindocksServer,10002 to connect to the SQL container running on port 10002.

Oracle containers are accessed with SQLPlus, RMAN or UI tools for Oracle. You may put in entries in tnsnames.ora for the containers as you would for Oracle instances. With SQLPlus or RMAN, use the form SQLPLUS sys/password@IPAddressOfWindocksLinuxServer:HostPort/orclcdb as sysdba

Explore topics