Default Docker entrypoint

I am creating an image from another image that set a specific entrypoint. However I want my image to have default one. How do I reset the ENTRYPOINT?

I tried the following Dockerfile:

  • Docker exits with a exit code on starting
  • Could not run Calabash-android on docker
  • Running YARN cluster in Kubernetes/Mesos
  • is there a way to negate a pattern in .dockerignore?
  • running incorrect docker image osx
  • Moving a Docker node to a different Azure account
  • FROM some-image
    ENTRYPOINT ["/bin/sh", "-c"]
    

    Unfortunately it doesn’t work like the default entrypoint as it need the command to be quoted.

    docker run myimage ls -l /    # "-l /" arguments are ignored
    file1 file2 file3             # files in current working directory
    
    docker run myimage "ls -l /"  # works correctly
    

    How do I use commands without quoting?

  • Sinatra app on AWS Beanstalk with docker and SQS
  • Need cq-quickstart-6.1.0-SNAPSHOT.jar file
  • Docker Networking: Auto-discovering host names in a bridge network
  • How does a Docker engine replace a hypervisor and guest OS?
  • Build Docker image for ARM architecture on Intel machine (Mac)
  • docker-compose does not override a command using the start command
  • One Solution collect form web for “Default Docker entrypoint”

    To disable an existing ENTRYPOINT, set an empty array in your docker file

    ENTRYPOINT []
    

    Then your arguments to docker run will exec as normal.

    The reason your ENTRYPOINT ["/bin/sh", "-c"] requires quoted strings is that without the quotes, the arguments to ls are being passed to sh instead.

    Unquoted results in lots of arguments to sh

    "/bin/sh", "-c", "ls", "-l", "/"
    

    Quoting allows the complete command (-c) to be passed to sh

    "/bin/sh", "-c", "ls -l /"
    
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.