This paper considers the problem of loading containers with cartons of non-uniform size and presents an analytical model to capture the mathematical essence of the problem. The container loading problem is formulated as a zero-one mixed integer programming model. It includes the consideration of multiple containers, multiple carton sizes, carton orientations, and the overlapping of cartons in a container. This model is then extended to formulate some special container loading problems. Numerical examples are used to validate the model.