instruction: Create a Dockerfile for Nginx with production best practices
output: ```dockerfile
  from overlapping, and if multiple controllers have overlapping selectors those controllers might conflict and behave unexpectedly.
  
  Pod-template-hash label
  
  Caution: Do not change this label.
  
  The pod-template-hash label is added by the Deployment controller to every ReplicaSet that a Deployment creates or adopts.
  This label ensures that child ReplicaSets of a Deployment do not overlap. It is generated by hashing the PodTemplate of the ReplicaSet and using the resulting hash as the label value that is added to the ReplicaSet selector, Pod template labels,
  and in any existing Pods that the ReplicaSet might have.
  Updating a Deployment
  
  Note: A Deployment's rollout is triggered if and only if the Deployment's Pod template (that is, .spec.template)
  is changed, for example if the labels or container images of the template are updated. Other updates, such as scaling the Deployment, do not trigger a rollout.
  
  Follow the steps given below to update your Deployment:
  
  Let's update the nginx Pods to use the nginx:1.16.1 image instead of the nginx:1.14.2 image.
  kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.16.1
  or use the following command:
  kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1
  where deployment/nginx-deployment indicates the Deployment,
  nginx indicates the Container the update will take place and
  nginx:1.16.1 indicates the new image and its tag.
  The output is similar to:
  deployment.apps/nginx-deployment image updated
  Alternatively, you can edit the Deployment and change .spec.template.spec.containers[0].image
  ```