  Science reproducibility is a cornerstone feature in scientific workflows. In
most cases, this has been implemented as a way to exactly reproduce the
computational steps taken to reach the final results. While these steps are
often completely described, including the input parameters, datasets, and
codes, the environment in which these steps are executed is only described at a
higher level with endpoints and operating system name and versions. Though this
may be sufficient for reproducibility in the short term, systems evolve and are
replaced over time, breaking the underlying workflow reproducibility. A natural
solution to this problem is containers, as they are well defined, have a
lifetime independent of the underlying system, and can be user-controlled so
that they can provide custom environments if needed. This paper highlights some
unique challenges that may arise when using containers in distributed
scientific workflows. Further, this paper explores how the Pegasus Workflow
Management System implements container support to address such challenges.
