Abraham Jaison
Abraham Jaison

Reputation: 519

Connecting an Oracle DB Container and a Java application Container (Docker)

I am now working on a docker project with two docker containers - one for the oracle db and the other with a java application.

The container for oracle db is working ok. I used the already built image for oracle and created my tablespaces and users in it.

Commands I used to pull and use the oracle db container is as given below:

docker pull wnameless/oracle-xe-11g

docker run -d -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g

Now I have my own Java application that interacts with the oracle db and I run it using the command given below:

docker run -it --name mypgm myrepo/oracletesting

It runs an interactive java program that asks for the Oracle DB details and allows users to interact with the DB.

However I could not figure out how I have to specify details such as Driver Name, Connection URL, Username, and Password

The values I gave are as given below:

Driver Name: oracle.jdbc.OracleDriver Connection URL:jdbc:oracle:thin:@localhost:1521:orcl11g Username: imtheuser Password: **********

I dont know whats going wrong where but its not working. I tried giving different inputs for Connection URL after inspecting the docker container ip address as well:

Connection URL: jdbc:oracle:thin:@172.17.0.2:1521:orcl11g

Am I giving the Connection URL and/or the port number correct? Can someone help me out to correctly connect these two containers and to get the project moving?

Thanks for your kind help..

Upvotes: 2

Views: 3197

Answers (2)

Benno
Benno

Reputation: 11

You have to link the containers. The oracle container should have a name.

try the following:

    docker network create my-network # Create a network for containers
    docker run -d -p 49160:22 -p 49161:1521 --network my-network --name oracle-db -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g
    docker run -it --network my-network --name mypgm myrepo/oracletesting

Use as connection url to following string jdbc:oracle:thin:@oracle-db:1521:orcl11g

Upvotes: 1

Tony Thian
Tony Thian

Reputation: 79

You can use a domain name in oracle connection string: oracle.dbhost.com, and use a --addhost oracle.dbhost.com:[ip address] when running your app in docker, or configure a dns to resolve the domain name.

Upvotes: 0

Related Questions