Reputation: 1632
Is it possible to add instructions like RUN
in Dockerfile
that, instead of run on docker build
command, execute when a new container is created with docker run
? I think this can be useful to initialize a volume attached to host file system.
Upvotes: 3
Views: 4837
Reputation: 4533
I think you are looking for the CMD
https://docs.docker.com/reference/builder/#cmd
The main purpose of a
CMD
is to provide defaults for an executing container. These defaults can include an executable, or they can omit the executable, in which case you must specify anENTRYPOINT
instruction as well.Note: don't confuse
RUN
withCMD
.RUN
actually runs a command and commits the result;CMD
does not execute anything at build time, but specifies the intended command for the image.
You should also look into using Data Containers see this excellent Blog post.
Persistent volumes with Docker - Data-only container pattern http://container42.com/2013/12/16/persistent-volumes-with-docker-container-as-volume-pattern/
Upvotes: -2
Reputation: 312770
Take a look at the ENTRYPOINT command. This specifies a command to run when the container starts, regardless of what someone provides as a command on the docker run
command line. In fact, it is the job of the ENTRYPOINT
script to interpret any command passed to docker run
.
Upvotes: 3