A profile is a named list of artifacts and configuration. A container is a JVM that you can install artifacts on by assigning a profile to it. Lets say you have a profile that lists all the bundles needed to run your applications backend. Now you can start 3 containers and assign the backend profile to all three containers to have them all run seperate instances of the same backend.
Hope that makes it a little more clear.