instruction: Create a comprehensive Dockerfile for storage applications with best practices
output: ```dockerfile
  from the previous example.
  
  $ docker run \
   --mount='type=volume,dst=/external-drive,volume-driver=local,volume-opt=device=/dev/loop5,volume-opt=type=ext4'
  You can't run the mount command inside the container directly,
  because the container is unable to access the /dev/loop5 device.
  That's why the docker run command uses the --mount option.Example: Mounting a block device in a containerThe following steps create an ext4 filesystem and mounts it into a container.
  The filesystem support of your system depends on the version of the Linux kernel you are using.Create a file and allocate some space to it:
  
  $ fallocate -l 1G disk.raw
  Build a filesystem onto the disk.raw file:
  
  $ mkfs.ext4 disk.raw
  Create a loop device:
  
  $ losetup -f --show disk.raw
  /dev/loop5
  
  Notelosetup creates an ephemeral loop device that's removed after
  system reboot, or manually removed with losetup -d.Run a container that mounts the loop device as a volume:
  
  $ docker run -it --rm \
   --mount='type=volume,dst=/external-drive,volume-driver=local,volume-opt=device=/dev/loop5,volume-opt=type=ext4' \
   ubuntu bash
  When the container starts, the path /external-drive mounts the
  disk.raw file
  ```