{"id":3252,"date":"2024-03-13T06:38:33","date_gmt":"2024-03-13T06:38:33","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/"},"modified":"2025-07-30T13:35:12","modified_gmt":"2025-07-30T13:35:12","slug":"what-is-the-method-of-multi-stage-building-in-docker","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/","title":{"rendered":"Docker Multi-Stage Build Guide"},"content":{"rendered":"<p>Docker multi-stage build is a technique where multiple build stages are defined in a Dockerfile, allowing for smaller images and improved build efficiency. Each stage in the multi-stage build has its own base image and instructions, enabling different operations to be carried out in different stages.<\/p>\n<p>By utilizing multi-stage builds, the construction process can be divided into multiple stages, with the output of each stage serving as the input for the next stage. This helps prevent the inclusion of building tools and dependencies in the final image, thus reducing the size of the image.<\/p>\n<p>Here is an example Dockerfile using a multi-stage build:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\"># \u7b2c\u4e00\u4e2a\u9636\u6bb5\uff0c\u7528\u4e8e\u6784\u5efa\u5e94\u7528<\/span>\r\n<span class=\"hljs-keyword\">FROM<\/span> golang:<span class=\"hljs-number\">1.15<\/span> as builder\r\n<span class=\"hljs-keyword\">WORKDIR<\/span><span class=\"language-bash\"> \/app<\/span>\r\n<span class=\"hljs-keyword\">COPY<\/span><span class=\"language-bash\"> . .<\/span>\r\n<span class=\"hljs-keyword\">RUN<\/span><span class=\"language-bash\"> go build -o myapp<\/span>\r\n\r\n<span class=\"hljs-comment\"># \u7b2c\u4e8c\u4e2a\u9636\u6bb5\uff0c\u7528\u4e8e\u6784\u5efa\u6700\u7ec8\u955c\u50cf<\/span>\r\n<span class=\"hljs-keyword\">FROM<\/span> alpine:latest\r\n<span class=\"hljs-keyword\">RUN<\/span><span class=\"language-bash\"> apk --no-cache add ca-certificates<\/span>\r\n<span class=\"hljs-keyword\">WORKDIR<\/span><span class=\"language-bash\"> \/root\/<\/span>\r\n<span class=\"hljs-keyword\">COPY<\/span><span class=\"language-bash\"> --from=builder \/app\/myapp .<\/span>\r\n<span class=\"hljs-keyword\">CMD<\/span><span class=\"language-bash\"> [<span class=\"hljs-string\">\".\/myapp\"<\/span>]<\/span>\r\n<\/code><\/pre>\n<p>In the example above, the first stage builds the application using a golang base image and then copies the compiled binary file to an alpine base image in the second stage. The final image only includes the final application and necessary runtime dependencies, without any build tools or compilation dependencies.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Docker multi-stage build is a technique where multiple build stages are defined in a Dockerfile, allowing for smaller images and improved build efficiency. Each stage in the multi-stage build has its own base image and instructions, enabling different operations to be carried out in different stages. By utilizing multi-stage builds, the construction process can be [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[1120,1122,1119,1066,1121],"class_list":["post-3252","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-container-efficiency","tag-docker-build-process","tag-docker-multi-stage-build","tag-dockerfile-optimization","tag-image-size-reduction"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Docker Multi-Stage Build Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how Docker multi-stage builds create smaller images &amp; improve efficiency. Step-by-step method explained.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker Multi-Stage Build Guide\" \/>\n<meta property=\"og:description\" content=\"Learn how Docker multi-stage builds create smaller images &amp; improve efficiency. Step-by-step method explained.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-13T06:38:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-30T13:35:12+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noah Thompson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"Docker Multi-Stage Build Guide\",\"datePublished\":\"2024-03-13T06:38:33+00:00\",\"dateModified\":\"2025-07-30T13:35:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/\"},\"wordCount\":157,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"container efficiency\",\"Docker build process\",\"Docker multi-stage build\",\"dockerfile optimization\",\"image size reduction\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/\",\"name\":\"Docker Multi-Stage Build Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-13T06:38:33+00:00\",\"dateModified\":\"2025-07-30T13:35:12+00:00\",\"description\":\"Learn how Docker multi-stage builds create smaller images & improve efficiency. Step-by-step method explained.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker Multi-Stage Build Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Docker Multi-Stage Build Guide - Blog - Silicon Cloud","description":"Learn how Docker multi-stage builds create smaller images & improve efficiency. Step-by-step method explained.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/","og_locale":"en_US","og_type":"article","og_title":"Docker Multi-Stage Build Guide","og_description":"Learn how Docker multi-stage builds create smaller images & improve efficiency. Step-by-step method explained.","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-13T06:38:33+00:00","article_modified_time":"2025-07-30T13:35:12+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"Docker Multi-Stage Build Guide","datePublished":"2024-03-13T06:38:33+00:00","dateModified":"2025-07-30T13:35:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/"},"wordCount":157,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["container efficiency","Docker build process","Docker multi-stage build","dockerfile optimization","image size reduction"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/","name":"Docker Multi-Stage Build Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-13T06:38:33+00:00","dateModified":"2025-07-30T13:35:12+00:00","description":"Learn how Docker multi-stage builds create smaller images & improve efficiency. Step-by-step method explained.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-of-multi-stage-building-in-docker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Docker Multi-Stage Build Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/3252","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=3252"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/3252\/revisions"}],"predecessor-version":[{"id":147881,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/3252\/revisions\/147881"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=3252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=3252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=3252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}