docker's VOLUME isn't mounting host files

I have this docker file:

FROM node:0.10.38
VOLUME /opt/build
WORKDIR /opt/build
EXPOSE 8080
CMD node app.js

However, when I got to run the container, I get the error that app.js does not exist, specifically /opt/build/app.js does not exist. I’ve also tried ADD and COPY to do this, both say it can’t find anything, and I’d like to use VOLUME so it writes to the host’s log that is also in /opt/build. All desired files are in fact on the host as well. By the way, I’m using coreos as the host OS.

  • Spark standalone cluster on docker in network “bridge”
  • Permission denied when mounting Docker volume in OSX
  • What's the best practice for including a .env file in a jenkins build?
  • how to setup dns nameserver in docker permanently in user-defined network?
  • nginx proxy from port 80 to other ports
  • Docker and symlinks
  • Vagrant, Docker, and Node.js on Mac OS X
  • How to use pipes(ioredirection) in Dockerfile RUN?
  • Docker link to previously started containers
  • Upgrade of docker gitlab image to 8.6 breaks gitlab
  • docker networking namespace not visible in ip netns list
  • How can I add hostnames to a container on the same docker network?
  • One Solution collect form web for “docker's VOLUME isn't mounting host files”

    As documented in http://docs.docker.com/userguide/dockervolumes/#volume

    The VOLUME Dockerfile command is equivalent to -v /opt/build (“Adding a data volume”), not equivalent to -v /opt/build:/opt/build (“Mount a Host Directory as a Data Volume”); the latter is what you want here.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.