Skip to main content

RUN and CMD instructions in Docker

In Docker, the RUN and CMD instructions serve different purposes, primarily relating to when and how commands are executed within the container lifecycle.


RUN Instruction:

  • Purpose: The RUN command is used to build the image. It executes the specified command(s) and commits the result to the image, so the changes become part of the image layers.
Execution Time: During the build phase of the Docker image.
Use Case: Commonly used for installing software, setting up files, or configuring the environment.

RUN apt-get update && apt-get install -y nginx

Here, RUN installs nginx in the image. When the image is built, the installed software is included in the image.

CMD Instruction:

  • Purpose: The CMD command provides default instructions for the container. It defines what should be executed when a container starts.
Execution Time: At container runtime (when the container is launched from the image).
Use Case: Typically, used to specify the main application or command to run in the container.

CMD ["nginx", "-g", "daemon off;"]

Key Differences

  • Layering: RUN adds layers to the image (since it's for building), while CMD does not.
  • Multiple Commands: You can use multiple RUN instructions to set up the image, but only one CMD. If there are multiple CMD instructions, only the last one takes effect.
  • Overriding: The CMD command can be overridden when starting a container with docker run, whereas RUN cannot.
RUN is used to execute commands during the build process of a Docker image, while CMD is used to specify the default command to run when a Docker container is started from the image.

Comments

Popular posts from this blog

Explain - AWS CloudFront

What is AWS CloudFront? AWS CloudFront is a Content Delivery Network (CDN) service provided by Amazon Web Services (AWS). It’s designed to speed up the delivery of static and dynamic web content, such as HTML, CSS, JavaScript, and image files, to users by caching the content at strategically located data centers worldwide, known as edge locations .  When a user requests content, CloudFront serves it from the nearest edge location, reducing latency and improving load times. Key Features of CloudFront: Caching and Distribution : CloudFront caches content at edge locations to reduce the load on the origin server and to deliver content quickly to users across the globe. Origin Integration : It integrates seamlessly with other AWS services like S3, EC2, and even custom origin servers outside AWS, serving content directly from these sources. Dynamic Content Acceleration : CloudFront accelerates not only static but also dynamic content by optimizing routes based on AWS's global network. S...

𝗡𝗲𝘁𝘄𝗼𝗿𝗸 𝗣𝗿𝗼𝘁𝗼𝗰𝗼𝗹𝘀

𝗘𝘀𝘀𝗲𝗻𝘁𝗶𝗮𝗹 𝗡𝗲𝘁𝘄𝗼𝗿𝗸 𝗣𝗿𝗼𝘁𝗼𝗰𝗼𝗹𝘀 𝗘𝘃𝗲𝗿𝘆 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿 𝗦𝗵𝗼𝘂𝗹𝗱 𝗞𝗻𝗼𝘄 🌐 Here are 9 essential network protocols that every developer should understand, as they form the foundation of network communication, internet connectivity, and data exchange: Network Protocol 1. HTTP/HTTPS (Hypertext Transfer Protocol / HTTP Secure) Purpose : HTTP is used for transmitting data over the web, primarily for accessing and displaying webpages. HTTPS is the secure version of HTTP that encrypts data using SSL/TLS. Why Important : Almost all web-based applications rely on HTTP/HTTPS to send and receive data. Understanding HTTP methods (GET, POST, PUT, DELETE) and status codes (200, 404, etc.) is crucial for backend development and web services. 2. TCP/IP (Transmission Control Protocol / Internet Protocol) Purpose : TCP/IP is the foundational protocol suite for the internet, handling end-to-end data transmission. TCP ensures reliable data transfer, while IP handles addre...

What is DevOps?

  Introduction to DevOps DevOps is not just about tools but it also includes a set of best practices that enables to bridge the gap between the development and operations teams in the areas of continuous integration and deployment by using an integrated set of tools to automate the software delivery. It is imperative that the developers understand the operations side and vice versa. So the goal of DevOps is simply to help any organization in the speed of delivering applications to the end-users and enabling faster end-user feedback which is the need for any business today. Overview of Agile and DevOps There is no difference between Agile and DevOps. Instead, they complement each other. Let’s start by looking at the Waterfall model where all the requirements are frozen, and design & development are done one after the other until a stable product is available. So the issue here is that if there is a change in the customer's need at this stage then there is no way to include and d...