Existing approaches to scale CPU quota in container clouds lack a consideration of the gap between the promised quota and actually obtainable amount of CPU resources. However, this gap is noticeable with Completely Fair Scheduler (CFS), which is used in Linux kernel to allocate time slices to threads. CFS shares cores among containers regardless of their quotas, causing containers with more threads to exhaust their quotas earlier due to parallel execution across multiple cores. This leaves these cores idle but unavailable for containers with no threads on them, resulting in insufficient CPU time for those containers. As a result, the execution of tasks in these containers becomes slower, potentially exceeding their deadlines and incurring penalty costs. In this paper, we propose a joint optimization approach for CPU scaling and core sharing, which uses Particle Swarm Optimization (PSO) algorithm to iteratively make decisions with the goal of minimizing penalty costs for missing deadlines. In each iteration, a core sharing scheme that aims at reducing idle CPU time will be determined based on the candidate scaling plan represented by each particle’s position. By considering the impact of following periods, we evaluate the penalty costs incurred by the interdependent scaling and core sharing decisions based on the obtainable CPU time for each container, which drives the co-optimization of both aspects of the decisions. The experimental results in a real environment show the proposed approach achieves state-of-the-art performance.