What files are the .dockerignore work on?

I don’t really understand .dockerignore function.
Is it means like the fllow:

  • How to start a python script after etcd is running in a single docker container?
  • Vagrant synced_folder not working with docker provider build_dir (Windows)
  • Installing OpenSSH on the Alpine Docker Container
  • kubernetes on ubuntu 16.04
  • docker build fails - “cannot allocate memory”
  • Travis rebooting pretty often during runs with Docker involved
  • 3 Solutions collect form web for “What files are the .dockerignore work on?”

    Before explaining the use of the .dockerignore file we must spend a little time understanding what docker build do.

    Docker build. What does happen when I build an image ?

    When you build an image from a Dockerfile using the docker build command the daemon will create a context. That context contain everything in the directory you executed the command in.

    What does .dockerignore do and why use it ?

    The .dockerignore file allow you to exclude files from the context like a .gitignore file allow you to exclude file from your git repository.

    It help making build faster and lighter by excluding from the context big files or repository that are not used in the build.

    docker build has a step where it tars up the CONTEXT directory and sends it to the docker daemon. This is because the daemon and client might not exist on the same server.

    The tar and network send is why unused files can slow down the build. These happen even if the daemon runs locally.

    Then I put this .dockerignore in container.

    nope, don’t do that. The .dockerignore file is meant to be in the same directory as your Dockerfile and is intended to speed up the docker build command by excluding at build time some of the files that won’t be used to build the docker image.

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