Previously the checks and global resource allocation all happen in one place, this commit
move out the checks that does not require resource allocation. This allows us to warn the
user ahead of time about potentially risky container creation without restore allocated
resources.