You can deploy multiple containers (pods). Each pod run be exposed at different ports. Pods are not directly exposed to other pods for communications (it is exposed by Services in Kubernetes).
For your case, there would be two services one for java app and one for oracle db. There can be multiple pods running inside each service (for better horizontal scalability).
I would recommend to check on k8s from kubernetes official website. In order for deployment of k8s manifests, there are multiple options including using yaml's files directly or using helm packages.
In production, I would suggest using helm packages for managing manifests.
Hope this helps.
Please 'Accept as answer' if the provided information is helpful, so that it can help others in the community looking for help on similar topics.