Reproducible computing environments are required for reproducible analysis and are also useful for interactive exploratory analysis. In the past, scientific computing environments have been managed with package managers or with virtual machines. More recently, modern workflow managers have incorporated linux container technology to improve reproducibility. These existing solutions solve some of the challenges of managing reproducible computing environments, but they remain limited: System-wide environments and native package managers lack the portability, efficiency, and robustness of modern containers, while container-aware workflows are specialized and incapable of interactive computing. Here, I introduce *bulker*, an approach that combines the advantages of virtual machines, native package managers, and container-aware workflow managers. Bulker creates and distributes complete environments, like virtual machines, but with re-usable modular components, like a native package manager. It uses individually containerized tools like a container-aware workflow manager, but also allows these environments to be activated interactively and distributed independently of a particular workflow. Bulker is thus a more general approach to portable and reproducible computing environments.