---
title: Image Side-loading
description: Canonical makes open source secure, reliable and easy to use, providing
  support for Ubuntu and a portfolio of enterprise-grade technologies. Founded in
  2004, Canonical operates globally with team members in over 80 countries.
url: https://canonical.com/microk8s/docs/sideload?format=md
---

*Submit*

# Image Side-loading

Image side-loading allows administrators to easily import a number of Docker (OCI) images (bundled in one or more `.tar` archives) to all the nodes of a MicroK8s clusters using a single command.

This can be very useful in the following situations:

* Environments with limited or constrained access to DockerHub and other image registries.
* Environments with limited bandwidth and/or connection speeds.
* Import private images that are not published in any public registry.
* It is not possible and/or desired to configure and run a private image registry.

## [Import images](https://canonical.com/microk8s/docs/sideload?format=md#p-34561-import-images)

MicroK8s supports importing standard OCI images from `.tar` archives.

### [Cluster-wide](https://canonical.com/microk8s/docs/sideload?format=md#p-34561-cluster-wide)

> *NOTE*: Image side-loading using the `microk8s images import` command is available in MicroK8s version **1.25** or newer.

Assume a MicroK8s cluster with the following nodes (output from `microk8s kubectl get node -o wide` command):

```
NAME     STATUS   ROLES    AGE     VERSION                    INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
uk8s-3   Ready    <none>   15m     v1.24.2-2+91ff6ac97631b3   10.86.101.42    <none>        Ubuntu 18.04.6 LTS   5.15.0-35-generic   containerd://1.6.6
uk8s-2   Ready    <none>   4m44s   v1.24.2-2+91ff6ac97631b3   10.86.101.110   <none>        Ubuntu 18.04.6 LTS   5.15.0-35-generic   containerd://1.6.6
uk8s-1   Ready    <none>   18m     v1.24.2-2+91ff6ac97631b3   10.86.101.105   <none>        Ubuntu 18.04.6 LTS   5.15.0-35-generic   containerd://1.6.6
```

If we have an OCI image called `nginx.tar`, we can load this to all the cluster nodes by running the following command on any of them:

```
microk8s images import < nginx.tar
```

A successful output looks like this:

```
Pushing OCI images to 10.86.101.105:25000
Pushing OCI images to 10.86.101.42:25000
Pushing OCI images to 10.86.101.110:25000
```

For a list of all available command options, see `microk8s images import --help`.

### [Only on local node](https://canonical.com/microk8s/docs/sideload?format=md#p-34561-only-on-local-node)

> *NOTE*: For clusters, the steps below need to be repeated on all nodes.

It is also possible to load the images directly into the local containerd daemon like so:

```
microk8s ctr image import - < nginx.tar
```

On success, the output will look like this:

```
unpacking docker.io/library/nginx:latest (sha256:9c58d14962869bf1167bdef6a6a3922f607aa823196c392a1785f45cdc8c3451)...done
```

## [Export images](https://canonical.com/microk8s/docs/sideload?format=md#p-34561-export-images)

> *NOTE*: Image side-loading using the `microk8s images import` command is available in MicroK8s version **1.25** or newer.

MicroK8s offers a single command that can be used to export all images from the local container runtime into a single archive.

```
microk8s images export-local > images.tar
```

Last updated 4 years ago. [Help improve this document in the forum](https://discuss.kubernetes.io/t/image-side-loading/20437).
