Containers are just processes with flags. Those flags isolate the process's filesystem, memory [1], etc.
The advantages of containers is that the software dependencies can be unique per container and not conflict with others. There are no significant disadvantages.
Without containers, if software A has the same dependency as software B but need different versions of that dependency, you'll have issues.
[1] These all depend on how the containers are configured. These are not hard isolation but better than just running on the bare OS.