Last updated February 23, 2018

One of the biggest questions when first learning Docker is "How do we get data into and out of containers?" We can use docker-compose exec to interact with them on the command line, but that doesn't fulfill our needs as developers. Docker provides several mechanisms to share data with the container, each with specific purposes. Docker Compose lets us leverage each of those easily with just a few lines of YAML.

In this tutorial, we'll:

  • Identify the various ways we can get data into containers
  • Define volumes
  • Describe how to use environment variables in Docker
  • Describe how to expose network ports from a container set