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:

  • Changing zookeeper cluster leadership when leader dies
  • can't access docker container
  • Docker API can’t apply json filters
  • LDAP authentication in Docker container
  • Linux boot2docker hosts not mounting home dirs
  • Difficulty accessing Docker's API
  • 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?

  • Docker command (cli) defaulting to port instead of socket
  • Containers are not linked with docker-compose version 2
  • hotdeploy / hotswap classes using wildfly maven docker intellij
  • Docker - Is it possible to connect containers in the same host using weave
  • running simple web app on docker tomcat container
  • Can not access nginx container on a local windows machine
  • 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.