title: What's the difference between docker run --device and docker run --volume?
body: <p>If everything is &quot;just&quot; a file in linux, how do files/nodes in <code>/dev</code> differ from other files such that docker must handle them differently?
  What does docker do differently for device files? I expect it to be a shorthand for a more verbose bind command?</p>
  <p>In fact, after just doing a regular bind mount for a device file such as <code>--volume /dev/spidev0.0:/dev/spidev0.0</code> , the user get's a &quot;permission denied&quot; within the docker container when trying to access the device. When binding via <code>--device /dev/spidev0.0:/dev/spidev0.0</code>, it works as expected.</p>