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.

  • Possible to write a text file (or some other file) in a docker container but access it when container has stopped?
  • docker-compose run doesn't work in windows
  • Change docker starting options
  • Why the “See It Work” section of the Docker https-portal gives me a “port 443: Connection refused” error?
  • Dockerized database passwords management
  • How to give Dockerfile input parameters from docker run command
  • The volumes always mount to the /root/ not /crawler/ I specified
  • Php on docker : Using setLocale
  • Asp.Net Core on Docker
  • Container healthcheck status via tasks json
  • Error using akka remoting with artery over docker instances
  • Create Docker image for NodeJS + PostgreSQL web application
  • 2 Solutions collect form web for “Run commands on create a new Docker container”

    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.

    I think you are looking for the 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

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