Облачная платформаAdvanced

Uploading an Image Through a Container Engine Client

Эта статья полезна?
Язык статьи: Английский
Перевести

Scenario

You can run docker push (Docker) or ctr push (containerd) on the server where the container engine client is installed to push an image to SWR.

Constraints

  • If a Docker container engine client is used to push images, the Docker version is 18.06 or later.
  • The size of each image layer cannot exceed 30 GB.
  • A single tenant can push a maximum of 20 image layers concurrently.

Prerequisites

  • You have created an organization in SWR. For details, see Creating an Organization.
  • A container engine client is available.

Docker

The following walks you through the steps of uploading an image to SWR through the client by taking the nginx:v1 image built in Basics of Docker as an example. The procedure is as follows:

  1. Access SWR.

    1. Log in to the SWR console.
    2. In the navigation pane, choose Dashboard and click Generate Login Command in the upper right corner. On the displayed page, click to copy the login command.
      Note
      • The validity period of the generated login command is 6 hours. To obtain a long-term valid login command, see Obtaining a Long-Term Valid Login Command. After you obtain a long-term valid login command, your temporary login commands will still be valid as long as they are in their validity periods.
      • The domain name at the end of the login command is the image repository address. Record the address for later use.
    3. Run the docker login command on your Docker client (a device that has Docker installed).

      The message "Login Succeeded" will be displayed upon a successful login.

  2. Run the following command on the device where Docker is installed to label the nginx image:

    docker tag [Image name 1:tag 1] [Image repository address]/[Organization name]/[Image name 2:tag 2]

    In the preceding command:

    • [Image name 1:tag 1]: Replace it with the actual name and tag of the image to be pushed.
    • [Image repository address]: You can query the address on the SWR console. It is the domain name at the end of the login command in 1.b.
    • [Organization name]: Replace it with the name of the organization created.
    • [Image name 2:tag 2]: Replace it with the name and tag of the image to be uploaded.

    Example:

    docker tag nginx:v1 swr.ru-moscow-1.hc.cloud.ru/group/nginx:v1

  3. Push the image to the image repository by running the following command:

    docker push [Image repository address]/[Organization name]/[Image name 2:tag 2]

    Example:

    docker push swr.ru-moscow-1.hc.cloud.ru/group/nginx:v1

    The following information will be returned upon a successful push:

    6d6b9812c8ae: Pushed
    695da0025de6: Pushed
    fe4c16cbf7a4: Pushed
    v1: digest: sha256:eb7e3bbd8e3040efa71d9c2cacfa12a8e39c6b2ccd15eac12bdc49e0b66cee63 size: 948

    To view the pushed image, refresh the My Images page.

containerd

  1. Log in to the SWR console.
  2. In the navigation pane, choose My Images. Then click the name of the target image.
  3. On the image details page, click the Pull/Push tab and click Generate Push Command to copy the command for uploading an image through containerd.

    Note

    The command is only valid for six hours after it is generated. For details about how to obtain a long-term upload command, see Obtaining a Long-Term Valid Login Command.

  4. Log in to the VM running containerd as the root user.
  5. Run the image push command copied in 3 on the VM. Before running the command, change the organization name, image name, and tag to those of the image to be uploaded.

  6. Check whether the image is pushed successfully.