{"id":48445,"date":"2025-02-08T08:37:31","date_gmt":"2025-02-08T08:37:31","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=48445"},"modified":"2026-02-21T07:25:49","modified_gmt":"2026-02-21T07:25:49","slug":"docker-load","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/docker-load\/","title":{"rendered":"Docker commands Guide &#8211; docker load with examples"},"content":{"rendered":"\n<p>Here\u2019s a <strong>complete tutorial<\/strong> on <code>docker load<\/code>, covering <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 load<\/code>?<\/strong><\/h2>\n\n\n\n<p><code>docker load<\/code> is a Docker command used to <strong>load a Docker image<\/strong> from a <strong>tarball<\/strong> (image archive file) into the local Docker image repository. It is commonly used for <strong>importing images<\/strong> that were saved with the <code>docker save<\/code> command.<\/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>Restores Docker images from a tar archive.<\/li>\n\n\n\n<li>Useful for <strong>transferring images<\/strong> between systems without using a Docker registry.<\/li>\n\n\n\n<li>Supports <strong>compressed and uncompressed tar files<\/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>Basic Syntax<\/strong><\/h2>\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\">load<\/span> <span class=\"hljs-selector-attr\">&#91;OPTIONS]<\/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<h3 class=\"wp-block-heading\"><strong>Options:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-i<\/code>, <code>--input<\/code>: Specify the file to load the image from (instead of standard input).<\/li>\n\n\n\n<li><code>--quiet<\/code>: Suppress the verbose output during the image load process.<\/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 load<\/code><\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Load an Image from a Tarball<\/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\">load<\/span> <span class=\"hljs-selector-tag\">-i<\/span> <span class=\"hljs-selector-tag\">my_image<\/span><span class=\"hljs-selector-class\">.tar<\/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 loads the image from the tarball <code>my_image.tar<\/code> into the local Docker 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>2. Load an Image from a Compressed Tarball<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gunzip &lt; my_image.tar.gz | docker load\n<\/code><\/span><\/pre>\n\n\n<p>This decompresses <code>my_image.tar.gz<\/code> and loads the image into Docker.<\/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. Load an Image Using Standard Input<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat my_image.tar | docker load\n<\/code><\/span><\/pre>\n\n\n<p>This pipes the tarball content directly into <code>docker load<\/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>4. Load Multiple Images from a Single Tarball<\/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\">load<\/span> <span class=\"hljs-selector-tag\">-i<\/span> <span class=\"hljs-selector-tag\">multiple_images<\/span><span class=\"hljs-selector-class\">.tar<\/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>If the tarball contains multiple images, <code>docker load<\/code> will restore all of them.<\/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. Use <code>docker load<\/code> in a Script for Automation<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-meta\">#!\/bin\/bash<\/span>\n<span class=\"hljs-keyword\">for<\/span> tarfile <span class=\"hljs-keyword\">in<\/span> \/backup\/images<span class=\"hljs-comment\">\/*.tar; do\n  docker load -i $tarfile\n  echo \"Loaded image from $tarfile\"\ndone\n<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><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 script loads all tar files from the <code>\/backup\/images<\/code> directory into Docker.<\/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. Load an Image Quietly (Suppress Output)<\/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\">load<\/span> <span class=\"hljs-selector-tag\">--input<\/span> <span class=\"hljs-selector-tag\">my_image<\/span><span class=\"hljs-selector-class\">.tar<\/span> <span class=\"hljs-selector-tag\">--quiet<\/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 loads the image without showing verbose output.<\/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. Load an Image with Docker Compose<\/strong><\/h3>\n\n\n\n<p>You can combine <code>docker load<\/code> with <code>docker-compose<\/code> in your CI\/CD pipeline:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">services<\/span>:\n  <span class=\"hljs-selector-tag\">web<\/span>:\n    <span class=\"hljs-selector-tag\">image<\/span>: <span class=\"hljs-selector-tag\">my_image<\/span><span class=\"hljs-selector-pseudo\">:latest<\/span>\n    <span class=\"hljs-selector-tag\">build<\/span>:\n      <span class=\"hljs-selector-tag\">context<\/span>: .\n      <span class=\"hljs-selector-tag\">hooks<\/span>:\n        <span class=\"hljs-selector-tag\">post_build<\/span>:\n          <span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">load<\/span> <span class=\"hljs-selector-tag\">-i<\/span> <span class=\"hljs-selector-tag\">my_image<\/span><span class=\"hljs-selector-class\">.tar<\/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\">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 load<\/code><\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Image Transfer Between Environments<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Transfer Docker images between <strong>development, testing, and production environments<\/strong> without pushing them to a registry.<\/li>\n\n\n\n<li>Example: Move a large image from a build server to production.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Backup and Restore Docker Images<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Save images with <code>docker save<\/code> and restore them later using <code>docker load<\/code>.<\/li>\n\n\n\n<li>Example: Backup custom application images before upgrading Docker or the host system.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Air-Gapped Environments<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <code>docker load<\/code> to transfer images in <strong>air-gapped networks<\/strong> where internet access is restricted.<\/li>\n\n\n\n<li>Example: Deliver a set of images to a secure environment without using Docker Hub.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Disaster Recovery<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Load previously saved images as part of a <strong>disaster recovery plan<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. CI\/CD Pipelines<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <code>docker load<\/code> in CI\/CD pipelines to preload images on build agents.<\/li>\n\n\n\n<li>Example: Preload common base images to speed up builds.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Sharing Custom Images<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Share custom-built images with teams or clients by sending the image tarball.<\/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 load<\/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 load -i my_image.tar<\/code><\/td><td>Load a Docker image from a tar file<\/td><\/tr><tr><td>`cat my_image.tar<\/td><td>docker load`<\/td><\/tr><tr><td>`gunzip &lt; my_image.tar.gz<\/td><td>docker load`<\/td><\/tr><tr><td><code>docker load --input backup.tar<\/code><\/td><td>Load an image using the <code>--input<\/code> option<\/td><\/tr><tr><td><code>docker load -i multiple_images.tar<\/code><\/td><td>Load multiple images from a tarball<\/td><\/tr><tr><td><code>docker load -i image.tar --quiet<\/code><\/td><td>Load an image without verbose output<\/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 load<\/code>:<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Verify the image tarball<\/strong> before loading it to ensure it was created properly (<code>docker save<\/code>).<\/li>\n\n\n\n<li><strong>Compress tarballs<\/strong> with <code>gzip<\/code> or <code>xz<\/code> to reduce file size for easier transfer.<\/li>\n\n\n\n<li><strong>Use meaningful filenames<\/strong> (e.g., <code>my_app_backup_20260207.tar<\/code>) for better organization.<\/li>\n\n\n\n<li><strong>Automate image loading<\/strong> in scripts to streamline CI\/CD processes.<\/li>\n\n\n\n<li><strong>Check the loaded image<\/strong> with <code>docker images<\/code> to confirm successful import.<\/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 tarball exists and the file path is correct.<\/li>\n\n\n\n<li><strong>&#8220;Invalid tar file&#8221;<\/strong><br>\u2192 Verify that the tarball was created with <code>docker save<\/code> and is not corrupted.<\/li>\n\n\n\n<li><strong>&#8220;Image not found after loading&#8221;<\/strong><br>\u2192 Check the output of <code>docker load<\/code> to ensure the image was loaded with the expected tag.<\/li>\n\n\n\n<li><strong>&#8220;Permission denied&#8221;<\/strong><br>\u2192 Run the command with <code>sudo<\/code> or check file permissions.<\/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 load<\/code> with Other Commands<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Backup and Restore Workflow<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Save the image:<\/strong> <code>docker save -o my_image.tar my_image:latest<\/code><\/li>\n\n\n\n<li><strong>Transfer and load the image:<\/strong> <code>docker load -i my_image.tar<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Verify the Loaded Image<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker images | grep my_image\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Automate Image Loading in a CI\/CD Pipeline<\/strong><\/h3>\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\">steps<\/span>:\n  <span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">Load<\/span> <span class=\"hljs-selector-tag\">Prebuilt<\/span> <span class=\"hljs-selector-tag\">Docker<\/span> <span class=\"hljs-selector-tag\">Image<\/span>\n    <span class=\"hljs-selector-tag\">run<\/span>: <span class=\"hljs-selector-tag\">docker<\/span> <span class=\"hljs-selector-tag\">load<\/span> <span class=\"hljs-selector-tag\">-i<\/span> <span class=\"hljs-selector-tag\">my_prebuilt_image<\/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<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here\u2019s a complete tutorial on docker load, covering what it does, examples, and use cases. What is docker load? docker load is a Docker command used to load 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-48445","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48445","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=48445"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48445\/revisions"}],"predecessor-version":[{"id":58892,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48445\/revisions\/58892"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=48445"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=48445"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=48445"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}