Containerization became indispensable in distributed environments for packaging software and dependencies in a lightweight executable container. In the era of big data and availability of cloud infrastructure, it is more so as distributed applications are more resource and data-intensive. Such High Performance Computing (HPC) applications are deployed in containerized services. However, data-intensive nature of those applications lead to poor performance unless scheduler considers it. In this paper, not only load balancing of containers but also performance of underlying applications is considered. Towards this end, a scheduling algorithm with unified optimization considering load balancing and also application performance is proposed. This algorithm, named Contention-aware Greedy Heuristic Scheduling and Load Balancing for Containers (CGHSLBC), helps in improving performance of containerization in distributed environments. Problems associated with containerization in terms of balancing load and also application performance are NP-hard. CGHSLBC has heuristics to deal with such issues. Empirical study has revealed that CGHSLBC better application performance besides balancing load of containerized services in cloud infrastructure. We also proposed a learning based methodology to schedule and balance load for containers. It is based on Deep Reinforcement Learning (DRL) where state change is continuously monitored while making well informed scheduling decisions. An algorithm named Reinforcement Learning based Dynamic Scheduling (RLbDS) is proposed and empirical study has revealed that it shows better performance over state of the art methods.