# ecs-image

Part of **ECS**

<!-- intent-backlink:auto -->

> 💡 **Path Selection**: This skill is one implementation path for [Manage custom images for ECS instances](../../intent/ecs-manage-images/SKILL.md). If you're unsure which path to take, check the routing skill first.

# ECS Image Management Console Guide

## Operations Overview

| Operation | Console Navigation Path | Prerequisites | Description |
|----------|------------------------|---------------|-------------|
| Create Custom Image | Console > ECS > Images > Create Custom Image | A system disk snapshot must exist; or an instance must be available and powered off if creating from instance; permissions to create images and manage snapshots | Create a custom image from an existing instance or system disk snapshot |
| Delete Image | Console > ECS > Images > Delete Image | The image must not be used by any running instances; shared images must be unshared before deletion | Remove a custom image from your repository |
| Encrypt Custom Image | Console > ECS > Images > Custom Images | The custom image must be in the Available state | Generate an encrypted copy of a custom image for secure instance creation |
| Export Custom Image | Console > ECS > Images > Export Image | OSS is activated and an OSS bucket is created; you are authorized to export images | Export a custom image to an OSS bucket in RAW, VHD, or QCOW2 format |
| Find Image | Console > ECS > Images > Find Image | None | Search for images by ID, name, snapshot ID, or tag across custom and public image types |
| Convert Image Format | Console > ECS > Images > Import Image | Access to a Windows or Linux system with command-line access; downloaded qemu-img tool; source image in unsupported format (e.g., VMDK, VDI, VHDX) | Convert image files locally to supported formats (RAW, VHD, qcow2) using qemu-img |
| Import Image from OSS | Console > ECS > Images > Import Image | Image file in RAW, VHD, or QCOW2 format uploaded to OSS; RAM permissions granted; VPC created | Import a custom image from an OSS bucket into ECS |
| Edit Image Description | Console > ECS > Images > Custom Images | A custom image must already exist in the ECS console | Update the description of an existing custom image |
| Share Custom Image | Console > ECS > Images > Share Image | A custom image must be created and available; permissions to manage organizations and share images | Share a custom image with other organizations or resource sets |
| Create Custom Image from Snapshot | Console > ECS > Images > Create Custom Image | A system disk snapshot is created | Create a custom image specifically from a system disk snapshot |

## Step-by-Step Instructions

### Create Custom Image

**Navigation**: Console > ECS > Images > Create Custom Image

**Prerequisites**:
- A system disk snapshot must exist
- An instance must be available and powered off if creating from instance
- Permissions to create images and manage snapshots

1. Navigate to the **Images** page in the ECS console  
   - Element: **Images** (menu) — left navigation panel

2. To create from a snapshot:  
   - Find a snapshot with **System Disk** in the **Disk Type** column  
   - Element: **Create Custom Image** (button) — Actions column

3. To create from an instance:  
   - Find the target instance  
   - Click the **More** icon (three dots) in the Actions column  
   - Element: **Disk and Image > Create Custom Image** (menu) — Actions column dropdown

4. In the configuration form, set the **Sharing Scope**  
   - Element: **Sharing Scope** (dropdown) — main form area  
   - Options: Current Organization and Subordinate Organizations, Current Resource Set, Current Organization

5. Enter a valid **Image Name**  
   - Element: **Image Name** (text_input) — main form area  
   - Notes: Must be 2–128 characters, start with a letter, and can contain letters, digits, periods, underscores, hyphens, and colons

6. Optionally enter an **Image Description**  
   - Element: **Image Description** (text_input) — main form area  
   - Notes: Must be 2–256 characters and cannot start with http:// or https://

7. Submit the request  
   - Element: **OK** (button) — bottom of form  
   - Notes: After clicking, wait for the success message; image creation may take several minutes

| Parameter | Type | Required | Options/Values | Description |
|-----------|------|----------|----------------|-------------|
| Sharing Scope | dropdown | Yes | Current Organization and Subordinate Organizations, Current Resource Set, Current Organization | Select the scope for which to share the custom image |
| Image Name | text_input | Yes | — | Enter a name for the custom image. Must be 2 to 128 characters long and start with a letter. Can contain letters, digits, periods, underscores, hyphens, and colons |
| Image Description | text_input | No | — | Enter a description of the custom image. Must be 2 to 256 characters long and cannot start with http:// or https:// |

### Delete Image

**Navigation**: Console > ECS > Images > Delete Image

**Prerequisites**:
- The image must not be used by any running instances
- Shared images must be unshared before deletion

1. Navigate to the **Images** page  
   - Element: **Images** (menu) — left navigation panel

2. Locate the custom image to delete  
   - Use filters or search if needed  
   - Element: (form_field) — main content area

3. For a single image, click **Delete Image**  
   - Element: **Delete Image** (button) — Actions column

4. Alternatively, select one or more images and click **Delete**  
   - Element: **Delete** (button) — lower-left corner of image list

5. Confirm deletion in the dialog  
   - Element: **Delete** (button) — confirmation message  
   - Notes: This action cannot be undone; ensure no instances depend on this image

### Encrypt Custom Image

**Navigation**: Console > ECS > Images > Custom Images

**Prerequisites**:
- The custom image must be in the Available state

1. On the **Images** page, click the **Custom Images** tab  
   - Element: **Custom Images** (tab) — top navigation panel

2. Find the image to encrypt and open the Actions menu  
   - Click the **More** icon (three dots) in the Actions column  
   - Element: **Encrypt Image** (link) — Actions dropdown

3. In the **Encrypt Image** dialog, enter a **Name** for the new encrypted image  
   - Element: **Encrypt Image** (dialog) — center of screen  
   - Notes: The Image ID field is auto-filled and read-only

4. Optionally enter a **Description**  
   - Element: **Description** (text_input) — inside dialog

5. Confirm encryption  
   - Element: **OK** (button) — bottom-right corner of dialog  
   - Notes: A new encrypted image will appear in your custom images list after processing

| Parameter | Type | Required | Options/Values | Description |
|-----------|------|----------|----------------|-------------|
| Name | text_input | Yes | — | Enter a name for the new encrypted custom image. The name must be 2 to 128 characters in length and start with a letter. It can contain underscores (_), periods (.), and hyphens (-) |
| Description | text_input | No | — | Enter a description for the new encrypted custom image. The description must be 2 to 256 characters in length and cannot start with http:// or https:// |

### Export Custom Image

**Navigation**: Console > ECS > Images > Export Image

**Prerequisites**:
- OSS is activated and an OSS bucket is created
- You are authorized to export images

1. On the **Images** page, find the custom image to export  
   - Element: (table_row) — main content area

2. Open the Actions menu and select **Export Image**  
   - Click the **More** icon in the Actions column  
   - Element: **Export Image** (link) — Actions dropdown

3. In the export dialog, select the **Region**  
   - Element: **Region** (dropdown) — dialog form  
   - Notes: Must match the region of the image

4. Choose an **OssBucket** in the same region  
   - Element: **OssBucket** (dropdown) — dialog form

5. Set the **OSS Prefix** for the exported object name  
   - Element: **OSS Prefix** (text_input) — dialog form  
   - Notes: Example: "Demo" results in object name "Demo-[auto-generated]"

6. Submit the export request  
   - Element: **OK** (button) — bottom of dialog  
   - Notes: The image will be exported to your OSS bucket in RAW, VHD, or QCOW2 format

| Parameter | Type | Required | Options/Values | Description |
|-----------|------|----------|----------------|-------------|
| Region | dropdown | Yes | — | Select the region where the custom image resides |
| OssBucket | dropdown | Yes | — | Select an OSS bucket that belongs to the same region as the custom image |
| OSS Prefix | text_input | Yes | — | Set the prefix of the object name for the custom image. For example, if you set OSS Prefix to Demo, the exported image is named Demo-[Automatically generated object name] |

### Find Image

**Navigation**: Console > ECS > Images > Find Image

**Prerequisites**:  
None

1. On the **Images** page, select the appropriate tab  
   - Element: **Custom Images** (tab) — top navigation panel  
   - Or: **Public Images** (tab) — for marketplace images

2. Click **Advanced Filter** to refine results  
   - Element: **Advanced Filter** (button) — top-right corner

3. Enter search criteria in the filter fields  
   - Element: **Image ID** (text_input) — filter panel  
   - Element: **Image Name** (text_input) — filter panel  
   - Element: **Snapshot ID** (text_input) — filter panel (not available for public images)  
   - Element: **Tag** (text_input) — filter panel (not available for public images)

4. View filtered results in the image list  
   - Notes: Matching images appear dynamically as you type or apply filters

| Parameter | Type | Required | Options/Values | Description |
|-----------|------|----------|----------------|-------------|
| Image ID | text_input | No | — | Enter an image ID to search for the image |
| Image Name | text_input | No | — | Enter an image name to search for the image |
| Snapshot ID | text_input | No | — | Enter a snapshot ID to search for images associated with the snapshot. This option is not available for public images |
| Tag | text_input | No | — | Enter the key or value of a tag to search for the images that use the tag. This option is not available for public images |

### Convert Image Format

**Navigation**: Console > ECS > Images > Import Image

**Prerequisites**:
- Access to a Windows or Linux system with command-line access
- Downloaded qemu-img tool
- Source image file in an unsupported format (e.g., VMDK, VDI, VHDX, qcow1, QED)

1. Download QEMU binaries for Windows (if on Windows)  
   - Element: **QEMU Binaries for Windows (64 bit)** (link) — external website  
   - Notes: Select a version compatible with your OS

2. Install qemu to **C:\Program Files\qemu**  
   - Element: **C:\Program Files\qemu** (text_input) — installation path dialog

3. Configure environment variables  
   - Open System Properties via Start > Computer > Properties > Advanced System Settings  
   - Element: **Environment Variables** (button) — System Properties dialog box

4. Add **C:\Program Files\qemu** to the **Path** system variable  
   - Element: **Path** (variable) — System variables section  
   - Notes: Use semicolons to separate multiple paths

5. Open Command Prompt and verify installation  
   - Element: **Command Prompt** (link) — Start menu  
   - Run: `qemu-img --help`

6. Navigate to the directory containing the source image  
   - Element: **cd [Directory of the source image file]** (button) — Command Prompt  
   - Example: `cd D:\ConvertImage`

7. Run the conversion command  
   - Element: **qemu-img convert -f raw -O qcow2 centos.raw centos.qcow2** (button) — Command Prompt  
   - Notes: Replace input/output names and formats as needed; output appears in same directory

### Import Image from OSS

**Navigation**: Console > ECS > Images > Import Image

**Prerequisites**:
- An image is made and meets the limits and requirements for image import, and is in RAW, VHD, or QCOW2 format
- You are granted the permissions to import images
- The image is uploaded from your computer to a bucket using the OSS console or OSS API operation

1. Navigate to the **Images** page  
   - Element: **Images** (menu) — left navigation panel

2. Click **Import Image**  
   - Element: **Import Image** (button) — main content area

3. In the **Import Image** panel, configure all required parameters  
   - Element: **Import Image** (panel) — main content area

4. Select **Organization**, **Resource Set**, and **Region**  
   - Element: **Organization** (dropdown)  
   - Element: **Resource Set** (dropdown)  
   - Element: **Region** (dropdown)

5. Enter **OSS Bucket Name** and **OSS Object Name**  
   - Element: **OSS Bucket Name** (text_input)  
   - Element: **OSS Object Name** (text_input)

6. Set **Image Name**, **Operating System**, **System Disk Size**, **Architecture**, and **Platform**  
   - Element: **Image Name** (text_input)  
   - Element: **Operating System** (radio) — options: Linux, Windows  
   - Element: **System Disk Size (GB)** (number_input)  
   - Element: **Architecture** (radio) — options: x86_64, i386  
   - Element: **Platform** (dropdown) — includes CentOS, Ubuntu, SUSE, Debian, Aliyun, Windows Server versions

7. Optionally add data disk images or enter a description  
   - Element: **Add Data Disk Image** (checkbox)  
   - Element: **Image Description** (text_input)

8. Submit the import request  
   - Element: **OK** (button) — bottom of panel  
   - Notes: Import may take several minutes; monitor progress in task list

| Parameter | Type | Required | Options/Values | Description |
|-----------|------|----------|----------------|-------------|
| Organization | dropdown | Yes | — | The organization in which to use the custom image |
| Resource Set | dropdown | Yes | — | The resource set to which to assign the custom image |
| Region | dropdown | Yes | — | The region to which to import the image as a custom image |
| OSS Bucket Name | text_input | Yes | — | The name of the OSS bucket where the image to be imported is stored |
| OSS Object Name | text_input | Yes | — | The URL of the object as which the image to be imported is stored in the OSS bucket |
| Image Name | text_input | Yes | — | The name of the custom image. The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (_), hyphens (-), and colons (:). It must start with a letter |
| Sharing Scope | radio | Yes | Current Organization and Subordinate Organizations, Current Resource Set, Current Organization | The scope for which to share the custom image |
| Operating System | radio | Yes | Linux, Windows | The operating system |
| System Disk Size (GB) | number_input | Yes | — | The size of the system disk on an instance. Unit: GiB |
| Architecture | radio | Yes | x86_64, i386 | Valid values: x86_64 and i386 |
| Platform | dropdown | Yes | CentOS, Ubuntu, SUSE, OpenSUSE, Debian, CoreOS, Aliyun, Others Linux, Windows Server 2003, Windows Server 2008, Windows Server 2012 | Linux: List of supported Linux distributions. Windows: List of supported Windows Server versions |
| Image Description | text_input | No | — | The description of the custom image |
| Add Data Disk Image | checkbox | No | — | Imports other images that contain data from data disks. If selected, additional parameters must be specified |

### Edit Image Description

**Navigation**: Console > ECS > Images > Custom Images

**Prerequisites**:
- A custom image must already exist in the ECS console

1. On the **Images** page, click the **Custom Images** tab  
   - Element: **Custom Images** (tab) — top navigation panel

2. Find the image and click **Edit Description**  
   - Element: **Edit Description** (button) — Actions column

3. In the dialog, update the description  
   - Element: **Edit Description** (dialog) — center of screen  
   - Notes: Must be 2–256 characters and cannot start with http:// or https://

4. Save changes  
   - Element: **OK** (button) — bottom right of dialog

| Parameter | Type | Required | Options/Values | Description |
|-----------|------|----------|----------------|-------------|
| Description | text_input | Yes | — | The description of the custom image. Must be 2 to 256 characters long and cannot start with http:// or https:// |

### Share Custom Image

**Navigation**: Console > ECS > Images > Share Image

**Prerequisites**:
- A custom image must be created and available in your account
- You must have permissions to manage organizations and share images

1. On the **Images** page, locate the custom image to share  
   - Element: (table_row) — main content area

2. Open the Actions menu  
   - Click the **More** icon (three dots) in the Actions column  
   - Element: **Share Image** (button) — Actions dropdown

3. In the **Share Image** dialog, select target organizations  
   - Element: **Organization** (dropdown) — Share Image dialog  
   - Notes: If no list appears due to permissions, manually enter a level-1 organization name

4. Confirm sharing  
   - Element: **OK** (button) — Share Image dialog  
   - Notes: Recipients can now use the image to create instances; it does not count against their quota

| Parameter | Type | Required | Options/Values | Description |
|-----------|------|----------|----------------|-------------|
| Organization | dropdown | Yes | — | Select one or more organizations to which the image will be shared |

### Create Custom Image from Snapshot

**Navigation**: Console > ECS > Images > Create Custom Image

**Prerequisites**:
- A system disk snapshot is created

1. On the **Snapshots** page, find a snapshot with **System Disk** in the **Disk Type (All)** column  
   - Element: **System Disk** (text_input) — Disk Type (All) column

2. Click **Create Custom Image**  
   - Element: **Create Custom Image** (button) — Actions column

3. Set **Sharing Scope**  
   - Element: **Sharing Scope** (dropdown) — main form area  
   - Options: Current Organization and Subordinate Organizations, Current Resource Set, Current Organization

4. Enter **Image Name**  
   - Element: **Image Name** (text_input) — main form area  
   - Notes: 2–128 characters, starts with letter, allows letters, digits, . _ - :

5. Enter **Image Description** (optional)  
   - Element: **Image Description** (text_input) — main form area  
   - Notes: 2–256 characters, cannot start with http:// or https://

6. Submit  
   - Element: **OK** (button) — bottom of form

| Parameter | Type | Required | Options/Values | Description |
|-----------|------|----------|----------------|-------------|
| Sharing Scope | dropdown | Yes | Current Organization and Subordinate Organizations, Current Resource Set, Current Organization | Select the scope in which you want to share the custom image |
| Image Name | text_input | Yes | — | Enter a name for the custom image. Must be 2 to 128 characters long and start with a letter |
| Image Description | text_input | No | — | Provide a description for the custom image. Must be 2 to 256 characters long and cannot start with http:// or https:// |

## FAQ

Q: Where can I find my custom images in the console?  
A: Go to Console > ECS > Images and click the **Custom Images** tab at the top of the page.

Q: What happens if I delete a custom image that is being used by an instance?  
A: You cannot delete a custom image that is currently in use by a running instance. You must stop and replace the system disk of the instance first, or terminate the instance.

Q: Can I modify the sharing scope of a custom image after creation?  
A: Yes, you can change sharing settings by using the **Share Image** or **Unshare Image** actions in the Actions column of the image list.

Q: What image formats are supported for import into ECS?  
A: ECS supports RAW, VHD, and QCOW2 formats. Other formats (like VMDK or VHDX) must be converted using tools like qemu-img before import.

Q: Do I need special permissions to import or export images?  
A: Yes, you need RAM permissions for image management, OSS access (for export/import), and appropriate organization/resource set roles. Refer to the RAM documentation for required policies.

## Pricing & Billing

### Billing Model
Image operations follow a per-request billing model for creation, encryption, import, and export. Storage of custom images incurs separate charges based on size and duration. Deletion, description editing, and sharing are free.

### Price Reference
| Operation | Price |
|---------|-------|
| Custom image creation | 0.002 / |
| Custom image encryption | 0.001 / |
| Custom image export | 0.001 / (request) + 0.002 / (data) |
| Custom image import | 0.01 / |

### Free Tier
- Image export: 100 
- Other operations: No free tier available

### Billing Notes
- Custom image creation and import are billed per operation.
- Export operations may incur additional OSS storage or data transfer fees.
- Imported and custom images consume storage capacity and are billed accordingly.
- No charges apply for searching, sharing, or editing image descriptions.