А для чего обеспечивать глобальный доступ к контейнеру? Можно юзать инъекцию в конструктор?! Правда, если зависимостей много, то конструктор разрастается (у каждой реализации есть свои минусы), зато нет проблем с тестируемостью (и у каждой есть плюсы).
У синглтона больше проблем, чем плюсов. Если всё же синглтон, то посмотрите в сторону Ambient Context реализации
Вообще многое зависит от окружения, реализации и т.п.
Статья по теме
habrahabr.ru/post/62830