The "web" cache container is referenced by the distributable-web subsystem. This is used to support <distributable/> web applications. When using a non-HA profile, this is used to provide passivation support for HttpSessions.
The "ejb" cache container is referenced by the distributable-ejb subsystem. This is used to provide passivation support for SFSBs.
The "server" cache container is referenced by the singleton subsystem. This is used by singleton deployments and singleton MSC services - though when using a non-HA profile, a singleton deployment behaves like a normal deployment, and a singleton MSC service behaves like a normal MSC service.
You are free to remove anything that you don't need.