When using the volumes array with docker::run, the command on the backend will know if it needs to use bind mounts or volumes based on data passed to the -v option.
Running docker::run with native volumes:
docker::run { 'helloworld':
image => 'ubuntu:precise',
command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
volumes => ['my-volume:/var/log'],
}