When thinking about migrating applications into containers, there are three main high-level strategies: lift and shift, augment, and rewrite.1
No matter which method you choose, it is important to recognize that most software was designed and written before modern, image-based containers were invented.2
Even if you choose the “lift and shift” method, where you might run a monolithic application inside a single container, it is likely that your application will need to be modified. To successfully move to containers, you will need a solid migration strategy that takes into account the needs of your applications and the nature of Linux® containers.
This document will outline specific, technical recommendations and guidelines for migrating software into containers, ranging from image build procedures to how they should run in production. The application requirements will dictate how the application should be migrated.