instruction: Create a Dockerfile for fundamentals
output: ```dockerfile
  from mount points nested within any of the original or replica mount points.rprivateThe default. The same as private, meaning that no mount points anywhere within the original or replica mount points propagate in either direction.Before you can set bind propagation on a mount point, the host filesystem needs
  to already support bind propagation.For more information about bind propagation, see the
  Linux kernel documentation for shared subtree.The following example mounts the target/ directory into the container twice,
  and the second mount sets both the ro option and the rslave bind propagation
  option.The --mount and -v examples have the same result.
  --mount
  
  -v
  
  $ docker run -d \
   -it \
   --name devtest \
   --mount type=bind,source="$(pwd)"/target,target=/app \
   --mount type=bind,source="$(pwd)"/target,target=/app2,readonly,bind-propagation=rslave \
   nginx:latest
  
  $ docker run -d \
   -it \
   --name devtest \
   -v "$(pwd)"/target:/app \
   -v "$(pwd)"/target:/app2:ro,rslave \
   nginx:latest
  Now if you create /app/foo/, /app2/foo/ also exists.Configure the SELinux labelIf you use SELinux, you can add the z or Z options to modify the SELinux
  label of the host file or directory being mounted into the container. This
  affects the file or directory on the host machine itself and can have
  consequences outside of the scope of Docker.The z option indicates that the bind mount content is shared among multiple
  containers.The Z option indicates that the bind mount content is private and unshared.Use extreme caution with these options. Bind-mounting a system directory
  such as /home or /usr with the Z option renders your host machine
  inoperable and you may need to relabel the host machine files by hand.
  ImportantWhen using bind mounts with services, SELinux labels
  (:Z and :z), as well as :ro are ignored. See
  moby/moby #32579 for details.This example sets the z option to specify that multiple containers can share
  the bind mount's contents:It is not possible to modify the SELinux label using the --mount flag.
  
  $ docker run -d \
   -it \
   --name devtest \
   -v "$(pwd)"/target:/app:z \
   nginx:latest
  Use a bind mount with Docker ComposeA single Docker Compose service with a bind mount looks like this:
  
  services:
   frontend:
   image: node:lts
   volumes:
   - type: bind
   source: ./static
   target: /opt/app/static
  volumes:
   myapp:For more information about using volumes of the bind type with Compose, see
  Compose reference on volumes.
  and
  Compose reference on volume configuration.Next stepsLearn about volumes.Learn about tmpfs mounts.Learn about
  storage drivers.
  Request changesTable of contentsWhen to use bind mountsBind-mounting over existing dataConsiderations and constraintsSyntaxOptions for --mountOptions for --volumeStart a container with a bind mountMount into a non-empty directory on the containerUse a read-only bind mountRecursive mountsConfigure bind propagationConfigure the SELinux labelUse a bind mount with Docker ComposeNext steps
  
  Product offerings
  Pricing
  About us
  Contribute
  Read llms.txt
  Cookies Settings
  
  Status
  Legal```