Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does docker create containers while building images?

Tags:

Why does docker start a container for every command in Dockerfile? I understand a new layer is created for every command.

Step 1/3 : FROM nginx:latest
latest: Pulling from library/nginx
8ec398bc0356: Pull complete 
dfb2a46f8c2c: Pull complete 
b65031b6a2a5: Pull complete 
Digest: sha256:8aa7f6a9585d908a63e5e418dc5d14ae7467d2e36e1ab4f0d8f9d059a3d071ce
Status: Downloaded newer image for nginx:latest
 ---> c7460dfcab50
Step 2/3 : WORKDIR /usr/share/nginx/html
 ---> Running in f8adb5dc5a47
Removing intermediate container f8adb5dc5a47
 ---> a59fb35a43c2
Step 3/3 : COPY . .
 ---> 7911d9a451d9
Successfully built 7911d9a451d9
Successfully tagged mynginx:latest

What is the point of creating a new container and setting WORKDIR in it when you are gonna remove that container anyway?

Notice this line Removing intermediate container f8adb5dc5a47

like image 788
kooskoos Avatar asked Jan 17 '20 12:01

kooskoos


People also ask

Are containers created from images?

A container is, ultimately, just a running image. Once you create a container, it adds a writable layer on top of the immutable image, meaning you can now modify it.

What is difference between container and Docker image?

The key difference between a Docker image vs a container is that a Docker image is a template that defines how a container will be realized. A Docker container is a runtime instance of a Docker image. The purpose of this piece is to answer the question, what is a Docker image vs.

What does building a Docker image do?

Docker images act as a set of instructions to build a Docker container, like a template. Docker images also act as the starting point when using Docker. An image is comparable to a snapshot in virtual machine (VM) environments. Docker is used to create, run and deploy applications in containers.

Why do we create containers?

Containers allow applications to be more rapidly deployed, patched, or scaled. Containers support agile and DevOps efforts to accelerate development, test, and production cycles.


1 Answers

For each line daemon creates a new image and each instruction runs independently. Docker Daemon uses intermediate images to accelerate the docker build process. Build cache indicates this.

like image 188
Sanket Singh Avatar answered Sep 30 '22 19:09

Sanket Singh