How does a managed container differ from a remote container?

A managed container is simply a remote container that also includes lifecycle management (start and stop). Unlike an embedded container, however, the container process is not started in the same JVM as the test runner, but rather as a separate process. Once the container is up and running, it behaves just like a remote container. That means Arquillian interacts with it over a remote protocol, such as HTTP.

 

The managed container is most useful in a continuous integration environment. You want to be able to test on a full container, but you can't be certain it will already be running on the server. The managed Arquillian container can take care of booting the container before the tests are executed and shutting it down afterwards.