Tasso Evangelista
Tasso Evangelista

Reputation: 1632

Run commands on create a new Docker container

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

Answers (2)

GayleDDS
GayleDDS

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 an ENTRYPOINT instruction as well.

Note: don't confuse RUN with CMD. 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

larsks
larsks

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

Related Questions