Piping a file into docker run

I need to pipe (inject) a file or some data into docker as part of the run command and have it written to a file within the container as part of the startup. Is there best practise way to do this ?

I've tried this.

cat data.txt |  docker run -a stdin -a stdout -i -t ubuntu /bin/bash -c 'cat >/data.txt'

But can't seem to get it to work.


cat setup.json |  docker run -i  ubuntu /bin/bash -c 'cat'

This worked for me. Remove the -t. Don't need the -a's either.