Updated on 2023-09-18 GMT+08:00

Pushing an Image

How Do I Push an Image to SWR by Calling APIs?

Currently, SWR does not provide APIs for image push. You can push images using the docker push command on a client or using the SWR console.

Why Is an Image Pushed Using a Container Engine Client to SWR Different in Size From One Uploaded Through the SWR Console?

Symptom

Assume that a nginx image of v2.0.0 is created on the local Docker client. The docker images command is run to query SIZE of the image. The size is 22.8 MB.

$ docker images
REPOSITORY                         TAG             IMAGE ID       CREATED         SIZE
nginx                              v2.0.0          22f2bf2e2b4f   9 days ago      22.8MB
  1. Run the docker push command to upload the image to SWR. The size of the image is 9.5 MB.
  2. On the local Docker client, pack the image into a .tar package. Download the nginx.tar package to the local host, and upload the package to SWR. The size of the package is 23.2 MB.

The size of the image pushed through the client is different from that of the image uploaded through the SWR console.

Cause Analysis

Image layers are compressed into TGZ packages when images are pushed to SWR using a container engine client, whereas when they are uploaded through the SWR console, they are only packed without being compressed. Therefore, the same image will be of different sizes when it is uploaded in these two different ways.

Can I Push Arm-based Container Images to SWR?

SWR has no restriction on the kernel architecture of images. There is no difference between pushing an Arm-based image and an x86-based image to SWR.

What Protocol Is Used to Push Images to SWR When I Run the docker push Command?

HTTPS is used.

Will an Image Be Overwritten If I Push an Image That Have the Same Name and Tag with it?

Yes, the original image will be overwritten.

What Is the Maximum Size of an SWR Layer?

If you use the container engine client to push images to SWR, each image layer cannot exceed 10 GB.