  Docker is a containerization service that allows for convenient deployment of
websites, databases, applications' APIs, and machine learning (ML) models with
a few lines of code. Studies have recently explored the use of Docker for
deploying general software projects with no specific focus on how Docker is
used to deploy ML-based projects.
  In this study, we conducted an exploratory study to understand how Docker is
being used to deploy ML-based projects. As the initial step, we examined the
categories of ML-based projects that use Docker. We then examined why and how
these projects use Docker, and the characteristics of the resulting Docker
images. Our results indicate that six categories of ML-based projects use
Docker for deployment, including ML Applications, MLOps/ AIOps, Toolkits, DL
Frameworks, Models, and Documentation. We derived the taxonomy of 21 major
categories representing the purposes of using Docker, including those specific
to models such as model management tasks (e.g., testing, training). We then
showed that ML engineers use Docker images mostly to help with the platform
portability, such as transferring the software across the operating systems,
runtimes such as GPU, and language constraints. However, we also found that
more resources may be required to run the Docker images for building ML-based
software projects due to the large number of files contained in the image
layers with deeply nested directories. We hope to shed light on the emerging
practices of deploying ML software projects using containers and highlight
aspects that should be improved.
