{"id":48422,"date":"2025-02-08T08:30:37","date_gmt":"2025-02-08T08:30:37","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=48422"},"modified":"2025-07-12T05:38:43","modified_gmt":"2025-07-12T05:38:43","slug":"docker-build","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/docker-build\/","title":{"rendered":"Docker commands Guide &#8211; docker build with examples"},"content":{"rendered":"\n<p>Here\u2019s a <strong>complete tutorial<\/strong> on <code>docker build<\/code>, explaining <strong>what it does<\/strong>, <strong>examples<\/strong>, and <strong>use cases<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What is <code>docker build<\/code>?<\/strong><\/h2>\n\n\n\n<p><code>docker build<\/code> is a Docker command used to <strong>create a Docker image<\/strong> from a <strong>Dockerfile<\/strong> and <strong>context<\/strong> (the set of files required to build the image). Once the image is built, it can be used to run containers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Key Features:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Builds Docker images from a <strong>Dockerfile<\/strong>.<\/li>\n\n\n\n<li>Supports <strong>build-time variables<\/strong> and <strong>multi-stage builds<\/strong> for efficient image creation.<\/li>\n\n\n\n<li>Integrates with <strong>CI\/CD pipelines<\/strong> for automated image building and deployment.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Basic Syntax<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker build &#91;OPTIONS] PATH | URL | -\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>Common Options:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-t<\/code>, <code>--tag<\/code>: Assign a <strong>name and tag<\/strong> to the built image (<code>my_app:latest<\/code>).<\/li>\n\n\n\n<li><code>-f<\/code>, <code>--file<\/code>: Specify an <strong>alternate Dockerfile<\/strong> (default is <code>Dockerfile<\/code> in the build context).<\/li>\n\n\n\n<li><code>--no-cache<\/code>: Build the image <strong>without using cache<\/strong>.<\/li>\n\n\n\n<li><code>--build-arg<\/code>: Pass <strong>build-time variables<\/strong> to the image.<\/li>\n\n\n\n<li><code>--progress<\/code>: Control progress output (<code>auto<\/code>, <code>plain<\/code>, <code>tty<\/code>).<\/li>\n\n\n\n<li><code>--rm<\/code>: Remove intermediate containers after a successful build (default behavior).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Examples of <code>docker build<\/code><\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Build an Image from a Dockerfile<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">build<\/span> <span class=\"hljs-selector-tag\">-t<\/span> <span class=\"hljs-selector-tag\">my_app<\/span><span class=\"hljs-selector-pseudo\">:latest<\/span> .\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This builds an image from the <code>Dockerfile<\/code> in the current directory (<code>.<\/code>) and tags it as <code>my_app:latest<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Use an Alternate Dockerfile<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">build<\/span> <span class=\"hljs-selector-tag\">-t<\/span> <span class=\"hljs-selector-tag\">my_app<\/span><span class=\"hljs-selector-pseudo\">:dev<\/span> <span class=\"hljs-selector-tag\">-f<\/span> <span class=\"hljs-selector-tag\">Dockerfile<\/span><span class=\"hljs-selector-class\">.dev<\/span> .\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This uses <code>Dockerfile.dev<\/code> to build the image and tags it as <code>my_app:dev<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Build an Image Without Using Cache<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">build<\/span> <span class=\"hljs-selector-tag\">--no-cache<\/span> <span class=\"hljs-selector-tag\">-t<\/span> <span class=\"hljs-selector-tag\">my_app<\/span><span class=\"hljs-selector-pseudo\">:latest<\/span> .\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This forces Docker to ignore the cache and rebuild every layer.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Build an Image with Build-Time Variables<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker build --build-arg ENV=production -t my_app:latest .\n<\/code><\/span><\/pre>\n\n\n<p><strong>Dockerfile example:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">ARG ENV\nRUN <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"Environment: $ENV\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This passes <code>ENV=production<\/code> to the Dockerfile.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Tag an Image with Multiple Tags<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">build<\/span> <span class=\"hljs-selector-tag\">-t<\/span> <span class=\"hljs-selector-tag\">my_app<\/span><span class=\"hljs-selector-pseudo\">:1.0<\/span> <span class=\"hljs-selector-tag\">-t<\/span> <span class=\"hljs-selector-tag\">my_app<\/span><span class=\"hljs-selector-pseudo\">:latest<\/span> .\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This builds the image and assigns it two tags: <code>1.0<\/code> and <code>latest<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Build from a Remote Git Repository<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">docker build -t my_app https:<span class=\"hljs-comment\">\/\/github.com\/user\/my_app.git<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This builds an image directly from a GitHub repository.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7. Build an Image with a Specific Build Context<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker build -t my_app \/path\/to\/context\n<\/code><\/span><\/pre>\n\n\n<p>This uses <code>\/path\/to\/context<\/code> as the build context for the image.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>8. Use BuildKit for Faster Builds<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">DOCKER_BUILDKIT=1 docker build -t my_app:latest .\n<\/code><\/span><\/pre>\n\n\n<p>BuildKit is a modern builder that speeds up builds and supports advanced features like parallel builds and caching.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>9. Monitor Build Progress in Plain Text<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker build --progress=plain -t my_app .\n<\/code><\/span><\/pre>\n\n\n<p>This displays the build progress in plain text, useful for debugging.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>10. Save and Load Build Cache for CI\/CD<\/strong><\/h3>\n\n\n\n<p><strong>Save cache:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker build --build-arg BUILDKIT_INLINE_CACHE=1 -t my_app .\ndocker save my_app:latest &gt; my_app.tar\n<\/code><\/span><\/pre>\n\n\n<p><strong>Load cache:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">load<\/span> &lt; <span class=\"hljs-selector-tag\">my_app<\/span><span class=\"hljs-selector-class\">.tar<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>11. Build with Multi-Stage Dockerfile<\/strong><\/h3>\n\n\n\n<p>Multi-stage builds help reduce image size by separating build and runtime environments.<\/p>\n\n\n\n<p><strong>Dockerfile example:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># Stage 1: Build<\/span>\nFROM golang:<span class=\"hljs-number\">1.17<\/span> <span class=\"hljs-keyword\">as<\/span> builder\nWORKDIR \/app\nCOPY . .\nRUN go build -o my_app .\n\n<span class=\"hljs-comment\"># Stage 2: Runtime<\/span>\nFROM alpine:latest\nWORKDIR \/app\nCOPY --from=builder \/app\/my_app .\nCMD &#91;<span class=\"hljs-string\">\".\/my_app\"<\/span>]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Build the image:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">build<\/span> <span class=\"hljs-selector-tag\">-t<\/span> <span class=\"hljs-selector-tag\">my_app<\/span><span class=\"hljs-selector-pseudo\">:latest<\/span> .\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Use Cases for <code>docker build<\/code><\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Creating Custom Application Images<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Build images with your <strong>application code, dependencies, and configurations<\/strong>.<\/li>\n\n\n\n<li>Example: Build a <strong>Node.js<\/strong> or <strong>Python<\/strong> application with required libraries.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Continuous Integration and Deployment (CI\/CD)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <code>docker build<\/code> in CI\/CD pipelines to <strong>automate image creation and deployment<\/strong>.<\/li>\n\n\n\n<li>Example: Build and push images to <strong>Docker Hub<\/strong> after every code commit.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Multi-Stage Builds for Optimized Images<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reduce image size by using multi-stage builds.<\/li>\n\n\n\n<li>Example: Use a <strong>builder image<\/strong> for compiling code and a smaller image for the final runtime.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Environment-Specific Builds<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use build-time arguments to create <strong>different versions of images<\/strong> for development, staging, and production.<\/li>\n\n\n\n<li>Example: Pass <code>ENV=production<\/code> to enable production-specific configurations.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Containerized Testing Environments<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Build images with <strong>test dependencies<\/strong> for automated testing.<\/li>\n\n\n\n<li>Example: Build a custom image with <strong>Cypress<\/strong> or <strong>Selenium<\/strong> for UI testing.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Building Static Websites<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use Docker to build and deploy static websites with <strong>NGINX<\/strong> or <strong>Apache<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7. Packaging Microservices<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Package each microservice in its own Docker image for deployment in a <strong>microservices architecture<\/strong>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>List of Common <code>docker build<\/code> Commands<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Command<\/strong><\/th><th><strong>Description<\/strong><\/th><\/tr><\/thead><tbody><tr><td><code>docker build -t my_app:latest .<\/code><\/td><td>Build an image from the current directory<\/td><\/tr><tr><td><code>docker build -f Dockerfile.dev -t my_app:dev .<\/code><\/td><td>Build using an alternate Dockerfile<\/td><\/tr><tr><td><code>docker build --no-cache -t my_app .<\/code><\/td><td>Build without using cache<\/td><\/tr><tr><td><code>docker build --build-arg ENV=production .<\/code><\/td><td>Build with a build-time argument<\/td><\/tr><tr><td><code>docker build -t my_app https:\/\/github.com\/user\/repo.git<\/code><\/td><td>Build from a remote Git repository<\/td><\/tr><tr><td><code>docker build --progress=plain .<\/code><\/td><td>Show build progress in plain text<\/td><\/tr><tr><td><code>docker build -t my_app \/path\/to\/context<\/code><\/td><td>Build with a specific build context<\/td><\/tr><tr><td><code>DOCKER_BUILDKIT=1 docker build -t my_app .<\/code><\/td><td>Enable BuildKit for faster builds<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Best Practices for Using <code>docker build<\/code>:<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Use multi-stage builds<\/strong> to keep images small and secure.<\/li>\n\n\n\n<li><strong>Leverage caching<\/strong> for faster builds, especially for dependency installation.<\/li>\n\n\n\n<li><strong>Use <code>.dockerignore<\/code><\/strong> to exclude unnecessary files and reduce build context size.<\/li>\n\n\n\n<li><strong>Tag images properly<\/strong> with version numbers and environment-specific tags (<code>dev<\/code>, <code>staging<\/code>, <code>prod<\/code>).<\/li>\n\n\n\n<li><strong>Automate builds<\/strong> in CI\/CD pipelines for consistent image creation.<\/li>\n\n\n\n<li><strong>Minimize layers<\/strong> in Dockerfiles to improve build performance and reduce image size.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Common Errors and Solutions<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>&#8220;No such file or directory&#8221;<\/strong><br>\u2192 Ensure the Dockerfile and build context path are correct.<\/li>\n\n\n\n<li><strong>&#8220;Failed to fetch base image&#8221;<\/strong><br>\u2192 Check your network connection and Docker registry access.<\/li>\n\n\n\n<li><strong>&#8220;Cache not used&#8221;<\/strong><br>\u2192 Ensure the instructions in the Dockerfile are written in a way that <strong>maximizes caching<\/strong> (place frequently changed steps at the end).<\/li>\n\n\n\n<li><strong>&#8220;Image size too large&#8221;<\/strong><br>\u2192 Use multi-stage builds and a smaller base image (e.g., <code>alpine<\/code>).<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Combining <code>docker build<\/code> with Other Commands<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Push Built Image to Docker Hub<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker build -t my_app:latest .\ndocker tag my_app:latest myusername\/my_app:latest\ndocker push myusername\/my_app:latest\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>Automate Builds in GitHub Actions<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">name: Docker Build\non: &#91;push]\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout Code\n        uses: actions\/checkout@v2\n      - name: Build Docker Image\n        run: docker build -t my_app:latest .\n      - name: Push Docker Image\n        run: docker push myusername\/my_app:latest\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here\u2019s a complete tutorial on docker build, explaining what it does, examples, and use cases. What is docker build? docker build is a Docker command used to create a Docker&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[4862],"tags":[],"class_list":["post-48422","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=48422"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48422\/revisions"}],"predecessor-version":[{"id":48424,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48422\/revisions\/48424"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=48422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=48422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=48422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}