instruction: Create a Dockerfile for Python with production best practices
output: ```dockerfile
  from one to another. When
  containers are linked, information about a source container can be sent to a
  recipient container. This allows the recipient to see selected data describing
  aspects of the source container.The importance of namingTo establish links, Docker relies on the names of your containers.
  You've already seen that each container you create has an automatically
  created name; indeed you've become familiar with our old friend
  nostalgic_morse during this guide. You can also name containers
  yourself. This naming provides two useful functions:It can be useful to name containers that do specific functions in a way
  that makes it easier for you to remember them, for example naming a
  container containing a web application web.It provides Docker with a reference point that allows it to refer to other
  containers, for example, you can specify to link the container web to container db.You can name your container by using the --name flag, for example:
  
  $ docker run -d -P --name web training/webapp python app.py
  This launches a new container and uses the --name flag to
  name the container web. You can see the container's name using the
  docker ps command.
  
  $ docker ps -l
  
  CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  aed84ee21bde training/webapp:latest python app.py 12 hours ago Up 2 seconds 0.0.0.0:49154->5000/tcp web
  You can also use docker inspect to return the container's name.
  NoteContainer names must be unique. That means you can only call
  one container web. If you want to re-use a container name you must delete
  the old container (with docker container rm) before you can create a new
  container with the same name. As an alternative you can use the --rm
  flag with the docker run command. This deletes the container
  immediately after it is stopped.Communication across linksLinks allow containers to discover each other and securely transfer information
  about one container to another container. When you set up a link, you create a
  conduit between a source container and a recipient container. The recipient can
  then access select data about the source. To create a link, you use the --link
  flag. First, create a new container, this time one containing a database.
  
  $ docker run -d --name db training/postgres
  This creates a new container called db
  ```