Sobes.tech
Junior — Middle

What is the difference between CMD and RUN commands in a Dockerfile, and what is each of them used for?

sobes.tech AI

Answer from AI

In the Dockerfile:

  • CMD sets the default command that will be executed when the container starts. It can be overridden when running the container with docker run.

  • RUN executes a command during the image build. It is used for installing packages, configuring the environment, etc. Each RUN command creates a new layer in the image.

Example:

FROM ubuntu:20.04
RUN apt-get update && apt-get install -y curl  # executed during build
CMD ["/bin/bash"]  # default command when starting the container

Thus, RUN is for preparing the image, CMD is for setting the container's behavior upon startup.

What is the difference between CMD and RUN commands… - sobes.tech