Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to force Docker for a clean build of an image

I have build a Docker image from a Docker file using the below command.

$ docker build -t u12_core -f u12_core . 

When I am trying to rebuild it with the same command, it's using the build cache like:

Step 1 : FROM ubuntu:12.04  ---> eb965dfb09d2 Step 2 : MAINTAINER Pavan Gupta <[email protected]>  ---> Using cache  ---> 4354ccf9dcd8 Step 3 : RUN apt-get update  ---> Using cache  ---> bcbca2fcf204 Step 4 : RUN apt-get install -y openjdk-7-jdk  ---> Using cache  ---> 103f1a261d44 Step 5 : RUN apt-get install -y openssh-server  ---> Using cache  ---> dde41f8d0904 Step 6 : RUN apt-get install -y git-core  ---> Using cache  ---> 9be002f08b6a Step 7 : RUN apt-get install -y build-essential  ---> Using cache  ---> a752fd73a698 Step 8 : RUN apt-get install -y logrotate  ---> Using cache  ---> 93bca09b509d Step 9 : RUN apt-get install -y lsb-release  ---> Using cache  ---> fd4d10cf18bc Step 10 : RUN mkdir /var/run/sshd  ---> Using cache  ---> 63b4ecc39ff0 Step 11 : RUN echo 'root:root' | chpasswd  ---> Using cache  ---> 9532e31518a6 Step 12 : RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config  ---> Using cache  ---> 47d1660bd544 Step 13 : RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd  ---> Using cache  ---> d1f97f1c52f7 Step 14 : RUN wget -O aerospike.tgz 'http://aerospike.com/download/server/latest/artifact/ubuntu12'  ---> Using cache  ---> bd7dde7a98b9 Step 15 : RUN tar -xvf aerospike.tgz  ---> Using cache  ---> 54adaa09921f Step 16 : RUN dpkg -i aerospike-server-community-*/*.deb  ---> Using cache  ---> 11aba013eea5 Step 17 : EXPOSE 22 3000 3001 3002 3003  ---> Using cache  ---> e33aaa78a931 Step 18 : CMD /usr/sbin/sshd -D  ---> Using cache  ---> 25f5fe70fa84 Successfully built 25f5fe70fa84 

The cache shows that aerospike is installed. However, I don't find it inside containers spawn from this image, so I want to rebuild this image without using the cache. How can I force Docker to rebuild a clean image without the cache?

like image 625
Pavan Gupta Avatar asked Feb 24 '16 06:02

Pavan Gupta


People also ask

How do I force a docker build?

When you use the Docker build command to build a Docker image, you can simply use the --no-cache option which will allow you to instruct daemon to not look for already existing image layers and simply force clean build of an image.

How do I completely clean docker?

Remove all images All the Docker images on a system can be listed by adding -a to the docker images command. Once you're sure you want to delete them all, you can add the -q flag to pass the image ID to docker rmi : List: docker images -a.

How do I force a docker to remove an image?

By running simple command docker images -a or docker images . After that you make sure which image want to remove, to do that executing this simple command docker rmi <your-image-id> . Then you can confirm that image has been removed or not by list all the images and check.


1 Answers

There's a --no-cache option:

docker build --no-cache -t u12_core -f u12_core . 

In older versions of Docker you needed to pass --no-cache=true, but this is no longer the case.

like image 90
Assaf Lavie Avatar answered Oct 20 '22 00:10

Assaf Lavie